Advertisement
widana

Untitled

Jun 12th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION f_get_outstanding_documents(bigint, bigint)
  2.    RETURNS SETOF refcursor AS
  3. $BODY$
  4. DECLARE
  5.     pRefDetail    REFCURSOR := 'refDetail';
  6.     pTenantId     ALIAS FOR     $1;
  7.     pOuId         ALIAS FOR     $2;
  8.  
  9. BEGIN
  10.  
  11.   OPEN pRefDetail FOR
  12.  
  13.     SELECT Z.doc_no, Z.doc_date, Z.doc_type, Z.username, Z.status_doc, Z.remark
  14.     FROM (
  15.       SELECT A.doc_no, A.doc_date, f_get_doc_desc(A.doc_type_id) AS doc_type, f_get_username(A.create_user_id) AS username,
  16.             A.status_doc, A.remark
  17.       FROM in_inventory A
  18.       WHERE A.tenant_id = pTenantId
  19.         AND A.status_doc IN ('D', 'I')
  20.         AND (A.doc_type_id = ANY (ARRAY[521, 511, 535, 533, 569, 502, 511]))
  21.       UNION
  22.       SELECT A.doc_no, A.doc_date, f_get_doc_desc(A.doc_type_id) AS doc_type, f_get_username(A.create_user_id) AS username,
  23.             A.status_doc, A.remark
  24.       FROM sl_do A
  25.       WHERE A.tenant_id = pTenantId
  26.         AND A.status_doc IN ('D', 'I')
  27.         AND (A.doc_type_id = ANY (ARRAY[311]))
  28.       UNION
  29.       SELECT A.doc_no, A.doc_date, f_get_doc_desc(A.doc_type_id) AS doc_type, f_get_username(A.create_user_id) AS username,
  30.             A.status_doc, A.remark
  31.       FROM in_do_receipt A
  32.       WHERE A.tenant_id = pTenantId
  33.         AND A.status_doc IN ('D', 'I')
  34.         AND (A.doc_type_id = ANY (ARRAY[526]))
  35.       UNION
  36.       SELECT A.doc_no, A.doc_date, f_get_doc_desc(A.doc_type_id) AS doc_type, f_get_username(A.create_user_id) AS username,
  37.             A.status_doc, A.remark
  38.       FROM pu_receive_goods A
  39.       WHERE A.tenant_id = pTenantId
  40.         AND A.status_doc IN ('D', 'I')
  41.         AND (A.doc_type_id = ANY (ARRAY[111]))
  42.       UNION
  43.       SELECT A.doc_no, A.doc_date, f_get_doc_desc(A.doc_type_id) AS doc_type, f_get_username(A.create_user_id) AS username,
  44.             A.status_doc, A.remark
  45.       FROM pu_receive_goods_consignment A
  46.       WHERE A.tenant_id = pTenantId
  47.         AND A.status_doc IN ('D', 'I')
  48.         AND (A.doc_type_id = ANY (ARRAY[113]))
  49.     ) Z
  50.     ORDER BY Z.username, Z.doc_no, Z.doc_date, Z.doc_type, Z.status_doc;
  51.  
  52.   RETURN NEXT pRefDetail;
  53. END;
  54.  
  55. $BODY$
  56.     LANGUAGE plpgsql VOLATILE
  57.     COST 100
  58.     ROWS 10000;
  59. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement