Advertisement
tercnem

Untitled

Apr 19th, 2020
1,037
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Adrian, Jun 22, 2017
  3.  * pu_get_latest_purchasing_price_by_date dimasukkan ke dalam looping per OU BU
  4.  */
  5.  
  6. /**
  7.  * Modified by Adrian, May 17, 2017
  8.  * Menambahkan transaksi edc transfer
  9.  * Device_merchant_code untuk edc_transfer dibuat sama dengan ou_code outlet
  10.  */
  11.  
  12. CREATE OR REPLACE FUNCTION r_daily_sales(character varying, bigint, bigint, character varying, character varying, character varying, character varying, character varying)
  13.   RETURNS SETOF refcursor AS
  14. $BODY$
  15. DECLARE
  16.     pRefHeader              REFCURSOR := 'refHeader';
  17.     pRefDetail              REFCURSOR := 'refDetail';
  18.     pSessionId              ALIAS FOR $1;
  19.     pTenantId               ALIAS FOR $2;
  20.     pOuId                   ALIAS FOR $3;
  21.     pVehicleBrand           ALIAS FOR $4;
  22.     pVehicleType            ALIAS FOR $5;
  23.     pYearMade               ALIAS FOR $6;
  24.     pDateFrom               ALIAS FOR $7;
  25.     pDateTo                 ALIAS FOR $8;
  26.    
  27.     vEmptyValue             character varying(1);
  28.     vEmptyId                bigint;
  29.     vAllId                  bigint;
  30.    
  31.     vFilterOuId             text := '';
  32.     vFilterVehicleBrand     text := '';
  33.     vFilterVehicleType      text := '';
  34.     vFilterYearMade         text := '';
  35.    
  36.     vParentOuId             bigint;
  37.     vYearMonth              character varying(6);
  38.     vDatetime               character varying(14);
  39.     vMaxYearMonth           character varying(6);
  40.    
  41.     vOuBuId                 bigint;
  42.    
  43. BEGIN
  44.    
  45.     vEmptyValue := '';
  46.     vEmptyId := -99;
  47.     vAllId := -99;
  48.    
  49.     DELETE FROM tr_daily_sales_report WHERE session_id = pSessionId;
  50.     DELETE FROM tt_in_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  51.     DELETE FROM tt_out_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  52.    
  53.     vParentOuId := f_get_parent_ou_bu(pTenantId, pOuId);
  54.     SELECT TO_CHAR(now(), 'YYYYMM') INTO vYearMonth;
  55.     SELECT TO_CHAR(now(), 'YYYYMMDDHH24MISS') INTO vDatetime;
  56.     SELECT MAX(year_month_date) INTO vMaxYearMonth FROM in_product_standard_cogs;
  57.    
  58.     IF pOuId <> vAllId THEN
  59.         vFilterOuId := ' AND A.ou_id = ' || pOuId;
  60.     END IF;
  61.    
  62.     IF pVehicleBrand <> vEmptyValue THEN
  63.         vFilterVehicleBrand := ' AND D.vehicle_brand = ''' || pVehicleBrand || '''';
  64.     END IF;
  65.    
  66.     IF pVehicleType <> vEmptyValue THEN
  67.         vFilterVehicleType := ' AND D.vehicle_type = ''' || pVehicleType || '''';
  68.     END IF;
  69.    
  70.     IF pYearMade <> vEmptyValue THEN
  71.         vFilterYearMade := ' AND D.year_made = ''' || pYearMade '''';
  72.     END IF;
  73.    
  74.     -- produk non nempil
  75.     EXECUTE '
  76.     WITH summed_i_trx_pos_non_cash_payment AS (
  77.         SELECT A.process_no, A.tenant_id, A.trx_pos_id, SUM(COALESCE(A.payment_amount, 0)) AS payment_amount, COALESCE(A.curr_payment_code, $2) AS curr_payment_code
  78.         FROM i_trx_pos_non_cash_payment A
  79.         WHERE NOT EXISTS (
  80.             SELECT (1)
  81.             FROM m_device_merchant B
  82.             INNER JOIN t_ou C ON B.device_merchant_code = C.ou_code
  83.             WHERE B.device_merchant_id = A.device_merchant_id
  84.         )
  85.         GROUP BY A.process_no, A.tenant_id, A.trx_pos_id, A.curr_payment_code      
  86.     ), summed_i_trx_pos_transfer_payment AS (
  87.         SELECT A.process_no, A.tenant_id, A.trx_pos_id, SUM(COALESCE(A.payment_amount, 0)) AS payment_amount, COALESCE(A.curr_payment_code, $2) AS curr_payment_code
  88.         FROM i_trx_pos_non_cash_payment A
  89.         WHERE EXISTS (
  90.             SELECT (1)
  91.             FROM m_device_merchant B
  92.             INNER JOIN t_ou C ON B.device_merchant_code = C.ou_code
  93.             WHERE B.device_merchant_id = A.device_merchant_id
  94.         )
  95.         GROUP BY A.process_no, A.tenant_id, A.trx_pos_id, A.curr_payment_code      
  96.     )
  97.     INSERT INTO tr_daily_sales_report (
  98.         session_id, ou_name, year,
  99.         month, date, doc_no, vehicle_brand,
  100.         vehicle_type, year_made, customer_name, product_name,
  101.         ctgr_product_name, qty, curr_code,
  102.         modal_price, gross_sell_price, discount_amount,
  103.         nett_sell_price, curr_payment_code_cash, payment_amount_cash,
  104.         curr_payment_code_non_cash, payment_amount_non_cash,
  105.         curr_payment_code_transfer, payment_amount_transfer,
  106.         curr_under_payment, under_payment_amount,
  107.         tenant_id, ou_id, doc_date, product_id, line_no)
  108.     SELECT  $1, B.ou_name, SUBSTRING(A.doc_date, 1, 4) AS year,  
  109.             SUBSTRING(A.doc_date, 5, 2) AS month, SUBSTRING(A.doc_date, 7, 2) AS date, A.doc_no, D.vehicle_brand,  
  110.             D.vehicle_type, D.year_made, COALESCE(E.partner_name, ''UMUM'') AS customer_name, f_get_product_name(G.product_id) AS product_name,
  111.             f_get_ctgr_product_name(G.ctgr_product_id) AS ctgr_product_name, F.qty, F.curr_code,
  112.             0, F.gross_sell_price, COALESCE(F.discount_amount, 0) * -1 AS discount_amount,
  113.             F.nett_sell_price, COALESCE(H.curr_payment_code, $2) AS curr_payment_code_cash, CASE WHEN F.line_no = 1 THEN COALESCE(H.payment_amount, 0) ELSE 0 END AS payment_amount_cash,
  114.             I.curr_payment_code AS curr_payment_code_non_cash, CASE WHEN F.line_no = 1 THEN I.payment_amount ELSE 0 END AS payment_amount_non_cash,
  115.             M.curr_payment_code AS curr_payment_code_transfer, CASE WHEN F.line_no = 1 THEN M.payment_amount ELSE 0 END AS payment_amount_transfer,
  116.             COALESCE(J.curr_payment_code, $2) AS curr_under_payment, CASE WHEN F.line_no = 1 THEN COALESCE(j.under_payment_amount, 0) ELSE 0 END AS under_payment_amount,
  117.             A.tenant_id, B.ou_id, A.doc_date, G.product_id, F.line_no
  118.     FROM i_trx_pos A                                                                                                                                                                                                                                                                       
  119.     INNER JOIN t_ou B on A.ou_id = B.ou_id
  120.     INNER JOIN i_trx_pos_ext C on C.process_no  = A.process_no and C.tenant_id = A.tenant_id and C.trx_pos_id = A.trx_pos_id
  121.     INNER JOIN m_vehicle_customer_own D on C.vehicle_code = D.vehicle_code
  122.     LEFT OUTER JOIN m_partner E on C.partner_id = E.partner_id
  123.     INNER JOIN i_trx_pos_item F on A.process_no = F.process_no and A.tenant_id = F.tenant_id and A.trx_pos_id = F.trx_pos_id
  124.     INNER JOIN m_product G on F.product_id = G.product_id
  125.     LEFT OUTER JOIN i_trx_pos_cash_payment H on A.process_no = H.process_no and B.tenant_id = H.tenant_id and A.trx_pos_id = H.trx_pos_id
  126.     LEFT OUTER JOIN summed_i_trx_pos_non_cash_payment I on A.process_no = I.process_no and A.tenant_id = I.tenant_id and A.trx_pos_id = I.trx_pos_id
  127.     LEFT OUTER JOIN summed_i_trx_pos_transfer_payment M on A.process_no = M.process_no and A.tenant_id = M.tenant_id and A.trx_pos_id = M.trx_pos_id
  128.     LEFT OUTER JOIN i_trx_pos_termin_payment J on A.process_no = J.process_no and A.tenant_id = J.tenant_id and A.trx_pos_id = J.trx_pos_id
  129.     LEFT JOIN t_combo_value K ON D.vehicle_brand = K.code AND K.combo_id = ''VEHICLEBRAND''
  130.     LEFT JOIN t_combo_value L ON D.vehicle_type = L.code AND L.combo_id = ''VEHICLETYPE''
  131.     WHERE A.status <> ''V''
  132.         AND A.tenant_id = $3
  133.         AND A.doc_date BETWEEN $4 AND $5 ' ||
  134.         vFilterOuId ||
  135.         vFilterVehicleBrand ||
  136.         vFilterVehicleType ||
  137.         vFilterYearMade
  138.     USING pSessionId, vEmptyValue, pTenantId, pDateFrom, pDateTo;
  139.    
  140.     ANALYZE tr_daily_sales_report;
  141.    
  142.     FOR vOuBuId IN (
  143.         SELECT ou_bu_id
  144.         FROM tr_daily_sales_report A
  145.         INNER JOIN m_ou_structure B ON B.ou_id = A.ou_id
  146.         GROUP BY B.ou_bu_id
  147.     )
  148.     LOOP
  149.    
  150.         DELETE FROM tt_in_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  151.         DELETE FROM tt_out_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  152.    
  153.         INSERT INTO tt_in_latest_purchasing_price_by_date(session_id, tenant_id, ou_bu_id, doc_date, product_id)
  154.             SELECT pSessionId, pTenantId, B.ou_bu_id, A.doc_date, A.product_id  
  155.         FROM tr_daily_sales_report A
  156.             INNER JOIN m_ou_structure B ON B.ou_id = A.ou_id
  157.         WHERE A.tenant_id = pTenantId
  158.             AND A.session_id = pSessionId
  159.             AND B.ou_bu_id = vOuBuId
  160.         GROUP BY B.ou_bu_id, A.doc_date, A.product_id;
  161.            
  162.         PERFORM pu_get_latest_purchasing_price_by_date(pSessionId, pTenantId, vYearMonth, B.ou_bu_id, vDatetime, -1)
  163.         FROM tr_daily_sales_report A
  164.         INNER JOIN m_ou_structure B ON B.ou_id = A.ou_id
  165.         AND B.ou_bu_id = vOuBuId
  166.         GROUP BY B.ou_bu_id;
  167.        
  168.         ANALYZE tt_out_latest_purchasing_price_by_date;
  169.    
  170.         UPDATE tr_daily_sales_report B
  171.         SET modal_price = COALESCE(A.gl_purch_gross_price, 0)
  172.         FROM tt_out_latest_purchasing_price_by_date A
  173.         INNER JOIN m_ou_structure C ON C.ou_bu_id = A.ou_bu_id
  174.         WHERE A.session_id = B.session_id
  175.             AND B.product_id = A.product_id
  176.             AND B.tenant_id = A.tenant_id
  177.             AND B.doc_date = A.doc_date  
  178.             AND C.ou_id = B.ou_id
  179.             AND A.ou_bu_id = vOuBuId;
  180.    
  181.         DELETE FROM tt_in_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  182.         DELETE FROM tt_out_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  183.            
  184.     END LOOP;
  185.    
  186.     /*INSERT INTO tt_in_latest_purchasing_price_by_date(session_id, tenant_id, ou_bu_id, doc_date, product_id)
  187.         SELECT pSessionId, pTenantId, B.ou_bu_id, A.doc_date, A.product_id  
  188.     FROM tr_daily_sales_report A
  189.         INNER JOIN m_ou_structure B ON B.ou_id = A.ou_id
  190.     WHERE A.tenant_id = pTenantId
  191.         AND A.session_id = pSessionId
  192.     GROUP BY B.ou_bu_id, A.doc_date, A.product_id;
  193.        
  194.     PERFORM pu_get_latest_purchasing_price_by_date(pSessionId, pTenantId, vYearMonth, B.ou_bu_id, vDatetime, -1)
  195.     FROM tr_daily_sales_report A
  196.     INNER JOIN m_ou_structure B ON B.ou_id = A.ou_id
  197.     GROUP BY B.ou_bu_id;
  198.    
  199.     ANALYZE tt_out_latest_purchasing_price_by_date;
  200.  
  201.     UPDATE tr_daily_sales_report B
  202.     SET modal_price = COALESCE(A.gl_purch_gross_price, 0)
  203.     FROM tt_out_latest_purchasing_price_by_date A
  204.     INNER JOIN m_ou_structure C ON C.ou_bu_id = A.ou_bu_id
  205.     WHERE A.session_id = B.session_id
  206.         AND B.product_id = A.product_id
  207.         AND B.tenant_id = A.tenant_id
  208.         AND B.doc_date = A.doc_date  
  209.         AND C.ou_id = B.ou_id;*/
  210.    
  211.     WITH in_product_standard_cogs_temp AS (
  212.         SELECT D.tenant_id, D.ou_id, MAX(D.year_month_date) AS year_month_date, D.product_id, D.amount
  213.         FROM in_product_standard_cogs D
  214.         INNER JOIN m_ou_structure E ON E.ou_bu_id = D.ou_id
  215.         GROUP BY D.tenant_id, D.ou_id, D.product_id, D.amount
  216.     )
  217.     UPDATE tr_daily_sales_report B
  218.     SET modal_price = COALESCE(A.amount, 0)
  219.     FROM in_product_standard_cogs_temp A
  220.     INNER JOIN m_ou_structure C ON C.ou_bu_id = A.ou_id
  221.     WHERE B.session_id = pSessionId
  222.         AND B.product_id = A.product_id
  223.         AND B.tenant_id = A.tenant_id
  224.         AND A.year_month_date <= SUBSTRING(B.doc_date, 1, 6)  
  225.         AND C.ou_id = B.ou_id
  226.         AND B.modal_price = 0;
  227.    
  228.     -- produk nempil
  229.     /**
  230.      * mod by Didit, 2 des 2016
  231.      * gunakan distinct on, karena ada produk nempil yg kode produk nya sama tp beda di trx_nempil_barang_item_id sehingga
  232.      * produk nempil akan muncul lebih dari satu kali dan menyebabkan perhitungan nett amount akan salah
  233.      */
  234.     EXECUTE '
  235.     WITH summed_i_trx_pos_non_cash_payment AS (
  236.         SELECT A.process_no, A.tenant_id, A.trx_pos_id, SUM(COALESCE(A.payment_amount, 0)) AS payment_amount, COALESCE(A.curr_payment_code, $2) AS curr_payment_code
  237.         FROM i_trx_pos_non_cash_payment A
  238.         WHERE NOT EXISTS (
  239.             SELECT (1)
  240.             FROM m_device_merchant B
  241.             INNER JOIN t_ou C ON B.device_merchant_code = C.ou_code
  242.             WHERE B.device_merchant_id = A.device_merchant_id
  243.         )
  244.         GROUP BY A.process_no, A.tenant_id, A.trx_pos_id, A.curr_payment_code      
  245.     ), summed_i_trx_pos_transfer_payment AS (
  246.         SELECT A.process_no, A.tenant_id, A.trx_pos_id, SUM(COALESCE(A.payment_amount, 0)) AS payment_amount, COALESCE(A.curr_payment_code, $2) AS curr_payment_code
  247.         FROM i_trx_pos_non_cash_payment A
  248.         WHERE EXISTS (
  249.             SELECT (1)
  250.             FROM m_device_merchant B
  251.             INNER JOIN t_ou C ON B.device_merchant_code = C.ou_code
  252.             WHERE B.device_merchant_id = A.device_merchant_id
  253.         )
  254.         GROUP BY A.process_no, A.tenant_id, A.trx_pos_id, A.curr_payment_code      
  255.     )
  256.     INSERT INTO tr_daily_sales_report (
  257.         session_id, ou_name, year,
  258.         month, date, doc_no, vehicle_brand,
  259.         vehicle_type, year_made, customer_name, product_name,
  260.         ctgr_product_name, qty, curr_code,
  261.         modal_price, gross_sell_price, discount_amount,
  262.         nett_sell_price, curr_payment_code_cash, payment_amount_cash,
  263.         curr_payment_code_non_cash, payment_amount_non_cash,
  264.         curr_payment_code_transfer, payment_amount_transfer,
  265.         curr_under_payment, under_payment_amount,
  266.         tenant_id, ou_id, doc_date, product_id, line_no)
  267.     SELECT $1, B.ou_name, SUBSTRING(A.doc_date, 1, 4) AS year,
  268.             SUBSTRING(A.doc_date, 5, 2) AS month, SUBSTRING(A.doc_date, 7, 2) AS date, A.doc_no, D.vehicle_brand,    
  269.             D.vehicle_type, D.year_made, COALESCE(E.partner_name, ''UMUM'') AS customer_name, G.product_name,
  270.             $2 AS ctgr_product_name, F.qty, F.curr_code,
  271.             0 AS modal_price, F.gross_sell_price, 0 AS discount_amount,
  272.             F.gross_sell_price, COALESCE(H.curr_payment_code, $2) AS curr_payment_code_cash, CASE WHEN F.line_no = 1 THEN COALESCE(H.payment_amount, 0) ELSE 0 END AS payment_amount_cash,  
  273.             I.curr_payment_code AS curr_payment_code_non_cash, CASE WHEN F.line_no = 1 THEN I.payment_amount ELSE 0 END AS payment_amount_non_cash,
  274.             M.curr_payment_code AS curr_payment_code_transfer, CASE WHEN F.line_no = 1 THEN M.payment_amount ELSE 0 END AS payment_amount_transfer,
  275.             COALESCE(J.curr_payment_code, $2) AS curr_under_payment, CASE WHEN F.line_no = 1 THEN COALESCE(J.under_payment_amount, 0) ELSE 0 END AS under_payment_amount,
  276.             A.tenant_id, B.ou_id, A.doc_date, -99, F.line_no  
  277.     FROM i_trx_pos A
  278.     INNER JOIN t_ou B on A.ou_id = B.ou_id
  279.     INNER JOIN i_trx_pos_ext C on C.process_no = A.process_no and C.tenant_id = A.tenant_id and C.trx_pos_id = A.trx_pos_id
  280.     INNER JOIN m_vehicle_customer_own D on C.vehicle_code = D.vehicle_code  
  281.     LEFT OUTER JOIN m_partner E on C.partner_id = E.partner_id
  282.     INNER JOIN i_trx_pos_item_nempil_barang F on A.process_no = F.process_no and A.tenant_id = F.tenant_id and A.trx_pos_id = F.trx_pos_id
  283.     INNER JOIN in_nempil_barang_balance_stock G on F.product_code = G.product_code AND A.ou_id = G.ou_id
  284.     LEFT OUTER JOIN i_trx_pos_cash_payment H on A.process_no = H.process_no and A.tenant_id = H.tenant_id and A.trx_pos_id = H.trx_pos_id
  285.     LEFT OUTER JOIN summed_i_trx_pos_non_cash_payment I on A.process_no = I.process_no and A.tenant_id = I.tenant_id and A.trx_pos_id = I.trx_pos_id
  286.     LEFT OUTER JOIN summed_i_trx_pos_transfer_payment M on A.process_no = M.process_no and A.tenant_id = M.tenant_id and A.trx_pos_id = M.trx_pos_id
  287.     LEFT OUTER JOIN i_trx_pos_termin_payment J on A.process_no = J.process_no and A.tenant_id = J.tenant_id and A.trx_pos_id = J.trx_pos_id
  288.     LEFT JOIN t_combo_value K ON D.vehicle_brand = K.code AND K.combo_id = ''VEHICLEBRAND''
  289.     LEFT JOIN t_combo_value L ON D.vehicle_type = L.code AND L.combo_id = ''VEHICLETYPE''
  290.     WHERE A.status <> ''V''
  291.         AND A.tenant_id = $3
  292.         AND A.doc_date BETWEEN $4 AND $5 ' ||
  293.         vFilterOuId ||
  294.         vFilterVehicleBrand ||
  295.         vFilterVehicleType ||
  296.         vFilterYearMade
  297.     USING pSessionId, vEmptyValue, pTenantId, pDateFrom, pDateTo;
  298.    
  299.     /**
  300.      * mod by Didit, 2 Des 2016
  301.      * cash, non cash, dan piutang hanya terisi untuk baris yg pertama
  302.      * selain baris pertama di isi 0
  303.      */
  304.     UPDATE tr_daily_sales_report A
  305.     SET payment_amount_cash = 0,
  306.         payment_amount_non_cash = 0,
  307.         under_payment_amount = 0
  308.     WHERE A.product_id = -99
  309.         AND A.line_no = 1
  310.         AND EXISTS(
  311.             SELECT 1 FROM tr_daily_sales_report B WHERE A.doc_no = B.doc_no AND B.product_id <> -99 AND B.line_no = 1  
  312.         );
  313.    
  314.     -- nilai rounding
  315.     EXECUTE 'INSERT INTO tr_daily_sales_report (
  316.         session_id, ou_name, year,
  317.         month, date, doc_no, vehicle_brand,
  318.         vehicle_type, year_made, customer_name, product_name,
  319.         ctgr_product_name, qty, curr_code,
  320.         modal_price, gross_sell_price, discount_amount,
  321.         nett_sell_price, curr_payment_code_cash, payment_amount_cash,
  322.         curr_payment_code_non_cash, payment_amount_non_cash,
  323.         curr_payment_code_transfer, payment_amount_transfer,
  324.         curr_under_payment, under_payment_amount,
  325.         tenant_id, ou_id, doc_date, product_id, line_no)
  326.     SELECT  $1, B.ou_name, SUBSTRING(A.doc_date, 1, 4) AS year,  
  327.             SUBSTRING(A.doc_date, 5, 2) AS month, SUBSTRING(A.doc_date, 7, 2) AS date, A.doc_no, D.vehicle_brand,  
  328.             D.vehicle_type, D.year_made, COALESCE(E.partner_name, ''UMUM'') AS customer_name, ''ROUNDING'' AS product_name,
  329.             ''ROUNDING'' AS ctgr_product_name, 1, 0,
  330.             0, 0, 0,
  331.             A.rounding_amount, COALESCE(A.curr_code, $2) AS curr_payment_code_cash, CASE WHEN A.rounding_amount < 0 THEN A.rounding_amount ELSE 0 END AS payment_amount_cash,
  332.             COALESCE(A.curr_code, $2) AS curr_payment_code_non_cash, 0 AS payment_amount_non_cash,
  333.             COALESCE(A.curr_code, $2) AS curr_payment_code_transfer, 0 AS payment_amount_transfer,
  334.             COALESCE(A.curr_code, $2) AS curr_under_payment, 0 AS under_payment_amount,
  335.             A.tenant_id, B.ou_id, A.doc_date, -99, -1
  336.     FROM i_trx_pos A                                                                                                                                                                                                                                                                       
  337.     INNER JOIN t_ou B on A.ou_id = B.ou_id
  338.     INNER JOIN i_trx_pos_ext C on C.process_no  = A.process_no and C.tenant_id = A.tenant_id and C.trx_pos_id = A.trx_pos_id
  339.     INNER JOIN m_vehicle_customer_own D on C.vehicle_code = D.vehicle_code  
  340.     LEFT OUTER JOIN m_partner E on C.partner_id = E.partner_id
  341.     WHERE A.status <> ''V''
  342.         AND A.tenant_id = $3
  343.         AND A.doc_date BETWEEN $4 AND $5
  344.         AND A.rounding_amount <> 0 ' ||
  345.         vFilterOuId ||
  346.         vFilterVehicleBrand ||
  347.         vFilterVehicleType ||
  348.         vFilterYearMade
  349.     USING pSessionId, vEmptyValue, pTenantId, pDateFrom, pDateTo;
  350.    
  351.     Open pRefHeader FOR
  352.     SELECT pTenantId;
  353.     RETURN NEXT pRefHeader;
  354.    
  355.     Open pRefDetail FOR
  356.     SELECT ou_name, year, month, date, doc_no, vehicle_brand, vehicle_type, year_made, customer_name, product_name, ctgr_product_name, qty,
  357.             curr_code, modal_price, gross_sell_price, discount_amount, nett_sell_price, curr_payment_code_cash, payment_amount_cash,
  358.             curr_payment_code_non_cash, payment_amount_non_cash, curr_payment_code_transfer, payment_amount_transfer, curr_under_payment, under_payment_amount
  359.     FROM tr_daily_sales_report
  360.     WHERE session_id = pSessionId
  361.     ORDER BY ou_name, year, month, date, doc_no, line_no;
  362.     RETURN NEXT pRefDetail;
  363.    
  364.     DELETE FROM tr_daily_sales_report WHERE session_id = pSessionId;   
  365.     DELETE FROM tt_in_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  366.     DELETE FROM tt_out_latest_purchasing_price_by_date WHERE session_id = pSessionId;
  367.  
  368. END;
  369. $BODY$
  370.   LANGUAGE plpgsql VOLATILE
  371.   COST 100
  372.   ROWS 1000;
  373. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement