From 15e112685240f2e5158ae7151a77e98446861684 Mon Sep 17 00:00:00 2001 From: vpj-cd Date: Thu, 25 Sep 2008 21:43:19 +0000 Subject: [PATCH] Fix MRP bugs with multi organization --- base/src/org/eevolution/model/MPPMRP.java | 13 +++-- base/src/org/eevolution/model/MPPOrder.java | 8 ++- .../org/eevolution/model/MPPOrderBOMLine.java | 1 + .../process/DistributionRunOrders.java | 37 ++++--------- base/src/org/eevolution/process/MRP.java | 54 +++++++++++-------- .../src/org/eevolution/process/MRPUpdate.java | 2 +- 6 files changed, 61 insertions(+), 54 deletions(-) diff --git a/base/src/org/eevolution/model/MPPMRP.java b/base/src/org/eevolution/model/MPPMRP.java index 675fad80ed..cd05fb2591 100644 --- a/base/src/org/eevolution/model/MPPMRP.java +++ b/base/src/org/eevolution/model/MPPMRP.java @@ -109,7 +109,8 @@ public class MPPMRP extends X_PP_MRP .first(); if (mrp == null) { - mrp = new MPPMRP(ctx, 0, trxName); + mrp = new MPPMRP(ctx, 0, trxName); + mrp.setAD_Org_ID(fl.getAD_Org_ID()); mrp.setM_Forecast_ID(fl.getM_Forecast_ID()); mrp.setM_ForecastLine_ID(fl.getM_ForecastLine_ID()); mrp.setOrderType(MPPMRP.ORDERTYPE_Forecast); @@ -188,7 +189,8 @@ public class MPPMRP extends X_PP_MRP .first(); if(mrp == null) { - mrp = new MPPMRP(ctx, 0,trxName); + mrp = new MPPMRP(ctx, 0,trxName); + mrp.setAD_Org_ID(ol.getAD_Org_ID()); mrp.setC_Order_ID(ol.getC_Order_ID()); mrp.setC_OrderLine_ID(ol.getC_OrderLine_ID()); if (ol.getParent().isSOTrx()) @@ -303,7 +305,8 @@ public class MPPMRP extends X_PP_MRP .first(); if(mrp == null) { - mrp = new MPPMRP(m_ctx, 0, trxName); + mrp = new MPPMRP(m_ctx, 0, trxName); + mrp.setAD_Org_ID(o.getAD_Org_ID()); mrp.setPP_Order_ID(o.getPP_Order_ID()); mrp.setTypeMRP(MPPMRP.TYPEMRP_Supply); mrp.setOrderType(MPPMRP.ORDERTYPE_ManufacturingOrder); @@ -345,7 +348,8 @@ public class MPPMRP extends X_PP_MRP MPPOrder o = obl.getParent(); if(mrp == null) { - mrp = new MPPMRP(ctx, 0, trxName); + mrp = new MPPMRP(ctx, 0, trxName); + mrp.setAD_Org_ID(obl.getAD_Org_ID()); mrp.setPP_Order_BOMLine_ID(obl.getPP_Order_BOMLine_ID()); mrp.setPP_Order_ID(o.getPP_Order_ID()); mrp.setOrderType(MPPMRP.ORDERTYPE_ManufacturingOrder); @@ -496,6 +500,7 @@ public class MPPMRP extends X_PP_MRP if (mrp == null) { mrp = new MPPMRP(ctx, 0, trxName); + mrp.setAD_Org_ID(r.getAD_Org_ID()); mrp.setM_Requisition_ID(rl.getM_Requisition_ID()); mrp.setM_RequisitionLine_ID(rl.getM_RequisitionLine_ID()); mrp.setOrderType(MPPMRP.ORDERTYPE_MaterialRequisition); diff --git a/base/src/org/eevolution/model/MPPOrder.java b/base/src/org/eevolution/model/MPPOrder.java index 5be34f2cbb..4f9b4d24d5 100644 --- a/base/src/org/eevolution/model/MPPOrder.java +++ b/base/src/org/eevolution/model/MPPOrder.java @@ -338,6 +338,7 @@ public class MPPOrder extends X_PP_Order implements DocAction if (PP_Product_BOM.isValidFromTo(getDateStartSchedule())) { MPPOrderBOM PP_Order_BOM = new MPPOrderBOM(PP_Product_BOM, getPP_Order_ID(), get_TrxName()); + PP_Order_BOM.setAD_Org_ID(getAD_Org_ID()); PP_Order_BOM.saveEx(); for (MPPProductBOMLine PP_Product_BOMline : PP_Product_BOM.getLines()) @@ -348,6 +349,7 @@ public class MPPOrder extends X_PP_Order implements DocAction getPP_Order_ID(), PP_Order_BOM.get_ID(), getM_Warehouse_ID(), get_TrxName()); + PP_Order_BOMLine.setAD_Org_ID(getAD_Org_ID()); PP_Order_BOMLine.setQtyOrdered(getQtyOrdered()); PP_Order_BOMLine.saveEx(); } // end if valid From / To @@ -360,6 +362,7 @@ public class MPPOrder extends X_PP_Order implements DocAction if (AD_Workflow.isValidFromTo(getDateStartSchedule())) { MPPOrderWorkflow PP_Order_Workflow = new MPPOrderWorkflow(AD_Workflow, get_ID(), get_TrxName()); + PP_Order_Workflow.setAD_Org_ID(getAD_Org_ID()); PP_Order_Workflow.saveEx(); for (MWFNode AD_WF_Node : AD_Workflow.getNodes(false, getAD_Client_ID())) { @@ -368,11 +371,14 @@ public class MPPOrder extends X_PP_Order implements DocAction MPPOrderNode PP_Order_Node = new MPPOrderNode(AD_WF_Node, PP_Order_Workflow, getQtyOrdered(), get_TrxName()); + PP_Order_Node.setAD_Org_ID(getAD_Org_ID()); PP_Order_Node.saveEx(); for (MWFNodeNext AD_WF_NodeNext : AD_WF_Node.getTransitions(getAD_Client_ID())) { - new MPPOrderNodeNext(AD_WF_NodeNext, PP_Order_Node, get_TrxName()).saveEx(); + MPPOrderNodeNext nodenext = new MPPOrderNodeNext(AD_WF_NodeNext, PP_Order_Node, get_TrxName()); + nodenext.setAD_Org_ID(getAD_Org_ID()); + nodenext.saveEx(); }// for NodeNext }// for node diff --git a/base/src/org/eevolution/model/MPPOrderBOMLine.java b/base/src/org/eevolution/model/MPPOrderBOMLine.java index 11119c0156..8983883df7 100644 --- a/base/src/org/eevolution/model/MPPOrderBOMLine.java +++ b/base/src/org/eevolution/model/MPPOrderBOMLine.java @@ -158,6 +158,7 @@ public class MPPOrderBOMLine extends X_PP_Order_BOMLine getPP_Order_ID(), getPP_Order_BOM_ID(), getM_Warehouse_ID(), get_TrxName()); + PP_Order_BOMLine.setAD_Org_ID(getAD_Org_ID()); PP_Order_BOMLine.setQtyOrdered(m_qtyToExplode); PP_Order_BOMLine.saveEx(); } diff --git a/base/src/org/eevolution/process/DistributionRunOrders.java b/base/src/org/eevolution/process/DistributionRunOrders.java index b9c16dbc9f..afdb8cfe6a 100644 --- a/base/src/org/eevolution/process/DistributionRunOrders.java +++ b/base/src/org/eevolution/process/DistributionRunOrders.java @@ -139,8 +139,7 @@ public class DistributionRunOrders extends SvrProcess m_run.save(); StringBuffer sql = new StringBuffer("SELECT M_Product_ID , SUM (QtyOrdered-QtyDelivered) AS TotalQty, l.M_Warehouse_ID FROM DD_OrderLine ol INNER JOIN M_Locator l ON (l.M_Locator_ID=ol.M_Locator_ID) INNER JOIN DD_Order o ON (o.DD_Order_ID=ol.DD_Order_ID) "); - //sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised BETWEEN ? AND ? AND l.M_Warehouse_ID=? GROUP BY M_Product_ID, l.M_Warehouse_ID"); - sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised <= ? AND l.M_Warehouse_ID=? GROUP BY M_Product_ID, l.M_Warehouse_ID"); + sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised <= ? AND l.M_Warehouse_ID=? GROUP BY M_Product_ID"); PreparedStatement pstmt = null; ResultSet rs = null; @@ -193,13 +192,12 @@ public class DistributionRunOrders extends SvrProcess //Create Distribution Run Line public boolean generateDistributionDemand() { - m_run = new MDistributionRun(this.getCtx(), 0 , this.get_TrxName()); + m_run = new MDistributionRun(this.getCtx(), 0 , null); m_run.setName("Generate from DRP " + p_DatePromised); m_run.save(); - StringBuffer sql = new StringBuffer("SELECT M_Product_ID , SUM (TargetQty) AS MinQty, SUM (QtyOrdered-QtyDelivered) AS TotalQty, l.M_Warehouse_ID FROM DD_OrderLine ol INNER JOIN M_Locator l ON (l.M_Locator_ID=ol.M_Locator_ID) INNER JOIN DD_Order o ON (o.DD_Order_ID=ol.DD_Order_ID) "); - //sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised BETWEEN ? AND ? AND l.M_Warehouse_ID=? GROUP BY M_Product_ID, l.M_Warehouse_ID"); - sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised <= ? AND l.M_Warehouse_ID=? GROUP BY M_Product_ID, l.M_Warehouse_ID"); + StringBuffer sql = new StringBuffer("SELECT M_Product_ID , SUM (TargetQty) AS MinQty, SUM (QtyOrdered-QtyDelivered) AS TotalQty FROM DD_OrderLine ol INNER JOIN M_Locator l ON (l.M_Locator_ID=ol.M_Locator_ID) INNER JOIN DD_Order o ON (o.DD_Order_ID=ol.DD_Order_ID) "); + sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised <= ? AND l.M_Warehouse_ID=? GROUP BY M_Product_ID"); PreparedStatement pstmt = null; ResultSet rs = null; try @@ -215,7 +213,7 @@ public class DistributionRunOrders extends SvrProcess { int M_Product_ID = rs.getInt("M_Product_ID"); BigDecimal QtyAvailable = MStorage.getQtyAvailable(p_M_Warehouse_ID,0 , M_Product_ID , 0, get_TrxName()); - if(QtyAvailable.signum()< 0) + if(QtyAvailable.signum()<= 0) continue; BigDecimal QtyToDistribute = rs.getBigDecimal("TotalQty"); if(QtyAvailable.compareTo(QtyToDistribute) >= 0) @@ -226,6 +224,9 @@ public class DistributionRunOrders extends SvrProcess QtyToDistribute = QtyAvailable.subtract(QtyReserved); } + //if(QtyToDistribute.equals(Env.ZERO)) + // continue; + MDistributionRunLine m_runLine = new MDistributionRunLine(getCtx(),0 ,get_TrxName()); m_runLine.setM_DistributionRun_ID(m_run.getM_DistributionRun_ID()); m_runLine.setAD_Org_ID(p_AD_Org_ID); @@ -263,26 +264,7 @@ public class DistributionRunOrders extends SvrProcess private BigDecimal getTargetQty(int M_Product_ID) { StringBuffer sql = new StringBuffer("SELECT SUM (TargetQty) FROM DD_OrderLine ol INNER JOIN M_Locator l ON (l.M_Locator_ID=ol.M_Locator_ID) INNER JOIN DD_Order o ON (o.DD_Order_ID=ol.DD_Order_ID) "); - //sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised BETWEEN ? AND ? AND l.M_Warehouse_ID=? AND ol.M_Product_ID=? GROUP BY M_Product_ID, l.M_Warehouse_ID"); - sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised <= ? AND l.M_Warehouse_ID=? AND ol.M_Product_ID=? GROUP BY M_Product_ID, l.M_Warehouse_ID"); - BigDecimal qty = DB.getSQLValueBD(get_TrxName(), sql.toString(), new Object[]{p_DatePromised, p_M_Warehouse_ID, M_Product_ID}); - // SQL may return no rows or null - if (qty == null) - return Env.ZERO; - - return qty; - } - - /** - * Set Qty TargetQty for a Warehouse - * @param M_Product_ID - * @return - */ - private BigDecimal setTargetQty(int M_Product_ID) - { - StringBuffer sql = new StringBuffer("SELECT SUM(Qty) FROM PP_MRP mrp " - +"WHERE TypeMRP='D' AND OrderType='SOO' AND DocStatus IN ('IN','CO') AND mrp.DatePromised <=? " - +"AND mrp.M_Warehouse_ID =? AND M_Product_ID=? GROUP BY M_Product_ID, l.M_Warehouse_ID"); + sql.append(" WHERE o.DocStatus IN ('DR','IN') AND ol.DatePromised <= ? AND l.M_Warehouse_ID=? AND ol.M_Product_ID=? GROUP BY M_Product_ID"); BigDecimal qty = DB.getSQLValueBD(get_TrxName(), sql.toString(), new Object[]{p_DatePromised, p_M_Warehouse_ID, M_Product_ID}); // SQL may return no rows or null if (qty == null) @@ -385,6 +367,7 @@ public class DistributionRunOrders extends SvrProcess String msg = "No Parameter added"; // not translated throw new Exception(msg,CLogger.retrieveException()); } + // Execute Process MProcess worker = new MProcess(getCtx(),AD_Process_ID,get_TrxName()); worker.processIt(pi, Trx.get(get_TrxName(), true)); diff --git a/base/src/org/eevolution/process/MRP.java b/base/src/org/eevolution/process/MRP.java index febc9ab620..db33152754 100644 --- a/base/src/org/eevolution/process/MRP.java +++ b/base/src/org/eevolution/process/MRP.java @@ -262,9 +262,16 @@ public class MRP extends SvrProcess commit(); // Delete Requisition with Status Close from MRP Table - sql = "DELETE FROM PP_MRP WHERE OrderType = 'POR' AND DocStatus='CL' AND AD_Client_ID = " + AD_Client_ID + " AND AD_Org_ID=" + AD_Org_ID+ " AND M_Warehouse_ID="+M_Warehouse_ID + " AND S_Resource_ID="+S_Resource_ID; + sql = "DELETE FROM PP_MRP WHERE OrderType = 'POR' AND DocStatus IN ('CL','DR') AND AD_Client_ID = " + AD_Client_ID + " AND AD_Org_ID=" + AD_Org_ID+ " AND M_Warehouse_ID="+M_Warehouse_ID; DB.executeUpdateEx(sql, get_TrxName()); commit(); + + //Delete Requisition with Draft Status + + + String whereClause = "DocStatus IN ('CL','DR') AND AD_Client_ID=? AND AD_Org_ID=? AND M_Warehouse_ID=?"; + deletePO(MRequisition.Table_Name, whereClause, new Object[]{AD_Client_ID, AD_Org_ID, M_Warehouse_ID}); + commit(); // Delete Action Notice sql = "DELETE FROM AD_Note WHERE AD_Table_ID=? AND AD_Client_ID=? AND AD_Org_ID=?"; @@ -274,19 +281,17 @@ public class MRP extends SvrProcess if (p_IsRequiredDRP) { //Delete Distribution Order with Draft Status - String whereClause = "DocStatus='DR' AND AD_Client_ID=? AND AD_Org_ID=?" + whereClause = "DocStatus='DR' AND AD_Client_ID=? AND AD_Org_ID=?" +" AND EXISTS (SELECT 1 FROM DD_OrderLine ol INNER JOIN M_Locator l ON (l.M_Locator_ID=ol.M_LocatorTo_ID) " +" WHERE ol.DD_Order_ID=DD_Order.DD_Order_ID AND l.M_Warehouse_ID=?)"; deletePO(MDDOrder.Table_Name, whereClause, new Object[]{AD_Client_ID, AD_Org_ID, M_Warehouse_ID}); } //Delete Manufacturing Order with Draft Status - String whereClause = "DocStatus='DR' AND AD_Client_ID=? AND AD_Org_ID=? AND M_Warehouse_ID=? AND S_Resource_ID=?"; + whereClause = "DocStatus='DR' AND AD_Client_ID=? AND AD_Org_ID=? AND M_Warehouse_ID=? AND S_Resource_ID=?"; deletePO(MPPOrder.Table_Name, whereClause, new Object[]{AD_Client_ID, AD_Org_ID, M_Warehouse_ID, S_Resource_ID}); - //Delete Requisition with Draft Status - whereClause = "DocStatus='DR' AND AD_Client_ID=? AND AD_Org_ID=? AND M_Warehouse_ID=?"; - deletePO(MRequisition.Table_Name, whereClause, new Object[]{AD_Client_ID, AD_Org_ID, M_Warehouse_ID}); + } /************************************************************************** @@ -342,6 +347,9 @@ public class MRP extends SvrProcess String OrderType = rs.getString(MPPMRP.COLUMNNAME_OrderType); Timestamp DatePromised = rs.getTimestamp(MPPMRP.COLUMNNAME_DatePromised); Timestamp DateStartSchedule = rs.getTimestamp(MPPMRP.COLUMNNAME_DateStartSchedule); + if(DateStartSchedule != null) + BeforeDateStartSchedule = DateStartSchedule; + // if demand is a forecast and this is minor today then is ignore this QtyGrossReq if (MPPMRP.TYPEMRP_Demand.equals(TypeMRP) @@ -357,7 +365,7 @@ public class MRP extends SvrProcess //if exist QtyGrossReq of last Demand verify plan if (QtyGrossReqs.signum() != 0) { - calculatePlan(BeforePP_MRP_ID, product, QtyGrossReqs ,BeforeDateStartSchedule); + calculatePlan(AD_Org_ID, BeforePP_MRP_ID, product, QtyGrossReqs ,BeforeDateStartSchedule); QtyGrossReqs = Env.ZERO; } @@ -384,14 +392,13 @@ public class MRP extends SvrProcess // If No Product Planning found, go to next MRP record if (m_product_planning == null) continue; - - BeforeDateStartSchedule = DateStartSchedule; - BeforePP_MRP_ID = rs.getInt("PP_MRP_ID"); + + BeforePP_MRP_ID = rs.getInt(MPPMRP.COLUMNNAME_PP_MRP_ID); // Create Notice for Demand due if(DatePromised.compareTo(Today) < 0) { - createMRPNote("MRP-040", rs.getInt("PP_MRP_ID"), product); + createMRPNote("MRP-040", rs.getInt(MPPMRP.COLUMNNAME_PP_MRP_ID), product); } if (MPPProductPlanning.ORDER_POLICY_PeriodOrderQuantity.equals(m_product_planning.getOrder_Policy())) @@ -405,7 +412,8 @@ public class MRP extends SvrProcess } else { // if not then create new range for next period - calculatePlan(rs.getInt("PP_MRP_ID"),product, QtyGrossReqs ,POQDateStartSchedule); + BeforeDateStartSchedule = POQDateStartSchedule; + calculatePlan(AD_Org_ID,rs.getInt(MPPMRP.COLUMNNAME_PP_MRP_ID),product, QtyGrossReqs ,BeforeDateStartSchedule); QtyGrossReqs = rs.getBigDecimal(MPPMRP.COLUMNNAME_Qty); DatePromisedFrom = DatePromised; DatePromisedTo = TimeUtil.addDays(DatePromised, m_product_planning.getOrder_Period().intValue()); @@ -417,7 +425,8 @@ public class MRP extends SvrProcess else if (MPPProductPlanning.ORDER_POLICY_LoteForLote.equals(m_product_planning.getOrder_Policy())) { QtyGrossReqs = rs.getBigDecimal(MPPMRP.COLUMNNAME_Qty); - calculatePlan(rs.getInt("PP_MRP_ID"),product, QtyGrossReqs , rs.getTimestamp("DateStartSchedule")); + BeforeDateStartSchedule = rs.getTimestamp(MPPMRP.COLUMNNAME_DateStartSchedule); + calculatePlan(AD_Org_ID,rs.getInt(MPPMRP.COLUMNNAME_PP_MRP_ID),product,QtyGrossReqs,BeforeDateStartSchedule); continue; } } // end while @@ -425,7 +434,7 @@ public class MRP extends SvrProcess //if exist QtyGrossReq of last Demand after finish while verify plan if (QtyGrossReqs.signum() != 0) { - calculatePlan(BeforePP_MRP_ID , product, QtyGrossReqs ,BeforeDateStartSchedule); + calculatePlan(AD_Org_ID,BeforePP_MRP_ID , product, QtyGrossReqs ,BeforeDateStartSchedule); } DB.close(rs, pstmt); @@ -558,7 +567,7 @@ public class MRP extends SvrProcess * @param Qty Qty * @param DemandDateStartSchedule Demand Date Start Schedule */ - private void calculatePlan(int PP_MPR_ID , MProduct product , BigDecimal Qty, Timestamp DemandDateStartSchedule) + private void calculatePlan(int AD_Org_ID , int PP_MPR_ID , MProduct product , BigDecimal Qty, Timestamp DemandDateStartSchedule) { if (m_product_planning.isCreatePlan() == false) return; @@ -644,17 +653,17 @@ public class MRP extends SvrProcess // Distribution Order if(p_IsRequiredDRP && m_product_planning.getDD_NetworkDistribution_ID() > 0) { - createDDOrder(PP_MPR_ID, product, DemandDateStartSchedule); + createDDOrder(AD_Org_ID,PP_MPR_ID, product, DemandDateStartSchedule); } // Requisition else if (product.isPurchased()) // then create M_Requisition { - createRequisition(PP_MPR_ID, product, DemandDateStartSchedule); + createRequisition(AD_Org_ID,PP_MPR_ID, product, DemandDateStartSchedule); } // Manufacturing Order else if (product.isBOM()) { - createPPOrder(PP_MPR_ID, product, DemandDateStartSchedule); + createPPOrder(AD_Org_ID, PP_MPR_ID, product, DemandDateStartSchedule); } } // end for oqf } @@ -664,7 +673,7 @@ public class MRP extends SvrProcess } } - private void createDDOrder(int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule) + private void createDDOrder(int AD_Org_ID, int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule) { MDDNetworkDistribution network = MDDNetworkDistribution.get(getCtx(),m_product_planning.getDD_NetworkDistribution_ID()); @@ -786,7 +795,7 @@ public class MRP extends SvrProcess commit(); } - private void createRequisition(int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule) + private void createRequisition(int AD_Org_ID , int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule) { log.info("Create Requisition"); @@ -795,6 +804,7 @@ public class MRP extends SvrProcess + m_product_planning.getTransfertTime().intValue(); MRequisition req = new MRequisition(getCtx(),0, get_TrxName()); + req.setAD_Org_ID(AD_Org_ID); req.setAD_User_ID(m_product_planning.getPlanner_ID()); req.setDateRequired(TimeUtil.addDays(DemandDateStartSchedule, 0 - duration)); req.setDescription("Generate from MRP"); // TODO: add translation @@ -807,6 +817,7 @@ public class MRP extends SvrProcess MRequisitionLine reqline = new MRequisitionLine(req); reqline.setLine(10); + reqline.setAD_Org_ID(AD_Org_ID); reqline.setM_Product_ID(m_product_planning.getM_Product_ID()); reqline.setPrice(); reqline.setPriceActual(Env.ZERO); @@ -831,7 +842,7 @@ public class MRP extends SvrProcess commit(); } - private void createPPOrder(int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule) + private void createPPOrder(int AD_Org_ID, int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule) { log.info("PP_Product_BOM_ID" + m_product_planning.getPP_Product_BOM_ID() + "AD_Workflow_ID" + m_product_planning.getAD_Workflow_ID()); if (m_product_planning.getPP_Product_BOM_ID() == 0 || m_product_planning.getAD_Workflow_ID() == 0) @@ -841,6 +852,7 @@ public class MRP extends SvrProcess log.info("Manufacturing Order Create"); MPPOrder order = new MPPOrder(getCtx(), 0, get_TrxName()); + order.setAD_Org_ID(AD_Org_ID); order.setLine(10); order.setC_DocTypeTarget_ID(DocTypeMO); order.setC_DocType_ID(DocTypeMO); diff --git a/base/src/org/eevolution/process/MRPUpdate.java b/base/src/org/eevolution/process/MRPUpdate.java index 9025d637ae..f9fa06ef60 100644 --- a/base/src/org/eevolution/process/MRPUpdate.java +++ b/base/src/org/eevolution/process/MRPUpdate.java @@ -177,7 +177,7 @@ public class MRPUpdate extends SvrProcess executeUpdate("DELETE FROM PP_MRP WHERE "+whereClause, params); //Delete Material Requisitions Document - whereClause = "DocStatus='DR' AND AD_Client_ID=? AND AD_Org_ID=? AND M_Warehouse_ID=?"; + whereClause = "DocStatus IN ('DR','CL') AND AD_Client_ID=? AND AD_Org_ID=? AND M_Warehouse_ID=?"; deletePO(MRequisition.Table_Name, whereClause, params); // Delete Distribution Orders: deletePO(MDDOrder.Table_Name, whereClause, params);