Advertisement
aadddrr

r_outlet_kartu_stok

Sep 14th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * rekap stok
  3.  * filter mandatory : session_id, tenant_id, ou_id, date_from, date_to
  4.  * filter optional : category product, sub category product, product
  5.  * jika filter optional diisi -99 artinya data digunakan semua
  6.  */
  7.  
  8. --Modified by Adrian, Sep 15, 2017, menambahkan GTI dan GTO selain Outlet POS
  9.  
  10. CREATE OR REPLACE FUNCTION r_outlet_kartu_stok(character varying, bigint, bigint, character varying, character varying, bigint, bigint, character varying, bigint)
  11. RETURNS SETOF refcursor AS
  12. $BODY$
  13. DECLARE
  14.     pRefHeader          REFCURSOR := 'refHeader';
  15.     pRefDetail          REFCURSOR := 'refDetail';
  16.     pSessionId              ALIAS FOR $1;
  17.     pTenantId               ALIAS FOR $2;
  18.     pOuId                   ALIAS FOR $3;
  19.     pDateFrom               ALIAS FOR $4;
  20.     pDateTo                 ALIAS FOR $5;
  21.     pCtgrProductId          ALIAS FOR $6;
  22.     pSubCtgrProductId       ALIAS FOR $7;
  23.     pProductName            ALIAS FOR $8;  
  24.     pUserId                 ALIAS FOR $9;  
  25.    
  26.     vEmptyValue             character varying(1);
  27.     vEmptyId                bigint;
  28.     vAllId                  bigint;
  29.     vDocTypeAwal            bigint;
  30.     vDocTypeTrfIn           bigint;
  31.     vDocTypeTrfInReceipt    bigint;
  32.     vDocTypeTrfOut          bigint;
  33.     vDocTypeAdj             bigint;
  34.     vDocTypePosShop         bigint;
  35.     vDocTypeReturnPosShop   bigint;
  36.     vDocTypePosShopInshop   bigint;
  37.     vDocTypeReturnPosShopInShop bigint;
  38.     vDocTypeVoidPosShop         bigint;
  39.     vDocTypeVoidPosShopInShop   bigint;
  40.     vLastYearMonth          character varying(6);
  41.     vNextYearMonth          character varying(6);  
  42.     vFlagYes                character varying(1);
  43.     vSaldoDateFrom          character varying(8);
  44.     vWarehouseId            bigint;
  45.     vStartTrxDate           character varying(8);
  46.    
  47.     vDocTypeTransferIn      bigint;
  48.     vDocTypeTransferOut     bigint;
  49.    
  50. BEGIN
  51.    
  52.     vEmptyValue := ' ';
  53.     vEmptyId := -99;
  54.     vAllId := -99;
  55.     vDocTypeAwal := -99;
  56.     vDocTypeTrfIn := 534;
  57.     vDocTypeTrfInReceipt := 536;
  58.     vDocTypeTrfOut := 532;
  59.     vDocTypeAdj := 413;
  60.     vDocTypePosShop := 401;
  61.     vDocTypeReturnPosShop := 402;
  62.     vDocTypePosShopInShop := 403;
  63.     vDocTypeReturnPosShopInShop := 404;
  64.     vDocTypeVoidPosShop := 405;
  65.     vDocTypeVoidPosShopInShop := 406;
  66.     vFlagYes := 'Y';
  67.     vLastYearMonth := ' ';
  68.     vNextYearMonth := ' ';
  69.    
  70.     vDocTypeTransferIn := 535;
  71.     vDocTypeTransferOut := 533;
  72.    
  73.     DELETE FROM tr_kartu_stok_by_doc_type WHERE session_id = pSessionId;
  74.    
  75.     SELECT warehouse_id, start_date_trx INTO vWarehouseId, vStartTrxDate
  76.     FROM i_outlet
  77.     WHERE tenant_id = pTenantId AND ou_id = pOuId;
  78.  
  79.     SELECT COALESCE(MAX(date_year_month),' ') INTO vLastYearMonth  
  80.     FROM i_outlet_admin_monthly_process
  81.     WHERE tenant_id = pTenantId AND
  82.         ou_id = pOuId AND
  83.         flg_process = vFlagYes AND
  84.         date_year_month < substr(pDateFrom,1,6);
  85.  
  86.     IF vLastYearMonth = ' ' THEN
  87.        
  88.         /*
  89.          * proses admin belum pernah dilakukan
  90.          * jadi saldo awal stok diambil dari summary monthly qty yang year month = bulan dari start tgl trx
  91.          */
  92.  
  93.         INSERT INTO tr_kartu_stok_by_doc_type
  94.         (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  95.         doc_no, doc_date, partner_id, product_id, warehouse_id,
  96.         product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  97.         product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  98.         SELECT pSessionId, 1, A.tenant_id, A.sub_ou_id, vDocTypeAwal, 'SALDO AWAL', vEmptyId,
  99.             'SALDO_AWAL', vStartTrxDate, vEmptyId, A.product_id, A.warehouse_id,
  100.             A.product_balance_id, A.product_status, A.base_uom_id, SUM(A.qty), 0,
  101.             B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id
  102.         FROM in_summary_monthly_qty A, m_product B
  103.         WHERE A.tenant_id = pTenantId AND
  104.             A.sub_ou_id = pOuId AND
  105.             A.date_year_month = substr(vStartTrxDate,1,6) AND
  106.             A.warehouse_id = vWarehouseId AND
  107.             A.product_id = B.product_id AND
  108.             A.doc_type_id = vDocTypeAwal
  109.         GROUP BY A.tenant_id, A.sub_ou_id, A.product_id, A.warehouse_id,
  110.             A.product_balance_id, A.product_status, A.base_uom_id,
  111.             B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id;
  112.        
  113.         IF vStartTrxDate < pDateFrom THEN
  114.        
  115.             INSERT INTO tr_kartu_stok_by_doc_type
  116.             (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  117.             doc_no, doc_date, partner_id, product_id, warehouse_id,
  118.             product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  119.             product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  120.             SELECT pSessionId, 1, A.tenant_id, A.ou_id, vDocTypeAwal, 'SALDO AWAL', vEmptyId,
  121.                 'SALDO_AWAL', vStartTrxDate, vEmptyId, A.product_id, A.warehouse_id,
  122.                 A.product_balance_id, A.product_status, A.base_uom_id, SUM(A.qty), 0,
  123.                 B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id
  124.             FROM in_log_product_balance_stock A, m_product B
  125.             WHERE A.tenant_id = pTenantId AND
  126.                 A.ou_id = pOuId AND
  127.                 A.doc_date < pDateFrom AND
  128.                 A.warehouse_id = vWarehouseId AND
  129.                 A.product_id = B.product_id
  130.             GROUP BY A.tenant_id, A.ou_id, A.product_id, A.warehouse_id,
  131.                 A.product_balance_id, A.product_status, A.base_uom_id,
  132.                 B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id;
  133.        
  134.         END IF;
  135.     ELSE
  136.        
  137.         SELECT TO_CHAR(TO_DATE(vLastYearMonth,'YYYYMM') + interval '1 Month','YYYYMM') INTO vNextYearMonth;
  138.         vSaldoDateFrom = vNextYearMonth||'01';
  139.         /*
  140.          * jika proses admin sudah pernah dilakukan
  141.          * maka ambil data summary monthly qty dari last year month + 1 bulan
  142.          */
  143.         INSERT INTO tr_kartu_stok_by_doc_type
  144.         (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  145.         doc_no, doc_date, partner_id, product_id, warehouse_id,
  146.         product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  147.         product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  148.         SELECT pSessionId, 1, A.tenant_id, A.sub_ou_id, vDocTypeAwal, 'SALDO AWAL', vEmptyId,
  149.             'SALDO_AWAL', pDateFrom, vEmptyId, A.product_id, A.warehouse_id,
  150.             A.product_balance_id, A.product_status, A.base_uom_id, SUM(A.qty), 0,
  151.             B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id
  152.         FROM in_summary_monthly_qty A, m_product B
  153.         WHERE A.tenant_id = pTenantId AND
  154.             A.sub_ou_id = pOuId AND
  155.             A.date_year_month = vNextYearMonth AND
  156.             A.warehouse_id = vWarehouseId AND
  157.             A.product_id = B.product_id AND
  158.             A.doc_type_id = vDocTypeAwal
  159.         GROUP BY A.tenant_id, A.sub_ou_id, A.product_id, A.warehouse_id,
  160.             A.product_balance_id, A.product_status, A.base_uom_id,
  161.             B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id;
  162.                
  163.         INSERT INTO tr_kartu_stok_by_doc_type
  164.         (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  165.         doc_no, doc_date, partner_id, product_id, warehouse_id,
  166.         product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  167.         product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  168.         SELECT pSessionId, 1, A.tenant_id, A.ou_id, vDocTypeAwal, 'SALDO AWAL', vEmptyId,
  169.             'SALDO_AWAL', pDateFrom, vEmptyId, A.product_id, A.warehouse_id,
  170.             A.product_balance_id, A.product_status, A.base_uom_id, SUM(A.qty), 0,
  171.             B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id
  172.         FROM in_log_product_balance_stock A, m_product B
  173.         WHERE A.tenant_id = pTenantId AND
  174.             A.ou_id = pOuId AND
  175.             A.doc_date >= vSaldoDateFrom AND
  176.             A.doc_date < pDateFrom AND
  177.             A.doc_type_id <> vDocTypeAwal AND
  178.             A.warehouse_id = vWarehouseId AND
  179.             A.product_id = B.product_id
  180.         GROUP BY A.tenant_id, A.ou_id, A.product_id, A.warehouse_id,
  181.             A.product_balance_id, A.product_status, A.base_uom_id,
  182.             B.product_code, B.product_name, B.ctgr_product_id, B.sub_ctgr_product_id;
  183.  
  184.     END IF;
  185.    
  186.     INSERT INTO tr_kartu_stok_by_doc_type
  187.     (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  188.     doc_no, doc_date, partner_id, product_id, warehouse_id,
  189.     product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  190.     product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  191.     SELECT pSessionId, 2, A.tenant_id, A.ou_id, A.doc_type_id, C.doc_desc, B.inventory_id,
  192.         A.doc_no, A.doc_date, A.partner_id, A.product_id, B.warehouse_from_id,
  193.         A.product_balance_id, A.product_status, A.base_uom_id, SUM(A.qty), 0,
  194.         D.product_code, D.product_name, D.ctgr_product_id, D.sub_ctgr_product_id
  195.     FROM in_log_product_balance_stock A, in_inventory B, m_document C, m_product D
  196.     WHERE A.tenant_id = pTenantId AND
  197.         A.ou_id = pOuId AND
  198.         A.doc_date BETWEEN pDateFrom AND pDateTo AND
  199.         A.doc_type_id IN (vDocTypeTrfIn,vDocTypeTrfInReceipt,vDocTypeTransferIn) AND
  200.         A.ref_id = B.inventory_id AND
  201.         A.doc_type_id = B.doc_type_id AND
  202.         A.doc_type_id = C.doc_type_id AND
  203.         A.product_id = D.product_id
  204.     GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, B.inventory_id, C.doc_desc,
  205.         A.doc_no, A.doc_date, A.partner_id, A.product_id, B.warehouse_from_id,
  206.         A.product_balance_id, A.product_status, A.base_uom_id,
  207.         D.product_code, D.product_name, D.ctgr_product_id, D.sub_ctgr_product_id;
  208.    
  209.    
  210.     INSERT INTO tr_kartu_stok_by_doc_type
  211.     (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  212.     doc_no, doc_date, partner_id, product_id, warehouse_id,
  213.     product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  214.     product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  215.     SELECT pSessionId, 2, A.tenant_id, A.ou_id, A.doc_type_id, C.doc_desc, B.inventory_id,
  216.         A.doc_no, A.doc_date, A.partner_id, A.product_id, B.warehouse_to_id,
  217.         A.product_balance_id, A.product_status, A.base_uom_id, 0, SUM(A.qty),
  218.         D.product_code, D.product_name, D.ctgr_product_id, D.sub_ctgr_product_id
  219.     FROM in_log_product_balance_stock A, in_inventory B, m_document C, m_product D
  220.     WHERE A.tenant_id = pTenantId AND
  221.         A.ou_id = pOuId AND
  222.         A.doc_date BETWEEN pDateFrom AND pDateTo AND
  223.         A.doc_type_id IN (vDocTypeTrfOut, vDocTypeTransferOut) AND
  224.         A.ref_id = B.inventory_id AND
  225.         A.doc_type_id = B.doc_type_id AND
  226.         A.doc_type_id = C.doc_type_id AND
  227.         A.product_id = D.product_id
  228.     GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, B.inventory_id, C.doc_desc,
  229.         A.doc_no, A.doc_date, A.partner_id, A.product_id, B.warehouse_to_id,
  230.         A.product_balance_id, A.product_status, A.base_uom_id,
  231.         D.product_code, D.product_name, D.ctgr_product_id, D.sub_ctgr_product_id;
  232.  
  233.    
  234.     INSERT INTO tr_kartu_stok_by_doc_type
  235.     (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  236.     doc_no, doc_date, partner_id, product_id, warehouse_id,
  237.     product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  238.     product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  239.     SELECT pSessionId, 3, A.tenant_id, A.ou_id, A.doc_type_id, C.doc_desc, A.ref_id,
  240.         A.doc_no, A.doc_date, A.partner_id, A.product_id, A.warehouse_id,
  241.         A.product_balance_id, A.product_status, A.base_uom_id, SUM(A.qty), 0,
  242.         D.product_code, D.product_name, D.ctgr_product_id, D.sub_ctgr_product_id
  243.     FROM in_log_product_balance_stock A, m_document C, m_product D
  244.     WHERE A.tenant_id = pTenantId AND
  245.         A.ou_id = pOuId AND
  246.         A.doc_date BETWEEN pDateFrom AND pDateTo AND
  247.         A.doc_type_id = vDocTypeAdj AND
  248.         A.doc_type_id = C.doc_type_id AND
  249.         A.product_id = D.product_id
  250.     GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.ref_id, C.doc_desc,
  251.         A.doc_no, A.doc_date, A.partner_id, A.product_id, A.warehouse_id,
  252.         A.product_balance_id, A.product_status, A.base_uom_id,
  253.         D.product_code, D.product_name, D.ctgr_product_id, D.sub_ctgr_product_id;
  254.  
  255.        
  256.     INSERT INTO tr_kartu_stok_by_doc_type
  257.     (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  258.     doc_no, doc_date, partner_id, product_id, warehouse_id,
  259.     product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  260.     product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  261.     SELECT pSessionId, 2, A.tenant_id, A.ou_id, A.doc_type_id, B.doc_desc, A.ref_id,
  262.         A.doc_no, A.doc_date, A.partner_id, A.product_id, vWarehouseId,
  263.         A.product_balance_id, A.product_status, A.base_uom_id, 0, SUM(A.qty),
  264.         C.product_code, C.product_name, C.ctgr_product_id, C.sub_ctgr_product_id
  265.     FROM in_log_product_balance_stock A, m_document B, m_product C
  266.     WHERE A.tenant_id = pTenantId AND
  267.         A.ou_id = pOuId AND
  268.         A.doc_date BETWEEN pDateFrom AND pDateTo AND
  269.         A.doc_type_id IN (vDocTypePosShop, vDocTypePosShopInShop) AND
  270.         A.doc_type_id = B.doc_type_id AND
  271.         A.product_id = C.product_id
  272.     GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.ref_id, B.doc_desc,
  273.         A.doc_no, A.doc_date, A.partner_id, A.product_id,
  274.         A.product_balance_id, A.product_status, A.base_uom_id,
  275.         C.product_code, C.product_name, C.ctgr_product_id, C.sub_ctgr_product_id;
  276.  
  277.     INSERT INTO tr_kartu_stok_by_doc_type
  278.     (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  279.     doc_no, doc_date, partner_id, product_id, warehouse_id,
  280.     product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  281.     product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  282.     SELECT pSessionId, 3, A.tenant_id, A.ou_id, A.doc_type_id, B.doc_desc, A.ref_id,
  283.         A.doc_no, A.doc_date, A.partner_id, A.product_id, vWarehouseId,
  284.         A.product_balance_id, A.product_status, A.base_uom_id, 0, SUM(A.qty),
  285.         C.product_code, C.product_name, C.ctgr_product_id, C.sub_ctgr_product_id
  286.     FROM in_log_product_balance_stock A, m_document B, m_product C
  287.     WHERE A.tenant_id = pTenantId AND
  288.         A.ou_id = pOuId AND
  289.         A.doc_date BETWEEN pDateFrom AND pDateTo AND
  290.         A.doc_type_id IN (vDocTypeReturnPosShop, vDocTypeReturnPosShopInShop) AND
  291.         A.doc_type_id = B.doc_type_id AND
  292.         A.product_id = C.product_id
  293.     GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.ref_id, B.doc_desc,
  294.         A.doc_no, A.doc_date, A.partner_id, A.product_id,
  295.         A.product_balance_id, A.product_status, A.base_uom_id,
  296.         C.product_code, C.product_name, C.ctgr_product_id, C.sub_ctgr_product_id;
  297.  
  298.     INSERT INTO tr_kartu_stok_by_doc_type
  299.     (session_id, sort_no, tenant_id, ou_id, doc_type_id, doc_desc, ref_id,
  300.     doc_no, doc_date, partner_id, product_id, warehouse_id,
  301.     product_balance_id, product_status, base_uom_id, qty_in, qty_out,
  302.     product_code, product_name, ctgr_product_id, sub_ctgr_product_id)
  303.     SELECT pSessionId, 4, A.tenant_id, A.ou_id, A.doc_type_id, B.doc_desc, A.ref_id,
  304.         A.doc_no, A.doc_date, A.partner_id, A.product_id, vWarehouseId,
  305.         A.product_balance_id, A.product_status, A.base_uom_id, SUM(A.qty), 0,
  306.         C.product_code, C.product_name, C.ctgr_product_id, C.sub_ctgr_product_id
  307.     FROM in_log_product_balance_stock A, m_document B, m_product C
  308.     WHERE A.tenant_id = pTenantId AND
  309.         A.ou_id = pOuId AND
  310.         A.doc_date BETWEEN pDateFrom AND pDateTo AND
  311.         A.doc_type_id IN (vDocTypeVoidPosShop, vDocTypeVoidPosShopInShop) AND
  312.         A.doc_type_id = B.doc_type_id AND
  313.         A.product_id = C.product_id
  314.     GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.ref_id, B.doc_desc,
  315.         A.doc_no, A.doc_date, A.partner_id, A.product_id,
  316.         A.product_balance_id, A.product_status, A.base_uom_id,
  317.         C.product_code, C.product_name, C.ctgr_product_id, C.sub_ctgr_product_id;
  318.        
  319.     IF pCtgrProductId <> vAllId THEN
  320.    
  321.         DELETE FROM tr_kartu_stok_by_doc_type WHERE session_id = pSessionId AND ctgr_product_id <> pCtgrProductId;
  322.    
  323.     END IF;
  324.  
  325.     IF pSubCtgrProductId <> vAllId THEN
  326.    
  327.         DELETE FROM tr_kartu_stok_by_doc_type WHERE session_id = pSessionId AND sub_ctgr_product_id <> pSubCtgrProductId;
  328.    
  329.     END IF;
  330.    
  331.     Open pRefHeader FOR
  332.     SELECT fullName AS full_name, pDateFrom AS date_from, pDateTo AS date_to
  333.     FROM t_user
  334.     WHERE user_id = pUserId;
  335.    
  336.     RETURN NEXT pRefHeader;
  337.    
  338.     IF pProductName <> vEmptyValue THEN
  339.  
  340.         Open pRefDetail FOR
  341.         SELECT A.sort_no, A.product_code AS product_code, A.product_name AS product_name, D.uom_code AS uom_code,
  342.             B.ctgr_product_name AS ctgr_product_name, C.sub_ctgr_product_name AS sub_ctgr_product_name,
  343.             A.doc_desc AS doc_desc, A.doc_no AS doc_no, A.doc_date AS doc_date,
  344.             G.warehouse_name AS warehouse_name, SUM(A.qty_in) AS qty_in, SUM(A.qty_out) AS qty_out
  345.         FROM tr_kartu_stok_by_doc_type A,
  346.             m_ctgr_product B, m_sub_ctgr_product C,
  347.             m_uom D, t_ou F, m_warehouse G
  348.         WHERE A.session_id = pSessionId AND
  349.             A.ctgr_product_id = B.ctgr_product_id AND
  350.             A.sub_ctgr_product_id = C.sub_ctgr_product_id AND
  351.             A.base_uom_id = D.uom_id AND
  352.             A.ou_id = F.ou_id AND
  353.             A.warehouse_id = G.warehouse_id AND
  354.             (A.product_name LIKE '%'||pProductName||'%' OR
  355.             A.product_code LIKE '%'||pProductName||'%')
  356.         GROUP BY B.ctgr_product_name, C.sub_ctgr_product_name, A.product_code, A.product_name, D.uom_code,
  357.             A.doc_desc, A.doc_no, A.doc_date, F.ou_name, G.warehouse_name, A.sort_no
  358.         ORDER BY B.ctgr_product_name, C.sub_ctgr_product_name, A.product_code, A.doc_date, A.sort_no, A.doc_no;
  359.  
  360.     ELSE
  361.  
  362.         Open pRefDetail FOR
  363.         SELECT A.sort_no, A.product_code AS product_code, A.product_name AS product_name, D.uom_code AS uom_code,
  364.             B.ctgr_product_name AS ctgr_product_name, C.sub_ctgr_product_name AS sub_ctgr_product_name,
  365.             A.doc_desc AS doc_desc, A.doc_no AS doc_no, A.doc_date AS doc_date,
  366.             G.warehouse_name AS warehouse_name, SUM(A.qty_in) AS qty_in, SUM(A.qty_out) AS qty_out
  367.         FROM tr_kartu_stok_by_doc_type A,
  368.             m_ctgr_product B, m_sub_ctgr_product C,
  369.             m_uom D, t_ou F, m_warehouse G
  370.         WHERE A.session_id = pSessionId AND
  371.             A.ctgr_product_id = B.ctgr_product_id AND
  372.             A.sub_ctgr_product_id = C.sub_ctgr_product_id AND
  373.             A.base_uom_id = D.uom_id AND
  374.             A.ou_id = F.ou_id AND
  375.             A.warehouse_id = G.warehouse_id
  376.         GROUP BY B.ctgr_product_name, C.sub_ctgr_product_name, A.product_code, A.product_name, D.uom_code,
  377.             A.doc_desc, A.doc_no, A.doc_date, F.ou_name, G.warehouse_name, A.sort_no
  378.         ORDER BY B.ctgr_product_name, C.sub_ctgr_product_name, A.product_code, A.doc_date, A.sort_no, A.doc_no;
  379.  
  380.     END IF;
  381.    
  382.     RETURN NEXT pRefDetail;
  383.  
  384.     DELETE FROM tr_kartu_stok_by_doc_type WHERE session_id = pSessionId;   
  385. END;
  386. $BODY$
  387.   LANGUAGE plpgsql VOLATILE
  388.   COST 100
  389.   ROWS 1000;
  390.   /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement