• Oracle EBS:SQL 失效一揽子PO协议


    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;

     

  • 相关阅读:
    Python 操控Mysql
    mysql5.7 root密码重置
    pandas合并两个excel到一个excel
    键盘控制
    激活浏览器窗口
    python的xlwings库读写excel操作总结
    python 读取Excel使用xlwing库
    CMDB(资产管理系统) day1
    Vue之简易的留言板功能
    vue之神奇的动态按钮
  • 原文地址:https://www.cnblogs.com/toowang/p/2316943.html
Copyright © 2020-2023  润新知