diff --git a/base/src/org/eevolution/model/MPPMRP.java b/base/src/org/eevolution/model/MPPMRP.java index a0163abd93..27a57fa15a 100644 --- a/base/src/org/eevolution/model/MPPMRP.java +++ b/base/src/org/eevolution/model/MPPMRP.java @@ -180,7 +180,9 @@ public class MPPMRP extends X_PP_MRP if(MDocType.DOCSUBTYPESO_StandardOrder.equals(DocSubTypeSO) || !o.isSOTrx()) { - if((o.getDocStatus().equals(MOrder.DOCSTATUS_InProgress) || o.getDocStatus().equals(MOrder.DOCSTATUS_Completed)) || !o.isSOTrx()) + if((o.getDocStatus().equals(MOrder.DOCSTATUS_InProgress) + || o.getDocStatus().equals(MOrder.DOCSTATUS_Completed)) + || !o.isSOTrx()) { for(MOrderLine line : o.getLines()) { @@ -580,7 +582,7 @@ public class MPPMRP extends X_PP_MRP { final String sql = "SELECT SUM(bomQtyOnHand (M_Product_ID,?,0)) AS OnHand FROM M_Product" +" WHERE AD_Client_ID=? AND M_Product_ID=?"; - BigDecimal QtyOnHand = DB.getSQLValueBD(trxName, sql, new Object[]{M_Warehouse_ID,Env.getAD_Client_ID(ctx),M_Product_ID}); + BigDecimal QtyOnHand = DB.getSQLValueBDEx(trxName, sql, new Object[]{M_Warehouse_ID,Env.getAD_Client_ID(ctx),M_Product_ID}); if (QtyOnHand == null) QtyOnHand = Env.ZERO; return QtyOnHand; @@ -599,7 +601,7 @@ public class MPPMRP extends X_PP_MRP { StringBuffer sql = new StringBuffer("SELECT SUM(Qty) FROM PP_MRP WHERE TypeMRP=? AND DocStatus IN ('IN','CO')"); sql.append(" AND OrderType IN ('SOO','MOP','DOO') AND AD_Client_ID= ? AND DatePromised <=? AND M_Warehouse_ID =? AND M_Product_ID=?"); - BigDecimal qty = DB.getSQLValueBD(trxName, sql.toString(), new Object[]{MPPMRP.TYPEMRP_Demand,Env.getAD_Client_ID(ctx), To , M_Warehouse_ID, M_Product_ID}); + BigDecimal qty = DB.getSQLValueBDEx(trxName, sql.toString(), new Object[]{MPPMRP.TYPEMRP_Demand,Env.getAD_Client_ID(ctx), To , M_Warehouse_ID, M_Product_ID}); // SQL may return no rows or null if (qty == null) return Env.ZERO; @@ -633,7 +635,7 @@ public class MPPMRP extends X_PP_MRP { StringBuffer sql = new StringBuffer("SELECT SUM(Qty) FROM PP_MRP WHERE TypeMRP='S' AND DocStatus IN ('IN','CO')"); sql.append(" AND OrderType IN ('POO','MOP','DOO') AND AD_Client_ID= ? AND DatePromised <=? AND M_Warehouse_ID =? AND M_Product_ID=?"); - BigDecimal qty = DB.getSQLValueBD(trxName, sql.toString(), new Object[]{Env.getAD_Client_ID(ctx), To , M_Warehouse_ID, M_Product_ID}); + BigDecimal qty = DB.getSQLValueBDEx(trxName, sql.toString(), new Object[]{Env.getAD_Client_ID(ctx), To , M_Warehouse_ID, M_Product_ID}); // SQL may return no rows or null if (qty == null) return Env.ZERO; @@ -667,7 +669,7 @@ public class MPPMRP extends X_PP_MRP // final String sql = "SELECT MAX("+MProduct.COLUMNNAME_LowLevel+") FROM M_Product" +" WHERE AD_Client_ID=? AND "+MProduct.COLUMNNAME_LowLevel+" IS NOT NULL"; - int LowLevel = DB.getSQLValue(trxName, sql, AD_Client_ID); + int LowLevel = DB.getSQLValueEx(trxName, sql, AD_Client_ID); return LowLevel + 1; } diff --git a/base/src/org/eevolution/model/MPPOrder.java b/base/src/org/eevolution/model/MPPOrder.java index c3ee644742..b53c567bd6 100644 --- a/base/src/org/eevolution/model/MPPOrder.java +++ b/base/src/org/eevolution/model/MPPOrder.java @@ -300,30 +300,30 @@ public class MPPOrder extends X_PP_Order implements DocAction if( is_ValueChanged(MPPOrder.COLUMNNAME_QtyEntered) && getDocStatus().equals(MPPOrder.DOCSTATUS_Drafted)) { - for(MPPOrderBOMLine line : getLines()) - { - line.deleteEx(true); - } - MPPOrderBOM bom = getMPPOrderBOM(); - if(bom != null) - bom.deleteEx(true, get_TrxName()); - - MPPOrderWorkflow PP_Order_Workflow = getMPPOrderWorkflow(); - if (PP_Order_Workflow != null) + for(MPPOrderBOMLine line : getLines()) + { + line.deleteEx(true); + } + MPPOrderBOM bom = getMPPOrderBOM(); + if(bom != null) + bom.deleteEx(true, get_TrxName()); + + MPPOrderWorkflow PP_Order_Workflow = getMPPOrderWorkflow(); + if (PP_Order_Workflow != null) + { + PP_Order_Workflow.setPP_Order_Node_ID(0); + PP_Order_Workflow.saveEx(); + for(MPPOrderNode node : PP_Order_Workflow.getNodes(true, getAD_Client_ID())) { - PP_Order_Workflow.setPP_Order_Node_ID(0); - PP_Order_Workflow.saveEx(); - for(MPPOrderNode node : PP_Order_Workflow.getNodes(true, getAD_Client_ID())) - { - for(MPPOrderNodeNext next : node.getTransitions(getAD_Client_ID())) - { - next.deleteEx(true); - } - node.deleteEx(true); - } - PP_Order_Workflow.deleteEx(true); - } - explotion(); + for(MPPOrderNodeNext next : node.getTransitions(getAD_Client_ID())) + { + next.deleteEx(true); + } + node.deleteEx(true); + } + PP_Order_Workflow.deleteEx(true); + } + explotion(); } if( is_ValueChanged(MPPOrder.COLUMNNAME_QtyEntered) && !getDocStatus().equals(MPPOrder.DOCSTATUS_Drafted)) { diff --git a/base/src/org/eevolution/model/MPPProductPlanning.java b/base/src/org/eevolution/model/MPPProductPlanning.java index a386609d39..ad2642b6ab 100644 --- a/base/src/org/eevolution/model/MPPProductPlanning.java +++ b/base/src/org/eevolution/model/MPPProductPlanning.java @@ -176,13 +176,14 @@ public class MPPProductPlanning extends X_PP_Product_Planning if (!CLogMgt.isLevelInfo()) return; log.info("------------ Planning Data --------------"); + log.info(" Create Plan: " + isCreatePlan()); log.info(" Resource: " + getS_Resource_ID()); + log.info(" M_Product_ID: " + getM_Product_ID()); log.info(" BOM: " + getPP_Product_BOM_ID()); - log.info(" Network Distribution: " + getDD_NetworkDistribution_ID()); log.info(" Workflow: " + getAD_Workflow_ID()); + log.info(" Network Distribution: " + getDD_NetworkDistribution_ID()); log.info("Delivery Time Promised: " + getDeliveryTime_Promised()); log.info(" TransfertTime: " + getTransfertTime ()); - log.info(" Create Plan: " + isCreatePlan()); log.info(" Max Order: " + getOrder_Max()); log.info(" Min Order: " + getOrder_Min()); log.info(" Pack Order: " + getOrder_Pack()); @@ -191,7 +192,6 @@ public class MPPProductPlanning extends X_PP_Product_Planning log.info(" Order Policy: " + getOrder_Policy()); log.info(" Warehouse: " + getM_Warehouse_ID()); log.info(" Planner: " + getPlanner_ID()); - log.info(" PP_Product_BOM_ID: " + getPP_Product_BOM_ID()); } } // Product Data Planning diff --git a/base/src/org/eevolution/process/MRP.java b/base/src/org/eevolution/process/MRP.java index 29815b39d7..eb0918d4ca 100644 --- a/base/src/org/eevolution/process/MRP.java +++ b/base/src/org/eevolution/process/MRP.java @@ -99,8 +99,8 @@ public class MRP extends SvrProcess private int DocTypeMO = 0; private int DocTypeDO = 0; - private static CCache dd_order_id_cache = new CCache(MDDOrder.COLUMNNAME_DD_Order_ID, 50); - private static CCache partner_cache = new CCache(MBPartner.Table_Name, 50); + private static CCache dd_order_id_cache = new CCache(MDDOrder.COLUMNNAME_DD_Order_ID, 50); + private static CCache partner_cache = new CCache(MBPartner.Table_Name, 50); @@ -583,7 +583,7 @@ public class MRP extends SvrProcess AD_Client_ID, AD_Org_ID, m_product_planning.getM_Warehouse_ID() }; - QtyScheduledReceipts = DB.getSQLValueBD(null, "SELECT COALESCE(SUM(Qty),0) FROM PP_MRP WHERE "+whereClause, params); + QtyScheduledReceipts = DB.getSQLValueBDEx(null, "SELECT COALESCE(SUM(Qty),0) FROM PP_MRP WHERE "+whereClause, params); DB.executeUpdateEx("UPDATE PP_MRP SET IsAvailable = 'N' WHERE "+whereClause, params, get_TrxName()); log.info("QtyScheduledReceipts :" + QtyScheduledReceipts); @@ -615,10 +615,11 @@ public class MRP extends SvrProcess QtyNetReqs = ((QtyScheduledReceipts).add(QtyProjectOnHand)).subtract(QtyGrossReqs); - log.info(" Planning Data :" + product.getName() + " Create Plan:" + m_product_planning.isCreatePlan() + " OrderPlan:" + QtyPlanned); + m_product_planning.dump(); + log.info(" Product:" + product.getName()); log.info(" Demand Date Start Schedule:" + DemandDateStartSchedule); - log.info(" Delivery Time Promised:" + m_product_planning.getDeliveryTime_Promised()); log.info(" DatePromisedFrom:" + DatePromisedFrom + " DatePromisedTo:" + DatePromisedTo); + log.info(" Qty Planned:" + QtyPlanned); log.info(" Qty Scheduled Receipts:" + QtyScheduledReceipts); log.info(" QtyProjectOnHand:" + QtyProjectOnHand); log.info(" QtyGrossReqs:" + QtyGrossReqs); @@ -697,6 +698,10 @@ public class MRP extends SvrProcess { createPPOrder(AD_Org_ID,PP_MPR_ID, product, DemandDateStartSchedule); } + else + { + // TODO: throw error ? + } } // end for oqf } else @@ -970,16 +975,17 @@ public class MRP extends SvrProcess String key = AD_Org_ID+"#"+M_Warehouse_ID+"#"+M_Shipper_ID+"#"+C_BPartner_ID+"#"+DatePromised+"DR"; Integer order_id = dd_order_id_cache.get(key.toString()); if ( order_id == null) - { - order_id = DB.getSQLValue(get_TrxName(), "SELECT DD_Order_ID FROM DD_Order WHERE AD_Org_ID=? AND M_Warehouse_ID=? AND M_Shipper_ID = ? AND C_BPartner_ID=? AND DatePromised=? AND DocStatus=?", - new Object[]{ AD_Org_ID, - M_Warehouse_ID, - M_Shipper_ID, - C_BPartner_ID, - DatePromised, - "DR"}); - if(order_id > 0) - dd_order_id_cache.put(key,order_id); + { + String sql = "SELECT DD_Order_ID FROM DD_Order WHERE AD_Org_ID=? AND M_Warehouse_ID=? AND M_Shipper_ID = ? AND C_BPartner_ID=? AND DatePromised=? AND DocStatus=?"; + order_id = DB.getSQLValueEx(get_TrxName(), sql, + new Object[]{ AD_Org_ID, + M_Warehouse_ID, + M_Shipper_ID, + C_BPartner_ID, + DatePromised, + MDDOrder.DOCSTATUS_Drafted }); + if(order_id > 0) + dd_order_id_cache.put(key,order_id); } return order_id; }