2013年7月13日 星期六

adempiere accounting albert

ADempiere Accounting

Contributed by:
Quality Systems & Solutions - QSS Ltda.
Carlos Ruiz

Contents

 [hide]

Allocation

Description of DocumentDRCRConditionsComments
PaymentBased on C_AllocationHdr y C_AllocationLine
Payment Without Invoiceif C_Invoice_ID = 0 (no invoice) Payment Only
if C_Payment.C_DocType->DocBaseType
C_BankAccount_Acct -> B_PaymentSelect_AcctDocBaseType=APPFile:B_PaymentSelect_Acct.jpeg
C_BP_Customer_Acct -> C_Prepayment_AcctDocBaseType<>APP and isPrepayment and isReceiptFile:C_Prepayment_Acct.jpeg
C_BP_Vendor_Acct -> V_Prepayment_AcctDocBaseType<>APP and isPrepaymentFile:V_Prepayment_Acct.jpeg
C_BankAccount_Acct -> B_UnallocatedCash_AcctFile:B_UnallocatedCash_Acct.jpeg
Receipt Customer Invoiceif C_Invoice_ID and isSOTrxAdempiere won't post clearing if C_AcctSchema.isPostIfClearingEqual = N AND (clearing account C_BankAccount_Acct -> B_UnallocatedCash_Acct is equal to C_BP_Customer_Acct -> C_Receivable_Acct)
if C_Payment_ID > 0
C_BankAccount_Acct -> B_PaymentSelect_Acct=APP
C_BP_Customer_Acct -> C_Prepayment_Acct<>APP and isPrepayment and isReceipt
C_BP_Vendor_Acct -> V_Prepayment_Acct<>APP and isPrepayment
C_BankAccount_Acct -> B_UnallocatedCash_Acctelse
C_CashBook_Acct -> CB_CashTransfer_Acctif C_CashLine_ID > 0
C_BP_Group_Acct -> PayDiscount_Exp_Acctif there is discountvalue of DiscountAmt
C_BP_Group_Acct -> WriteOff_Acctif there is writeoffvalue of WriteOffAmt
C_BP_Customer_Acct -> C_Receivable_Acctif c_acctschema.isAccrualvalue of AmtSource + DiscountAmt + WriteOffAmt
when the schema is not accrual Adempiere generates different posting in createCashBasedAcct (still not described in this document)
Payment Purchase InvoiceAdempiere won't post clearing if C_AcctSchema.isPostIfClearingEqual = N AND (clearing account C_BankAccount_Acct -> B_PaymentSelect_Acct is equal to C_BP_Vendor_Acct -> V_Liability_Acct)
C_BP_Vendor_Acct -> V_Liability_Acctif c_acctschema.isAccrual
if C_Payment_ID > 0
C_BankAccount_Acct -> B_PaymentSelect_Acct=APP
C_BP_Customer_Acct -> C_Prepayment_Acct<>APP and isPrepayment and isReceipt
C_BP_Vendor_Acct -> V_Prepayment_Acct<>APP and isPrepayment
C_BankAccount_Acct -> B_UnallocatedCash_Acctelse
C_CashBook_Acct -> CB_CashTransfer_Acctif C_CashLine_ID > 0
C_BP_Group_Acct -> PayDiscount_Rev_Acctif there is discount
C_BP_Group_Acct -> WriteOff_Acctif there is writeoff
Tax Correction Postingif there is invoice and c_acctschema.isTaxCorrectionvalue to correct taxCorrectionAmt depends on isTaxCorrectionDiscount and isTaxCorrectionWriteOff.
To find the value to correct looks in Fact_Acct the posting of that invoice and compares with actual posting
C_BP_Group_Acct -> PayDiscount_Exp_Acctif sales invoice
C_BP_Group_Acct -> PayDiscount_Rev_Acctif purchase invoice
C_BP_Group_Acct -> WriteOff_Acct
acctAgainst the account used in Fact_Acct to reverse
Movements are DB or CR depending on the sign (negative or positive) or correction
Realized Gain & Loss Postingif there is invoice and payment is in different currency than accounting schema or invoice currencyLooks the sum of DB and CR in Fact_Acct of corresponding invoice, find the currency conversion in C_Conversion_Rate for the accounting date and conversion type selected in invoice
C_AcctSchema_Default -> RealizedLoss_AcctC_AcctSchema_Default -> RealizedGain_Acctif sales invoice
acctacctagainst the account that originally was posted in invoice

Bank

Description of DocumentDBCRConditionsComments
Bank StatementBased in C_BankStatement y C_BankStatementLine
Bank ChargesC_BankAccount_Acct -> B_Asset_AcctBank (if debit or credit is determined according to the sign of value StmtAmt)

Adempiere won't post clearing if C_AcctSchema.isPostIfClearingEqual = N AND (clearing account C_BankAccount_Acct -> B_InTransit_Acct is equal to C_BankAccount_Acct -> B_Asset_Acct)
C_BankAccount_Acct -> B_InTransit_AcctPayment (value TrxAmt, DB or CR depending on the sign)
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0value ChargeAmt, DB or CR depending on the sign
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
C_BankAccount_Acct -> B_InterestExp_AcctC_BankAccount_Acct -> B_InterestExp_Acctif C_BankStatementLine.InterestAmt < 0DB or CR depending on the sign of the quantity (value InterestAmt)
C_BankAccount_Acct -> B_InterestRev_AcctC_BankAccount_Acct -> B_InterestRev_Acctif C_BankStatementLine.InterestAmt > 0DB or CR depending on the sign of the quantity

Cash

Description of DocumentDBCRConditionsComments
CashBased in C_Cash y C_CashLine
Expenses (CASH EXPENSE)C_CashBook_Acct -> CB_Expense_Acctif C_CashLine.CashType = E
Receipts (CASH RECEIPT)C_CashBook_Acct -> CB_Receipt_Acctif C_CashLine.CashType = R
Charges (CASH CHARGE)if C_CashLine.CashType = C
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
Difference in cash (CASH DIFFERENCE)C_CashBook_Acct -> CB_Differences_Acctif C_CashLine.CashType = D
Invoice (CASH INVOICE)C_CashBook_Acct -> CB_CashTransfer_Acct
C_CashBook_Acct -> CB_Asset_Acctif currency is different than document currency
Bank Transfer (CASH TRANSFER)C_BankAccount_Acct -> B_InTransit_Acct
C_CashBook_Acct -> CB_Asset_Acctif currency is different than document currency
C_CashBook_Acct -> CB_Asset_AcctFinally it creates a record in DB or CR depending on the difference between the registered movements

GLJournal

Description of DocumentDBCRConditionsComments
GL JournalBased in GL_Journal y GL_JournalLine
JournalGL_JournalLine -> account_idGL_JournalLine -> account_id

InOut (Shipments and Receipts)

Description of DocumentDBCRConditionsComments
Shipments and ReceiptsBased in M_InOut y M_InOutLine
Sales shipment (DOC MatShipment)M_Product_Acct -> P_Cogs_AcctM_Product_Acct -> P_Asset_AcctSales - Shipmentcalculates the cost based in M_Cost. If is a product create register in M_CostDetail
Material Receipt (DOC MatReceipt)Purchasing - Receiptcalculates the cost based in M_Cost
M_Product_Acct -> P_Expense_Acctif product.isService
M_Product_Acct -> P_Asset_Acctelse
C_BP_Group_Acct -> NotInvoicedReceipts_Acct

Inventory

Description of DocumentDBCRConditionsComments
Internal Use and Physical InventoryBased in M_Inventory y M_InventoryLine
M_Product_Acct -> P_Asset_Acctcalculates the cost based in M_CostDetail
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
M_Warehouse_Acct -> W_Differences_Acctrecreate M_CostDetail

Invoice

Description of DocumentDBCRConditionsComments
Invoicethere is no accounting for not accrualBased in C_Invoice, C_InvoiceTax y C_InvoiceLine
Sales Invoice (Customer) (DOC ARInvoice or ARProForma)
Header Charge
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt < 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt > 0
C_Tax_Acct -> T_Due_Acctfor each tax
Revenue
M_Product_Acct -> P_Revenue_Acctif c_acctschema.isTradeDiscountPosted use the price list, otherwise use the price
M_Product_Acct -> P_TradeDiscountGrant_Acctif c_acctschema.isTradeDiscountPosted post the discount here
C_BP_Group_Acct -> UnearnedRevenue_Acctif involved product in invoice has defined revenue recognition plan, it changes (in FactLine.beforesave) the account P_Revenue by the account defined in the product and creates a record in C_RevenueRecognition_Plan
Receivables
C_BP_Customer_Acct -> C_Receivable_Acctpost the value of products
C_BP_Customer_Acct -> C_Receivable_Services_Acctonly posted if C_AcctSchema.isPostServices and there are non-item productspost the value of services and charges
Credit Note (Customer) (DOC ARCredit)
Header Charge
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
C_Tax_Acct -> T_Due_Acctfor each tax
Revenue
M_Product_Acct -> P_Revenue_Acctif c_acctschema.isTradeDiscountPosted use the price list, otherwise use the price
M_Product_Acct -> P_TradeDiscountGrant_Acctif c_acctschema.isTradeDiscountPosted post the discount here
Receivables
C_BP_Customer_Acct -> C_Receivable_Acctpost the value of products
C_BP_Customer_Acct -> C_Receivable_Services_Acctonly posted if C_AcctSchema.isPostServices and there are non-item productspost the value of services and charges
Purchase Invoice (Vendor) (DOC APInvoice)
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax)for each tax
M_Product_Acct -> P_Expense_AcctM_Product_Acct -> P_Expense_AcctExpense, if C_AcctSchema.isExplicitCostAdjustmentcalculates the cost based in M_CostDetail
M_Product_Acct -> P_InventoryClearing_Acctif item
M_Product_Acct -> P_Expense_Acctif non-item
M_Product_Acct -> P_TradeDiscountRec_Acctif c_acctschema.isTradeDiscountPosted post the discount here and use the price list for the expense or clearing
Liability
C_BP_Vendor_Acct -> V_Liability_Acct
C_BP_Vendor_Acct -> V_Liability_Services_Acctonly posted if C_AcctSchema.isPostServices and there are non-item products
Credit Note (Vendor) (DOC APCredit)
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax)TaxCredit
M_Product_Acct -> P_Expense_AcctM_Product_Acct -> P_Expense_AcctExpense, if C_AcctSchema.isExplicitCostAdjustmentcalculates the cost based in M_CostDetail
M_Product_Acct -> P_InventoryClearing_Acctif item
M_Product_Acct -> P_Expense_Acctif non-item
M_Product_Acct -> P_TradeDiscountRec_Acctif c_acctschema.isTradeDiscountPosted post the discount here and use the price list for the expense or clearing
Liability
C_BP_Vendor_Acct -> V_Liability_Acct
C_BP_Vendor_Acct -> V_Liability_Services_Acctonly posted if C_AcctSchema.isPostServices and there are non-item products
Landed Cost PostingM_Product_Acct -> P_CostAdjustment_Acct
M_Product_Acct -> P_Expense_Acct
M_Product_Acct -> P_InventoryClearing_Acct

MatchInv

Description of DocumentDBCRConditionsComments
Match InventoryBased in M_MatchInv, C_InvoiceLine y M_InOutLine
C_BP_Group_Acct -> NotInvoicedReceipts_AcctAdempiere won't post clearing if C_AcctSchema.isPostIfClearingEqual = N AND (clearing account C_BP_Group_Acct -> NotInvoicedReceipts_Acct is equal to M_Product_Acct -> P_InventoryClearing_Acct)
if isAccrual
M_Product_Acct -> P_InventoryClearing_Acctif item
M_Product_Acct -> P_Expense_Acctif non-item
when the schema is not accrual Adempiere generates different posting in createCashBasedAcct (still not described in this document)
M_Product_Acct -> P_InvoicePriceVariance_AcctInvoice Price Variance differenceUpdate M_Product_Costing
Commitment release
if isAccrual y isCreateCommitment
M_Product_Acct -> P_Expense_Acctfor each commitment, this is each C_OrderLine that matches with an C_InvoiceLine or with a M_MatchPO
C_AcctSchema_GL -> CommitmentOffset_Acct


MatchPO

Description of DocumentDBCRConditionsComments
Match Purchase OrderJust for standard costing
Adempiere won't post this if C_AcctSchema.isPostIfClearingEqual = N AND (clearing account M_Product_Acct -> P_PurchasePriceVariance_Acct is equal to C_AcctSchema_GL -> PPVOffset_Acct)
M_Product_Acct -> P_PurchasePriceVariance_AcctC_AcctSchema_GL -> PPVOffset_Acctpost the difference between the cost of the order line vs the standard cost


Movement

Description of DocumentDBCRConditionsComments
Inventory MovementBased in M_Movement y M_MovementLine
M_Product_Acct -> P_Asset_AcctM_Product_Acct -> P_Asset_AcctInventoryDB or CR depending on thevalue, moving from a locator to another in accounting dimension
if there was movement between organizations and the costing level in C_AcctSchema is organización then it creates movements in M_CostDetail


Order

Description of DocumentDBCRConditionsComments
OrderBased in C_Order, C_OrderTax y C_OrderLine (goes to M_RequisitionLine)
Purchase Order (DOC Porder)update M_Product_PO.PriceLastPO, M_Product_Costing.PriceLastPO
if C_AcctSchema,isCreateCommitment post this with Commityment Type (to be released by Invoice Matching)
M_Product_Acct -> P_Expense_Acct
C_AcctSchema_GL -> CommitmentOffset_Acct
if C_AcctSchema.isCreateReservation post this with Reservation Type (Release reservation)
M_Product_Acct -> P_Expense_Acct
C_AcctSchema_GL -> CommitmentOffset_Acct

Payment

Description of DocumentDBCRConditionsComments
PaymentBased in C_Payment
Receipt (DOC ARR - ARReceipt)C_BankAccount_Acct -> B_InTransit_Acct
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
C_BP_Customer_Acct -> C_Prepayment_Acctif C_Payment.isPrepayment
C_BankAccount_Acct -> B_UnallocatedCash_Acctelse
Payment (DOC APP - APPayment)
C_Charge_Acct -> CH_Expense_Acctif C_Charge_ID <> 0 and amt > 0
C_Charge_Acct -> CH_Revenue_Acctif C_Charge_ID <> 0 and amt < 0
C_BP_Vendor_Acct -> V_Prepayment_Acctif C_Payment.isPrepayment
C_BankAccount_Acct -> B_PaymentSelect_Acctelse
C_BankAccount_Acct -> B_InTransit_Acct

Production

Description of DocumentDBCRConditionsComments

ProductionBased in M_Production, M_ProductionPlan y M_ProductionLine
M_Product_Acct -> P_Asset_AcctM_Product_Acct -> P_Asset_AcctInventorycost the BOM or the products



ProjectIssue

Description of DocumentDBCRConditionsComments

Project IssueBased in C_ProjectIssue
if the project has M_InOutLine it calculates the cost of products from M_InOutLine, C_Order and C_OrderLine
otherwise verifies if the project has S_TimeExpenseLine and calculates the cost of services (look out /** TODO Labor Cost */)
otherwise, it calculates the normal cost of products
C_Project_Acct -> PJ_WIP_Acct
C_Project_Acct -> PJ_Asset_Acctif project category is AssetProject (A)
M_Product_Acct -> P_Expense_Acctif product.isService
M_Product_Acct -> P_Asset_Acctelse



Requisition

Description of DocumentDBCRConditionsComments
RequisitionsBased in M_Requisition y M_RequisitionLine
if C_AcctSchema isCreateReservation post this with Reservation type
M_Product_Acct -> P_Expense_Acct
C_AcctSchema_GL -> CommitmentOffset_Acct

General Fact

Description of DocumentDBCRConditionsComments
All documents inter organizationC_AcctSchema_GL -> InterCompanyDueFrom_AcctC_AcctSchema_GL -> InterCompanyDueTo_AcctPosted when the accounting by organization must be balanced and transaction involves more than one organization
All documents with currencies unbalancedC_AcctSchema_GL -> CurrencyBalancing_AcctIf the GL schema is marked as currency balancing
All documents unbalancedC_AcctSchema_GL -> SuspenseBalancing_AcctIf the GL schema is marked as use suspense balancing - it's posted when the document is unbalanced

Default Accounts Usage

沒有留言:

張貼留言