fix some bug and this
[ 2227901 ] MRP (Calculate Material Plan) fails if resource is empty http://sourceforge.net/tracker/?func=detail&atid=879332&aid=2227901&group_id=176962
This commit is contained in:
parent
d3c57900f1
commit
29dcdee86e
|
@ -89,7 +89,11 @@ public class MRP extends SvrProcess
|
||||||
private Timestamp DatePromisedFrom = null;
|
private Timestamp DatePromisedFrom = null;
|
||||||
private Timestamp DatePromisedTo = null;
|
private Timestamp DatePromisedTo = null;
|
||||||
private Timestamp Today = new Timestamp (System.currentTimeMillis());
|
private Timestamp Today = new Timestamp (System.currentTimeMillis());
|
||||||
private Timestamp Date_Planning_Horizon = null;
|
private Timestamp Planning_Horizon = null;
|
||||||
|
private int count_MO = 0;
|
||||||
|
private int count_MR = 0;
|
||||||
|
private int count_DO = 0;
|
||||||
|
private int count_Msg = 0;
|
||||||
|
|
||||||
private int DocTypeReq = 0;
|
private int DocTypeReq = 0;
|
||||||
private int DocTypeMO = 0;
|
private int DocTypeMO = 0;
|
||||||
|
@ -123,8 +127,6 @@ public class MRP extends SvrProcess
|
||||||
else if (name.equals("S_Resource_ID"))
|
else if (name.equals("S_Resource_ID"))
|
||||||
{
|
{
|
||||||
p_S_Resource_ID = ((BigDecimal)para[i].getParameter()).intValue();
|
p_S_Resource_ID = ((BigDecimal)para[i].getParameter()).intValue();
|
||||||
MResource r = MResource.get(getCtx(),p_S_Resource_ID);
|
|
||||||
Date_Planning_Horizon = TimeUtil.addDays(Today, r.getPlanningHorizon());
|
|
||||||
}
|
}
|
||||||
else if (name.equals("M_Warehouse_ID"))
|
else if (name.equals("M_Warehouse_ID"))
|
||||||
{
|
{
|
||||||
|
@ -207,6 +209,7 @@ public class MRP extends SvrProcess
|
||||||
for(MResource plant : plants)
|
for(MResource plant : plants)
|
||||||
{
|
{
|
||||||
log.info("Run MRP to Plant: " + plant.getName());
|
log.info("Run MRP to Plant: " + plant.getName());
|
||||||
|
Planning_Horizon = TimeUtil.addDays(Today, plant.getPlanningHorizon());
|
||||||
parameters = new ArrayList<Object>();
|
parameters = new ArrayList<Object>();
|
||||||
whereClause = new StringBuffer("AD_Client_ID=?");
|
whereClause = new StringBuffer("AD_Client_ID=?");
|
||||||
parameters.add(m_AD_Client_ID);
|
parameters.add(m_AD_Client_ID);
|
||||||
|
@ -247,6 +250,12 @@ public class MRP extends SvrProcess
|
||||||
}
|
}
|
||||||
result = result + "<br>finish MRP to Organization " +organization.getName();
|
result = result + "<br>finish MRP to Organization " +organization.getName();
|
||||||
}
|
}
|
||||||
|
result = result + "<br> " +Msg.translate(getCtx(), "Created");
|
||||||
|
result = result + "<br> " ;
|
||||||
|
result = result + "<br> " +Msg.translate(getCtx(), "PP_Order_ID")+":"+count_MO;
|
||||||
|
result = result + "<br> " +Msg.translate(getCtx(), "DD_Order_ID")+":"+count_DO;
|
||||||
|
result = result + "<br> " +Msg.translate(getCtx(), "M_Requisition_ID")+":"+count_MR;
|
||||||
|
result = result + "<br> " +Msg.translate(getCtx(), "AD_Note_ID")+":"+count_MR;
|
||||||
result = result + "<br>finish MRP to Plant " +plant.getName();
|
result = result + "<br>finish MRP to Plant " +plant.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,7 +353,7 @@ public class MRP extends SvrProcess
|
||||||
pstmt.setInt(2, AD_Client_ID);
|
pstmt.setInt(2, AD_Client_ID);
|
||||||
pstmt.setInt(3, AD_Org_ID);
|
pstmt.setInt(3, AD_Org_ID);
|
||||||
pstmt.setInt(4, M_Warehouse_ID);
|
pstmt.setInt(4, M_Warehouse_ID);
|
||||||
pstmt.setTimestamp(5, Date_Planning_Horizon);
|
pstmt.setTimestamp(5, Planning_Horizon);
|
||||||
pstmt.setInt(6, level);
|
pstmt.setInt(6, level);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
while (rs.next())
|
while (rs.next())
|
||||||
|
@ -414,6 +423,8 @@ public class MRP extends SvrProcess
|
||||||
{
|
{
|
||||||
QtyGrossReqs = QtyGrossReqs.add(rs.getBigDecimal(MPPMRP.COLUMNNAME_Qty));
|
QtyGrossReqs = QtyGrossReqs.add(rs.getBigDecimal(MPPMRP.COLUMNNAME_Qty));
|
||||||
log.info("Accumulation QtyGrossReqs:" + QtyGrossReqs);
|
log.info("Accumulation QtyGrossReqs:" + QtyGrossReqs);
|
||||||
|
log.info("DatePromised:" + DatePromised);
|
||||||
|
log.info("DatePromisedTo:" + DatePromisedTo);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -440,8 +451,17 @@ public class MRP extends SvrProcess
|
||||||
//if exist QtyGrossReq of last Demand after finish while verify plan
|
//if exist QtyGrossReq of last Demand after finish while verify plan
|
||||||
if (QtyGrossReqs.signum() != 0)
|
if (QtyGrossReqs.signum() != 0)
|
||||||
{
|
{
|
||||||
|
if (MPPProductPlanning.ORDER_POLICY_PeriodOrderQuantity.equals(m_product_planning.getOrder_Policy()))
|
||||||
|
{
|
||||||
|
BeforeDateStartSchedule = POQDateStartSchedule;
|
||||||
calculatePlan(AD_Org_ID,BeforePP_MRP_ID , product, QtyGrossReqs ,BeforeDateStartSchedule);
|
calculatePlan(AD_Org_ID,BeforePP_MRP_ID , product, QtyGrossReqs ,BeforeDateStartSchedule);
|
||||||
}
|
}
|
||||||
|
else if (MPPProductPlanning.ORDER_POLICY_LoteForLote.equals(m_product_planning.getOrder_Policy()))
|
||||||
|
{
|
||||||
|
calculatePlan(AD_Org_ID,BeforePP_MRP_ID , product, QtyGrossReqs ,BeforeDateStartSchedule);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
DB.close(rs, pstmt);
|
DB.close(rs, pstmt);
|
||||||
} // end for
|
} // end for
|
||||||
|
@ -473,7 +493,7 @@ public class MRP extends SvrProcess
|
||||||
DatePromisedFrom = null;
|
DatePromisedFrom = null;
|
||||||
if (pp != null)
|
if (pp != null)
|
||||||
{
|
{
|
||||||
m_product_planning = new MPPProductPlanning(getCtx(), 0 , "MRP");
|
m_product_planning = new MPPProductPlanning(getCtx(), 0 , null);
|
||||||
MPPProductPlanning.copyValues(pp, m_product_planning);
|
MPPProductPlanning.copyValues(pp, m_product_planning);
|
||||||
//Find the BOM to this Product
|
//Find the BOM to this Product
|
||||||
if (m_product_planning.getPP_Product_BOM_ID() <= 0 && product.isBOM())
|
if (m_product_planning.getPP_Product_BOM_ID() <= 0 && product.isBOM())
|
||||||
|
@ -797,7 +817,7 @@ public class MRP extends SvrProcess
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
count_DO += 1;
|
||||||
commit();
|
commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -846,6 +866,7 @@ public class MRP extends SvrProcess
|
||||||
|
|
||||||
}
|
}
|
||||||
commit();
|
commit();
|
||||||
|
count_MR += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createPPOrder(int AD_Org_ID, int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule)
|
private void createPPOrder(int AD_Org_ID, int PP_MRP_ID, MProduct product, Timestamp DemandDateStartSchedule)
|
||||||
|
@ -894,6 +915,8 @@ public class MRP extends SvrProcess
|
||||||
order.saveEx();
|
order.saveEx();
|
||||||
commit();
|
commit();
|
||||||
|
|
||||||
|
count_MO += 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deletePO(String tableName, String whereClause, Object[] params)
|
private void deletePO(String tableName, String whereClause, Object[] params)
|
||||||
|
@ -932,6 +955,7 @@ public class MRP extends SvrProcess
|
||||||
note.saveEx();
|
note.saveEx();
|
||||||
commit();
|
commit();
|
||||||
log.info(code+": "+note.getTextMsg());
|
log.info(code+": "+note.getTextMsg());
|
||||||
|
count_Msg += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getDDOrder_ID(int M_Shipper_ID,int C_BPartner_ID, Timestamp DatePromised)
|
private int getDDOrder_ID(int M_Shipper_ID,int C_BPartner_ID, Timestamp DatePromised)
|
||||||
|
|
Loading…
Reference in New Issue