ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ASCP:监控计划转PR明细表--后续需求的更改

ASCP:监控计划转PR明细表--后续需求的更改

原创 Linux操作系统 作者:guozi51 时间:2012-06-13 10:59:34 0 删除 编辑

1.业务需求:尽管目前采购件通过MRP下单率达87%,但是还是有一部分料漏下单,或延误下单,为了预防这种情况发生而开发此报表
2.格式如下:

3.其中部分栏位解释及对应后台栏位:
前置时间(L/T):采购前+采购中+采购后(PREPROCESSING_LEAD_TIME+FULL_LEAD_TIME+POSTPROCESSING_LEAD_TIME)
采购员:物料属性中默认采购员;
建议到期日期:MRP建议到期日期(NEW_SCHEDULE_DATE);
建议订购日期:MRP建议订购日期(NEW_ORDER_PLACEMENT_DATE);
计划单需求量(QTY1): MRP建议请购数量;
当日PR下单数量(QTY2): MRP建议订购日期当天下达PR数量QTY2(不包括取消或直接关闭PR);
当日差异QTY5:  QTY2-QTY1;
累计计划单需求量(QTY3):包括MRP建议订购日期之前而大于MRP运行完成时间sum(QTY1);
累计PR下单数量(QTY4):  包括MRP建议订购日期之前而大于MRP运行完成时间sum(QTY2);
累计结余QTY6: QTY4-QTY3;
延迟天数:当QTY6>=0, 延迟天数为0,QTY6<0, 延迟天数为sysdate-建议订购日期(除去非工作日)
是否准时下达PR:当QTY6>=0, 为Yes,QTY6<0,为No

========

1.累计计划单需求量(QTY3)与累计PR下单数量(QTY4)
两个栏位时间点为括运行报表时间之前而大于MRP运行完成时间数量之和;
2.PR最早满足需求日期:QTY4-QTY3>=0时最早下达PR的日期
3.延迟天数:PR最早满足需求日期-建议订购日期+1(除去非工作日),PR最早满足需求日期没有时,默认当天
4.开发中用到的累计函数先记录如下:

FUNCTION ITEM_MRP_PR_DATE(P_ORGANIZATION_ID IN NUMBER,P_INVENTORY_ITEM_ID IN NUMBER,P_MRP VARCHAR2,P_DATE DATE)
 RETURN DATE IS
 L_MRP_SUMQTY NUMBER;
 L_DATE DATE;
BEGIN
 L_MRP_SUMQTY:=ITEM_MRP_SUGGEST_SUMQTY(P_ORGANIZATION_ID,P_INVENTORY_ITEM_ID,P_MRP,P_DATE);
 
 SELECT TRUNC(PR.CREATION_DATE)
   INTO  L_DATE
   FROM (
   SELECT PRL.CREATION_DATE,
          SUM(NVL(PRL.QUANTITY,0)-NVL(PRL.QUANTITY_CANCELLED,0))
           OVER (PARTITION BY PRL.ITEM_ID  ORDER BY PRL.CREATION_DATE) QTY 
  FROM PO_REQUISITION_HEADERS_ALL PRH,
       PO_REQUISITION_LINES_ALL   PRL,
       MTL_SYSTEM_ITEMS_B         MSI
 WHERE PRH.REQUISITION_HEADER_ID = PRL.REQUISITION_HEADER_ID
   AND PRL.ITEM_ID = MSI.INVENTORY_ITEM_ID
   AND MSI.ORGANIZATION_ID = PRL.DESTINATION_ORGANIZATION_ID  
   AND PRH.INTERFACE_SOURCE_CODE = 'MRP'
   AND NVL(PRL.CANCEL_FLAG, 'N') = 'N'
   AND (PRL.CLOSED_CODE != 'FINALLY CLOSED' OR PRL.CLOSED_CODE IS NULL)
   AND MSI.ORGANIZATION_ID=P_ORGANIZATION_ID
   AND MSI.INVENTORY_ITEM_ID = P_INVENTORY_ITEM_ID
   AND TRUNC(PRL.CREATION_DATE) <= TRUNC(P_DATE)
   AND EXISTS (SELECT 1
               FROM MRP_PLANS MP
               WHERE MP.PLAN_COMPLETION_DATE                 AND MP.COMPILE_DESIGNATOR=P_MRP
            )
       ) PR
     WHERE PR.QTY>=L_MRP_SUMQTY
      AND ROWNUM=1;
 
RETURN L_DATE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
WHEN OTHERS THEN
RETURN NULL;
END;


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14573622/viewspace-732645/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-06-23

  • 博文量
    36
  • 访问量
    56574