Advertisement
Guest User

Untitled

a guest
Oct 25th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Progress 16.97 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION r_report_raw_data_opname_nota(CHARACTER varying, bigint, bigint, bigint, CHARACTER varying)
  2.   RETURNS SETOF refcursor AS
  3. $BODY$
  4. DECLARE
  5.     pRefHeader              REFCURSOR := 'refHeader';
  6.     pRefDetail              REFCURSOR := 'refDetail';
  7.    
  8.     pSessionId              ALIAS FOR $1;
  9.     pTenantId               ALIAS FOR $2;  
  10.     pOuId                   ALIAS FOR $3;
  11.     pPartnerId              ALIAS FOR $4;
  12.     pYearMonth              ALIAS FOR $5;
  13.    
  14.     vOuBuId             bigint;
  15.     vEmptyId            bigint := -99;
  16.     vPrevYearMonth      CHARACTER VARYING(6);
  17.     vLastArLedgerPeriod CHARACTER VARYING(6);
  18.     vLastBulanSaldoAwal CHARACTER VARYING(6);
  19.     vDateParameter CHARACTER VARYING(6); -- hanya dipakai jika period yang user pilih lebih besar dari tgl tutup bulan terakhir
  20.    
  21.     vFilterPartner  CHARACTER varying= '';
  22.     vFilterPartner2 CHARACTER varying= '';
  23.     vFilterOu   CHARACTER varying= '';
  24.     vFilterOu2  CHARACTER varying= '';
  25.    
  26.     vFilterCtgrProduct      CHARACTER varying= '';
  27.     vFilterSubCtgrProduct   CHARACTER varying= '';
  28.     vFilterGolonganProduct  CHARACTER varying= '';
  29.     vFilterProductCodeName  CHARACTER varying= '';
  30.    
  31.     vStockOpnameActivityId      bigint;
  32.  
  33.    
  34.     vEmptyString            TEXT := '';
  35.     vZero               bigint := 0;
  36.     vFlgSummary         TEXT := 'SUMMARY_1';
  37.     vFlgSummary2            TEXT := 'SUMMARY_2';
  38.     vFlgFinal           TEXT := 'FINAL_1';
  39.     vFlgFinal2          TEXT := 'FINAL_2';
  40.    
  41.     vSiDocumentId       bigint :=321;
  42.     vTsiDocumentId      bigint :=361;
  43.  
  44.    
  45. BEGIN
  46.     DELETE FROM tt_raw_data_opname_nota WHERE session_id = pSessionId;
  47.    
  48.     SELECT (f_get_ou_bu_structure(pOuId)).ou_bu_id INTO vOuBuId;
  49.     SELECT date_year_month INTO vLastArLedgerPeriod FROM m_admin_process_ledger WHERE tenant_id = pTenantId AND ou_id = vOuBuId AND ledger_code = 'FIN.AR' AND status_ledger = '1'  ORDER BY date_year_month DESC LIMIT 1;
  50.     SELECT TO_CHAR(TO_DATE(vLastArLedgerPeriod,'YYYYMM') - INTERVAL '1 Month','YYYYMM') INTO vPrevYearMonth;
  51.     SELECT TO_CHAR(TO_DATE(vLastArLedgerPeriod,'YYYYMM') + INTERVAL '1 Month','YYYYMM') INTO vLastBulanSaldoAwal;
  52.     SELECT TO_CHAR(TO_DATE(pYearMonth,'YYYYMM') - INTERVAL '1 Month','YYYYMM') INTO vDateParameter; -- hanya dipakai jika period yang user pilih lebih besar dari tgl tutup bulan terakhir
  53.  
  54.     --A. filter terhadap ou
  55.     IF pOuId != vEmptyId THEN
  56.         vFilterOu = ' (B.ou_bu_id = '||pOuId||' OR B.ou_branch_id = '||pOuId||') AND ';
  57.     END IF;
  58.    
  59.     --B. filter terhadap partner
  60.     IF pPartnerId != vEmptyId THEN
  61.         vFilterPartner = ' f_get_payment_group_customer_id(C.partner_id) = f_get_payment_group_customer_id('||pPartnerId||') AND ';
  62.         vFilterPartner2 = ' f_get_payment_group_customer_id(A.partner_id) = f_get_payment_group_customer_id('||pPartnerId||') AND ';
  63.     END IF;
  64.    
  65.     -- 1.a. jika periode yg user pilih <= bulan terakhir tutup bulan, ambil dari data hasil proses tutup bulan di periode yg user pilih (cth: user pilih juni 2017, terakhir tutup bulan juli)
  66.     -- 1.b  jika periode yg user pilih > bulan terakhir tutup bulan, maka
  67.         -- a. ambil dari data hasil proses tutup bulan terakhir
  68.         -- b. Ambil Invoice yg msh o/s per terakhir tutup bulan + 1 s/d PARAM periode - 1 bulan
  69.         -- c. Ambil invoice yg tgl dok di terakhir tutup bulan + 1 bulan s/d PARAM periode - 1 bulan
  70.         -- d. Ambil summary data pelunasan di bulan  tutup bulan + 1 bulan s/d PARAM periode - 1 bulan
  71.         -- e. Hanya ambil yg msh ada sisa (saldo awal - pelunasan <> 0)
  72.     -- 2. Ambil Invoice yg msh o/s per awal periode yg user pilih
  73.     -- 3. Ambil Invoice yg tgl dok di periode yg user pilih
  74.     -- 4. Ambil summary data pelunasan di bulan periode yg user pilih per invoice, hasil no 2 dan 3
  75.  
  76.     IF( pYearMonth <= vLastArLedgerPeriod ) THEN
  77.        
  78.         -- 1.a ambil dari data hasil proses tutup bulan di periode yg user pilih
  79.         EXECUTE '  
  80.         INSERT INTO tt_raw_data_opname_nota
  81.             (session_id, flg_status, date_year_month, tenant_id,
  82.             ou_id, doc_type_id, invoice_id, curr_code,
  83.             invoice_amount, balance_amount, payment_amount)
  84.         SELECT $1, $3, $2, A.tenant_id,
  85.             C.ou_id, A.doc_type_id, A.invoice_id, A.curr_code,
  86.             A.invoice_amount, A.balance_amount, A.payment_amount
  87.         FROM fi_summary_monthly_ar A, vw_fi_all_invoice_ar C, m_ou_structure B
  88.         WHERE A.date_year_month = $2 AND
  89.             A.invoice_id = C.id AND
  90.             A.doc_Type_id = C.doc_Type_id AND
  91.             C.ou_id = B.ou_id AND '||
  92.             vFilterOu ||
  93.             vFilterPartner
  94.         USING pSessionId, pYearMonth, vFlgFinal;
  95.    
  96.     ELSE
  97.  
  98.         -- a. ambil dari data hasil proses tutup bulan di periode terakhir tutup bulan
  99.         EXECUTE '  
  100.         INSERT INTO tt_raw_data_opname_nota
  101.             (session_id, flg_status, date_year_month, tenant_id,
  102.             ou_id, doc_type_id, invoice_id, curr_code,
  103.             invoice_amount, balance_amount, payment_amount)
  104.         SELECT $1, $4, $2, A.tenant_id,
  105.             C.ou_id, A.doc_type_id, A.invoice_id, A.curr_code,
  106.             A.invoice_amount, A.balance_amount - A.payment_amount, 0
  107.         FROM fi_summary_monthly_ar A, vw_fi_all_invoice_ar C, m_ou_structure B
  108.         WHERE A.date_year_month = $3 AND
  109.             A.invoice_id = C.id AND
  110.             A.doc_Type_id = C.doc_Type_id AND
  111.             C.ou_id = B.ou_id AND '||
  112.             vFilterOu ||
  113.             vFilterPartner || '
  114.             A.balance_amount <> A.payment_amount '
  115.         USING pSessionId, pYearMonth, vPrevYearMonth, vFlgSummary;
  116.        
  117.         -- b. Ambil Invoice yg msh o/s per terakhir tutup bulan + 1 s/d PARAM periode - 1 bulan
  118.         EXECUTE '  
  119.         INSERT INTO tt_raw_data_opname_nota
  120.             (session_id, flg_status, date_year_month, tenant_id,
  121.             ou_id, doc_type_id, invoice_id, curr_code,
  122.             invoice_amount, balance_amount, payment_amount)
  123.         SELECT $1, $3,$2, A.tenant_id,
  124.             A.ou_id, A.doc_type_id, A.invoice_ar_balance_id, A.curr_code,
  125.             A.amount, A.amount, 0
  126.         FROM fi_invoice_ar_balance A, m_ou_structure B, dt_date C
  127.         WHERE A.tenant_id = $4 AND
  128.             A.ou_id = B.ou_id AND ' ||
  129.             vFilterOu ||
  130.             vFilterPartner2 || '
  131.             A.doc_date = C.string_date AND
  132.             C.year_month_date BETWEEN $5 AND $6'
  133.         USING pSessionId, pYearMonth, vFlgSummary, pTenantId, vLastBulanSaldoAwal, vDateParameter;
  134.        
  135.         -- c. Ambil Invoice yg tgl dok per terakhir tutup bulan + 1 s/d PARAM periode - 1 bulan
  136.         EXECUTE '  
  137.         INSERT INTO tt_raw_data_opname_nota
  138.             (session_id, flg_status, date_year_month, tenant_id,
  139.             ou_id, doc_type_id, invoice_id, curr_code,
  140.             invoice_amount, balance_amount, payment_amount)
  141.         SELECT $1, $3, $2, A.tenant_id,
  142.             A.ou_id, A.doc_type_id, A.invoice_tax_ar_balance_id, A.tax_curr_code,
  143.             A.gov_tax_amount, A.gov_tax_amount, 0
  144.         FROM fi_invoice_tax_ar_balance A, m_ou_structure B, dt_date C, fi_invoice_ar_balance D
  145.         WHERE A.tenant_id = $4 AND
  146.             A.ou_id = B.ou_id AND ' ||
  147.             vFilterOu ||
  148.             vFilterPartner2 || '
  149.             A.invoice_ar_balance_id = D.invoice_ar_balance_id AND
  150.             D.doc_date = C.string_date AND
  151.             C.year_month_date BETWEEN $5 AND $6 '
  152.         USING pSessionId, pYearMonth, vFlgSummary, pTenantId, vLastBulanSaldoAwal, vDateParameter;
  153.        
  154.         -- d. Ambil summary data pelunasan per terakhir tutup bulan + 1 s/d PARAM periode - 1 bulan
  155.         -- d.1 Ambil pelunasan piutang dari dokumen alokasi credit AR, atas dokumen credit AR
  156.         EXECUTE '  
  157.         INSERT INTO tt_raw_data_opname_nota
  158.             (session_id, flg_status, date_year_month, tenant_id,
  159.             ou_id, doc_type_id, invoice_id, curr_code,
  160.             invoice_amount, balance_amount, payment_amount)
  161.         SELECT $1, $7, $2, A.tenant_id,
  162.             E.ou_id, D.credit_doc_type_id, D.credit_id, D.credit_curr_code,
  163.             0, 0, SUM(D.credit_amount) * -1
  164.         FROM fi_allocation_ar A, dt_date C, fi_allocation_ar_balance D, tt_raw_data_opname_nota E
  165.         WHERE A.tenant_id = $4 AND
  166.             A.doc_date = C.string_date AND
  167.             C.year_month_date BETWEEN $8 AND $9 AND
  168.             A.allocation_ar_id = D.allocation_ar_id AND
  169.             D.credit_id <> $5 AND
  170.             D.flg_alloc = $6 AND
  171.             D.credit_id = E.invoice_id AND
  172.             E.flg_status = $3
  173.         GROUP BY A.tenant_id, E.ou_id, D.credit_doc_type_id, D.credit_id, D.credit_curr_code '
  174.         USING pSessionId, pYearMonth, vFlgSummary, pTenantId, vEmptyId, 'A',vFlgSummary2, vLastBulanSaldoAwal, vDateParameter;
  175.        
  176.         -- d.2 Ambil pelunasan piutang dari dokumen alokasi credit AR, atas dokumen debt AR
  177.         EXECUTE '
  178.         INSERT INTO tt_raw_data_opname_nota
  179.             (session_id, flg_status,date_year_month, tenant_id,
  180.             ou_id, doc_type_id, invoice_id, curr_code,
  181.             invoice_amount, balance_amount, payment_amount)
  182.         SELECT $1, $7, $2, A.tenant_id,
  183.             E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code,
  184.             0, 0, SUM(D.debit_amount)
  185.         FROM fi_allocation_ar A, dt_date C, fi_allocation_ar_balance D, tt_raw_data_opname_nota E
  186.         WHERE A.tenant_id = $4 AND
  187.             A.doc_date = C.string_date AND
  188.             C.year_month_date BETWEEN $8 AND $9 AND
  189.             A.allocation_ar_id = D.allocation_ar_id AND
  190.             D.debit_id <> $5 AND
  191.             D.flg_alloc = $6 AND
  192.             D.debit_id = E.invoice_id AND
  193.             E.flg_status = $3
  194.         GROUP BY A.tenant_id, E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code '
  195.         USING pSessionId, pYearMonth, vFlgSummary, pTenantId, vEmptyId, 'A', vFlgSummary2, vLastBulanSaldoAwal, vDateParameter;
  196.        
  197.         -- d.3 Ambil pelunasan piutang dari dokumen alokasi cashbank IN AR
  198.         EXECUTE '
  199.         INSERT INTO tt_raw_data_opname_nota
  200.             (session_id, flg_status, date_year_month, tenant_id,
  201.             ou_id, doc_type_id, invoice_id, curr_code,
  202.             invoice_amount, balance_amount, payment_amount)
  203.         SELECT $1, $3, $2, A.tenant_id,
  204.             E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code,
  205.             0, 0, SUM(D.debit_amount)
  206.         FROM fi_allocation_ar A, dt_date C, fi_allocation_ar_balance D, tt_raw_data_opname_nota E
  207.         WHERE A.tenant_id = $4 AND
  208.             A.doc_date = C.string_date AND
  209.             C.year_month_date BETWEEN $8 AND $9 AND
  210.             A.allocation_ar_id = D.allocation_ar_id AND
  211.             D.debit_id <> $5 AND
  212.             D.flg_alloc = $6 AND
  213.             D.debit_id = E.invoice_id AND
  214.             E.flg_status = $3
  215.         GROUP BY A.tenant_id, E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code '
  216.         USING pSessionId, pYearMonth, vFlgSummary, pTenantId, vEmptyId, 'C', vFlgSummary2, vLastBulanSaldoAwal, vDateParameter;
  217.  
  218.         -- e. Hanya ambil yg msh ada sisa (saldo awal - pelunasan <> 0)
  219.         INSERT INTO tt_raw_data_opname_nota
  220.             (session_id, flg_status, date_year_month, tenant_id,
  221.             ou_id, doc_type_id, invoice_id, curr_code,
  222.             invoice_amount, balance_amount, payment_amount)
  223.         SELECT pSessionId, vFlgFinal, pYearMonth, A.tenant_id,
  224.             A.ou_id, A.doc_type_id, A.invoice_id, A.curr_code,
  225.             SUM(A.invoice_amount), SUM(A.balance_amount), SUM(A.payment_amount)
  226.         FROM tt_raw_data_opname_nota A
  227.         WHERE A.session_id = pSessionId
  228.             AND A.flg_status IN (vFlgSummary, vFlgSummary2)
  229.         GROUP BY A.date_year_month, A.tenant_id, A.ou_Id, A.doc_type_id, A.invoice_id, A.curr_code
  230.         HAVING (SUM(A.balance_amount) - SUM(A.payment_amount)) <> 0;
  231.  
  232.     END IF;
  233.    
  234.     -- 2 Ambil Invoice yg msh o/s per awal periode yg user pilih
  235.     EXECUTE '  
  236.     INSERT INTO tt_raw_data_opname_nota
  237.         (session_id, flg_status, date_year_month, tenant_id,
  238.         ou_id, doc_type_id, invoice_id, curr_code,
  239.         invoice_amount, balance_amount, payment_amount)
  240.     SELECT $1, $3, $2, A.tenant_id,
  241.         A.ou_id, A.doc_type_id, A.invoice_ar_balance_id, A.curr_code,
  242.         A.amount, A.amount, 0
  243.     FROM fi_invoice_ar_balance A, m_ou_structure B, dt_date C
  244.     WHERE A.tenant_id = $4 AND
  245.         A.ou_id = B.ou_id AND ' ||
  246.         vFilterOu ||
  247.         vFilterPartner2 || '
  248.         A.doc_date = C.string_date AND
  249.         C.year_month_date = $2 '
  250.     USING pSessionId, pYearMonth, vFlgFinal, pTenantId;
  251.    
  252.     -- 3. Ambil Invoice yg tgl dok di periode yg user pilih
  253.     EXECUTE '  
  254.     INSERT INTO tt_raw_data_opname_nota
  255.         (session_id, flg_status, date_year_month, tenant_id,
  256.         ou_id, doc_type_id, invoice_id, curr_code,
  257.         invoice_amount, balance_amount, payment_amount)
  258.     SELECT $1, $3, $2, A.tenant_id,
  259.         A.ou_id, A.doc_type_id, A.invoice_tax_ar_balance_id, A.tax_curr_code,
  260.         A.gov_tax_amount, A.gov_tax_amount, 0
  261.     FROM fi_invoice_tax_ar_balance A, m_ou_structure B, dt_date C, fi_invoice_ar_balance D
  262.     WHERE A.tenant_id = $4 AND
  263.         A.ou_id = B.ou_id AND ' ||
  264.         vFilterOu ||
  265.         vFilterPartner2 || '
  266.         A.invoice_ar_balance_id = D.invoice_ar_balance_id AND
  267.         D.doc_date = C.string_date AND
  268.         C.year_month_date = $2 '
  269.     USING pSessionId, pYearMonth, vFlgFinal, pTenantId;
  270.    
  271.     -- 4. Ambil summary data pelunasan di bulan yang user pilih
  272.     -- Ambil pelunasan piutang dari dokumen alokasi credit AR, atas dokumen credit AR
  273.     EXECUTE '  
  274.     INSERT INTO tt_raw_data_opname_nota
  275.         (session_id, flg_status, date_year_month, tenant_id,
  276.         ou_id, doc_type_id, invoice_id, curr_code,
  277.         invoice_amount, balance_amount, payment_amount)
  278.     SELECT $1, $7, $2, A.tenant_id,
  279.         E.ou_id, D.credit_doc_type_id, D.credit_id, D.credit_curr_code,
  280.         0, 0, SUM(D.credit_amount) * -1
  281.     FROM fi_allocation_ar A, dt_date C, fi_allocation_ar_balance D, tt_raw_data_opname_nota E
  282.     WHERE A.tenant_id = $4 AND
  283.         A.doc_date = C.string_date AND
  284.         C.year_month_date = $2 AND
  285.         A.allocation_ar_id = D.allocation_ar_id AND
  286.         D.credit_id <> $5 AND
  287.         D.flg_alloc = $6 AND
  288.         D.credit_id = E.invoice_id AND
  289.         E.flg_status = $3
  290.     GROUP BY A.tenant_id, E.ou_id, D.credit_doc_type_id, D.credit_id, D.credit_curr_code'
  291.     USING pSessionId, pYearMonth, vFlgFinal, pTenantId, vEmptyId, 'A', vFlgFinal2;
  292.    
  293.     -- Ambil pelunasan piutang dari dokumen alokasi credit AR, atas dokumen debt AR
  294.     EXECUTE '
  295.     INSERT INTO tt_raw_data_opname_nota
  296.         (session_id, flg_status,date_year_month, tenant_id,
  297.         ou_id, doc_type_id, invoice_id, curr_code,
  298.         invoice_amount, balance_amount, payment_amount)
  299.     SELECT $1, $7, $2, A.tenant_id,
  300.         E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code,
  301.         0, 0, SUM(D.debit_amount)
  302.     FROM fi_allocation_ar A, dt_date C, fi_allocation_ar_balance D, tt_raw_data_opname_nota E
  303.     WHERE A.tenant_id = $4 AND
  304.         A.doc_date = C.string_date AND
  305.         C.year_month_date = $2 AND
  306.         A.allocation_ar_id = D.allocation_ar_id AND
  307.         D.debit_id <> $5 AND
  308.         D.flg_alloc = $6 AND
  309.         D.debit_id = E.invoice_id AND
  310.         E.flg_status = $3
  311.     GROUP BY A.tenant_id, E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code '
  312.     USING pSessionId, pYearMonth, vFlgFinal, pTenantId, vEmptyId, 'A', vFlgFinal2;
  313.    
  314.     -- Ambil pelunasan piutang dari dokumen alokasi cashbank IN AR
  315.     EXECUTE '
  316.     INSERT INTO tt_raw_data_opname_nota
  317.         (session_id, flg_status, date_year_month, tenant_id,
  318.         ou_id, doc_type_id, invoice_id, curr_code,
  319.         invoice_amount, balance_amount, payment_amount)
  320.     SELECT $1, $7, $2, A.tenant_id,
  321.         E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code,
  322.         0, 0, SUM(D.debit_amount)
  323.     FROM fi_allocation_ar A, dt_date C, fi_allocation_ar_balance D, tt_raw_data_opname_nota E
  324.     WHERE A.tenant_id = $4 AND
  325.         A.doc_date = C.string_date AND
  326.         C.year_month_date = $2 AND
  327.         A.allocation_ar_id = D.allocation_ar_id AND
  328.         D.debit_id <> $5 AND
  329.         D.flg_alloc = $6 AND
  330.         D.debit_id = E.invoice_id AND
  331.         E.flg_status = $3
  332.     GROUP BY A.tenant_id, E.ou_id, D.debit_doc_type_id, D.debit_id, D.debit_curr_code '
  333.     USING pSessionId, pYearMonth, vFlgFinal, pTenantId, vEmptyId, 'C', vFlgFinal2;
  334.  
  335.  
  336.     OPEN pRefHeader FOR
  337.     SELECT f_get_ou_name(vOuBuId) AS ou_bu_name, pYearMonth AS period, f_get_ou_name(pOuId) AS ou_name,
  338.             CASE WHEN pPartnerId != vEmptyId THEN f_get_partner_code(pPartnerId)||' - '||f_get_partner_name(pPartnerId) ELSE 'ALL' END AS partner,
  339.             CASE WHEN pPartnerId != vEmptyId THEN
  340.                 f_get_partner_code(f_get_payment_group_customer_id(pPartnerId))||' - '||f_get_partner_name(f_get_payment_group_customer_id(pPartnerId)) ELSE 'ALL' END AS partner_group;
  341.     RETURN NEXT pRefHeader;
  342.  
  343.     OPEN pRefDetail FOR
  344.    
  345.     SELECT f_get_ou_code(A.ou_id) AS ou_code, f_get_ou_name(A.ou_id) AS ou_name, A.date_year_month, F.city_name, H.region_name,
  346.          f_get_doc_desc(A.doc_type_id) AS doc_desc, B.doc_no, B.doc_date, D.due_date AS lama,
  347.          B.due_date AS due_date, SUM(A.invoice_amount) AS jumlah, SUM(A.balance_amount) AS saldo_awal, SUM(A.payment_amount) AS pelunasan,
  348.          SUM(A.balance_amount) - SUM(A.payment_amount) AS sisa_saldo_awal,
  349.         C.partner_code, f_get_partner_code(f_get_payment_group_customer_id(B.partner_id)) AS partner_group_code, C.partner_name,
  350.         CASE WHEN E.phone2 != '' THEN E.phone1 || ' / ' || E.phone2 ELSE E.phone1 END AS phone,
  351.         f_get_partner_code(COALESCE(I.salesman_id,vEmptyId)) AS salesman_code, f_get_partner_name(COALESCE(I.salesman_id,vEmptyId)) AS salesman_name,
  352.         f_get_dkb_date_by_so_id(COALESCE(I.so_id,vEmptyId)) AS tgl_kirim,
  353.         f_get_resi_receipt_date_by_so_id(COALESCE(I.so_id,vEmptyId)) AS tgl_terima
  354.     FROM tt_raw_data_opname_nota A
  355.     JOIN fi_invoice_ar_balance B ON a.invoice_id = B.invoice_ar_balance_id
  356.     JOIN m_partner C ON B.partner_id = C.partner_id
  357.     JOIN m_partner_type D ON C.partner_id = D.partner_id
  358.     JOIN m_partner_address E ON C.partner_id = E.partner_id AND E.flg_official = 'Y'
  359.     JOIN m_city F ON E.city = F.city_code
  360.     JOIN m_region_customer G ON C.partner_id = G.customer_id
  361.     JOIN m_region H ON G.region_id = H.region_id
  362.     LEFT JOIN sl_so I ON I.so_id = B.ref_id AND I.doc_type_id = B.ref_doc_type_id AND B.doc_type_id IN (vSiDocumentId, vTsiDocumentId)
  363.     WHERE A.session_id = pSessionId
  364.         AND A.flg_status IN (vFlgFinal, vFlgFinal2)
  365.     GROUP BY A.date_year_month, A.ou_id, A.doc_type_id, B.doc_no, B.doc_date, B.due_date, D.due_date, F.city_name, H.region_name,
  366.         C.partner_code, C.partner_name, E.phone2, E.phone1, B.partner_id, I.so_id
  367.     HAVING SUM(A.balance_amount) - SUM(A.payment_amount) <> 0
  368.     ORDER BY B.doc_no;
  369.  
  370.     RETURN NEXT pRefDetail ;
  371.    
  372.     DELETE FROM tt_raw_data_opname_nota WHERE session_id = pSessionId;
  373.  
  374. END;
  375. $BODY$
  376.   LANGUAGE plpgsql VOLATILE
  377.   COST 100
  378. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement