IDempiere Accounting
From iDempiere en
Revision as of 08:22, 7 September 2007 by CarlosRuiz (talk | contribs) (→InOut (Shipments and Receipts))
Work in progress
Contributed by:
Quality Systems & Solutions - QSS Ltda.
Carlos Ruiz
Allocation
Bank
Cash
GLJournal
InOut (Shipments and Receipts)
| Description of Document | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Shipments and Receipts | Based in M_InOut y 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 | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Internal Use and Physical Inventory | Based in M_Inventory y 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 and amt > 0 | |||
| C_Charge_Acct -> CH_Revenue_Acct | if C_Charge_ID <> 0 and amt < 0 | |||
| M_Warehouse_Acct -> W_Differences_Acct | recreate M_CostDetail |
Invoice
| Description of Document | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Invoice | there is no accounting for not accrual | Based in C_Invoice, C_InvoiceTax y C_InvoiceLine | ||
| Sales Invoice (Customer) (DOC ARInvoice or ARProForma) | ||||
| Header Charge | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 and amt > 0 | |||
| C_Charge_Acct -> CH_Revenue_Acct | if C_Charge_ID <> 0 and amt < 0 | |||
| C_Tax_Acct -> T_Due_Acct | for each tax | |||
| Revenue | ||||
| M_Product_Acct -> P_Revenue_Acct | if c_acctschema.isTradeDiscountPosted | |||
| C_BP_Group_Acct -> UnearnedRevenue_Acct | if involved product in invoice has defined revenue recognition plan, it changes (in FactLine.beforesave) the account P_Revenu 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 | |||
| C_BP_Customer_Acct -> C_Receivable_Services_Acct | only posted if C_AcctSchema.isPostServices and there are non-item products | post the value of services and charges | ||
| Credit Note (Customer) (DOC ARCredit) | ||||
| Header Charge | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 and amt > 0 | |||
| C_Charge_Acct -> CH_Revenue_Acct | if C_Charge_ID <> 0 and amt < 0 | |||
| C_Tax_Acct -> T_Due_Acct | for each tax | |||
| Revenue | ||||
| M_Product_Acct -> P_Revenue_Acct | if c_acctschema.isTradeDiscountPosted | |||
| Receivables | ||||
| C_BP_Customer_Acct -> C_Receivable_Acct | post the value of products | |||
| C_BP_Customer_Acct -> C_Receivable_Services_Acct | only posted if C_AcctSchema.isPostServices and there are non-item products | post the value of services and charges | ||
| Purchase Invoice (Vendor) (DOC APInvoice) | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 and amt > 0 | |||
| C_Charge_Acct -> CH_Revenue_Acct | if C_Charge_ID <> 0 and amt < 0 | |||
| C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (si es impuesto de ventas) | for each tax | |||
| M_Product_Acct -> P_Expense_Acct | M_Product_Acct -> P_Expense_Acct | Expense, si 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 | |||
| Liability | ||||
| C_BP_Vendor_Acct -> V_Liability_Acct | ||||
| C_BP_Vendor_Acct -> V_Liability_Services_Acct | only posted if C_AcctSchema.isPostServices and there are non-item products | |||
| Credit Note (Vendor) (DOC APCredit) | ||||
| C_Charge_Acct -> CH_Expense_Acct | if C_Charge_ID <> 0 and amt > 0 | |||
| C_Charge_Acct -> CH_Revenue_Acct | if C_Charge_ID <> 0 and amt < 0 | |||
| C_Tax_Acct -> T_Credit_Acct o T_Expense_Acct (si es impuesto de ventas) | 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 | |||
| Liability | ||||
| C_BP_Vendor_Acct -> V_Liability_Acct | ||||
| C_BP_Vendor_Acct -> V_Liability_Services_Acct | only posted if C_AcctSchema.isPostServices and there are non-item products | |||
| 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 | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Match Inventory | Based in M_MatchInv, C_InvoiceLine y M_InOutLine | |||
| C_BP_Group_Acct -> NotInvoicedReceipts_Acct | ||||
| if isAccrusal | ||||
| M_Product_Acct -> P_InventoryClearing_Acct | if item | |||
| M_Product_Acct -> P_Expense_Acct | if 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_Acct | Invoice Price Variance difference | Update M_Product_Costing | ||
| Commitment release | ||||
| if isAccrual y 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 | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Match Purchase Order | Based in M_MatchPO, C_OrderLine, M_InOutLine y C_InvoiceLine | |||
| M_Product_Acct -> P_PurchasePriceVariance_Acct | C_AcctSchema_GL -> PPVOffset_Acct | calculate the difference in currencies
|
Movement
| Description of Document | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Inventory Movement | Based in M_Movement y 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 | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Order | Based 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 Document | DB | 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 and amt > 0 | |||
| C_Charge_Acct -> CH_Revenue_Acct | if C_Charge_ID <> 0 and amt < 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 and amt > 0 | |||
| C_Charge_Acct -> CH_Revenue_Acct | if C_Charge_ID <> 0 and amt < 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 | DB | CR | Conditions | Comments
|
|---|---|---|---|---|
| Production | Based in M_Production, M_ProductionPlan y 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 | DB | 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 projecdt category is AssetProject (A) | |||
| M_Product_Acct -> P_Expense_Acct | if product.isService | |||
| M_Product_Acct -> P_Asset_Acct | else |
|
Requisition
| Description of Document | DB | CR | Conditions | Comments |
|---|---|---|---|---|
| Requisitions | Based 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 Document | DB | 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 |
Default Accounts Usage
See also Default_Accounts_Usage
