ADempiere Accounting

From ADempiere
Revision as of 23:20, 6 September 2007 by CarlosRuiz (Talk) (Invoice)

Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Work in progress

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

Allocation

Bank

Cash

GLJournal

InOut (Shipment and Receipts)

Inventory

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 */)
otherwise, it calculates the normal cost of products

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