diff --git a/org.adempiere.base.process/src/org/compiere/process/ProjectGenPO.java b/org.adempiere.base.process/src/org/compiere/process/ProjectGenPO.java index f912a4835c..a5c1795d4c 100644 --- a/org.adempiere.base.process/src/org/compiere/process/ProjectGenPO.java +++ b/org.adempiere.base.process/src/org/compiere/process/ProjectGenPO.java @@ -40,6 +40,8 @@ public class ProjectGenPO extends SvrProcess /** Project Parameter */ private int m_C_Project_ID = 0; /** Opt Project Line Parameter */ + private int m_C_ProjectPhase_ID = 0; + /** Opt Project Line Parameter */ private int m_C_ProjectLine_ID = 0; /** Consolidate Document */ private boolean m_ConsolidateDocument = true; @@ -59,6 +61,8 @@ public class ProjectGenPO extends SvrProcess ; else if (name.equals("C_Project_ID")) m_C_Project_ID = ((BigDecimal)para[i].getParameter()).intValue(); + else if (name.equals("C_ProjectPhase_ID")) + m_C_ProjectPhase_ID = ((BigDecimal)para[i].getParameter()).intValue(); else if (name.equals("C_ProjectLine_ID")) m_C_ProjectLine_ID = ((BigDecimal)para[i].getParameter()).intValue(); else if (name.equals("ConsolidateDocument")) @@ -82,6 +86,13 @@ public class ProjectGenPO extends SvrProcess MProject project = new MProject (getCtx(), projectLine.getC_Project_ID(), get_TrxName()); createPO (project, projectLine); } + else if (m_C_ProjectPhase_ID != 0) + { + MProject project = new MProject (getCtx(), m_C_Project_ID, get_TrxName()); + MProjectLine[] lines = project.getPhaseLines(m_C_ProjectPhase_ID); + for (int i = 0; i < lines.length; i++) + createPO (project, lines[i]); + } else { MProject project = new MProject (getCtx(), m_C_Project_ID, get_TrxName()); @@ -187,7 +198,12 @@ public class ProjectGenPO extends SvrProcess // update ProjectLine projectLine.setC_OrderPO_ID(order.getC_Order_ID()); projectLine.saveEx(); - addLog (projectLine.getLine(), null, projectLine.getPlannedQty(), order.getDocumentNo()); + addLog (order.getC_Order_ID(), + order.getDateOrdered(), + new BigDecimal(orderLine.getLine()), + "Order:"+order.getDocumentNo()+" Line:"+orderLine.getLine(), + order.get_Table_ID(), + order.getC_Order_ID()); } // createPOfromProjectLine } // ProjectGenPO diff --git a/org.adempiere.base/src/org/compiere/model/MProject.java b/org.adempiere.base/src/org/compiere/model/MProject.java index 19d33def5b..9c5a723d04 100644 --- a/org.adempiere.base/src/org/compiere/model/MProject.java +++ b/org.adempiere.base/src/org/compiere/model/MProject.java @@ -214,6 +214,23 @@ public class MProject extends X_C_Project return retValue; } // getLines + /************************************************************************** + * Get Project Lines from a Phase + * @return Array of lines from a Phase + */ + public MProjectLine[] getPhaseLines(int phase) + { + final String whereClause = "C_Project_ID=? and C_ProjectPhase_ID=?"; + List list = new Query(getCtx(), I_C_ProjectLine.Table_Name, whereClause, get_TrxName()) + .setParameters(getC_Project_ID(), phase) + .setOrderBy("Line") + .list(); + // + MProjectLine[] retValue = new MProjectLine[list.size()]; + list.toArray(retValue); + return retValue; + } // getPhaseLines + /** * Get Project Issues * @return Array of issues