Advertisement
setiadi

f_get_status_monitoring_order_pembelian

May 19th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. CREATE OR REPLACE FUNCTION pb.f_get_status_monitoring_order_pembelian(bigint)
  3.   RETURNS character varying AS
  4. $BODY$
  5. DECLARE
  6.  
  7.   pPoId                 ALIAS FOR $1;    
  8.  
  9.   vStatusDocOp              character varying;
  10.   vStatusDocPb              character varying;
  11.   vStatusString             character varying;
  12.  
  13.   vStatusFinal              character varying := 'F';
  14.   vStatusDraft              character varying := 'D';
  15.   vStatusRelease            character varying := 'R';
  16.   vQty                  bigInt;  
  17.    
  18. BEGIN          
  19.  
  20.     SELECT status_doc INTO vStatusDocOp FROM pu_po WHERE po_id = pPoId;
  21.  
  22.     IF vStatusDocOp = vStatusDraft THEN
  23.         vStatusString:= 'Draft';
  24.     ELSIF vStatusDocOp = vStatusRelease THEN
  25.         SELECT SUM(A.qty_po) - SUM(A.qty_cancel) + SUM(A.qty_add) - SUM(A.qty_rcv) INTO vQty FROM pu_po_balance_item A
  26.             INNER JOIN pu_po_item B ON B.po_item_id = A.po_item_id
  27.             WHERE B.po_id = pPoId;
  28.  
  29.         IF vQty > 0 THEN
  30.             vStatusString:= 'SUDAH DITERIMA SEBAGIAN';
  31.         ELSE
  32.             SELECT status_doc INTO vStatusDocPb FROM pu_receive_goods WHERE ref_id = pPoId;
  33.        
  34.             IF NOT FOUND THEN
  35.                 vStatusString:= 'DISETUJUI';
  36.             ELSIF vStatusDocPb = vStatusDraft THEN
  37.                 vStatusString:= 'SEDANG DALAM PROSES PENERIMAAN';  
  38.             END IF;
  39.         END IF;
  40.        
  41.     ELSIF vStatusDocOp = vStatusFinal THEN
  42.         vStatusString:= 'FINAL';
  43.     END IF;    
  44.  
  45.     RETURN vStatusString;
  46. END;
  47. $BODY$
  48.   LANGUAGE plpgsql VOLATILE
  49. SET search_path=public, mstr, pb, batch
  50.   COST 100;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement