Advertisement
dchrissandy

Untitled

Jan 23rd, 2017
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION "public"."r_summary_mutation_stock" (in varchar, in int8, in int8, in varchar, in int8, in int8, in int8, in int8, in int8, in varchar, in varchar, in varchar) RETURNS SETOF refcursor AS
  2. $BODY$
  3. DECLARE
  4.     pRefHeader                  REFCURSOR := 'refHeader';
  5.     pRefDetail                  REFCURSOR := 'refDetail';
  6.     pSessionId                  ALIAS FOR $1;
  7.     pTenantId                   ALIAS FOR $2;
  8.     pUserId                     ALIAS FOR $3;
  9.     pDatetime                   ALIAS FOR $4;
  10.     pOuId                       ALIAS FOR $5;
  11.     pProductId                  ALIAS FOR $6;
  12.     pCtgrProductId              ALIAS FOR $7;
  13.     pSubCtgrProductId           ALIAS FOR $8;
  14.     pBrandId                    ALIAS FOR $9;
  15.     pStartDate                  ALIAS FOR $10;
  16.     pEndDate                    ALIAS FOR $11;
  17.     pFlgConsignment             ALIAS FOR $12;
  18.    
  19.     vLastClosingGeneralLedger   character varying := '';
  20.     vStartDateLog               character varying := '';
  21.     vEndDateLog                 character varying := '';
  22.     vEmptyId                    bigint := -99;
  23.     vFilterOuId                 character varying := '';
  24.     vFilterProductId            character varying := '';
  25.     vFilterCtgrProductId        character varying := '';
  26.     vFilterSubCtgrProductId     character varying := '';
  27.     vFilterBrandId              character varying := '';
  28.     vStartMonthlyQtyDate        character varying := '';
  29.     vEndMonthlyQtyDate          character varying := '';
  30.     vNo                         character varying := 'N';
  31.     vYes                        character varying := 'Y';
  32.    
  33. BEGIN
  34.    
  35.     DELETE FROM tr_summary_mutation_stock WHERE session_id = pSessionId;
  36.    
  37.     -- last closing ledger sebelum pStartDate
  38.     SELECT COALESCE(MAX(date_year_month), '') AS last_closing_gl INTO vLastClosingGeneralLedger
  39.     FROM m_admin_process_ledger
  40.     WHERE tenant_id = pTenantId AND
  41.         ou_id = pOuId AND
  42.         ledger_code = 'GL' AND
  43.         status_ledger = '1' AND
  44.         date_year_month <= SUBSTRING(pStartDate, 1, 6);
  45.    
  46.     -- tanggal awal untuk transaksi diantara tgl saldo awal sampai sebelum pStartDate
  47.     vStartDateLog = vLastClosingGeneralLedger || '01';
  48.     SELECT TO_CHAR(TO_DATE(pStartDate,'YYYYMMDD') + interval '-1 Day','YYYYMMDD') INTO vEndDateLog;
  49.    
  50.     IF pOuId <> vEmptyId THEN
  51.         vFilterOuId := ' AND A.ou_id = ' || pOuId;
  52.     END IF;
  53.    
  54.     IF pProductId <> vEmptyId THEN
  55.         vFilterProductId := ' AND A.product_id = ' || pProductId;
  56.     END IF;
  57.    
  58.     IF pCtgrProductId <> vEmptyId THEN
  59.         vFilterCtgrProductId := ' AND B.ctgr_product_id = ' || pCtgrProductId;
  60.     END IF;
  61.    
  62.     IF pSubCtgrProductId <> vEmptyId THEN
  63.         vFilterSubCtgrProductId := ' AND B.sub_ctgr_product_id = ' || pSubCtgrProductId;
  64.     END IF;
  65.    
  66.     IF pBrandId <> vEmptyId THEN
  67.         vFilterBrandId := ' AND B.brand_id = ' || pBrandId;
  68.     END IF;
  69.    
  70.     -- insert from log product
  71.     IF pFlgConsignment = 'N' THEN
  72.         -- product non consingment
  73.         EXECUTE '
  74.         INSERT INTO tr_summary_mutation_stock(
  75.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  76.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  77.         )
  78.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  79.                 A.product_balance_id, 0, 0, ABS(SUM(CASE WHEN qty < 0 THEN qty ELSE 0 END)), SUM(CASE WHEN qty >= 0 THEN qty ELSE 0 END), 0
  80.         FROM in_log_product_balance_stock A
  81.         INNER JOIN m_product B ON A.product_id = B.product_id
  82.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  83.         WHERE A.doc_date BETWEEN $5 AND $6
  84.             AND A.ou_id = $3
  85.             AND C.flg_buy_konsinyasi = $7 ' ||
  86.             vFilterProductId ||
  87.             vFilterCtgrProductId ||
  88.             vFilterSubCtgrProductId ||
  89.             vFilterBrandId ||
  90.         ' GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  91.         USING pSessionId, pTenantId, pOuId, pFlgConsignment, pStartDate, pEndDate, vNo;
  92.        
  93.         EXECUTE '
  94.         INSERT INTO tr_summary_mutation_stock(
  95.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  96.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  97.         )
  98.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  99.                 A.product_balance_id, 0, 0, ABS(SUM(CASE WHEN qty < 0 THEN qty ELSE 0 END)), SUM(CASE WHEN qty >= 0 THEN qty ELSE 0 END), 0
  100.         FROM in_log_product_consignment_balance_stock A
  101.         INNER JOIN m_product B ON A.product_id = B.product_id
  102.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  103.         WHERE A.doc_date BETWEEN $5 AND $6
  104.             AND A.ou_id = $3
  105.             AND C.flg_buy_konsinyasi = $7 ' ||
  106.             vFilterProductId ||
  107.             vFilterCtgrProductId ||
  108.             vFilterSubCtgrProductId ||
  109.             vFilterBrandId ||
  110.         ' GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  111.         USING pSessionId, pTenantId, pOuId, pFlgConsignment, pStartDate, pEndDate, vNo;
  112.     ELSE
  113.         -- product consignment
  114.         EXECUTE '
  115.         INSERT INTO tr_summary_mutation_stock(
  116.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  117.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  118.         )
  119.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  120.                 A.product_balance_id, 0, 0, ABS(SUM(CASE WHEN qty < 0 THEN qty ELSE 0 END)), SUM(CASE WHEN qty >= 0 THEN qty ELSE 0 END), 0
  121.         FROM in_log_product_balance_stock A
  122.         INNER JOIN m_product B ON A.product_id = B.product_id
  123.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  124.         WHERE A.doc_date BETWEEN $5 AND $6
  125.             AND A.ou_id = $3
  126.             AND C.flg_buy_konsinyasi = $7
  127.             AND A.doc_type_id <> 111 ' ||
  128.             vFilterProductId ||
  129.             vFilterCtgrProductId ||
  130.             vFilterSubCtgrProductId ||
  131.             vFilterBrandId ||
  132.         ' GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  133.         USING pSessionId, pTenantId, pOuId, pFlgConsignment, pStartDate, pEndDate, vYes;
  134.        
  135.         EXECUTE '
  136.         INSERT INTO tr_summary_mutation_stock(
  137.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  138.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  139.         )
  140.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  141.                 A.product_balance_id, 0, 0, ABS(SUM(CASE WHEN qty < 0 THEN qty ELSE 0 END)), SUM(CASE WHEN qty >= 0 THEN qty ELSE 0 END), 0
  142.         FROM in_log_product_consignment_balance_stock A
  143.         INNER JOIN m_product B ON A.product_id = B.product_id
  144.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  145.         WHERE A.doc_date BETWEEN $5 AND $6
  146.             AND A.ou_id = $3
  147.             AND C.flg_buy_konsinyasi = $7 ' ||
  148.             vFilterProductId ||
  149.             vFilterCtgrProductId ||
  150.             vFilterSubCtgrProductId ||
  151.             vFilterBrandId ||
  152.         ' GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  153.         USING pSessionId, pTenantId, pOuId, pFlgConsignment, pStartDate, pEndDate, vYes;
  154.     END IF;
  155.    
  156.     -- update nilai saldo awal qty
  157.     IF pFlgConsignment = 'N' THEN
  158.         WITH tt_in_summary_monthly_qty AS (
  159.             SELECT tenant_id, product_id, product_balance_id, SUM(qty) AS qty
  160.             FROM in_summary_monthly_qty
  161.             WHERE tenant_id = pTenantId
  162.                 AND doc_type_id = vEmptyId
  163.                 AND date_year_month = vLastClosingGeneralLedger
  164.                 AND ou_id = pOuId
  165.             GROUP BY tenant_id, product_id, product_balance_id
  166.         )
  167.         UPDATE tr_summary_mutation_stock A
  168.         SET last_balance_qty = B.qty,
  169.             expectation = B.qty
  170.         FROM tt_in_summary_monthly_qty B
  171.         WHERE A.tenant_id = B.tenant_id
  172.             AND A.product_id = B.product_id
  173.             AND A.product_balance_id = B.product_balance_id;
  174.     ELSE
  175.         WITH tt_in_summary_monthly_qty AS (
  176.             SELECT tenant_id, product_id, product_balance_id, SUM(qty) AS qty
  177.             FROM in_summary_monthly_qty_consignment
  178.             WHERE tenant_id = pTenantId
  179.                 AND doc_type_id = vEmptyId
  180.                 AND date_year_month = vLastClosingGeneralLedger
  181.                 AND ou_id = pOuId
  182.             GROUP BY tenant_id, product_id, product_balance_id
  183.         )
  184.         UPDATE tr_summary_mutation_stock A
  185.         SET last_balance_qty = B.qty,
  186.             expectation = B.qty
  187.         FROM tt_in_summary_monthly_qty B
  188.         WHERE A.tenant_id = B.tenant_id
  189.             AND A.product_id = B.product_id
  190.             AND A.product_balance_id = B.product_balance_id;
  191.     END IF;
  192.    
  193.     -- insert product yang hanya punya saldo awal qty dan tidak pernah punya log transaksi
  194.     IF pFlgConsignment = 'N' THEN
  195.         EXECUTE '
  196.         INSERT INTO tr_summary_mutation_stock(
  197.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  198.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  199.         )
  200.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  201.                 A.product_balance_id, 0, SUM(A.qty), 0, 0, SUM(A.qty)
  202.         FROM in_summary_monthly_qty A
  203.         INNER JOIN m_product B ON A.product_id = B.product_id
  204.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  205.         WHERE A.doc_type_id = $4
  206.                 AND A.date_year_month = $5
  207.                 AND A.ou_id = $3
  208.                 AND C.flg_buy_konsinyasi = $6 ' ||
  209.                 vFilterProductId ||
  210.                 vFilterCtgrProductId ||
  211.                 vFilterSubCtgrProductId ||
  212.                 vFilterBrandId ||
  213.         ' AND NOT EXISTS(
  214.             SELECT 1 FROM tr_summary_mutation_stock D
  215.             WHERE A.tenant_id = D.tenant_id
  216.                 AND A.product_id = D.product_id
  217.                 AND A.product_balance_id = D.product_balance_id
  218.         ) GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  219.         USING pSessionId, pTenantId, pOuId, vEmptyId, vLastClosingGeneralLedger, vNo;
  220.        
  221.         EXECUTE '
  222.         INSERT INTO tr_summary_mutation_stock(
  223.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  224.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  225.         )
  226.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  227.                 A.product_balance_id, 0, SUM(A.qty), 0, 0, SUM(A.qty)
  228.         FROM in_summary_monthly_qty_consignment A
  229.         INNER JOIN m_product B ON A.product_id = B.product_id
  230.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  231.         WHERE A.doc_type_id = $4
  232.                 AND A.date_year_month = $5
  233.                 AND A.ou_id = $3
  234.                 AND C.flg_buy_konsinyasi = $6 ' ||
  235.                 vFilterProductId ||
  236.                 vFilterCtgrProductId ||
  237.                 vFilterSubCtgrProductId ||
  238.                 vFilterBrandId ||
  239.         ' AND NOT EXISTS(
  240.             SELECT 1 FROM tr_summary_mutation_stock D
  241.             WHERE A.tenant_id = D.tenant_id
  242.                 AND A.product_id = D.product_id
  243.                 AND A.product_balance_id = D.product_balance_id
  244.         ) GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  245.         USING pSessionId, pTenantId, pOuId, vEmptyId, vLastClosingGeneralLedger, vNo;
  246.     ELSE
  247.         EXECUTE '
  248.         INSERT INTO tr_summary_mutation_stock(
  249.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  250.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  251.         )
  252.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  253.                 A.product_balance_id, 0, SUM(A.qty), 0, 0, SUM(A.qty)
  254.         FROM in_summary_monthly_qty A
  255.         INNER JOIN m_product B ON A.product_id = B.product_id
  256.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  257.         WHERE A.doc_type_id = $4
  258.                 AND A.date_year_month = $5
  259.                 AND A.ou_id = $3
  260.                 AND C.flg_buy_konsinyasi = $6 ' ||
  261.                 vFilterProductId ||
  262.                 vFilterCtgrProductId ||
  263.                 vFilterSubCtgrProductId ||
  264.                 vFilterBrandId ||
  265.         ' AND NOT EXISTS(
  266.             SELECT 1 FROM tr_summary_mutation_stock D
  267.             WHERE A.tenant_id = D.tenant_id
  268.                 AND A.product_id = D.product_id
  269.                 AND A.product_balance_id = D.product_balance_id
  270.         ) GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  271.         USING pSessionId, pTenantId, pOuId, vEmptyId, vLastClosingGeneralLedger, vYes;
  272.        
  273.         EXECUTE '
  274.         INSERT INTO tr_summary_mutation_stock(
  275.             session_id, tenant_id, ou_id, product_id, product_code, product_name,
  276.             product_balance_id, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  277.         )
  278.         SELECT $1, $2, $3, A.product_id, B.product_code, B.product_name,
  279.                 A.product_balance_id, 0, SUM(A.qty), 0, 0, SUM(A.qty)
  280.         FROM in_summary_monthly_qty_consignment A
  281.         INNER JOIN m_product B ON A.product_id = B.product_id
  282.         INNER JOIN m_product_custom C ON B.product_id = C.product_id
  283.         WHERE A.doc_type_id = $4
  284.                 AND A.date_year_month = $5
  285.                 AND A.ou_id = $3
  286.                 AND C.flg_buy_konsinyasi = $6 ' ||
  287.                 vFilterProductId ||
  288.                 vFilterCtgrProductId ||
  289.                 vFilterSubCtgrProductId ||
  290.                 vFilterBrandId ||
  291.         ' AND NOT EXISTS(
  292.             SELECT 1 FROM tr_summary_mutation_stock D
  293.             WHERE A.tenant_id = D.tenant_id
  294.                 AND A.product_id = D.product_id
  295.                 AND A.product_balance_id = D.product_balance_id
  296.         ) GROUP BY A.product_id, B.product_code, B.product_name, A.product_balance_id '
  297.         USING pSessionId, pTenantId, pOuId, vEmptyId, vLastClosingGeneralLedger, vYes;
  298.     END IF;
  299.    
  300.     -- update nilai saldo awal amount
  301.     WITH tt_in_summary_monthly_amount AS (
  302.         SELECT tenant_id, product_id, gl_curr_code, SUM(gl_amount) AS gl_amount
  303.         FROM in_summary_monthly_amount
  304.         WHERE tenant_id = pTenantId
  305.             AND doc_type_id = vEmptyId
  306.             AND date_year_month = vLastClosingGeneralLedger
  307.             AND ou_bu_id = (f_get_ou_bu_structure(pOuId)).ou_bu_id
  308.             AND ou_branch_id = (f_get_ou_bu_structure(pOuId)).ou_branch_id
  309.             AND ou_sub_bu_id = (f_get_ou_bu_structure(pOuId)).ou_sub_bu_id
  310.         GROUP BY tenant_id, product_id, gl_curr_code
  311.     )
  312.     UPDATE tr_summary_mutation_stock A
  313.     SET total_amount = B.gl_amount
  314.     FROM tt_in_summary_monthly_amount B
  315.     WHERE A.tenant_id = B.tenant_id
  316.         AND A.product_id = B.product_id;
  317.    
  318.     IF pStartDate <> vStartDateLog THEN
  319.         -- update nilai saldo awal qty + log product
  320.         IF pFlgConsignment = 'N' THEN
  321.             -- product non consignment
  322.             EXECUTE '
  323.             WITH tt_in_log_product_balance_stock AS (
  324.                 SELECT A.tenant_id, A.product_id, A.product_balance_id, SUM(qty) AS qty
  325.                 FROM in_log_product_balance_stock A
  326.                 INNER JOIN m_product_custom B ON A.product_id = B.product_id
  327.                 WHERE A.doc_date BETWEEN $1 AND $2
  328.                     AND A.ou_id = $3
  329.                     AND B.flg_buy_konsinyasi = $4 ' ||
  330.                     vFilterProductId ||
  331.                     vFilterCtgrProductId ||
  332.                     vFilterSubCtgrProductId ||
  333.                     vFilterBrandId ||
  334.                 ' GROUP BY A.tenant_id, A.product_id, A.product_balance_id  
  335.             )
  336.             UPDATE tr_summary_mutation_stock A
  337.             SET last_balance_qty = A.last_balance_qty + B.qty,
  338.                 expectation = A.expectation + B.qty
  339.             FROM tt_in_log_product_balance_stock B
  340.             WHERE A.tenant_id = B.tenant_id
  341.                 AND A.product_id = B.product_id
  342.                 AND A.product_balance_id = B.product_balance_id
  343.             ' USING vStartDateLog, vEndDateLog, pOuId, vNo;
  344.            
  345.             EXECUTE '
  346.             WITH tt_in_log_product_consignment_balance_stock AS (
  347.                 SELECT A.tenant_id, A.product_id, A.product_balance_id, SUM(qty) AS qty
  348.                 FROM in_log_product_consignment_balance_stock A
  349.                 INNER JOIN m_product_custom B ON A.product_id = B.product_id
  350.                 WHERE A.doc_date BETWEEN $1 AND $2
  351.                     AND A.ou_id = $3
  352.                     AND B.flg_buy_konsinyasi = $4 ' ||
  353.                     vFilterProductId ||
  354.                     vFilterCtgrProductId ||
  355.                     vFilterSubCtgrProductId ||
  356.                     vFilterBrandId ||
  357.                 ' GROUP BY A.tenant_id, A.product_id, A.product_balance_id
  358.             )
  359.             UPDATE tr_summary_mutation_stock A
  360.             SET last_balance_qty = A.last_balance_qty + B.qty,
  361.                 expectation = A.expectation + B.qty
  362.             FROM tt_in_log_product_consignment_balance_stock B
  363.             WHERE A.tenant_id = B.tenant_id
  364.                 AND A.product_id = B.product_id
  365.                 AND A.product_balance_id = B.product_balance_id
  366.             ' USING vStartDateLog, vEndDateLog, pOuId, vNo;
  367.         ELSE
  368.             -- product non consignment
  369.             EXECUTE '
  370.             WITH tt_in_log_product_balance_stock AS (
  371.                 SELECT A.tenant_id, A.product_id, A.product_balance_id, SUM(qty) AS qty
  372.                 FROM in_log_product_balance_stock A
  373.                 INNER JOIN m_product_custom B ON A.product_id = B.product_id
  374.                 WHERE A.doc_date BETWEEN $1 AND $2
  375.                     AND A.ou_id = $3
  376.                     AND B.flg_buy_konsinyasi = $4
  377.                     AND A.doc_type_id <> 111 ' ||
  378.                     vFilterProductId ||
  379.                     vFilterCtgrProductId ||
  380.                     vFilterSubCtgrProductId ||
  381.                     vFilterBrandId ||
  382.                 ' GROUP BY A.tenant_id, A.product_id, A.product_balance_id  
  383.             )
  384.             UPDATE tr_summary_mutation_stock A
  385.             SET last_balance_qty = A.last_balance_qty + B.qty,
  386.                 expectation = A.expectation + B.qty
  387.             FROM tt_in_log_product_balance_stock B
  388.             WHERE A.tenant_id = B.tenant_id
  389.                 AND A.product_id = B.product_id
  390.                 AND A.product_balance_id = B.product_balance_id
  391.             ' USING vStartDateLog, vEndDateLog, pOuId, vYes;
  392.            
  393.             EXECUTE '
  394.             WITH tt_in_log_product_consignment_balance_stock AS (
  395.                 SELECT A.tenant_id, A.product_id, A.product_balance_id, SUM(qty) AS qty
  396.                 FROM in_log_product_consignment_balance_stock A
  397.                 INNER JOIN m_product_custom B ON A.product_id = B.product_id
  398.                 WHERE A.doc_date BETWEEN $1 AND $2
  399.                     AND A.ou_id = $3
  400.                     AND B.flg_buy_konsinyasi = $4 ' ||
  401.                     vFilterProductId ||
  402.                     vFilterCtgrProductId ||
  403.                     vFilterSubCtgrProductId ||
  404.                     vFilterBrandId ||
  405.                 ' GROUP BY A.tenant_id, A.product_id, A.product_balance_id
  406.             )
  407.             UPDATE tr_summary_mutation_stock A
  408.             SET last_balance_qty = A.last_balance_qty + B.qty,
  409.                 expectation = A.expectation + B.qty
  410.             FROM tt_in_log_product_consignment_balance_stock B
  411.             WHERE A.tenant_id = B.tenant_id
  412.                 AND A.product_id = B.product_id
  413.                 AND A.product_balance_id = B.product_balance_id
  414.             ' USING vStartDateLog, vEndDateLog, pOuId, vYes;
  415.         END IF;
  416.     END IF;
  417.    
  418.     Open pRefHeader FOR
  419.     SELECT pOuId AS ou_id, f_get_ou_code(pOuId) AS ou_code, f_get_ou_name(pOuId) AS ou_name,   
  420.             pStartDate AS start_date, pEndDate AS end_date, pDatetime AS print_datetime;
  421.     RETURN NEXT pRefHeader;
  422.    
  423.     Open pRefDetail FOR
  424.         SELECT product_id, product_code, product_name, total_amount, last_balance_qty, mutasi_minus, mutasi_positif, expectation
  425.         FROM tr_summary_mutation_stock
  426.         WHERE session_id = pSessionId
  427.             AND tenant_id = pTenantId
  428.         ORDER BY product_code;
  429.     RETURN NEXT pRefDetail ;
  430.    
  431.     DELETE FROM tr_summary_mutation_stock WHERE session_id = pSessionId;
  432. END;
  433. $BODY$
  434. LANGUAGE 'plpgsql'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement