Class MInvoiceLine

All Implemented Interfaces:
Serializable, Cloneable, Comparator<Object>, I_C_InvoiceLine, I_Persistent, Evaluatee

public class MInvoiceLine extends X_C_InvoiceLine
Invoice Line Model
Version:
$Id: MInvoiceLine.java,v 1.5 2006/07/30 00:51:03 jjanke Exp $
Author:
Jorg Janke, Teo Sarca, www.arhipac.ro
  • BF [ 2804142 ] MInvoice.setRMALine should work only for CreditMemo invoices https://sourceforge.net/p/adempiere/bugs/1937/, red1 FR: [ 2214883 ] Remove SQL code and Replace for Query
  • See Also:
    • Field Details

      • s_log

        protected static CLogger s_log
        Static Logger
      • m_tax

        protected MTax m_tax
        Tax
      • m_M_PriceList_ID

        protected int m_M_PriceList_ID
      • m_DateInvoiced

        protected Timestamp m_DateInvoiced
      • m_C_BPartner_ID

        protected int m_C_BPartner_ID
      • m_C_BPartner_Location_ID

        protected int m_C_BPartner_Location_ID
      • m_IsSOTrx

        protected boolean m_IsSOTrx
      • m_priceSet

        protected boolean m_priceSet
      • m_product

        protected MProduct m_product
      • m_charge

        protected MCharge m_charge
        Charge
      • m_name

        protected String m_name
        Cached Name of the line
      • m_precision

        protected Integer m_precision
        Cached Precision
      • m_productPricing

        protected IProductPricing m_productPricing
        Product Pricing
      • m_parent

        protected MInvoice m_parent
        Parent
    • Constructor Details

      • MInvoiceLine

        public MInvoiceLine(Properties ctx, String C_InvoiceLine_UU, String trxName)
        UUID based Constructor
        Parameters:
        ctx - Context
        C_InvoiceLine_UU - UUID key
        trxName - Transaction
      • MInvoiceLine

        public MInvoiceLine(Properties ctx, int C_InvoiceLine_ID, String trxName)
        Invoice Line Constructor
        Parameters:
        ctx - context
        C_InvoiceLine_ID - invoice line or 0
        trxName - transaction name
      • MInvoiceLine

        public MInvoiceLine(Properties ctx, int C_InvoiceLine_ID, String trxName, String... virtualColumns)
        Parameters:
        ctx -
        C_InvoiceLine_ID -
        trxName -
        virtualColumns -
      • MInvoiceLine

        public MInvoiceLine(MInvoice invoice)
        Parent Constructor
        Parameters:
        invoice - parent
      • MInvoiceLine

        public MInvoiceLine(Properties ctx, ResultSet rs, String trxName)
        Load Constructor
        Parameters:
        ctx - context
        rs - result set record
        trxName - transaction
      • MInvoiceLine

        public MInvoiceLine(MInvoiceLine copy)
        Copy constructor
        Parameters:
        copy -
      • MInvoiceLine

        public MInvoiceLine(Properties ctx, MInvoiceLine copy)
        Copy constructor
        Parameters:
        ctx -
        copy -
      • MInvoiceLine

        public MInvoiceLine(Properties ctx, MInvoiceLine copy, String trxName)
        Copy constructor
        Parameters:
        ctx -
        copy -
        trxName -
    • Method Details

      • getOfInOutLine

        public static MInvoiceLine getOfInOutLine(MInOutLine sLine)
        Get Invoice Line referencing InOut Line
        Parameters:
        sLine - shipment line
        Returns:
        (first) invoice line
      • getOfInOutLineFromMatchInv

        public static MInvoiceLine getOfInOutLineFromMatchInv(MInOutLine sLine)
        Get Invoice Line referencing InOut Line - from MatchInv
        Parameters:
        sLine - shipment line
        Returns:
        (first) invoice line
      • setInvoice

        public void setInvoice(MInvoice invoice)
        Set Defaults from Order. Called also from copy lines from invoice. Does not update C_Invoice_ID column.
        Parameters:
        invoice - invoice
      • getParent

        public MInvoice getParent()
        Get Parent
        Returns:
        parent
      • setOrderLine

        public void setOrderLine(MOrderLine oLine)
        Set values from Order Line. Does not set quantity!
        Parameters:
        oLine - line
      • setShipLine

        public void setShipLine(MInOutLine sLine)
        Set values from Shipment Line. Does not set quantity!
        Parameters:
        sLine - ship line
      • addDescription

        public void addDescription(String description)
        Add to Description
        Parameters:
        description - text
      • setM_AttributeSetInstance_ID

        public void setM_AttributeSetInstance_ID(int M_AttributeSetInstance_ID)
        Set M_AttributeSetInstance_ID
        Specified by:
        setM_AttributeSetInstance_ID in interface I_C_InvoiceLine
        Overrides:
        setM_AttributeSetInstance_ID in class X_C_InvoiceLine
        Parameters:
        M_AttributeSetInstance_ID - id
      • setPrice

        public void setPrice()
        Set Price for Product and PriceList.
        Uses standard SO price list if not set by invoice constructor.
      • setPrice

        public void setPrice(int M_PriceList_ID, int C_BPartner_ID)
        Set Price for Product
        Parameters:
        M_PriceList_ID - price list
        C_BPartner_ID - business partner
      • setPrice

        public void setPrice(BigDecimal PriceActual)
        Set Price Entered/Actual. Use this Method if the Line UOM is the Product UOM.
        Parameters:
        PriceActual - price
      • setPriceActual

        public void setPriceActual(BigDecimal PriceActual)
        Set Price Actual. (actual price is not updateable).
        Specified by:
        setPriceActual in interface I_C_InvoiceLine
        Overrides:
        setPriceActual in class X_C_InvoiceLine
        Parameters:
        PriceActual - actual price
      • setTax

        public boolean setTax()
        Find and set C_Tax_ID
        Returns:
        true if found
      • setTaxAmt

        public void setTaxAmt()
        Calculate Tax Amt. Assumes Line Net is calculated.
      • setLineNetAmt

        public void setLineNetAmt()
        Calculate Line Net Amt. Include tax if tax is included in price.
      • getCharge

        public MCharge getCharge()
        Get Charge
        Returns:
        charge or null
      • getTax

        protected MTax getTax()
        Get Tax (immutable)
        Returns:
        tax
      • setQty

        public void setQty(int Qty)
        Set Qty Invoiced/Entered.
        Parameters:
        Qty - Invoiced/Ordered
      • setQty

        public void setQty(BigDecimal Qty)
        Set Qty Invoiced/Entered.
        Parameters:
        Qty - Invoiced/Entered
      • setQtyEntered

        public void setQtyEntered(BigDecimal QtyEntered)
        Set Qty Entered - enforce entered UOM precision
        Specified by:
        setQtyEntered in interface I_C_InvoiceLine
        Overrides:
        setQtyEntered in class X_C_InvoiceLine
        Parameters:
        QtyEntered -
      • setQtyInvoiced

        public void setQtyInvoiced(BigDecimal QtyInvoiced)
        Set Qty Invoiced - enforce Product UOM precision
        Specified by:
        setQtyInvoiced in interface I_C_InvoiceLine
        Overrides:
        setQtyInvoiced in class X_C_InvoiceLine
        Parameters:
        QtyInvoiced -
      • setProduct

        public void setProduct(MProduct product)
        Set Product
        Parameters:
        product - product
      • setM_Product_ID

        public void setM_Product_ID(int M_Product_ID, boolean setUOM)
        Set M_Product_ID
        Parameters:
        M_Product_ID - product
        setUOM - true to set UOM from product
      • setM_Product_ID

        public void setM_Product_ID(int M_Product_ID, int C_UOM_ID)
        Set Product and UOM
        Parameters:
        M_Product_ID - product
        C_UOM_ID - uom
      • getProduct

        public MProduct getProduct()
        Get Product
        Returns:
        product or null
      • getC_Project_ID

        public int getC_Project_ID()
        Get C_Project_ID
        Specified by:
        getC_Project_ID in interface I_C_InvoiceLine
        Overrides:
        getC_Project_ID in class X_C_InvoiceLine
        Returns:
        C_Project_ID
      • getC_Activity_ID

        public int getC_Activity_ID()
        Get C_Activity_ID
        Specified by:
        getC_Activity_ID in interface I_C_InvoiceLine
        Overrides:
        getC_Activity_ID in class X_C_InvoiceLine
        Returns:
        C_Activity_ID
      • getC_Campaign_ID

        public int getC_Campaign_ID()
        Get C_Campaign_ID
        Specified by:
        getC_Campaign_ID in interface I_C_InvoiceLine
        Overrides:
        getC_Campaign_ID in class X_C_InvoiceLine
        Returns:
        C_Campaign_ID
      • getUser1_ID

        public int getUser1_ID()
        Get User1_ID
        Specified by:
        getUser1_ID in interface I_C_InvoiceLine
        Overrides:
        getUser1_ID in class X_C_InvoiceLine
        Returns:
        User1_ID
      • getUser2_ID

        public int getUser2_ID()
        Get User2_ID
        Specified by:
        getUser2_ID in interface I_C_InvoiceLine
        Overrides:
        getUser2_ID in class X_C_InvoiceLine
        Returns:
        User2_ID
      • getAD_OrgTrx_ID

        public int getAD_OrgTrx_ID()
        Get AD_OrgTrx_ID
        Specified by:
        getAD_OrgTrx_ID in interface I_C_InvoiceLine
        Overrides:
        getAD_OrgTrx_ID in class X_C_InvoiceLine
        Returns:
        AD_OrgTrx_ID
      • toString

        public String toString()
        String Representation
        Overrides:
        toString in class X_C_InvoiceLine
        Returns:
        info
      • getName

        public String getName()
        Get (Product/Charge) Name
        Returns:
        name
      • setName

        public void setName(String tempName)
        Set Temporary (cached) Name
        Parameters:
        tempName - Cached Name
      • getDescriptionText

        public String getDescriptionText()
        Get Description Text.
        Returns:
        description
      • getPrecision

        public int getPrecision()
        Get Currency Precision
        Returns:
        precision
      • isTaxIncluded

        public boolean isTaxIncluded()
        Is Tax Included in Amount
        Returns:
        true if tax is included
      • beforeSave

        protected boolean beforeSave(boolean newRecord)
        Description copied from class: PO
        Called before Save for Pre-Save Operation.
        Default implementation is nop, to be implemented in sub-classes that needed it.
        Overrides:
        beforeSave in class PO
        Parameters:
        newRecord - true if it is a new record
        Returns:
        true if record can be saved
      • updateInvoiceTax

        protected boolean updateInvoiceTax(boolean oldTax)
        Recalculate invoice tax
        Parameters:
        oldTax - true if the old C_Tax_ID should be used
        Returns:
        true if success, false otherwise author teo_sarca [ 1583825 ]
      • afterSave

        protected boolean afterSave(boolean newRecord, boolean success)
        Description copied from class: PO
        Called after Save for Post-Save Operation.
        Default implementation is nop, to be implemented in sub-classes that needed it.
        Overrides:
        afterSave in class PO
        Parameters:
        newRecord - true if it is a new record
        success - true if save operation was success
        Returns:
        if save was a success
      • afterDelete

        protected boolean afterDelete(boolean success)
        Description copied from class: PO
        Execute after Delete operations.
        Default implementation is nop, to be implemented in sub-classes that needed it.
        Overrides:
        afterDelete in class PO
        Parameters:
        success - true if record deleted
        Returns:
        true if delete is a success
      • updateHeaderTax

        public boolean updateHeaderTax()
        Update Tax and Header
        Returns:
        true if header updated with tax
      • allocateLandedCosts

        public String allocateLandedCosts()
        Allocate Landed Costs
        Returns:
        error message or ""
      • allocateLandedCostRounding

        protected void allocateLandedCostRounding()
        Allocate Landed Cost - Enforce Rounding
      • getLandedCost

        public MLandedCost[] getLandedCost(String whereClause)
        Get LandedCost of InvoiceLine
        Parameters:
        whereClause - starting with AND
        Returns:
        array of landedCost
      • copyLandedCostFrom

        public int copyLandedCostFrom(MInvoiceLine otherInvoiceLine)
        Copy LandedCost From other InvoiceLine.
        Parameters:
        otherInvoiceLine - other invoice line
        Returns:
        number of lines copied
      • setRMALine

        public void setRMALine(MRMALine rmaLine)
        Parameters:
        rmaLine -
      • getMatchedQty

        public BigDecimal getMatchedQty()
        Returns:
        matched qty
      • clearParent

        public void clearParent()
        Clear cache parent (invoice) reference