Difference between revisions of "ADempiere Accounting"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
(GLJournal)
(Cash)
Line 10: Line 10:
  
 
== Cash ==
 
== Cash ==
 +
{| border="1"
 +
|-
 +
!width="100pt"|Description of Document
 +
!width="150pt"|DB
 +
!width="150pt"|CR
 +
!width="150pt"|Conditions
 +
!width="200pt"|Comments
 +
 +
|-
 +
| Cash || || || || Based in C_Cash y C_CashLine
 +
|-
 +
| Expenses (CASH EXPENSE) || C_CashBook_Acct -> CB_Expense_Acct || || if C_CashLine.CashType = E ||
 +
|-
 +
| Receipts (CASH RECEIPT) || || C_CashBook_Acct -> CB_Receipt_Acct || if C_CashLine.CashType = R ||
 +
|-
 +
| Charges (CASH CHARGE) || || || if C_CashLine.CashType = C ||
 +
|-
 +
| || 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 ||
 +
|-
 +
| Difference in cash (CASH DIFFERENCE) || C_CashBook_Acct -> CB_Differences_Acct || || if C_CashLine.CashType = D ||
 +
|-
 +
| Invoice (CASH INVOICE) || C_CashBook_Acct -> CB_CashTransfer_Acct || || ||
 +
|-
 +
| || C_CashBook_Acct -> CB_Asset_Acct || || if currency is different than document currency ||
 +
|-
 +
| Bank Transfer (CASH TRANSFER) || C_BankAccount_Acct -> B_InTransit_Acct || || ||
 +
|-
 +
| || C_CashBook_Acct -> CB_Asset_Acct || || if currency is different than document currency ||
 +
|-
 +
| || || C_CashBook_Acct -> CB_Asset_Acct || || Finally it creates a record in DB or CR depending on the difference between the registered movements
 +
 +
|}
  
 
== GLJournal ==
 
== GLJournal ==

Revision as of 23:23, 6 September 2007

Work in progress

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

Allocation

Bank

Cash

Description of Document DB CR Conditions Comments
Cash Based in C_Cash y C_CashLine
Expenses (CASH EXPENSE) C_CashBook_Acct -> CB_Expense_Acct if C_CashLine.CashType = E
Receipts (CASH RECEIPT) C_CashBook_Acct -> CB_Receipt_Acct if C_CashLine.CashType = R
Charges (CASH CHARGE) if C_CashLine.CashType = C
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
Difference in cash (CASH DIFFERENCE) C_CashBook_Acct -> CB_Differences_Acct if C_CashLine.CashType = D
Invoice (CASH INVOICE) C_CashBook_Acct -> CB_CashTransfer_Acct
C_CashBook_Acct -> CB_Asset_Acct if currency is different than document currency
Bank Transfer (CASH TRANSFER) C_BankAccount_Acct -> B_InTransit_Acct
C_CashBook_Acct -> CB_Asset_Acct if currency is different than document currency
C_CashBook_Acct -> CB_Asset_Acct Finally it creates a record in DB or CR depending on the difference between the registered movements

GLJournal

Description of Document DB CR Conditions Comments
GL Journal Based in GL_Journal y GL_JournalLine
Journal GL_JournalLine -> account_id GL_JournalLine -> account_id

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 */)
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