Advertisement
aadddrr

sl_modify_doc_date_approved_do_KPS_20180219

Feb 18th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Function: sl_modify_doc_date_approved_do(bigint, character varying, bigint, character varying, character varying, character varying)
  2.  
  3. -- DROP FUNCTION sl_modify_doc_date_approved_do(bigint, character varying, bigint, character varying, character varying, character varying);
  4.  
  5. CREATE OR REPLACE FUNCTION sl_modify_doc_date_approved_do(bigint, character varying, bigint, character varying, character varying, character varying)
  6.   RETURNS void AS
  7. $BODY$
  8. DECLARE
  9.     pTenantId           ALIAS FOR $1;
  10.     pSessionId          ALIAS FOR $2;
  11.     pOuId               ALIAS FOR $3;
  12.     pDoDocNo            ALIAS FOR $4;
  13.     pDoDocDate          ALIAS FOR $5;
  14.     pNewDocDate         ALIAS FOR $6;
  15.  
  16.     vDoId               bigint;
  17.     vDoDocTypeId        bigint;
  18.     vSchemeDo           character varying(5);
  19. BEGIN
  20.  
  21.     vSchemeDo := 'FB01';
  22.     vDoDocTypeId := 311;
  23.    
  24.     -- TODO: validasi bahwa DO ini belum pernah difollow up sama sekali (Invoice Temp, Invoice, DO Receipt)
  25.    
  26.     -- ambil do id dan doc type id nya
  27.     SELECT do_id INTO vDoId
  28.     FROM sl_do A
  29.     WHERE A.tenant_id = pTenantId
  30.     AND   A.doc_type_id = vDoDocTypeId
  31.     AND   A.ou_id = pOuId
  32.     AND   A.doc_no = pDoDocNo
  33.     AND   A.doc_date = pDoDocDate;
  34.    
  35.     -- update sl_so_balance_invoice (ref_doc_date)
  36.     UPDATE sl_so_balance_invoice SET ref_doc_date = pNewDocDate WHERE ref_id = vDoId AND ref_doc_type_id = vDoDocTypeId AND ref_doc_no = pDoDocNo AND ref_doc_date = pDoDocDate AND ou_id = pOuId;
  37.    
  38.     -- update in_log_product_balance_stock (doc_date)
  39.     UPDATE in_log_product_balance_stock SET doc_date = pNewDocDate WHERE ref_id = vDoId AND doc_type_id = vDoDocTypeId AND doc_no = pDoDocNo AND ou_id = pOuId AND tenant_id = pTenantId AND doc_date = pDoDocDate;
  40.    
  41.     -- update in_balance_do_item (doc_date)
  42.     UPDATE in_balance_do_item SET doc_date = pNewDocDate WHERE do_id = vDoId AND doc_no = pDoDocNo AND ou_id = pOuId AND tenant_id = pTenantId AND doc_date = pDoDocDate;
  43.    
  44.     -- update sl_do
  45.     UPDATE sl_do SET doc_date = pNewDocDate WHERE do_id = vDoId;
  46.    
  47.     -- update gl_journal_trx_item (journal_date)
  48.     UPDATE gl_journal_trx_item B SET journal_date = pNewDocDate
  49.     FROM gl_journal_trx A
  50.     WHERE A.journal_trx_id = B.journal_trx_id
  51.     AND A.tenant_id = pTenantId
  52.     AND A.doc_type_id = vDoDocTypeId
  53.     AND A.doc_id = vDoId
  54.     AND A.doc_no = pDoDocNo
  55.     AND A.doc_date = pDoDocDate;
  56.    
  57.     -- update gl_journal_trx_mapping (journal_date)
  58.     UPDATE gl_journal_trx_mapping B SET journal_date = pNewDocDate
  59.     FROM gl_journal_trx A
  60.     WHERE A.journal_trx_id = B.journal_trx_id
  61.     AND A.tenant_id = pTenantId
  62.     AND A.doc_type_id = vDoDocTypeId
  63.     AND A.doc_id = vDoId
  64.     AND A.doc_no = pDoDocNo
  65.     AND A.doc_date = pDoDocDate;
  66.  
  67.     -- update gl_journal_trx (doc_date, due_date)
  68.     UPDATE gl_journal_trx SET doc_date = pNewDocDate, due_date = pNewDocDate
  69.     WHERE tenant_id = pTenantId
  70.     AND doc_type_id = vDoDocTypeId
  71.     AND doc_id = vDoId
  72.     AND doc_no = pDoDocNo
  73.     AND doc_date = pDoDocDate;
  74.    
  75.     -- awe_currdoc_status
  76.     UPDATE awe_currdoc_status
  77.     SET doc_date = pNewDocDate
  78.     WHERE scheme = vSchemeDo
  79.     AND doc_id = vDoId
  80.     AND doc_no = pDoDocNo
  81.     AND doc_date = pDoDocDate;
  82.    
  83.     -- awe_worklist
  84.     UPDATE awe_worklist
  85.     SET doc_date = pNewDocDate
  86.     WHERE scheme = vSchemeDo
  87.     AND doc_id = vDoId
  88.     AND doc_no = pDoDocNo
  89.     AND doc_date = pDoDocDate;
  90.        
  91. END;
  92. $BODY$
  93.   LANGUAGE plpgsql VOLATILE
  94.   COST 100;
  95. ALTER FUNCTION sl_modify_doc_date_approved_do(bigint, character varying, bigint, character varying, character varying, character varying)
  96.   OWNER TO sts;
  97. GRANT EXECUTE ON FUNCTION sl_modify_doc_date_approved_do(bigint, character varying, bigint, character varying, character varying, character varying) TO public;
  98. GRANT EXECUTE ON FUNCTION sl_modify_doc_date_approved_do(bigint, character varying, bigint, character varying, character varying, character varying) TO sts;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement