Package org.compiere.model
Class MCostDetail
- java.lang.Object
-
- org.compiere.model.PO
-
- org.compiere.model.X_M_CostDetail
-
- org.compiere.model.MCostDetail
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparator<Object>
,I_M_CostDetail
,I_Persistent
,Evaluatee
public class MCostDetail extends X_M_CostDetail
Cost Detail Model- Version:
- $Id: MCostDetail.java,v 1.3 2006/07/30 00:51:05 jjanke Exp $
- Author:
- Jorg Janke, Armen Rizal, Goodwill Consulting
- BF: 2431123 Return Trx changes weighted average cost
- BF: 1568752 Average invoice costing: landed costs incorrectly applied, Armen Rizal and Bayu Cahya
- BF [ 2129781 ] Cost Detail not created properly for multi acc schema, Teo Sarca
- BF [ 2847648 ] Manufacture and shipment cost errors https://sourceforge.net/p/adempiere/libero/237/, red1 FR: [ 2214883 ] Remove SQL code and Replace for Query
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
INOUTLINE_DOCBASETYPE_SQL
-
Fields inherited from class org.compiere.model.PO
ACCESSLEVEL_ALL, ACCESSLEVEL_CLIENT, ACCESSLEVEL_CLIENTORG, ACCESSLEVEL_ORG, ACCESSLEVEL_SYSTEM, ACCESSLEVEL_SYSTEMCLIENT, ENTITYTYPE_Dictionary, ENTITYTYPE_UserMaintained, I_ZERO, LOCAL_TRX_PREFIX, log, p_ctx, p_info, XML_ATTRIBUTE_AD_Table_ID, XML_ATTRIBUTE_Record_ID
-
Fields inherited from interface org.compiere.model.I_M_CostDetail
accessLevel, COLUMNNAME_AD_Client_ID, COLUMNNAME_AD_Org_ID, COLUMNNAME_Amt, COLUMNNAME_C_AcctSchema_ID, COLUMNNAME_C_InvoiceLine_ID, COLUMNNAME_C_OrderLine_ID, COLUMNNAME_C_ProjectIssue_ID, COLUMNNAME_Created, COLUMNNAME_CreatedBy, COLUMNNAME_CumulatedAmt, COLUMNNAME_CumulatedQty, COLUMNNAME_CurrentCostPrice, COLUMNNAME_CurrentQty, COLUMNNAME_DeltaAmt, COLUMNNAME_DeltaQty, COLUMNNAME_Description, COLUMNNAME_IsActive, COLUMNNAME_IsSOTrx, COLUMNNAME_M_AttributeSetInstance_ID, COLUMNNAME_M_CostDetail_ID, COLUMNNAME_M_CostDetail_UU, COLUMNNAME_M_CostElement_ID, COLUMNNAME_M_InOutLine_ID, COLUMNNAME_M_InventoryLine_ID, COLUMNNAME_M_MatchInv_ID, COLUMNNAME_M_MovementLine_ID, COLUMNNAME_M_Product_ID, COLUMNNAME_M_ProductionLine_ID, COLUMNNAME_PP_Cost_Collector_ID, COLUMNNAME_Price, COLUMNNAME_Processed, COLUMNNAME_Qty, COLUMNNAME_Updated, COLUMNNAME_UpdatedBy, Model, Table_ID, Table_Name
-
-
Constructor Summary
Constructors Constructor Description MCostDetail(Properties ctx, int M_CostDetail_ID, String trxName)
Standard ConstructorMCostDetail(Properties ctx, ResultSet rs, String trxName)
Load ConstructorMCostDetail(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
New Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected boolean
beforeDelete()
Before Deletestatic boolean
createInventory(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_InventoryLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Order Cost Detail for Physical Inventory.static boolean
createInvoice(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int C_InvoiceLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Invoice Cost Detail for AP Invoices.static boolean
createMatchInvoice(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_MatchInv_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
static boolean
createMovement(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_MovementLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, boolean from, String Description, String trxName)
Create New Order Cost Detail for Movements.static boolean
createOrder(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int C_OrderLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Order Cost Detail for Purchase Orders.static boolean
createProduction(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_ProductionLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Order Cost Detail for Production.static boolean
createProjectIssue(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int C_ProjectIssue_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create Cost Detail for Project Issue.static boolean
createShipment(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_InOutLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, boolean IsSOTrx, String trxName)
Create New Shipment Cost Detail for SO Shipments.static MCostDetail
get(Properties ctx, String whereClause, int ID, int M_AttributeSetInstance_ID, int C_AcctSchema_ID, String trxName)
Get Cost Detailstatic MCostDetail
get(Properties ctx, String whereClause, int ID, int M_AttributeSetInstance_ID, String trxName)
Deprecated.boolean
isDelta()
Is this a Delta Record (previously processed)?boolean
isInvoice()
Is Invoiceboolean
isOrder()
Is Orderboolean
isShipment()
Is Shipmentboolean
isVendorRMA()
boolean
process()
Process Cost Detail Record.protected boolean
process(MAcctSchema as, MProduct product, MCostElement ce, int Org_ID, int M_ASI_ID)
Process cost detail for cost recordstatic boolean
processProduct(MProduct product, String trxName)
Process Cost Details for productvoid
setAmt(BigDecimal Amt)
Set Amtvoid
setQty(BigDecimal Qty)
Set QtyString
toString()
String Representation-
Methods inherited from class org.compiere.model.X_M_CostDetail
get_AccessLevel, getAmt, getC_AcctSchema, getC_AcctSchema_ID, getC_InvoiceLine, getC_InvoiceLine_ID, getC_OrderLine, getC_OrderLine_ID, getC_ProjectIssue, getC_ProjectIssue_ID, getCumulatedAmt, getCumulatedQty, getCurrentCostPrice, getCurrentQty, getDeltaAmt, getDeltaQty, getDescription, getM_AttributeSetInstance, getM_AttributeSetInstance_ID, getM_CostDetail_ID, getM_CostDetail_UU, getM_CostElement, getM_CostElement_ID, getM_InOutLine, getM_InOutLine_ID, getM_InventoryLine, getM_InventoryLine_ID, getM_MatchInv, getM_MatchInv_ID, getM_MovementLine, getM_MovementLine_ID, getM_Product, getM_Product_ID, getM_ProductionLine, getM_ProductionLine_ID, getPP_Cost_Collector, getPP_Cost_Collector_ID, getPrice, getQty, initPO, isProcessed, isSOTrx, setC_AcctSchema_ID, setC_InvoiceLine_ID, setC_OrderLine_ID, setC_ProjectIssue_ID, setCumulatedAmt, setCumulatedQty, setCurrentCostPrice, setCurrentQty, setDeltaAmt, setDeltaQty, setDescription, setIsSOTrx, setM_AttributeSetInstance_ID, setM_CostDetail_ID, setM_CostDetail_UU, setM_CostElement_ID, setM_InOutLine_ID, setM_InventoryLine_ID, setM_MatchInv_ID, setM_MovementLine_ID, setM_Product_ID, setM_ProductionLine_ID, setPP_Cost_Collector_ID, setPrice, setProcessed
-
Methods inherited from class org.compiere.model.PO
afterDelete, afterSave, beforeSave, checkImmutable, clearCrossTenantSafe, clone, columnExists, columnExists, compare, copyPO, copyValues, copyValues, createAttachment, delete, delete, delete_Accounting, delete_Tree, deleteEx, deleteEx, dump, dump, equals, get_Attribute, get_Attributes, get_ColumnCount, get_ColumnDescription, get_ColumnDisplayType, get_ColumnIndex, get_ColumnLabel, get_ColumnLookup, get_ColumnName, get_DisplayValue, get_HashMap, get_ID, get_IDOld, get_KeyColumns, get_Logger, get_OptimisticLockingColumns, get_Table_ID, get_TableName, get_Translation, get_Translation, get_Translation, get_Translation, get_Translation, get_TrxName, get_Value, get_Value, get_ValueAsBoolean, get_ValueAsInt, get_ValueAsInt, get_ValueAsString, get_ValueDifference, get_ValueDifference, get_ValueE, get_ValueOfColumn, get_ValueOld, get_ValueOld, get_ValueOldAsInt, get_WhereClause, get_WhereClause, get_xmlDocument, get_xmlString, getAD_Client_ID, getAD_Org_ID, getAllIDs, getAttachment, getAttachment, getAttachmentData, getCreated, getCreatedBy, getCtx, getDoc, getFindParameter, getPdfAttachment, getUpdated, getUpdatedBy, getUUIDColumnName, getUUIDColumnName, hashCode, insert_Accounting, insert_Tree, insert_Tree, is_Changed, is_Immutable, is_new, is_UseOptimisticLocking, is_ValueChanged, is_ValueChanged, isActive, isAttachment, isColumnMandatory, isColumnUpdateable, isMandatoryOK, isPdfAttachment, isReplication, load, load, load, load, load, loadByUU, loadComplete, loadDefaults, loadSpecial, lock, makeImmutable, postDelete, retrieveIdOfParentValue, retrieveIdOfParentValue, save, save, saveEx, saveEx, saveNew_afterSetID, saveNew_getID, saveNewSpecial, saveReplica, saveUpdate, set_Attribute, set_ColumnUpdateable, set_CustomColumn, set_CustomColumnReturningBoolean, set_OptimisticLockingColumns, set_TrxName, set_TrxName, set_UseOptimisticLocking, set_Value, set_Value, set_Value, set_Value, set_ValueE, set_ValueNoCheck, set_ValueNoCheckE, set_ValueOfColumn, set_ValueOfColumn, set_ValueOfColumnReturningBoolean, set_ValueOfColumnReturningBoolean, setAD_Client_ID, setAD_Org_ID, setClientOrg, setClientOrg, setCrossTenantSafe, setDoc, setDocWorkflowMgr, setIsActive, setProcessedOn, setReplication, setStandardDefaults, setUpdateable, setUpdatedBy, unlock, update_Tree, validForeignKeys
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Methods inherited from interface org.compiere.model.I_M_CostDetail
getAD_Client_ID, getAD_Org_ID, getCreated, getCreatedBy, getUpdated, getUpdatedBy, isActive, setAD_Org_ID, setIsActive
-
Methods inherited from interface org.compiere.model.I_Persistent
save
-
-
-
-
Field Detail
-
INOUTLINE_DOCBASETYPE_SQL
protected static final String INOUTLINE_DOCBASETYPE_SQL
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MCostDetail
public MCostDetail(Properties ctx, int M_CostDetail_ID, String trxName)
Standard Constructor- Parameters:
ctx
- contextM_CostDetail_ID
- idtrxName
- trx
-
MCostDetail
public MCostDetail(Properties ctx, ResultSet rs, String trxName)
Load Constructor- Parameters:
ctx
- contextrs
- result settrxName
- trx
-
MCostDetail
public MCostDetail(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
New Constructor- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiM_CostElement_ID
- optional cost element for FreightAmt
- amtQty
- qtyDescription
- optional descriptiontrxName
- transaction
-
-
Method Detail
-
createOrder
public static boolean createOrder(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int C_OrderLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Order Cost Detail for Purchase Orders. Called from Doc_MatchPO- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiC_OrderLine_ID
- orderM_CostElement_ID
- optional cost element for FreightAmt
- amt total amountQty
- qtyDescription
- optional descriptiontrxName
- transaction- Returns:
- true if created
-
createInvoice
public static boolean createInvoice(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int C_InvoiceLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Invoice Cost Detail for AP Invoices. Called from Doc_Invoice - for Invoice Adjustments- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiC_InvoiceLine_ID
- invoiceM_CostElement_ID
- optional cost element for FreightAmt
- amtQty
- qtyDescription
- optional descriptiontrxName
- transaction- Returns:
- true if created
-
createShipment
public static boolean createShipment(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_InOutLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, boolean IsSOTrx, String trxName)
Create New Shipment Cost Detail for SO Shipments. Called from Doc_MInOut - for SO Shipments- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiM_InOutLine_ID
- shipmentM_CostElement_ID
- optional cost element for FreightAmt
- amtQty
- qtyDescription
- optional descriptionIsSOTrx
- sales ordertrxName
- transaction- Returns:
- true if no error
-
createInventory
public static boolean createInventory(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_InventoryLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Order Cost Detail for Physical Inventory. Called from Doc_Inventory- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiM_InventoryLine_ID
- orderM_CostElement_ID
- optional cost elementAmt
- amt total amountQty
- qtyDescription
- optional descriptiontrxName
- transaction- Returns:
- true if no error
-
createMovement
public static boolean createMovement(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_MovementLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, boolean from, String Description, String trxName)
Create New Order Cost Detail for Movements. Called from Doc_Movement- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiM_MovementLine_ID
- movementM_CostElement_ID
- optional cost element for FreightAmt
- amt total amountQty
- qtyfrom
- if true the from (reduction)Description
- optional descriptiontrxName
- transaction- Returns:
- true if no error
-
createProduction
public static boolean createProduction(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_ProductionLine_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create New Order Cost Detail for Production. Called from Doc_Production- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiM_ProductionLine_ID
- production lineM_CostElement_ID
- optional cost elementAmt
- amt total amountQty
- qtyDescription
- optional descriptiontrxName
- transaction- Returns:
- true if no error
-
createMatchInvoice
public static boolean createMatchInvoice(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int M_MatchInv_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
- Parameters:
as
-AD_Org_ID
-M_Product_ID
-M_AttributeSetInstance_ID
-M_MatchInv_ID
-M_CostElement_ID
-Amt
-Qty
-Description
-trxName
-- Returns:
- true if no error
-
createProjectIssue
public static boolean createProjectIssue(MAcctSchema as, int AD_Org_ID, int M_Product_ID, int M_AttributeSetInstance_ID, int C_ProjectIssue_ID, int M_CostElement_ID, BigDecimal Amt, BigDecimal Qty, String Description, String trxName)
Create Cost Detail for Project Issue. Called from Doc_ProjectIssue- Parameters:
as
- accounting schemaAD_Org_ID
- orgM_Product_ID
- productM_AttributeSetInstance_ID
- asiC_ProjectIssue_ID
- project issue lineM_CostElement_ID
- optional cost elementAmt
- amt total amountQty
- qtyDescription
- optional descriptiontrxName
- transaction- Returns:
- true if no error
-
get
public static MCostDetail get(Properties ctx, String whereClause, int ID, int M_AttributeSetInstance_ID, String trxName)
Deprecated.Get Cost Detail- Parameters:
ctx
- contextwhereClause
- where clauseID
- 1st parameterM_AttributeSetInstance_ID
- ASItrxName
- trx- Returns:
- cost detail
-
get
public static MCostDetail get(Properties ctx, String whereClause, int ID, int M_AttributeSetInstance_ID, int C_AcctSchema_ID, String trxName)
Get Cost Detail- Parameters:
ctx
- contextwhereClause
- where clauseID
- 1st parameterM_AttributeSetInstance_ID
- ASItrxName
- trx- Returns:
- cost detail
-
processProduct
public static boolean processProduct(MProduct product, String trxName)
Process Cost Details for product- Parameters:
product
- producttrxName
- transaction- Returns:
- true if no error
-
setAmt
public void setAmt(BigDecimal Amt)
Set Amt- Specified by:
setAmt
in interfaceI_M_CostDetail
- Overrides:
setAmt
in classX_M_CostDetail
- Parameters:
Amt
- amt
-
setQty
public void setQty(BigDecimal Qty)
Set Qty- Specified by:
setQty
in interfaceI_M_CostDetail
- Overrides:
setQty
in classX_M_CostDetail
- Parameters:
Qty
- qty
-
isOrder
public boolean isOrder()
Is Order- Returns:
- true if order line
-
isInvoice
public boolean isInvoice()
Is Invoice- Returns:
- true if invoice line
-
isShipment
public boolean isShipment()
Is Shipment- Returns:
- true if sales order shipment
-
isVendorRMA
public boolean isVendorRMA()
- Returns:
- true if return to vendor
-
isDelta
public boolean isDelta()
Is this a Delta Record (previously processed)?- Returns:
- true if delta is not null
-
beforeDelete
protected boolean beforeDelete()
Before Delete- Overrides:
beforeDelete
in classPO
- Returns:
- false if processed
-
toString
public String toString()
String Representation- Overrides:
toString
in classX_M_CostDetail
- Returns:
- info
-
process
public boolean process()
Process Cost Detail Record. The record is saved if processed.- Returns:
- true if processed
-
process
protected boolean process(MAcctSchema as, MProduct product, MCostElement ce, int Org_ID, int M_ASI_ID)
Process cost detail for cost record- Parameters:
as
- accounting schemaproduct
- productce
- cost elementOrg_ID
- org - corrected for costing levelM_ASI_ID
- - asi corrected for costing level- Returns:
- true if cost ok
-
-