IFS ERP Satış Siparişine Rezervasyon Koymak

IFS ERP Satış Siparişine Rezervasyon Koymak

Aşağıdaki plsql script ile bir siparişin istediğiniz satırlarına ya da hepsine belirlediğiniz lokasyondan otomatik olarak rezervasyon yaptırabilirsiniz, değişkenlerin tanımlandığı(order_no,location_no vb) satırlara commentler ekledim, kendi IFS tanımlarınıza göre düzenleyebilirsiniz.

Tabi bu işlemi satış siparişleri listesinde satırlara sağ tıklayıp rezervasyon diyerek yapabilirsiniz, ama yüklü bir sipariş varsa ve bir an önce halletmeniz isteniyorsa işinize çok yarayacağını düşünüyorum 🙂

Bu aralar IFS erp ile ilgili çok soru alıyorum, elimden geldiğince bir şeyler paylaşacağım..

DECLARE 
   info_            VARCHAR2(2000);
   objid_           VARCHAR2(2000);
   objversion_      VARCHAR2(2000);
   attr_            VARCHAR2(2000);
   attr2_           VARCHAR2(2000);
   co_line_no_      VARCHAR2(20);
   co_rel_no_       VARCHAR2(20);
   co_line_item_no_ NUMBER;
   state_           VARCHAR2(100);
   qty_             NUMBER;
   rez_miktar_      NUMBER;
   co_no_           VARCHAR2(20):='R10055'; --Sipariş Numarası 
 
BEGIN   
 
FOR C2 IN ( 
           SELECT * FROM customer_order_line cl
            WHERE cl.order_no=co_no_
              AND cl.objstate!='Reserved'
              ORDER BY to_number(cl.line_no)
 
          ) LOOP
 
    rez_miktar_ := c2.buy_qty_due;
 
    FOR C3 IN (SELECT z.*,z.qty_onhand-z.qty_reserved serbest_miktar 
                 FROM INVENTORY_PART_IN_STOCK Z 
                WHERE Z.CONTRACT=C2.CONTRACT 
                  AND Z.PART_NO=C2.PART_NO 
                  AND Z.QTY_ONHAND-Z.QTY_RESERVED>0
                  AND INVENTORY_LOCATION_API.Get_Warehouse(Z.CONTRACT,Z.LOCATION_NO)='SEVK'
                  AND Z.LOCATION_NO NOT IN ('DEPO') --Hangi depo ya da depolardan rezervasyon koymak isterseniz..
              ) LOOP
 
      IF  rez_miktar_   > c3.serbest_miktar THEN 
          qty_         := c3.serbest_miktar;
          rez_miktar_  := rez_miktar_-qty_;
      ELSE 
          qty_         := rez_miktar_;
          rez_miktar_  := 0;      
      END  IF ;
 
 
      dbms_output.put_line('rez_miktar_'|| rez_miktar_);
      dbms_output.put_line('qty_'|| qty_);
 
      IF  qty_ > 0 THEN       
                  Reserve_Customer_Order_API.Reserve_Manually__( info_, 
                                                                 state_, 
                                                                 c2.order_no,
                                                                 c2.line_no,
                                                                 c2.rel_no,
                                                                 c2.line_item_no,
                                                                 C3.contract, 
                                                                 C3.part_no,
                                                                 C3.location_no,
                                                                 C3.lot_batch_no,
                                                                 '*',
                                                                 '1', 
                                                                 C3.waiv_dev_rej_no,
                                                                 NULL,
                                                                 qty_);
 
       END  IF;
    END LOOP;
END LOOP;
END;

Umarım faydalı olur.

Tagged: , , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir