delete org.eevolution.process.RequisitionPOCreate because is not used nowhere

This commit is contained in:
teo_sarca 2008-08-25 18:34:46 +00:00
parent 26b5f8ddee
commit c9c38dfe6d
1 changed files with 0 additions and 387 deletions

View File

@ -1,387 +0,0 @@
/******************************************************************************
* Product: Adempiere ERP & CRM Smart Business Solution *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. This program is distributed in the hope *
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* For the text or an alternative of this public license, you may reach us *
* Copyright (C) 2003-2007 e-Evolution,SC. All Rights Reserved. *
* Contributor(s): Victor Perez www.e-evolution.com *
*****************************************************************************/
package org.eevolution.process;
import java.sql.*;
import java.util.logging.*;
import org.compiere.model.*;
import org.compiere.process.*;
import org.compiere.util.*;
/**
* Create PO from Requisition
*
*
* @author CreateProductPlanning
* @version $Id: RequisitionPOCreate.java,v 1.4 2006/01/21 02:23:37 vpj-cd Exp $
*/
public class RequisitionPOCreate extends SvrProcess
{
/** Org */
private int p_AD_Org_ID = 0;
/** Warehouse */
private int p_M_Warehouse_ID = 0;
/** Doc Date From */
private Timestamp p_DateDoc_From;
/** Doc Date To */
private Timestamp p_DateDoc_To;
/** Doc Date From */
private Timestamp p_DateRequired_From;
/** Doc Date To */
private Timestamp p_DateRequired_To;
/** Priority */
private String p_PriorityRule = null;
/** User */
private int p_AD_User_ID = 0;
/** Product */
private int p_M_Product_ID = 0;
/** Requisition */
private int p_M_Requisition_ID = 0;
/** Consolidate */
private boolean p_ConsolidateDocument = false;
/** Order */
private MOrder m_order = null;
/** Order Line */
private MOrderLine m_orderLine = null;
/**
* Prepare - e.g., get Parameters.
*/
protected void prepare()
{
ProcessInfoParameter[] para = getParameter();
for (int i = 0; i < para.length; i++)
{
String name = para[i].getParameterName();
if (para[i].getParameter() == null)
;
else if (name.equals("AD_Org_ID"))
p_AD_Org_ID = para[i].getParameterAsInt();
else if (name.equals("M_Warehouse_ID"))
p_M_Warehouse_ID = para[i].getParameterAsInt();
else if (name.equals("DateDoc"))
{
p_DateDoc_From = (Timestamp)para[i].getParameter();
p_DateDoc_To = (Timestamp)para[i].getParameter_To();
}
else if (name.equals("DateRequired"))
{
p_DateRequired_From = (Timestamp)para[i].getParameter();
p_DateRequired_To = (Timestamp)para[i].getParameter_To();
}
else if (name.equals("PriorityRule"))
p_PriorityRule = (String)para[i].getParameter();
else if (name.equals("AD_User_ID"))
p_AD_User_ID = para[i].getParameterAsInt();
else if (name.equals("M_Product_ID"))
p_M_Product_ID = para[i].getParameterAsInt();
else if (name.equals("M_Requisition_ID"))
p_M_Requisition_ID = para[i].getParameterAsInt();
else if (name.equals("ConsolidateDocument"))
p_ConsolidateDocument = "Y".equals(para[i].getParameter());
else
log.log(Level.SEVERE, "Unknown Parameter: " + name);
}
} // prepare
/**
* Process
* @return info
* @throws Exception
*/
protected String doIt() throws Exception
{
// Specific
if (p_M_Requisition_ID != 0)
{
log.info("M_Requisition_ID=" + p_M_Requisition_ID);
MRequisition req = new MRequisition(getCtx(), p_M_Requisition_ID, get_TrxName());
if (!MRequisition.DOCSTATUS_Completed.equals(req.getDocStatus()))
throw new AdempiereUserError("@DocStatus@ = " + req.getDocStatus());
MRequisitionLine[] lines = req.getLines();
for (int i = 0; i < lines.length; i++)
{
if (lines[i].getC_OrderLine_ID() == 0)
process (lines[i]);
}
closeOrder();
return "";
} // single Requisition
//
log.info("AD_Org_ID=" + p_AD_Org_ID
+ ", M_Warehouse_ID=" + p_M_Warehouse_ID
+ ", DateDoc=" + p_DateDoc_From + "/" + p_DateDoc_To
+ ", DateRequired=" + p_DateRequired_From + "/" + p_DateRequired_To
+ ", PriorityRule=" + p_PriorityRule
+ ", AD_User_ID=" + p_AD_User_ID
+ ", M_Product_ID=" + p_M_Product_ID
+ ", ConsolidateDocument" + p_ConsolidateDocument);
StringBuffer sql = new StringBuffer("SELECT * FROM M_RequisitionLine rl ")
.append("WHERE rl.C_OrderLine_ID IS NULL");
if (p_AD_Org_ID != 0)
sql.append(" AND AD_Org_ID=?");
if (p_M_Product_ID != 0)
sql.append(" AND M_Product_ID=?");
// Requisition Header
sql.append("AND EXISTS (SELECT * FROM M_Requisition r WHERE rl.M_Requisition_ID=r.M_Requisition_ID")
.append(" AND r.DocStatus='CO'");
if (p_M_Warehouse_ID != 0)
sql.append(" AND r.M_Warehouse_ID=?");
//
if (p_DateDoc_From != null && p_DateDoc_To != null)
sql.append(" AND r.DateDoc BETWEEN ? AND ?");
else if (p_DateDoc_From != null)
sql.append(" AND r.DateDoc => ?");
else if (p_DateDoc_To != null)
sql.append(" AND r.DateDoc <= ?");
//
if (p_DateRequired_From != null && p_DateRequired_To != null)
sql.append(" AND r.DateRequired BETWEEN ? AND ?");
else if (p_DateRequired_From != null)
sql.append(" AND r.DateRequired => ?");
else if (p_DateRequired_To != null)
sql.append(" AND r.DateRequired <= ?");
//
if (p_PriorityRule != null)
sql.append(" AND r.PriorityRule => ?");
if (p_AD_User_ID != 0)
sql.append(" AND r.AD_User_ID=?");
//
sql.append(") ORDER BY ");
if (!p_ConsolidateDocument)
sql.append("M_Requisition_ID, ");
sql.append("M_Product_ID, C_Charge_ID, M_AttributeSetInstance_ID");
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement (sql.toString(), get_TrxName());
int index = 1;
if (p_AD_Org_ID != 0)
pstmt.setInt (index++, p_AD_Org_ID);
if (p_M_Product_ID != 0)
pstmt.setInt (index++, p_M_Product_ID);
if (p_M_Warehouse_ID != 0)
pstmt.setInt (index++, p_M_Warehouse_ID);
if (p_DateDoc_From != null && p_DateDoc_To != null)
{
pstmt.setTimestamp(index++, p_DateDoc_From);
pstmt.setTimestamp(index++, p_DateDoc_To);
}
else if (p_DateDoc_From != null)
pstmt.setTimestamp(index++, p_DateDoc_From);
else if (p_DateDoc_To != null)
pstmt.setTimestamp(index++, p_DateDoc_To);
if (p_DateRequired_From != null && p_DateRequired_To != null)
{
pstmt.setTimestamp(index++, p_DateRequired_From);
pstmt.setTimestamp(index++, p_DateRequired_To);
}
else if (p_DateRequired_From != null)
pstmt.setTimestamp(index++, p_DateRequired_From);
else if (p_DateRequired_To != null)
pstmt.setTimestamp(index++, p_DateRequired_To);
if (p_PriorityRule != null)
pstmt.setString(index++, p_PriorityRule);
if (p_AD_User_ID != 0)
pstmt.setInt (index++, p_AD_User_ID);
ResultSet rs = pstmt.executeQuery ();
while (rs.next ())
{
process (new MRequisitionLine (getCtx(), rs, get_TrxName()));
}
rs.close ();
pstmt.close ();
pstmt = null;
}
catch (Exception e)
{
log.log (Level.SEVERE, sql.toString(), e);
}
try
{
if (pstmt != null)
pstmt.close ();
pstmt = null;
}
catch (Exception e)
{
pstmt = null;
}
closeOrder();
return "";
} // doit
private int m_M_Requisition_ID = 0;
private int m_M_Product_ID = 0;
private int m_M_AttributeSetInstance_ID = 0;
/** BPartner */
private MBPartner m_bpartner = null;
/**
* Process Line
* @param rLine request line
*/
private void process (MRequisitionLine rLine) throws Exception
{
if (rLine.getM_Product_ID() == 0 && rLine.getC_Charge_ID() == 0)
{
log.warning("Ignored Line" + rLine.getLine()
+ " " + rLine.getDescription()
+ " - " + rLine.getLineNetAmt());
return;
}
if (!p_ConsolidateDocument
&& rLine.getM_Requisition_ID() != m_M_Requisition_ID)
closeOrder();
if (m_orderLine == null
|| rLine.getM_Product_ID() != m_M_Product_ID
|| rLine.getM_AttributeSetInstance_ID() != m_M_AttributeSetInstance_ID
|| rLine.getC_Charge_ID() != 0) // single line per charge
newLine(rLine);
// Update Order Line
m_orderLine.setQty(m_orderLine.getQtyOrdered().add(rLine.getQty()));
// Update Requisition Line
rLine.setC_OrderLine_ID(m_orderLine.getC_OrderLine_ID());
if (!rLine.save())
throw new AdempiereSystemError("Cannot update Request Line");
} // process
/**
* Create new Order
* @param rLine request line
*/
private void newOrder(MRequisitionLine rLine, int C_BPartner_ID) throws Exception
{
if (m_order != null)
closeOrder();
// BPartner
if (m_bpartner == null || C_BPartner_ID != m_bpartner.getC_BPartner_ID())
m_bpartner = new MBPartner (getCtx(), C_BPartner_ID, null);
// Order
m_order = new MOrder(getCtx(), 0, get_TrxName());
m_order.setIsSOTrx(false);
m_order.setC_DocTypeTarget_ID();
m_order.setBPartner(m_bpartner);
// default po document type
if (!p_ConsolidateDocument)
m_order.setDescription(Msg.getElement(getCtx(), "M_Requisition_ID")
+ ": " + rLine.getParent().getDocumentNo());
// Prepare Save
m_M_Requisition_ID = rLine.getM_Requisition_ID();
if (!m_order.save())
throw new AdempiereSystemError("Cannot save Order");
} // newOrder
/**
* Close Order
*/
private void closeOrder() throws Exception
{
if (m_orderLine != null)
{
if (!m_orderLine.save())
throw new AdempiereSystemError("Cannot update Order Line");
}
if (m_order != null)
{
m_order.load(get_TrxName());
addLog(0, null, m_order.getGrandTotal(), m_order.getDocumentNo());
}
m_order = null;
m_orderLine = null;
} // closeOrder
/**
* New Order Line (different Product)
* @param rLine request line
*/
private void newLine(MRequisitionLine rLine) throws Exception
{
if (m_orderLine != null)
if (!m_orderLine.save())
throw new AdempiereSystemError("Cannot update Order Line");
m_orderLine = null;
MProduct product = null;
// Get Business Partner
int C_BPartner_ID = rLine.getC_BPartner_ID();
if (C_BPartner_ID != 0)
;
else if (rLine.getC_Charge_ID() != 0)
{
//MCharge charge = MCharge.get(getCtx(), rLine.getC_Charge_ID());
MCharge charge = new MCharge(getCtx(), rLine.getC_Charge_ID(),null);
C_BPartner_ID = charge.getC_BPartner_ID();
if (C_BPartner_ID == 0)
throw new AdempiereUserError("No Vendor for Charge " + charge.getName());
}
else
{
// Find Vendor from Produt
product = MProduct.get(getCtx(), rLine.getM_Product_ID());
MProductPO[] ppos = MProductPO.getOfProduct(getCtx(), product.getM_Product_ID(), null);
for (int i = 0; i < ppos.length; i++)
{
if (ppos[i].isCurrentVendor() && ppos[i].getC_BPartner_ID() != 0)
{
C_BPartner_ID = ppos[i].getC_BPartner_ID();
break;
}
}
if (C_BPartner_ID == 0 && ppos.length > 0)
C_BPartner_ID = ppos[0].getC_BPartner_ID();
if (C_BPartner_ID == 0)
throw new AdempiereUserError("No Vendor for " + product.getName());
}
// New Order - Different Vendor
if (m_order == null
|| m_order.getC_BPartner_ID() != C_BPartner_ID)
newOrder(rLine, C_BPartner_ID);
// No Order Line
m_orderLine = new MOrderLine(m_order);
if (product != null)
{
m_orderLine.setProduct(product);
m_orderLine.setM_AttributeSetInstance_ID(rLine.getM_AttributeSetInstance_ID());
}
else
{
m_orderLine.setC_Charge_ID(rLine.getC_Charge_ID());
m_orderLine.setPriceActual(rLine.getPriceActual());
}
m_orderLine.setAD_Org_ID(rLine.getAD_Org_ID());
m_M_Product_ID = rLine.getM_Product_ID();
m_M_AttributeSetInstance_ID = rLine.getM_AttributeSetInstance_ID();
if (!m_orderLine.save())
throw new AdempiereSystemError("Cannot save Order Line");
} // newLine
} // RequisitionPOCreate