/****************************************************************************** * Product: Adempiere ERP & CRM Smart Business Solution * * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * * 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 * * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ package org.compiere.acct; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.logging.Level; import org.compiere.model.MAccount; import org.compiere.model.MAcctSchema; import org.compiere.model.MCharge; import org.compiere.model.MCostDetail; import org.compiere.model.MProduct; import org.compiere.model.PO; import org.compiere.model.ProductCost; import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; /** * Standard Document Line * * @author Jorg Janke * @author Armen Rizal, Goodwill Consulting *
  • BF [ 1745154 ] Cost in Reversing Material Related Docs * @version $Id: DocLine.java,v 1.2 2006/07/30 00:53:33 jjanke Exp $ */ public class DocLine { /** * Create Document Line * @param po line persistent object * @param doc header */ public DocLine (PO po, Doc doc) { if (po == null) throw new IllegalArgumentException("PO is null"); p_po = po; m_doc = doc; // // Document Consistency if (p_po.getAD_Org_ID() == 0) p_po.setAD_Org_ID(m_doc.getAD_Org_ID()); } // DocLine /** Persistent Object */ protected PO p_po = null; /** Parent */ private Doc m_doc = null; /** Log */ protected transient CLogger log = CLogger.getCLogger(getClass()); /** Qty */ private BigDecimal m_qty = null; // -- GL Amounts /** Debit Journal Amt */ private BigDecimal m_AmtSourceDr = Env.ZERO; /** Credit Journal Amt */ private BigDecimal m_AmtSourceCr = Env.ZERO; /** Net Line Amt */ private BigDecimal m_LineNetAmt = null; /** List Amount */ private BigDecimal m_ListAmt = Env.ZERO; /** Discount Amount */ private BigDecimal m_DiscountAmt = Env.ZERO; /** Converted Amounts */ private BigDecimal m_AmtAcctDr = null; private BigDecimal m_AmtAcctCr = null; /** Acct Schema */ private int m_C_AcctSchema_ID = 0; /** Product Costs */ private ProductCost m_productCost = null; /** Production indicator */ private boolean m_productionBOM = false; /** Outside Processing */ private int m_PP_Cost_Collector_ID = 0; /** Account used only for GL Journal */ private MAccount m_account = null; /** Accounting Date */ private Timestamp m_DateAcct = null; /** Document Date */ private Timestamp m_DateDoc = null; /** Sales Region */ private int m_C_SalesRegion_ID = -1; /** Sales Region */ private int m_C_BPartner_ID = -1; /** Location From */ private int m_C_LocFrom_ID = 0; /** Location To */ private int m_C_LocTo_ID = 0; /** Item */ private Boolean m_isItem = null; /** Currency */ private int m_C_Currency_ID = -1; /** Conversion Type */ private int m_C_ConversionType_ID = -1; /** Period */ private int m_C_Period_ID = -1; private BigDecimal m_currencyRate = null; /** * Get Currency * @return C_Currency_ID */ public int getC_Currency_ID () { if (m_C_Currency_ID == -1) { int index = p_po.get_ColumnIndex("C_Currency_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) m_C_Currency_ID = ii.intValue(); } if (m_C_Currency_ID <= 0) m_C_Currency_ID = m_doc.getC_Currency_ID(); } return m_C_Currency_ID; } // getC_Currency_ID /** * Get Conversion Type * @return C_ConversionType_ID */ public int getC_ConversionType_ID () { if (m_C_ConversionType_ID == -1) { int index = p_po.get_ColumnIndex("C_ConversionType_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) m_C_ConversionType_ID = ii.intValue(); } if (m_C_ConversionType_ID <= 0) m_C_ConversionType_ID = m_doc.getC_ConversionType_ID(); } return m_C_ConversionType_ID; } // getC_ConversionType_ID /** * Set C_ConversionType_ID * @param C_ConversionType_ID id */ protected void setC_ConversionType_ID(int C_ConversionType_ID) { m_C_ConversionType_ID = C_ConversionType_ID; } // setC_ConversionType_ID /** * @return Currency rate */ public BigDecimal getCurrencyRate() { return m_currencyRate; } /** * @param currencyRate */ protected void setCurrencyRate(BigDecimal currencyRate) { m_currencyRate = currencyRate; } /** * Set Amount (DR) * @param sourceAmt source amt */ public void setAmount (BigDecimal sourceAmt) { m_AmtSourceDr = sourceAmt == null ? Env.ZERO : sourceAmt; m_AmtSourceCr = Env.ZERO; } // setAmounts /** * Set Amounts * @param amtSourceDr source amount dr * @param amtSourceCr source amount cr */ public void setAmount (BigDecimal amtSourceDr, BigDecimal amtSourceCr) { m_AmtSourceDr = amtSourceDr == null ? Env.ZERO : amtSourceDr; m_AmtSourceCr = amtSourceCr == null ? Env.ZERO : amtSourceCr; } // setAmounts /** * Set Converted Amounts * @param C_AcctSchema_ID acct schema * @param amtAcctDr acct amount dr * @param amtAcctCr acct amount cr */ public void setConvertedAmt (int C_AcctSchema_ID, BigDecimal amtAcctDr, BigDecimal amtAcctCr) { m_C_AcctSchema_ID = C_AcctSchema_ID; m_AmtAcctDr = amtAcctDr; m_AmtAcctCr = amtAcctCr; } // setConvertedAmt /** * Line Net Amount or Dr-Cr * @return balance */ public BigDecimal getAmtSource() { return m_AmtSourceDr.subtract(m_AmtSourceCr); } // getAmount /** * Get (Journal) Line Source Dr Amount * @return DR source amount */ public BigDecimal getAmtSourceDr() { return m_AmtSourceDr; } // getAmtSourceDr /** * Get (Journal) Line Source Cr Amount * @return CR source amount */ public BigDecimal getAmtSourceCr() { return m_AmtSourceCr; } // getAmtSourceCr /** * Line Journal Accounted Dr Amount * @return DR accounted amount */ public BigDecimal getAmtAcctDr() { return m_AmtAcctDr; } // getAmtAcctDr /** * Line Journal Accounted Cr Amount * @return CR accounted amount */ public BigDecimal getAmtAcctCr() { return m_AmtAcctCr; } // getAmtAccrCr /** * Charge Amount * @return charge amount */ public BigDecimal getChargeAmt() { int index = p_po.get_ColumnIndex("ChargeAmt"); if (index != -1) { BigDecimal bd = (BigDecimal)p_po.get_Value(index); if (bd != null) return bd; } return Env.ZERO; } // getChargeAmt /** * Set Product Amounts * @param LineNetAmt Line Net Amt * @param PriceList Price List * @param Qty Qty for discount calc */ public void setAmount (BigDecimal LineNetAmt, BigDecimal PriceList, BigDecimal Qty) { m_LineNetAmt = LineNetAmt == null ? Env.ZERO : LineNetAmt; if (PriceList != null && Qty != null) m_ListAmt = PriceList.multiply(Qty); if (m_ListAmt.compareTo(Env.ZERO) == 0) m_ListAmt = m_LineNetAmt; m_DiscountAmt = m_ListAmt.subtract(m_LineNetAmt); // setAmount (m_ListAmt, m_DiscountAmt); } // setAmounts /** * Line Discount * @return discount amount */ public BigDecimal getDiscount() { return m_DiscountAmt; } // getDiscount /** * Line List Amount * @return list amount */ public BigDecimal getListAmount() { return m_ListAmt; } // getListAmount /** * Set Line Net Amt Difference * @param diff difference (to be subtracted) */ public void setLineNetAmtDifference (BigDecimal diff) { String msg = "Diff=" + diff + " - LineNetAmt=" + m_LineNetAmt; m_LineNetAmt = m_LineNetAmt.subtract(diff); m_DiscountAmt = m_ListAmt.subtract(m_LineNetAmt); setAmount (m_ListAmt, m_DiscountAmt); msg += " -> " + m_LineNetAmt; log.fine(msg); } // setLineNetAmtDifference /** * Set Accounting Date * @param dateAcct accounting date */ public void setDateAcct (Timestamp dateAcct) { m_DateAcct = dateAcct; } // setDateAcct /** * Get Accounting Date * @return accounting date */ public Timestamp getDateAcct () { if (m_DateAcct != null) return m_DateAcct; int index = p_po.get_ColumnIndex("DateAcct"); if (index != -1) { m_DateAcct = (Timestamp)p_po.get_Value(index); if (m_DateAcct != null) return m_DateAcct; } m_DateAcct = m_doc.getDateAcct(); return m_DateAcct; } // getDateAcct /** * Get FX Conversion Date * * The foreign exchange rate conversion date may be different from the accounting posting date in some cases (e.g. bank statement) * * @return FX conversion date */ public Timestamp getDateConv () { Timestamp dateConv = null; int index = p_po.get_ColumnIndex("DateAcct"); if (index != -1) { dateConv = (Timestamp)p_po.get_Value(index); } if (dateConv == null) dateConv = getDateAcct(); return dateConv; } // getDateAcct /** * Set Document Date * @param dateDoc doc date */ public void setDateDoc (Timestamp dateDoc) { m_DateDoc = dateDoc; } // setDateDoc /** * Get Document Date * @return document date */ public Timestamp getDateDoc () { if (m_DateDoc != null) return m_DateDoc; int index = p_po.get_ColumnIndex("DateDoc"); if (index != -1) { m_DateDoc = (Timestamp)p_po.get_Value(index); if (m_DateDoc != null) return m_DateDoc; } m_DateDoc = m_doc.getDateDoc(); return m_DateDoc; } // getDateDoc /** * Set GL Journal Account * @param acct account */ public void setAccount (MAccount acct) { m_account = acct; } // setAccount /** * Get GL Journal Account * @return account */ public MAccount getAccount() { return m_account; } // getAccount /** * Line Account from Product (or Charge). * * @param AcctType see ProductCost.ACCTTYPE_* (0..3) * @param as Accounting schema * @return Requested Product Account */ public MAccount getAccount (int AcctType, MAcctSchema as) { // Charge Account if (getM_Product_ID() == 0 && getC_Charge_ID() != 0) { BigDecimal amt = new BigDecimal (-1); // Revenue (-) if (!m_doc.isSOTrx()) amt = new BigDecimal (+1); // Expense (+) MAccount acct = getChargeAccount(as, amt); if (acct != null) return acct; } // Product Account return getProductCost().getAccount (AcctType, as); } // getAccount /** * Get Charge * @return C_Charge_ID */ protected int getC_Charge_ID() { int index = p_po.get_ColumnIndex("C_Charge_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_Charge_ID /** * Get Charge Account * @param as account schema * @param amount amount for expense(+)/revenue(-) * @return Charge Account or null */ public MAccount getChargeAccount (MAcctSchema as, BigDecimal amount) { int C_Charge_ID = getC_Charge_ID(); if (C_Charge_ID == 0) return null; return MCharge.getAccount(C_Charge_ID, as); } // getChargeAccount /** * Get Period * @return C_Period_ID */ protected int getC_Period_ID() { if (m_C_Period_ID == -1) { int index = p_po.get_ColumnIndex("C_Period_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) m_C_Period_ID = ii.intValue(); } if (m_C_Period_ID == -1) m_C_Period_ID = 0; } return m_C_Period_ID; } // getC_Period_ID /** * Set C_Period_ID * @param C_Period_ID id */ protected void setC_Period_ID (int C_Period_ID) { m_C_Period_ID = C_Period_ID; } // setC_Period_ID /** * Get (Journal) AcctSchema * @return C_AcctSchema_ID */ public int getC_AcctSchema_ID() { return m_C_AcctSchema_ID; } // getC_AcctSchema_ID /** * Get Line ID * @return id of line PO */ public int get_ID() { return p_po.get_ID(); } // get_ID /** * Get AD_Org_ID * @return AD_Org_ID */ public int getAD_Org_ID() { return p_po.getAD_Org_ID(); } // getAD_Org_ID /** * Get Order AD_Org_ID * @return order AD_Org_ID if defined */ public int getOrder_Org_ID() { int C_OrderLine_ID = getC_OrderLine_ID(); if (C_OrderLine_ID != 0) { String sql = "SELECT AD_Org_ID FROM C_OrderLine WHERE C_OrderLine_ID=?"; int AD_Org_ID = DB.getSQLValue(null, sql, C_OrderLine_ID); if (AD_Org_ID > 0) return AD_Org_ID; } return getAD_Org_ID(); } // getOrder_Org_ID /** * Product * @return M_Product_ID */ public int getM_Product_ID() { int index = p_po.get_ColumnIndex("M_Product_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getM_Product_ID /** * Is this an Item Product (vs. not a Service, a charge) * @return true if product is of type item */ public boolean isItem() { if (m_isItem != null) return m_isItem.booleanValue(); m_isItem = Boolean.FALSE; if (getM_Product_ID() != 0) { MProduct product = MProduct.get(Env.getCtx(), getM_Product_ID()); if (product.get_ID() == getM_Product_ID() && product.isItem()) m_isItem = Boolean.TRUE; } return m_isItem.booleanValue(); } // isItem /** * ASI * @return M_AttributeSetInstance_ID */ public int getM_AttributeSetInstance_ID() { int index = p_po.get_ColumnIndex("M_AttributeSetInstance_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getM_AttributeSetInstance_ID /** * Get Warehouse Locator (from) * @return M_Locator_ID */ public int getM_Locator_ID() { int index = p_po.get_ColumnIndex("M_Locator_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getM_Locator_ID /** * Get Warehouse Locator To * @return to M_Locator_ID */ public int getM_LocatorTo_ID() { int index = p_po.get_ColumnIndex("M_LocatorTo_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getM_LocatorTo_ID /** * Set Production BOM flag * @param productionBOM flag */ public void setProductionBOM(boolean productionBOM) { m_productionBOM = productionBOM; } // setProductionBOM /** * Is this the BOM to be produced * @return true if BOM */ public boolean isProductionBOM() { return m_productionBOM; } // isProductionBOM /** * Get Production Header * @return M_Production_ID */ public int getM_Production_ID() { int index = p_po.get_ColumnIndex("M_Production_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getM_Production_ID /** * Get Order Line Reference * @return C_OrderLine_ID */ public int getC_OrderLine_ID() { int index = p_po.get_ColumnIndex("C_OrderLine_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_OrderLine_ID /** * Get C_LocFrom_ID * @return C_Location_ID from */ public int getC_LocFrom_ID() { return m_C_LocFrom_ID; } // getC_LocFrom_ID /** * Set C_LocFrom_ID * @param C_LocFrom_ID loc from */ public void setC_LocFrom_ID(int C_LocFrom_ID) { m_C_LocFrom_ID = C_LocFrom_ID; } // setC_LocFrom_ID /** * Get PP_Cost_Collector_ID * @return Cost Collector ID */ public int getPP_Cost_Collector_ID() { return m_PP_Cost_Collector_ID; } // getC_LocFrom_ID /** * Get PP_Cost_Collector_ID * @return Cost Collector ID */ public int setPP_Cost_Collector_ID(int PP_Cost_Collector_ID) { return m_PP_Cost_Collector_ID; } // getC_LocFrom_ID /** * Get C_LocTo_ID * @return C_Location_ID to */ public int getC_LocTo_ID() { return m_C_LocTo_ID; } // getC_LocTo_ID /** * Set C_LocTo_ID * @param C_LocTo_ID loc to */ public void setC_LocTo_ID(int C_LocTo_ID) { m_C_LocTo_ID = C_LocTo_ID; } // setC_LocTo_ID /** * Get Product Cost Info * @return product cost */ public ProductCost getProductCost() { if (m_productCost == null) m_productCost = new ProductCost (Env.getCtx(), getM_Product_ID(), getM_AttributeSetInstance_ID(), p_po.get_TrxName()); return m_productCost; } // getProductCost // MZ Goodwill /** * Get Total Product Costs from Cost Detail or from Current Cost * @param as accounting schema * @param AD_Org_ID trx org * @param zeroCostsOK zero/no costs are OK * @param whereClause null are OK * @return costs */ public BigDecimal getProductCosts (MAcctSchema as, int AD_Org_ID, boolean zeroCostsOK, String whereClause) { if (whereClause != null && !as.getCostingMethod().equals(MAcctSchema.COSTINGMETHOD_StandardCosting)) { MCostDetail cd = MCostDetail.get (Env.getCtx(), whereClause, get_ID(), getM_AttributeSetInstance_ID(), as.getC_AcctSchema_ID(), p_po.get_TrxName()); if (cd != null) { BigDecimal amt = cd.getAmt(); BigDecimal pcost = getProductCosts(as, AD_Org_ID, zeroCostsOK); if (amt.signum() != 0 && pcost.signum() != 0 && amt.signum() != pcost.signum()) return amt.negate(); else return amt; } } return getProductCosts(as, AD_Org_ID, zeroCostsOK); } // getProductCosts // end MZ /** * Get Total Product Costs * @param as accounting schema * @param AD_Org_ID trx org * @param zeroCostsOK zero/no costs are OK * @return costs */ public BigDecimal getProductCosts (MAcctSchema as, int AD_Org_ID, boolean zeroCostsOK) { ProductCost pc = getProductCost(); int C_OrderLine_ID = getC_OrderLine_ID(); String costingMethod = null; BigDecimal costs = pc.getProductCosts(as, AD_Org_ID, costingMethod, C_OrderLine_ID, zeroCostsOK); if (costs != null) return costs; return Env.ZERO; } // getProductCosts /** * Get Product * @return product or null if no product */ public MProduct getProduct() { if (m_productCost == null) m_productCost = new ProductCost (Env.getCtx(), getM_Product_ID(), getM_AttributeSetInstance_ID(), p_po.get_TrxName()); if (m_productCost != null) return m_productCost.getProduct(); return null; } // getProduct /** * Get Revenue Recognition * @return C_RevenueRecognition_ID or 0 */ public int getC_RevenueRecognition_ID() { MProduct product = getProduct(); if (product != null) return product.getC_RevenueRecognition_ID(); return 0; } // getC_RevenueRecognition_ID /** * Quantity UOM * @return Transaction or Storage C_UOM_ID */ public int getC_UOM_ID() { // Trx UOM int index = p_po.get_ColumnIndex("C_UOM_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } // Storage UOM MProduct product = getProduct(); if (product != null) return product.getC_UOM_ID(); // return 0; } // getC_UOM /** * Quantity * @param qty transaction Qty * @param isSOTrx SL order trx (i.e. negative qty) */ public void setQty (BigDecimal qty, boolean isSOTrx) { if (qty == null) m_qty = Env.ZERO; else if (isSOTrx) m_qty = qty.negate(); else m_qty = qty; getProductCost().setQty (qty); } // setQty /** * Quantity * @return transaction Qty */ public BigDecimal getQty() { return m_qty; } // getQty /** * Description * @return doc line description */ public String getDescription() { int index = p_po.get_ColumnIndex("Description"); if (index != -1) return (String)p_po.get_Value(index); return null; } // getDescription /** * Line Tax * @return C_Tax_ID */ public int getC_Tax_ID() { int index = p_po.get_ColumnIndex("C_Tax_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_Tax_ID /** * Get Line Number * @return line no */ public int getLine() { int index = p_po.get_ColumnIndex("Line"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getLine /** * Get BPartner * @return C_BPartner_ID */ public int getC_BPartner_ID() { if (m_C_BPartner_ID == -1) { int index = p_po.get_ColumnIndex("C_BPartner_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) m_C_BPartner_ID = ii.intValue(); } if (m_C_BPartner_ID <= 0) m_C_BPartner_ID = m_doc.getC_BPartner_ID(); } return m_C_BPartner_ID; } // getC_BPartner_ID /** * Set C_BPartner_ID * @param C_BPartner_ID id */ protected void setC_BPartner_ID (int C_BPartner_ID) { m_C_BPartner_ID = C_BPartner_ID; } // setC_BPartner_ID /** * Get C_BPartner_Location_ID * @return C_BPartner_Location_ID */ public int getC_BPartner_Location_ID() { int index = p_po.get_ColumnIndex("C_BPartner_Location_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return m_doc.getC_BPartner_Location_ID(); } // getC_BPartner_Location_ID /** * Get TrxOrg * @return AD_OrgTrx_ID */ public int getAD_OrgTrx_ID() { int index = p_po.get_ColumnIndex("AD_OrgTrx_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getAD_OrgTrx_ID /** * Get SalesRegion. * - get Sales Region from BPartner * @return C_SalesRegion_ID */ public int getC_SalesRegion_ID() { if (m_C_SalesRegion_ID == -1) // never tried { if (getC_BPartner_Location_ID() != 0) // && m_acctSchema.isAcctSchemaElement(MAcctSchemaElement.ELEMENTTYPE_SalesRegion)) { String sql = "SELECT COALESCE(C_SalesRegion_ID,0) FROM C_BPartner_Location WHERE C_BPartner_Location_ID=?"; m_C_SalesRegion_ID = DB.getSQLValue (null, sql, getC_BPartner_Location_ID()); if (log.isLoggable(Level.FINE)) log.fine("C_SalesRegion_ID=" + m_C_SalesRegion_ID + " (from BPL)" ); if (m_C_SalesRegion_ID == 0) m_C_SalesRegion_ID = -2; // don't try again } else m_C_SalesRegion_ID = -2; // don't try again } if (m_C_SalesRegion_ID < 0) // invalid return 0; return m_C_SalesRegion_ID; } // getC_SalesRegion_ID /** * Get Project * @return C_Project_ID */ public int getC_Project_ID() { int index = p_po.get_ColumnIndex("C_Project_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_Project_ID /** * Get Project Phase * @return C_ProjectPhase_ID */ public int getC_ProjectPhase_ID() { int index = p_po.get_ColumnIndex("C_ProjectPhase_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_ProjectPhase_ID /** * Get Project Task * @return C_ProjectTask_ID */ public int getC_ProjectTask_ID() { int index = p_po.get_ColumnIndex("C_ProjectTask_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_ProjectTask_ID /** * Get Campaign * @return C_Campaign_ID */ public int getC_Campaign_ID() { int index = p_po.get_ColumnIndex("C_Campaign_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_Campaign_ID /** * Get Activity * @return C_Activity_ID */ public int getC_Activity_ID() { int index = p_po.get_ColumnIndex("C_Activity_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getC_Activity_ID /** * Get user defined id 1 * @return User1_ID */ public int getUser1_ID() { int index = p_po.get_ColumnIndex("User1_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getUser1_ID /** * Get user defined id 2 * @return User2_ID */ public int getUser2_ID() { int index = p_po.get_ColumnIndex("User2_ID"); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getUser2_ID /** * Get column value * @param ColumnName column name * @return column value or 0 (if column doesn't exist) */ public int getValue(String ColumnName) { int index = p_po.get_ColumnIndex(ColumnName); if (index != -1) { Integer ii = (Integer)p_po.get_Value(index); if (ii != null) return ii.intValue(); } return 0; } // getValue //AZ Goodwill private int m_ReversalLine_ID = 0; /** * Set ReversalLine_ID * store original (voided/reversed) document line * @param ReversalLine_ID */ public void setReversalLine_ID (int ReversalLine_ID) { m_ReversalLine_ID = ReversalLine_ID; } // setReversalLine_ID /** * Get ReversalLine_ID * get original (voided/reversed) document line * @return ReversalLine_ID */ public int getReversalLine_ID() { return m_ReversalLine_ID; } // getReversalLine_ID //end AZ Goodwill /** * @return line PO */ public PO getPO() { return p_po; } /** * String representation * @return String */ public String toString() { StringBuilder sb = new StringBuilder("DocLine=["); sb.append(p_po.get_ID()); if (getDescription() != null) sb.append(",").append(getDescription()); if (getM_Product_ID() != 0) sb.append(",M_Product_ID=").append(getM_Product_ID()); sb.append(",Qty=").append(m_qty) .append(",Amt=").append(getAmtSource()) .append("]"); return sb.toString(); } // toString } // DocumentLine