Advertisement
widana

Function Report Kartu Hutang

Jul 25th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION rpt.r_report_kartu_hutang(character varying, bigint, character varying, character varying, 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.     pRecordOwnerId              ALIAS FOR $2;
  10.     pSupplier                   ALIAS FOR $3;
  11.     pDateFrom                   ALIAS FOR $4;
  12.     pDateTo                     ALIAS FOR $5;
  13.  
  14.     vEmpty                      character varying := '';
  15.     vNo                         character varying := 'N';
  16.     vYes                        character varying := 'Y';
  17.    
  18.     vYearMonth                  character varying := '';
  19.     vFilterSupplier             character varying := '';
  20.  
  21. BEGIN
  22.  
  23.     IF pSupplier <> vEmpty THEN
  24.         vFilterSupplier := ' AND ( UPPER(f_get_supplier_code(A.supplier_id)) LIKE UPPER(''%'|| pSupplier ||'%'') OR UPPER(f_get_supplier_name(A.supplier_id)) LIKE UPPER(''%'|| pSupplier ||'%'') )';
  25.     END IF;
  26.    
  27.     OPEN pRefHeader FOR
  28.         SELECT f_get_record_owner_name(pRecordOwnerId) AS record_owner_name, pDateFrom AS date_from, pDateTo as date_to;
  29.     RETURN NEXT pRefHeader;
  30.    
  31.     OPEN pRefDetail FOR
  32.     EXECUTE '
  33.         SELECT A.doc_date, A.doc_no, f_get_doc_desc(A.doc_type_id) AS doc_desc, A.due_date,
  34.                 f_get_supplier_code(A.supplier_id) AS supplier_code, f_get_supplier_name(A.supplier_id) AS supplier_name,
  35.                 B.invoice_amount, B.payment_amount, B.invoice_amount - B.payment_amount AS balance_amount
  36.         FROM fi_invoice_ap A
  37.         INNER JOIN fi_invoice_ap_balance B ON A.invoice_ap_id = B.invoice_ap_id
  38.         WHERE A.record_owner_id = $1
  39.             ' || vFilterSupplier|| '
  40.             AND A.doc_date BETWEEN $2 AND $3
  41.         ORDER BY A.doc_date, A.doc_no DESC'
  42.     USING pRecordOwnerId, pDateFrom, pDateTo;
  43.     RETURN NEXT pRefDetail;
  44.    
  45. END;
  46. $BODY$
  47.   LANGUAGE plpgsql VOLATILE
  48.   SET search_path = public, mstr, ptg, htg, pb, pj, batch
  49.   COST 100;
  50.   /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement