Difference between revisions of "IDempiere Accounting"
From iDempiere en
CarlosRuiz (talk | contribs) (→MatchPO: complement) |
CarlosRuiz (talk | contribs) m |
||
| (30 intermediate revisions by 3 users not shown) | |||
| Line 7: | Line 7: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 13: | Line 13: | ||
|- | |- | ||
| − | | Payment || || || || Based on C_AllocationHdr | + | | Payment || || || || Based on C_AllocationHdr and C_AllocationLine |
|- | |- | ||
| Payment Without Invoice || || || if C_Invoice_ID = 0 (no invoice) Payment Only<br>if C_Payment.C_DocType->DocBaseType || | | Payment Without Invoice || || || if C_Invoice_ID = 0 (no invoice) Payment Only<br>if C_Payment.C_DocType->DocBaseType || | ||
|- | |- | ||
| − | | || C_BankAccount_Acct -> B_PaymentSelect_Acct || || DocBaseType=APP || | + | | || C_BankAccount_Acct -> B_PaymentSelect_Acct || || DocBaseType=APP || |
|- | |- | ||
| − | | || C_BP_Customer_Acct -> C_Prepayment_Acct || || DocBaseType<>APP and isPrepayment and isReceipt || | + | | || C_BP_Customer_Acct -> C_Prepayment_Acct || || DocBaseType<>APP and isPrepayment and isReceipt || |
|- | |- | ||
| − | | || C_BP_Vendor_Acct -> V_Prepayment_Acct || || DocBaseType<>APP and isPrepayment || | + | | || C_BP_Vendor_Acct -> V_Prepayment_Acct || || DocBaseType<>APP and isPrepayment || |
|- | |- | ||
| − | | || || C_BankAccount_Acct -> B_UnallocatedCash_Acct || || | + | | || || C_BankAccount_Acct -> B_UnallocatedCash_Acct || || |
|- | |- | ||
| − | | Receipt Customer Invoice || || || if C_Invoice_ID and isSOTrx || | + | | Receipt Customer Invoice || || || if C_Invoice_ID and isSOTrx || iDempiere 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 || | | || || || if C_Payment_ID > 0 || | ||
| Line 36: | Line 36: | ||
|- | |- | ||
| || C_BankAccount_Acct -> B_UnallocatedCash_Acct || || else || | | || C_BankAccount_Acct -> B_UnallocatedCash_Acct || || else || | ||
| − | |||
| − | |||
|- | |- | ||
| || C_BP_Group_Acct -> PayDiscount_Exp_Acct || || if there is discount || value of DiscountAmt | | || C_BP_Group_Acct -> PayDiscount_Exp_Acct || || if there is discount || value of DiscountAmt | ||
| Line 45: | Line 43: | ||
| || || C_BP_Customer_Acct -> C_Receivable_Acct || if c_acctschema.isAccrual || value of AmtSource + DiscountAmt + WriteOffAmt | | || || C_BP_Customer_Acct -> C_Receivable_Acct || if c_acctschema.isAccrual || value of AmtSource + DiscountAmt + WriteOffAmt | ||
|- | |- | ||
| − | | || || || when the schema is not accrual | + | | || || || when the schema is not accrual iDempiere generates different posting in createCashBasedAcct (still not described in this document) || |
|- | |- | ||
| − | | Payment Purchase Invoice || || || || | + | | Payment Purchase Invoice || || || || iDempiere 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_Acct || || if c_acctschema.isAccrual || | | || C_BP_Vendor_Acct -> V_Liability_Acct || || if c_acctschema.isAccrual || | ||
| Line 60: | Line 58: | ||
|- | |- | ||
| || || C_BankAccount_Acct -> B_UnallocatedCash_Acct || else || | | || || C_BankAccount_Acct -> B_UnallocatedCash_Acct || else || | ||
| − | |||
| − | |||
|- | |- | ||
| || || C_BP_Group_Acct -> PayDiscount_Rev_Acct || if there is discount || | | || || C_BP_Group_Acct -> PayDiscount_Rev_Acct || if there is discount || | ||
| Line 91: | Line 87: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 97: | Line 93: | ||
|- | |- | ||
| − | | Bank Statement || || || || Based in C_BankStatement | + | | Bank Statement || || || || Based in C_BankStatement and C_BankStatementLine |
|- | |- | ||
| − | | Bank Charges || C_BankAccount_Acct -> B_Asset_Acct || || || Bank (if debit or credit is determined according to the sign of value StmtAmt) <br><br> | + | | Bank Charges || C_BankAccount_Acct -> B_Asset_Acct || || || Bank (if debit or credit is determined according to the sign of value StmtAmt) <br><br> iDempiere 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_Acct || || Payment (value TrxAmt, DB or CR depending on the sign) | | || || C_BankAccount_Acct -> B_InTransit_Acct || || Payment (value TrxAmt, DB or CR depending on the sign) | ||
|- | |- | ||
| − | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID < | + | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> 0 || value ChargeAmt, DB or CR depending on the sign |
| − | |||
| − | |||
|- | |- | ||
| || C_BankAccount_Acct -> B_InterestExp_Acct || C_BankAccount_Acct -> B_InterestExp_Acct || if C_BankStatementLine.InterestAmt < 0 || DB or CR depending on the sign of the quantity (value InterestAmt) | | || C_BankAccount_Acct -> B_InterestExp_Acct || C_BankAccount_Acct -> B_InterestExp_Acct || if C_BankStatementLine.InterestAmt < 0 || DB or CR depending on the sign of the quantity (value InterestAmt) | ||
|- | |- | ||
| || C_BankAccount_Acct -> B_InterestRev_Acct || C_BankAccount_Acct -> B_InterestRev_Acct || if C_BankStatementLine.InterestAmt > 0 || DB or CR depending on the sign of the quantity | | || C_BankAccount_Acct -> B_InterestRev_Acct || C_BankAccount_Acct -> B_InterestRev_Acct || if C_BankStatementLine.InterestAmt > 0 || DB or CR depending on the sign of the quantity | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| Line 153: | Line 111: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 159: | Line 117: | ||
|- | |- | ||
| − | | GL Journal || || || || Based in GL_Journal | + | | GL Journal || || || || Based in GL_Journal and GL_JournalLine |
|- | |- | ||
| Journal || GL_JournalLine -> account_id || GL_JournalLine -> account_id || || | | Journal || GL_JournalLine -> account_id || GL_JournalLine -> account_id || || | ||
| Line 169: | Line 127: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 175: | Line 133: | ||
|- | |- | ||
| − | | Shipments and Receipts || || || || Based in M_InOut | + | | Shipments and Receipts || || || || Based in M_InOut and M_InOutLine |
|- | |- | ||
| Sales shipment (DOC MatShipment) || M_Product_Acct -> P_Cogs_Acct || M_Product_Acct -> P_Asset_Acct || Sales - Shipment || calculates the cost based in M_Cost. If is a product create register in M_CostDetail | | Sales shipment (DOC MatShipment) || M_Product_Acct -> P_Cogs_Acct || M_Product_Acct -> P_Asset_Acct || Sales - Shipment || calculates the cost based in M_Cost. If is a product create register in M_CostDetail | ||
| Line 193: | Line 151: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 199: | Line 157: | ||
|- | |- | ||
| − | | Internal Use and Physical Inventory || || || || Based in M_Inventory | + | | Internal Use and Physical Inventory || || || || Based in M_Inventory and M_InventoryLine |
|- | |- | ||
| || M_Product_Acct -> P_Asset_Acct || || || calculates the cost based in M_CostDetail | | || M_Product_Acct -> P_Asset_Acct || || || calculates the cost based in M_CostDetail | ||
|- | |- | ||
| − | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> | + | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> 0 || |
| − | |||
| − | |||
|- | |- | ||
| || || M_Warehouse_Acct -> W_Differences_Acct || || recreate M_CostDetail | | || || M_Warehouse_Acct -> W_Differences_Acct || || recreate M_CostDetail | ||
| Line 215: | Line 171: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 221: | Line 177: | ||
|- | |- | ||
| − | | Invoice || || || there is no accounting for not accrual || Based in C_Invoice, C_InvoiceTax | + | | Invoice || || || there is no accounting for not accrual || Based in C_Invoice, C_InvoiceTax and C_InvoiceLine |
|- | |- | ||
| Sales Invoice (Customer) (DOC ARInvoice or ARProForma) || || || || | | Sales Invoice (Customer) (DOC ARInvoice or ARProForma) || || || || | ||
| Line 227: | Line 183: | ||
| || || || Header Charge || | | || || || Header Charge || | ||
|- | |- | ||
| − | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID < | + | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> 0 || |
| − | |||
| − | |||
|- | |- | ||
| || || C_Tax_Acct -> T_Due_Acct || for each tax || | | || || C_Tax_Acct -> T_Due_Acct || for each tax || | ||
| Line 244: | Line 198: | ||
|- | |- | ||
| || C_BP_Customer_Acct -> C_Receivable_Acct || || || post the value of products | | || C_BP_Customer_Acct -> C_Receivable_Acct || || || post the value of products | ||
| − | |||
| − | |||
|- | |- | ||
| Credit Note (Customer) (DOC ARCredit) || || || || | | Credit Note (Customer) (DOC ARCredit) || || || || | ||
| Line 251: | Line 203: | ||
| || || || Header Charge || | | || || || Header Charge || | ||
|- | |- | ||
| − | | || C_Charge_Acct -> CH_Expense_Acct || || if C_Charge_ID <> | + | | || C_Charge_Acct -> CH_Expense_Acct || || if C_Charge_ID <> 0 || |
| − | |||
| − | |||
|- | |- | ||
| || C_Tax_Acct -> T_Due_Acct || || for each tax || | | || C_Tax_Acct -> T_Due_Acct || || for each tax || | ||
| Line 266: | Line 216: | ||
|- | |- | ||
| || || C_BP_Customer_Acct -> C_Receivable_Acct || || post the value of products | | || || C_BP_Customer_Acct -> C_Receivable_Acct || || post the value of products | ||
| − | |||
| − | |||
|- | |- | ||
| Purchase Invoice (Vendor) (DOC APInvoice) || || || || | | Purchase Invoice (Vendor) (DOC APInvoice) || || || || | ||
|- | |- | ||
| − | | || C_Charge_Acct -> CH_Expense_Acct || || if C_Charge_ID <> | + | | || C_Charge_Acct -> CH_Expense_Acct || || if C_Charge_ID <> 0 || |
| − | |||
| − | |||
|- | |- | ||
| || C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax) || || for each tax || | | || C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax) || || for each tax || | ||
| Line 288: | Line 234: | ||
|- | |- | ||
| || || C_BP_Vendor_Acct -> V_Liability_Acct || || | | || || C_BP_Vendor_Acct -> V_Liability_Acct || || | ||
| − | |||
| − | |||
|- | |- | ||
| Credit Note (Vendor) (DOC APCredit) || || || || | | Credit Note (Vendor) (DOC APCredit) || || || || | ||
|- | |- | ||
| − | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> | + | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> 0 || |
| − | |||
| − | |||
|- | |- | ||
| || || C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax) || TaxCredit || | | || || C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax) || TaxCredit || | ||
| Line 309: | Line 251: | ||
| || || || Liability || | | || || || Liability || | ||
|- | |- | ||
| − | + | | || C_BP_Vendor_Acct -> V_Liability_Acct | |
| − | + | | || || | |
| − | | || | ||
|- | |- | ||
| Landed Cost Posting || M_Product_Acct -> P_CostAdjustment_Acct || || || | | Landed Cost Posting || M_Product_Acct -> P_CostAdjustment_Acct || || || | ||
| Line 325: | Line 266: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 331: | Line 272: | ||
|- | |- | ||
| − | | Match | + | | Match Invoice || || || || Based in M_MatchInv, C_InvoiceLine and M_InOutLine |
|- | |- | ||
| − | | || C_BP_Group_Acct -> NotInvoicedReceipts_Acct || || || | + | | || C_BP_Group_Acct -> NotInvoicedReceipts_Acct || || || iDempiere 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 || | | || || || if isAccrual || | ||
| Line 341: | Line 282: | ||
| || || M_Product_Acct -> P_Expense_Acct || if non-item || | | || || M_Product_Acct -> P_Expense_Acct || if non-item || | ||
|- | |- | ||
| − | | || || || when the schema is not accrual | + | | || || || when the schema is not accrual iDempiere generates different posting in createCashBasedAcct (still not described in this document) || |
|- | |- | ||
| || M_Product_Acct -> P_InvoicePriceVariance_Acct || || Invoice Price Variance difference || Update M_Product_Costing | | || M_Product_Acct -> P_InvoicePriceVariance_Acct || || Invoice Price Variance difference || Update M_Product_Costing | ||
| Line 347: | Line 288: | ||
| || || || Commitment release || | | || || || Commitment release || | ||
|- | |- | ||
| − | | || || || if isAccrual | + | | || || || if isAccrual and isCreateCommitment || |
|- | |- | ||
| || || M_Product_Acct -> P_Expense_Acct || for each commitment, this is each C_OrderLine that matches with an C_InvoiceLine or with a M_MatchPO || | | || || M_Product_Acct -> P_Expense_Acct || for each commitment, this is each C_OrderLine that matches with an C_InvoiceLine or with a M_MatchPO || | ||
| Line 361: | Line 302: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 367: | Line 308: | ||
|- | |- | ||
| − | | Match Purchase Order || || || || Just for standard costing | + | | Match Purchase Order || || || || Just for standard costing<br>iDempiere 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_Acct || C_AcctSchema_GL -> PPVOffset_Acct || || post the difference between the cost of the order line vs the standard cost | | || M_Product_Acct -> P_PurchasePriceVariance_Acct || C_AcctSchema_GL -> PPVOffset_Acct || || post the difference between the cost of the order line vs the standard cost | ||
| Line 379: | Line 320: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 385: | Line 326: | ||
|- | |- | ||
| − | | Inventory Movement || || || || Based in M_Movement | + | | Inventory Movement || || || || Based in M_Movement and M_MovementLine |
|- | |- | ||
| || M_Product_Acct -> P_Asset_Acct || M_Product_Acct -> P_Asset_Acct || Inventory || DB or CR depending on thevalue, moving from a locator to another in accounting dimension | | || M_Product_Acct -> P_Asset_Acct || M_Product_Acct -> P_Asset_Acct || Inventory || DB or CR depending on thevalue, moving from a locator to another in accounting dimension | ||
| Line 399: | Line 340: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 405: | Line 346: | ||
|- | |- | ||
| − | | Order || || || || Based in C_Order, C_OrderTax | + | | Order || || || || Based in C_Order, C_OrderTax and C_OrderLine (goes to M_RequisitionLine) |
|- | |- | ||
| Purchase Order (DOC Porder) || || || || update M_Product_PO.PriceLastPO, M_Product_Costing.PriceLastPO | | Purchase Order (DOC Porder) || || || || update M_Product_PO.PriceLastPO, M_Product_Costing.PriceLastPO | ||
| Line 427: | Line 368: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 437: | Line 378: | ||
| Receipt (DOC ARR - ARReceipt) || C_BankAccount_Acct -> B_InTransit_Acct || || || | | Receipt (DOC ARR - ARReceipt) || C_BankAccount_Acct -> B_InTransit_Acct || || || | ||
|- | |- | ||
| − | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> | + | | || || C_Charge_Acct -> CH_Expense_Acct || if C_Charge_ID <> 0 || |
| − | |||
| − | |||
|- | |- | ||
| || || C_BP_Customer_Acct -> C_Prepayment_Acct || if C_Payment.isPrepayment || | | || || C_BP_Customer_Acct -> C_Prepayment_Acct || if C_Payment.isPrepayment || | ||
| Line 447: | Line 386: | ||
| Payment (DOC APP - APPayment) || || || || | | Payment (DOC APP - APPayment) || || || || | ||
|- | |- | ||
| − | | || C_Charge_Acct -> CH_Expense_Acct || || if C_Charge_ID <> | + | | || C_Charge_Acct -> CH_Expense_Acct || || if C_Charge_ID <> 0 || |
| − | |||
| − | |||
|- | |- | ||
| || C_BP_Vendor_Acct -> V_Prepayment_Acct || || if C_Payment.isPrepayment || | | || C_BP_Vendor_Acct -> V_Prepayment_Acct || || if C_Payment.isPrepayment || | ||
| Line 463: | Line 400: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 470: | Line 407: | ||
|- | |- | ||
| − | | Production || || || || Based in M_Production, M_ProductionPlan | + | | Production || || || || Based in M_Production, M_ProductionPlan and M_ProductionLine |
|- | |- | ||
| || M_Product_Acct -> P_Asset_Acct || M_Product_Acct -> P_Asset_Acct || Inventory || cost the BOM or the products | | || M_Product_Acct -> P_Asset_Acct || M_Product_Acct -> P_Asset_Acct || Inventory || cost the BOM or the products | ||
| Line 484: | Line 421: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="150pt"| | + | !width="150pt"|DR |
!width="150pt"|CR | !width="150pt"|CR | ||
!width="150pt"|Conditions | !width="150pt"|Conditions | ||
| Line 515: | Line 452: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="70pt"| | + | !width="70pt"|DR |
!width="70pt"|CR | !width="70pt"|CR | ||
!width="100pt"|Conditions | !width="100pt"|Conditions | ||
!width="100pt"|Comments | !width="100pt"|Comments | ||
|- | |- | ||
| − | | Requisitions || || || || Based in M_Requisition | + | | Requisitions || || || || Based in M_Requisition and M_RequisitionLine |
|- | |- | ||
| || || || if C_AcctSchema isCreateReservation post this with Reservation type || | | || || || if C_AcctSchema isCreateReservation post this with Reservation type || | ||
| Line 533: | Line 470: | ||
|- | |- | ||
!width="100pt"|Description of Document | !width="100pt"|Description of Document | ||
| − | !width="70pt"| | + | !width="70pt"|DR |
!width="70pt"|CR | !width="70pt"|CR | ||
!width="200pt"|Conditions | !width="200pt"|Conditions | ||
| Line 545: | Line 482: | ||
|} | |} | ||
| − | == | + | == See also == |
| − | See also [[Default_Accounts_Usage]] | + | See also: |
| + | * [[Default_Accounts_Usage|Default Accounts Usage]] | ||
| + | * [[Accounting_Schema_(Window_ID-125)|Accounting Schema Window]] | ||
| + | |||
| − | [[Category:Accounting]] | + | [[Category: Financial accounting]] |
| + | [[Category: Accounting]] | ||
| + | [[Category: Development]] | ||
Latest revision as of 20:48, 8 June 2023
Contributed by:
Quality Systems & Solutions - QSS Ltda.
Carlos Ruiz
Allocation
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Payment | Based on C_AllocationHdr and C_AllocationLine | |||
| Payment Without Invoice | if C_Invoice_ID = 0 (no invoice) Payment Only if C_Payment.C_DocType->DocBaseType |
|||
| C_BankAccount_Acct -> B_PaymentSelect_Acct | DocBaseType=APP | |||
| C_BP_Customer_Acct -> C_Prepayment_Acct | DocBaseType<>APP and isPrepayment and isReceipt | |||
| C_BP_Vendor_Acct -> V_Prepayment_Acct | DocBaseType<>APP and isPrepayment | |||
| C_BankAccount_Acct -> B_UnallocatedCash_Acct | ||||
| Receipt Customer Invoice | if C_Invoice_ID and isSOTrx | iDempiere 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_Acct | else | |||
| C_BP_Group_Acct -> PayDiscount_Exp_Acct | if there is discount | value of DiscountAmt | ||
| C_BP_Group_Acct -> WriteOff_Acct | if there is writeoff | value of WriteOffAmt | ||
| C_BP_Customer_Acct -> C_Receivable_Acct | if c_acctschema.isAccrual | value of AmtSource + DiscountAmt + WriteOffAmt | ||
| when the schema is not accrual iDempiere generates different posting in createCashBasedAcct (still not described in this document) | ||||
| Payment Purchase Invoice | iDempiere 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_Acct | if 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_Acct | else | |||
| C_BP_Group_Acct -> PayDiscount_Rev_Acct | if there is discount | |||
| C_BP_Group_Acct -> WriteOff_Acct | if there is writeoff | |||
| Tax Correction Posting | if there is invoice and c_acctschema.isTaxCorrection | value 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_Acct | if sales invoice | |||
| C_BP_Group_Acct -> PayDiscount_Rev_Acct | if purchase invoice | |||
| C_BP_Group_Acct -> WriteOff_Acct | ||||
| acct | Against 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 Posting | if there is invoice and payment is in different currency than accounting schema or invoice currency | Looks 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_Acct | C_AcctSchema_Default -> RealizedGain_Acct | if sales invoice | ||
| acct | acct | against the account that originally was posted in invoice |
Bank
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Bank Statement | Based in C_BankStatement and C_BankStatementLine | |||
| Bank Charges | C_BankAccount_Acct -> B_Asset_Acct | Bank (if debit or credit is determined according to the sign of value StmtAmt) iDempiere 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_Acct | Payment (value TrxAmt, DB or CR depending on the sign) | |||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | value ChargeAmt, DB or CR depending on the sign | ||
| C_BankAccount_Acct -> B_InterestExp_Acct | C_BankAccount_Acct -> B_InterestExp_Acct | if C_BankStatementLine.InterestAmt < 0 | DB or CR depending on the sign of the quantity (value InterestAmt) | |
| C_BankAccount_Acct -> B_InterestRev_Acct | C_BankAccount_Acct -> B_InterestRev_Acct | if C_BankStatementLine.InterestAmt > 0 | DB or CR depending on the sign of the quantity |
GLJournal
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| GL Journal | Based in GL_Journal and GL_JournalLine | |||
| Journal | GL_JournalLine -> account_id | GL_JournalLine -> account_id |
InOut (Shipments and Receipts)
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Shipments and Receipts | Based in M_InOut and M_InOutLine | |||
| Sales shipment (DOC MatShipment) | M_Product_Acct -> P_Cogs_Acct | M_Product_Acct -> P_Asset_Acct | Sales - Shipment | calculates the cost based in M_Cost. If is a product create register in M_CostDetail |
| Material Receipt (DOC MatReceipt) | Purchasing - Receipt | calculates the cost based in M_Cost | ||
| M_Product_Acct -> P_Expense_Acct | if product.isService | |||
| M_Product_Acct -> P_Asset_Acct | else | |||
| C_BP_Group_Acct -> NotInvoicedReceipts_Acct |
Inventory
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Internal Use and Physical Inventory | Based in M_Inventory and M_InventoryLine | |||
| M_Product_Acct -> P_Asset_Acct | calculates the cost based in M_CostDetail | |||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | |||
| M_Warehouse_Acct -> W_Differences_Acct | recreate M_CostDetail |
Invoice
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Invoice | there is no accounting for not accrual | Based in C_Invoice, C_InvoiceTax and C_InvoiceLine | ||
| Sales Invoice (Customer) (DOC ARInvoice or ARProForma) | ||||
| Header Charge | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | |||
| C_Tax_Acct -> T_Due_Acct | for each tax | |||
| Revenue | ||||
| M_Product_Acct -> P_Revenue_Acct | if c_acctschema.isTradeDiscountPosted use the price list, otherwise use the price | |||
| M_Product_Acct -> P_TradeDiscountGrant_Acct | if c_acctschema.isTradeDiscountPosted post the discount here | |||
| C_BP_Group_Acct -> UnearnedRevenue_Acct | if 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_Acct | post the value of products | |||
| Credit Note (Customer) (DOC ARCredit) | ||||
| Header Charge | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | |||
| C_Tax_Acct -> T_Due_Acct | for each tax | |||
| Revenue | ||||
| M_Product_Acct -> P_Revenue_Acct | if c_acctschema.isTradeDiscountPosted use the price list, otherwise use the price | |||
| M_Product_Acct -> P_TradeDiscountGrant_Acct | if c_acctschema.isTradeDiscountPosted post the discount here | |||
| Receivables | ||||
| C_BP_Customer_Acct -> C_Receivable_Acct | post the value of products | |||
| Purchase Invoice (Vendor) (DOC APInvoice) | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | |||
| C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax) | for each tax | |||
| M_Product_Acct -> P_Expense_Acct | M_Product_Acct -> P_Expense_Acct | Expense, if C_AcctSchema.isExplicitCostAdjustment | calculates the cost based in M_CostDetail | |
| M_Product_Acct -> P_InventoryClearing_Acct | if item | |||
| M_Product_Acct -> P_Expense_Acct | if non-item | |||
| M_Product_Acct -> P_TradeDiscountRec_Acct | if 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 | ||||
| Credit Note (Vendor) (DOC APCredit) | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | |||
| C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (if sales tax) | TaxCredit | |||
| M_Product_Acct -> P_Expense_Acct | M_Product_Acct -> P_Expense_Acct | Expense, if C_AcctSchema.isExplicitCostAdjustment | calculates the cost based in M_CostDetail | |
| M_Product_Acct -> P_InventoryClearing_Acct | if item | |||
| M_Product_Acct -> P_Expense_Acct | if non-item | |||
| M_Product_Acct -> P_TradeDiscountRec_Acct | if 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 | ||||
| Landed Cost Posting | M_Product_Acct -> P_CostAdjustment_Acct | |||
| M_Product_Acct -> P_Expense_Acct | ||||
| M_Product_Acct -> P_InventoryClearing_Acct |
MatchInv
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Match Invoice | Based in M_MatchInv, C_InvoiceLine and M_InOutLine | |||
| C_BP_Group_Acct -> NotInvoicedReceipts_Acct | iDempiere 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_Acct | if item | |||
| M_Product_Acct -> P_Expense_Acct | if non-item | |||
| when the schema is not accrual iDempiere generates different posting in createCashBasedAcct (still not described in this document) | ||||
| M_Product_Acct -> P_InvoicePriceVariance_Acct | Invoice Price Variance difference | Update M_Product_Costing | ||
| Commitment release | ||||
| if isAccrual and isCreateCommitment | ||||
| M_Product_Acct -> P_Expense_Acct | for 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 Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Match Purchase Order | Just for standard costing iDempiere 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_Acct | C_AcctSchema_GL -> PPVOffset_Acct | post the difference between the cost of the order line vs the standard cost
|
Movement
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Inventory Movement | Based in M_Movement and M_MovementLine | |||
| M_Product_Acct -> P_Asset_Acct | M_Product_Acct -> P_Asset_Acct | Inventory | DB 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 Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Order | Based in C_Order, C_OrderTax and 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 Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Payment | Based in C_Payment | |||
| Receipt (DOC ARR - ARReceipt) | C_BankAccount_Acct -> B_InTransit_Acct | |||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | |||
| C_BP_Customer_Acct -> C_Prepayment_Acct | if C_Payment.isPrepayment | |||
| C_BankAccount_Acct -> B_UnallocatedCash_Acct | else | |||
| Payment (DOC APP - APPayment) | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 | |||
| C_BP_Vendor_Acct -> V_Prepayment_Acct | if C_Payment.isPrepayment | |||
| C_BankAccount_Acct -> B_PaymentSelect_Acct | else | |||
| C_BankAccount_Acct -> B_InTransit_Acct |
Production
| Description of Document | DR | CR | Conditions | Comments
|
|---|---|---|---|---|
| Production | Based in M_Production, M_ProductionPlan and M_ProductionLine | |||
| M_Product_Acct -> P_Asset_Acct | M_Product_Acct -> P_Asset_Acct | Inventory | cost the BOM or the products
|
ProjectIssue
| Description of Document | DR | CR | Conditions | Comments
|
|---|---|---|---|---|
| Project Issue | Based 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 */) | ||||
| C_Project_Acct -> PJ_WIP_Acct | ||||
| C_Project_Acct -> PJ_Asset_Acct | if project category is AssetProject (A) | |||
| M_Product_Acct -> P_Expense_Acct | if product.isService | |||
| M_Product_Acct -> P_Asset_Acct | else |
|
Requisition
| Description of Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| Requisitions | Based in M_Requisition and 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 Document | DR | CR | Conditions | Comments |
|---|---|---|---|---|
| All documents inter organization | C_AcctSchema_GL -> InterCompanyDueFrom_Acct | C_AcctSchema_GL -> InterCompanyDueTo_Acct | Posted when the accounting by organization must be balanced and transaction involves more than one organization | |
| All documents with currencies unbalanced | C_AcctSchema_GL -> CurrencyBalancing_Acct | If the GL schema is marked as currency balancing | ||
| All documents unbalanced | C_AcctSchema_GL -> SuspenseBalancing_Acct | If the GL schema is marked as use suspense balancing - it's posted when the document is unbalanced |
See also
See also:
