Advertisement
aadddrr

REPORT O/S GTI RECEIPT

Mar 16th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Adrian, Mar 16, 2017
  2.  
  3. CREATE OR REPLACE FUNCTION r_outstanding_goods_transfer_in_receipt(character varying, bigint, bigint, bigint, character varying, bigint, character varying, character varying, character varying)
  4.  RETURNS SETOF refcursor AS
  5. $BODY$
  6. DECLARE
  7.     vRefHeader          REFCURSOR := 'refHeader';
  8.     vRefDetail          REFCURSOR := 'refDetail';
  9.    
  10.     pSessionId          ALIAS FOR $1;
  11.     pTenantId           ALIAS FOR $2;
  12.     pUserId             ALIAS FOR $3;
  13.     pRoleId             ALIAS FOR $4;
  14.     pDatetime           ALIAS FOR $5;
  15.    
  16.     pOu                 ALIAS FOR $6;
  17.     pDateFrom           ALIAS FOR $7;
  18.     pDateTo             ALIAS FOR $8;
  19.     pProductCodeName    ALIAS FOR $9;
  20.    
  21.     vFilterProduct      text = '';
  22.    
  23.     vEmptyString        character varying := '';
  24.     vEmptyDate          character varying := '-';
  25.     vFlgInProgress      character varying := 'I';
  26.     vStatusInProgress   character varying := 'In Progress';
  27.     vFlgDraft           character varying := 'D';
  28.     vStatusDraft        character varying := 'Draft';
  29.     vFLgApprove         character varying := 'R';
  30.     vStatusApprove      character varying := 'Approve';
  31.     vFlgNo              character varying := 'N';
  32.    
  33.     vDocTypeIdtransferIn  bigint := 535;
  34.     vZero  bigint := 0;
  35.    
  36. BEGIN
  37.    
  38.     OPEN vRefHeader FOR
  39.         SELECT f_get_ou_name(pOu) AS ou_name, pDateFrom AS date_from, pDateTo AS date_to, pDatetime AS datetime,
  40.             f_get_username(pUserId) AS username, pProductCodeName AS product_code_name;
  41.    
  42.     RETURN NEXT vRefHeader;
  43.    
  44.     IF (pProductCodeName <> vEmptyString) THEN
  45.         vFilterProduct := ' AND (UPPER(f_get_product_code(A.product_id)) LIKE UPPER(''%' || pProductCodeName || '%'') OR UPPER(f_get_product_name(A.product_id)) LIKE UPPER(''%' || pProductCodeName || '%''))';
  46.     END IF;
  47.    
  48.     OPEN vRefDetail FOR
  49.    
  50.     EXECUTE '
  51.         SELECT B.doc_date AS transfer_in_date, B.doc_no AS transfer_in_no,
  52.             f_get_warehouse_name(A.warehouse_from_id) AS warehouse_from,
  53.             f_get_warehouse_name(A.warehouse_to_id) AS warehouse_to,
  54.             f_get_product_name(A.product_id) AS product_name,
  55.             f_get_product_code(A.product_id) AS product_code,
  56.             f_get_uom_name(A.base_uom_id) AS base_uom,
  57.             A.qty_out AS qty_out, A.qty_in AS qty_in, (A.qty_out - A.qty_in) AS qty_deviation
  58.         FROM in_balance_transfer_in_item A
  59.         INNER JOIN in_inventory B ON B.inventory_id = A.inventory_id
  60.         WHERE A.tenant_id = $1 AND
  61.             A.ou_from_id = $2 AND
  62.             B.doc_type_id = $3 AND
  63.             A.flg_receipt = $4 AND
  64.             B.doc_date BETWEEN $5 AND $6 AND
  65.             (A.qty_out - A.qty_in) <> $7 '
  66.             || vFilterProduct ||'
  67.         ORDER BY B.doc_date'
  68.     USING pTenantId, pOu, vDocTypeIdtransferIn, vFlgNo, pDateFrom, pDateTo, vZero;
  69.    
  70.     RETURN NEXT vRefDetail;
  71.  
  72. END;
  73. $BODY$
  74.   LANGUAGE plpgsql VOLATILE
  75.   COST 100
  76.   ROWS 1000;
  77. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement