Advertisement
samuel025

Function Create Receive Goods

Dec 27th, 2021
1,234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION f_create_rg_for_submit_goods_purchasing(bigint, bigint, bigint, character varying)
  2.   RETURNS void AS  
  3. $BODY$
  4. DECLARE
  5.     pTenantId                   ALIAS FOR $1;
  6.     pGoodsPurchasingDocTypeId   ALIAS FOR $2;
  7.     pUserId                     ALIAS FOR $3;
  8.     pDatetime                   ALIAS FOR $4;
  9.  
  10.     vReceiveGoodsDocTypeId      bigint := 111;
  11.     vEmptyString                character varying:='';
  12.     vStatusDocDraft             character varying(1):='D';
  13.     vWorkflowStatusDraft        character varying:='DRAFT';
  14.     vWorkflowStatusApproved     character varying:='APPROVED';
  15.     vRgId                       bigint;
  16.    
  17. BEGIN
  18.    
  19.     SELECT NEXTVAL('pu_receive_goods_seq') INTO vRgId;
  20.    
  21.     --karena langsung disubmit maka workflow status RG langsung dibuat approved
  22.     INSERT INTO pu_receive_goods(
  23.             receive_goods_id, tenant_id, doc_type_id, doc_no, doc_date, ou_id,
  24.             ext_doc_no, ext_doc_date, ref_doc_type_id, ref_id, remark, partner_id,
  25.             warehouse_id, status_doc, workflow_status, version,
  26.             create_datetime, create_user_id, update_datetime, update_user_id)
  27.     SELECT vRgId, pTenantId, vReceiveGoodsDocTypeId, A.doc_no, A.doc_date, A.ou_id,
  28.             A.ext_doc_no, A.ext_doc_date, A.doc_type_id, A.po_id, A.remark, A.partner_id,
  29.             A.warehouse_id, vStatusDocDraft, vWorkflowStatusApproved, 0,
  30.             pDatetime, pUserId, pDatetime, pUserId
  31.     FROM pu_po A
  32.     WHERE po_id = pGoodsPurchasingDocTypeId;
  33.  
  34.     INSERT INTO pu_receive_goods_item(
  35.             tenant_id, receive_goods_id, line_no,
  36.             ref_doc_type_id, ref_id, product_id, qty_rcv_po, po_uom_id, qty_rcv_int,
  37.             base_uom_id, remark,
  38.             version, create_datetime, create_user_id, update_datetime, update_user_id)
  39.     SELECT pTenantId, vRgId, A.line_no,
  40.             B.doc_type_id, A.po_item_id, A.product_id, A.qty_po, A.po_uom_id, A.qty_int,
  41.             A.base_uom_id, A.remark,
  42.             0, pDatetime, pUserId, pDatetime, pUserId
  43.     FROM pu_po_item A
  44.     JOIN pu_po B ON A.po_id = B.po_id
  45.     WHERE B.po_id = pGoodsPurchasingDocTypeId;
  46.    
  47.     INSERT INTO pu_receive_goods_product(
  48.                 tenant_id, receive_goods_item_id, line_no,
  49.                 product_id, serial_number, product_expired_date, product_year_made,
  50.                 lot_number, qty_rcv_po, po_uom_id, qty_rcv_int, base_uom_id, remark,
  51.                 version, create_datetime, create_user_id, update_datetime, update_user_id)
  52.     SELECT A.tenant_id, A.receive_goods_item_id, B.line_no,
  53.         A.product_id, B.serial_number, B.expired_date, B.year_made,
  54.         B.lot_number, B.qty_rcv_po, B.base_uom_id, B.qty_rcv_int, B.base_uom_id, b.remark,
  55.         0, pDatetime, pUserId, pDatetime, pUserId
  56.     FROM pu_receive_goods_item A
  57.     JOIN pu_po_item_product B ON A.ref_id = B.po_item_id
  58.     WHERE A.receive_goods_id = vRgId;
  59.    
  60.     --  add data serial number auto sn
  61.     -- INSERT INTO  pu_receive_goods_product_auto_sn
  62.     -- NOTE: untuk bagian ini tidak dibuat karena semua serial number dari GP tidak di auto generate
  63.        
  64. END;
  65. $BODY$
  66.   LANGUAGE plpgsql VOLATILE
  67.   COST 100;
  68.   /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement