Oracle EBS:SQL 失效一攬子PO協議

來源:互聯網
上載者:User

1.查詢一攬子PO:

這裡要注意的是:不同的付款條件,幣種,稅率,都會可能產生一張新的一攬子PO協議

複製內容到剪貼簿 程式碼select pla.PO_LINE_ID,
       pla.PO_HEADER_ID,
       pla.ITEM_ID,
       msib.SEGMENT1 ITEM_CODE,
        pla.UNIT_PRICE,
       pla.ITEM_DESCRIPTION,
       pla.START_DATE,
       pla.EXPIRATION_DATE,
       pla.CANCEL_FLAG,
       pla.CLOSED_CODE,
       pha.PO_HEADER_ID,
       pha.VENDOR_ID,
       pha.VENDOR_SITE_ID,
       pha.TERMS_ID,
       pla.TAX_CODE_ID
  from PO_LINES_ALL pla, PO_HEADERS_ALL pha,MTL_SYSTEM_ITEMS_B msib
where nvl(pla.closed_code, 'OPEN') != 'FINALLY CLOSED'
   and nvl(pla.CANCEL_FLAG, 'N') = 'N'
   and pla.PO_HEADER_ID=pha.PO_HEADER_ID
   and nvl(pha.closed_code, 'OPEN') != 'FINALLY CLOSED'
   and nvl(pha.CANCEL_FLAG,'N')='N'
   and pha.ENABLED_FLAG='Y'
   and pha.TYPE_LOOKUP_CODE = 'BLANKET'
   and msib.INVENTORY_ITEM_ID=pla.ITEM_ID

2.通過尋找對應的ID,失效對應的價格,我這裡好像少了付款條件跟幣種,稅率這幾個條件,

複製內容到剪貼簿 程式碼procedure SetPriceExpireDate(P_ITEM_CODE        IN VARCHAR2,
                               P_VENDOR_CODE      IN VARCHAR2,
                               P_VENDOR_SITE_CODE IN VARCHAR2,
                               P_ORG_ID           IN VARCHAR2,
                               v_retval           out number) is
  begin
    Update PO_LINES_ALL pla
       set pla.EXPIRATION_DATE = sysdate
     where pla.ITEM_ID = GetItemID(P_ITEM_CODE, P_ORG_ID)
       and pla.ORG_ID = P_ORG_ID
       and nvl(pla.cancel_flag, 'N') = 'N'
       and nvl(closed_code, 'OPEN') != 'FINALLY CLOSED'
       and exists
     (select *
              from PO_HEADERS_ALL pha
             where pha.PO_HEADER_ID = pla.PO_HEADER_ID
               and pha.TYPE_LOOKUP_CODE = 'BLANKET'
               and pha.VENDOR_ID = GetVendorID(P_VENDOR_CODE)
               and pha.VENDOR_SITE_ID =
                   GetVendorSiteID(P_VENDOR_SITE_CODE, P_ORG_ID));
  
    v_retval := 1;
    COMMIT;
  
  EXCEPTION
    WHEN OTHERS THEN
      v_retval := 0;
    
  end SetPriceExpireDate;

3.輔助的幾個函數

複製內容到剪貼簿 程式碼Function GetVendorID(P_Vendor_Code IN VARCHAR2) RETURN NUMBER as
    v_vendor_id number;
  
  begin
  
    select pv.VENDOR_ID
      into v_vendor_id
      from po_vendors pv
    
     where pv.SEGMENT1 = P_Vendor_Code;
  
    return v_vendor_id;
  
  end;

  Function GetVendorSiteID(P_Vendor_SITE_CODE IN VARCHAR2,
                           P_ORG_ID           IN NUMBER) RETURN NUMBER as
    v_vendor_site_id number;
  begin
    select pvsa.VENDOR_SITE_ID
      into v_vendor_site_id
      from PO_VENDOR_SITES_ALL pvsa
     where pvsa.VENDOR_SITE_CODE = P_Vendor_SITE_CODE
       and pvsa.ORG_ID = P_ORG_ID;
  
    return v_vendor_site_id;
  
  end;

  FUNCTION GetItemID(P_ITEM_CODE IN VARCHAR2, P_ORG_ID IN NUMBER)
    RETURN NUMBER as
  
    v_item_id number;
  
  begin
    select msib.INVENTORY_ITEM_ID
      into v_item_id
      from MTL_SYSTEM_ITEMS_B msib
    
     where msib.SEGMENT1 = P_ITEM_CODE
       AND msib.ORGANIZATION_ID = P_ORG_ID;
  
    return v_item_id;
  
  end;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.