diff --git a/content/applications/finance/accounting.rst b/content/applications/finance/accounting.rst index 429a4f52f..40c2691c1 100644 --- a/content/applications/finance/accounting.rst +++ b/content/applications/finance/accounting.rst @@ -16,7 +16,7 @@ accounts, smart matching suggestions, etc. .. seealso:: - `Odoo Tutorials: Accounting `_ - - :doc:`Accounting Cheat Sheet ` + - :doc:`Accounting Cheat Sheet ` .. toctree:: diff --git a/content/applications/finance/accounting/getting_started.rst b/content/applications/finance/accounting/getting_started.rst index f122f172b..79d3eb189 100644 --- a/content/applications/finance/accounting/getting_started.rst +++ b/content/applications/finance/accounting/getting_started.rst @@ -8,6 +8,6 @@ Getting started :titlesonly: getting_started/main_concept - getting_started/memento + getting_started/cheat_sheet getting_started/initial_configuration getting_started/process_overview diff --git a/content/applications/finance/accounting/getting_started/cheat_sheet.rst b/content/applications/finance/accounting/getting_started/cheat_sheet.rst new file mode 100644 index 000000000..6f9916e67 --- /dev/null +++ b/content/applications/finance/accounting/getting_started/cheat_sheet.rst @@ -0,0 +1,253 @@ +:code-column: +:custom-css: accounting.css +:custom-js: accounts.js,chart-of-accounts.js,entries.js,misc.js,reconciliation.js + +====================== +Accounting cheat sheet +====================== + +.. h:div:: intro-list + + .. rst-class:: intro-balance + + The **Balance Sheet** is a snapshot of the company's finances at a specific date (as opposed to + the Profit and Loss, which is an analysis over a period). + + * .. rst-class:: intro-assets + + **Assets** represent the company's wealth and the goods it owns. Fixed assets include buildings + and offices, while current assets include bank accounts and cash. The money owed by a client is + an asset. An employee is not an asset. + + * .. rst-class:: intro-liabilities + + **Liabilities** are obligations from past events that the company will have to pay in the + future (utility bills, debts, unpaid suppliers). Liabilities could also be defined as a source + of financing which is provided to the company, also called *leverage*. + + * .. rst-class:: intro-equity + + **Equity** is the amount of the funds contributed by the owners of the company (founders or + shareholders) plus previously retained earnings (or losses). Each year, net profits (or losses) + may be reported as retained earnings or distributed to the shareholders (as a dividend). + +What is owned (an asset) has been financed through debts to reimburse (liabilities) or equity +(profits, capital). + +A difference is made between **assets** and **expenses**: + - An **asset** is a resource with economic value that an individual, corporation, or country owns + or controls with the expectation that it will provide a future benefit. Assets are reported on + a company's balance sheet. They are bought or created to increase a firm's value or benefit its + operations. + - An **expense** is the costs of operations a company bears to generate revenues. + +.. h:div:: intro-list + + .. rst-class:: intro-p-l + + The **profit and loss** (P&L) report shows the company's performance over a specific period of + time, usually a quarter or a fiscal year. + + * .. rst-class:: intro-gross-profit + + The **revenue** refers to the money earned by the company by selling goods and/or services. + + * .. rst-class:: intro-gross-profit + + The **cost of goods sold** (COGS, or also known as "Cost of Sale") refers to the sale of + goods' costs (e.g., the cost of the materials and labor used to create the goods). + + * .. rst-class:: intro-gross-profit + + The **Gross profit** equals the revenues from sales minus the cost of goods sold. + + * .. rst-class:: intro-opex + + **Operating expenses** (OPEX) include administration, sales and R&D salaries, rent and + utilities, miscellaneous costs, insurances, and anything beyond the costs of products sold + or the cost of sale. + +.. h:div:: doc-aside accounts-table + + .. placeholder + +.. rst-class:: doc-aside + +.. highlights:: Assets = Liabilities + Equity + +Chart of accounts +================= + +The **chart of accounts** lists all the company's accounts: both Balance sheet accounts and P&L +accounts. Every transaction is recorded by debiting and crediting multiple accounts in a journal +entry. In a way, a chart of accounts is like a company's DNA! + +Every account listed in the chart of accounts belongs to a specific category. In Odoo, each account +has a unique code and belongs to one of these categories: + +- **Equity and subordinated debts** + - **Equity** is the amount of money invested by a company's shareholders to finance the + company's activities. + - **Subordinated debts** are the amount of money lent by a third party to a company to finance + its activities. In the event of the dissolution of a company, these third parties are + reimbursed before the shareholders. +- **Fixed assets** are tangible (i.e., physical) items or properties that a company purchases and + uses to produce its goods and services. Fixed assets are long-term assets. This means the assets + have a useful life of more than one year. They also include properties, plants, and equipments + (also known as "PP&E") and are recorded on the balance sheet with that classification. +- **Current assets and liabilities** + - The **current assets** account is a balance sheet line item listed under the Assets section, + which accounts for all company-owned assets that can be converted to cash within one year. + Current assets include cash, cash equivalents, accounts receivable, stock inventory, + marketable securities, prepaid liabilities, and other liquid assets. + - **Current liabilities** are a company's short-term financial obligations due within one year. + An example of a current liability is money owed to suppliers in the form of accounts payable. +- **Bank and cash accounts** + - A **bank account** is a financial account maintained by a bank or other financial institution + in which the financial transactions between the bank and a customer are recorded. + - A **cash account**, or cash book, may refer to a ledger in which all cash transactions are + recorded. The cash account includes both the cash receipts and the cash payment journals. +- **Expenses and income** + - An **expense** is the costs of operations a company bears to generate revenues. It is simply + defined as the cost one is required to spend on obtaining something. Common expenses include + supplier payments, employee wages, factory leases, and equipment depreciation. + - The term "**income**" generally refers to the amount of money, property, and other transfers + of value received over a set period of time in exchange for services or products. + +Example +------- + +.. h:div:: example + + \*: Customer Refund and Customer Payment boxes cannot be simultaneously selected as they are contradictory. + +.. h:div:: doc-aside + + .. highlights:: Balance = Debit - Credit + + .. h:div:: chart-of-accounts + + .. placeholder + +Journal entries +=============== + +Every financial document of the company (e.g., an invoice, a bank statement, a pay slip, a capital +increase contract) is recorded as a journal entry, impacting several accounts. + +For a journal entry to be balanced, the sum of all its debits must be equal to the sum of all its +credits. + +.. h:div:: doc-aside journal-entries + + examples of accounting entries for various transactions. (see entries.js) + +.. _accounting/reconciliation: + +Reconciliation +============== + +:doc:`Reconciliation <../../accounting/bank/reconciliation/use_cases>` is the process of linking +journal items of a specific account and matching credits and debits. + +Its primary purpose is to link payments to their related invoices to mark them as paid. This is done +by doing a reconciliation on the accounts receivable account and/or the accounts payable account. + +Reconciliation is performed automatically by the system when: + +- the payment is registered directly on the invoice +- the links between the payments and the invoices are detected at the bank matching process + +.. h:div:: doc-aside reconciliation-example + + .. rubric:: Customer Statement Example + + .. rst-class:: table-sm d-c-table + + +-------------------------+-------------------------+-----------------------+ + |Accounts Receivable |Debit |Credit | + +=========================+=========================+=======================+ + |Invoice 1 |100 | | + +-------------------------+-------------------------+-----------------------+ + |Partial payment 1/2 | |70 | + +-------------------------+-------------------------+-----------------------+ + |Invoice 2 |65 | | + +-------------------------+-------------------------+-----------------------+ + |Partial payment 2/2 | |30 | + +-------------------------+-------------------------+-----------------------+ + |Payment 2 | |65 | + +-------------------------+-------------------------+-----------------------+ + |Invoice 3 |50 | | + +-------------------------+-------------------------+-----------------------+ + | | | | + +-------------------------+-------------------------+-----------------------+ + |Total to pay |50 | | + +-------------------------+-------------------------+-----------------------+ + +Bank Reconciliation +=================== + +Bank reconciliation is the matching of bank statement lines (provided by your bank) with +transactions recorded internally (payments to suppliers or from customers). For each line in a bank +statement, it can be: + +- **matched with a previously recorded payment**: a payment is registered when a check is received + from a customer, then matched when checking the bank statement. +- **recorded as a new payment**: the payment's journal entry is created and reconciled with the + related invoice when processing the bank statement. +- **recorded as another transaction**: bank transfer, direct charge, etc. + +Odoo should automatically reconcile most transactions; only a few should need manual review. When +the bank reconciliation process is finished, the balance on the bank account in Odoo should match +the bank statement's balance. + +.. rst-class:: checks-handling + +Checks Handling +=============== + +There are two approaches to managing checks and internal wire transfers: + +- Two journal entries and a reconciliation +- One journal entry and a bank reconciliation + +.. h:div:: doc-aside + + The first journal entry is created by registering the payment on the + invoice. The second one is created when registering the bank statement. + + .. rst-class:: table-sm d-c-table + + +-------------------------+--------------+------------+---------------+ + |Account |Debit |Credit |Reconciliation | + +=========================+==============+============+===============+ + |Account Receivable | |100 |Invoice ABC | + +-------------------------+--------------+------------+---------------+ + |Undeposited funds |100 | |Check 0123 | + +-------------------------+--------------+------------+---------------+ + + .. rst-class:: table-sm d-c-table + + +-------------------------+--------------+------------+---------------+ + |Account |Debit |Credit |Reconciliation | + +=========================+==============+============+===============+ + |Undeposited funds | |100 |Check 0123 | + +-------------------------+--------------+------------+---------------+ + |Bank |100 | | | + +-------------------------+--------------+------------+---------------+ + +.. h:div:: doc-aside + + A journal entry is created by registering the payment on the invoice. When + reconciling the bank statement, the statement line is linked to the + existing journal entry. + + .. rst-class:: table-sm d-c-table + + +-------------------------+--------------+------------+---------------+---------------+ + |Account |Debit |Credit |Reconciliation |Bank Statement | + +=========================+==============+============+===============+===============+ + |Account Receivable | |100 |Invoice ABC | | + +-------------------------+--------------+------------+---------------+---------------+ + |Bank |100 | | |Statement XYZ | + +-------------------------+--------------+------------+---------------+---------------+ diff --git a/content/applications/finance/accounting/getting_started/initial_configuration/chart_of_accounts.rst b/content/applications/finance/accounting/getting_started/initial_configuration/chart_of_accounts.rst index 105f933ea..2595a8b96 100644 --- a/content/applications/finance/accounting/getting_started/initial_configuration/chart_of_accounts.rst +++ b/content/applications/finance/accounting/getting_started/initial_configuration/chart_of_accounts.rst @@ -182,6 +182,7 @@ them unusable by using the **Deprecated** feature. To do so, check the :guilabel:`Deprecated` box in the account's settings, and save. .. seealso:: + * :doc:`../cheat_sheet` * :doc:`../../payables/supplier_bills/assets` * :doc:`../../payables/supplier_bills/deferred_expenses` * :doc:`../../receivables/customer_invoices/deferred_revenues` diff --git a/content/applications/finance/accounting/getting_started/main_concept.rst b/content/applications/finance/accounting/getting_started/main_concept.rst index cd32e0121..a7fc38ecd 100644 --- a/content/applications/finance/accounting/getting_started/main_concept.rst +++ b/content/applications/finance/accounting/getting_started/main_concept.rst @@ -14,7 +14,7 @@ entries are automatically balanced (sum of debits = sum of credits). .. seealso:: - :doc:`Understand Odoo's accounting transactions per document - ` + ` Accrual and Cash Basis Methods ============================== diff --git a/content/applications/finance/accounting/getting_started/memento.rst b/content/applications/finance/accounting/getting_started/memento.rst deleted file mode 100644 index cf383a622..000000000 --- a/content/applications/finance/accounting/getting_started/memento.rst +++ /dev/null @@ -1,249 +0,0 @@ -:code-column: -:custom-css: accounting.css -:custom-js: accounts.js,chart-of-accounts.js,entries.js,misc.js,reconciliation.js - -====================== -Accounting cheat sheet -====================== - -.. h:div:: intro-list - - .. rst-class:: intro-p-l - - The **Profit and Loss** (P&L) report shows the performance of the company - over a specific period (usually the current year). - - * .. rst-class:: intro-gross-profit - - The **Gross Profit** equals the revenues from sales minus the cost of - goods sold. - - * .. rst-class:: intro-opex - - **Operating Expenses** (OPEX) include administration, sales and R&D - salaries as well as rent and utilities, miscellaneous costs, insurances, - … anything beyond the costs of products sold. - - .. rst-class:: intro-balance - - The **Balance Sheet** is a snapshot of the company's finances at a specific - date (as opposed to the Profit and Loss which is an analysis over a period) - - * .. rst-class:: intro-assets - - **Assets** represent the company's wealth, things it owns. Fixed assets - includes building and offices, current assets include bank accounts and - cash. A client owing money is an asset. An employee is not an asset. - - * .. rst-class:: intro-liabilities - - **Liabilities** are obligations from past events that the company will - have to pay in the future (utility bills, debts, unpaid suppliers). - - * .. rst-class:: intro-equity - - **Equity** is the amount of the funds contributed by the owners (founders - or shareholders) plus previously retained earnings (or losses). - - .. rst-class:: intro-retained - - Each year, net profits (or losses) are reported to retained earnings. - -.. h:div:: doc-aside accounts-table - - .. placeholder - -What is owned (an asset) has been financed through debts to reimburse -(liabilities) or equity (profits, capital). - -A difference is made between buying an assets (e.g. a building) and expenses -(e.g. fuel). Assets have an intrinsic value over time, versus expenses having -value in them being consumed for the company to "work". - - -.. rst-class:: doc-aside - -.. highlights:: Assets = Liabilities + Equity - -Chart of Accounts -================= - -The **chart of accounts** lists all the accounts, whether they are balance -sheet accounts or P&L accounts. Every financial transaction (e.g. a payment, an -invoice) impacts accounts by moving value from one account (credit) to an other -account (debit). - -.. h:div:: doc-aside - - .. highlights:: Balance = Debit - Credit - - .. h:div:: chart-of-accounts - - .. placeholder - - -Journal Entries -=============== - -Every financial document of the company (e.g. an invoice, a bank statement, a -pay slip, a capital increase contract) is recorded as a journal entry, -impacting several accounts. - -For a journal entry to be *balanced*, the sum of all its debits must be equal -to the sum of all its credits. - -.. h:div:: doc-aside journal-entries - - examples of accounting entries for various transactions. Example: - - Example 1: Customer Invoice: - - Explanation: - - - You generate a revenue of $1,000 - - You have a tax to pay of $90 - - The customer owes $1,090 - - Configuration: - - - Income: defined on the product, or the product category - - Account Receivable: defined on the customer - - Tax: defined on the tax set on the invoice line - - The fiscal position used on the invoice may have a rule that - replaces the Income Account or the tax defined on the product by another - one. - - Example 2: Customer Payment: - - Explanation: - - - Your customer owes $1,090 less - - Your receive $1,090 on your bank account - - Configuration: - - - Bank Account: defined on the related bank journal - - Account Receivable: defined on the customer - -.. _accounting/reconciliation: - -Reconciliation -============== - -Reconciliation is the process of linking journal items of a specific account, -matching credits and debits. - -Its primary purpose is to link payments to their related invoices in order to -mark invoices that are paid and clear the customer statement. This is done by -doing a reconciliation on the *Accounts Receivable* account. - -An invoice is marked as paid when its Accounts Receivable journal items are -reconciled with the related payment journal items. - -Reconciliation is performed automatically by the system when: - -* the payment is registered directly on the invoice -* the links between the payments and the invoices are detected at the bank - matching process - - -.. h:div:: doc-aside reconciliation-example - - .. rubric:: Customer Statement Example - - .. rst-class:: table-sm d-c-table - - +-------------------------+-------------------------+-----------------------+ - |Accounts Receivable |Debit |Credit | - +=========================+=========================+=======================+ - |Invoice 1 |100 | | - +-------------------------+-------------------------+-----------------------+ - |Payment 1.1 | |70 | - +-------------------------+-------------------------+-----------------------+ - |Invoice 2 |65 | | - +-------------------------+-------------------------+-----------------------+ - |Payment 1.2 | |30 | - +-------------------------+-------------------------+-----------------------+ - |Payment 2 | |65 | - +-------------------------+-------------------------+-----------------------+ - |Invoice 3 |50 | | - +-------------------------+-------------------------+-----------------------+ - | | | | - +-------------------------+-------------------------+-----------------------+ - |Total To Pay |50 | | - +-------------------------+-------------------------+-----------------------+ - - -Bank Reconciliation -=================== - -Bank reconciliation is the matching of bank statement lines (provided by your -bank) with transactions recorded internally (payments to suppliers or from -customers). For each line in a bank statement, it can be: - -matched with a previously recorded payment: - a payment is registered when a check is received from a customer, then - matched when checking the bank statement -recorded as a new payment: - the payment's journal entry is created and :ref:`reconciled - ` with the related invoice when processing the - bank statement -recorded as another transaction: - bank transfer, direct charge, etc. - -Odoo should automatically reconcile most transactions, only a few of them -should need manual review. When the bank reconciliation process is finished, -the balance on the bank account in Odoo should match the bank statement's -balance. - -.. rst-class:: checks-handling - -Checks Handling -=============== - -There are two approaches to manage checks and internal wire transfer: - -* Two journal entries and a reconciliation -* One journal entry and a bank reconciliation - -.. h:div:: doc-aside - - The first journal entry is created by registering the payment on the - invoice. The second one is created when registering the bank statement. - - .. rst-class:: table-sm d-c-table - - +-------------------------+--------------+------------+---------------+ - |Account |Debit |Credit |Reconciliation | - +=========================+==============+============+===============+ - |Account Receivable | |100 |Invoice ABC | - +-------------------------+--------------+------------+---------------+ - |Undeposited funds |100 | |Check 0123 | - +-------------------------+--------------+------------+---------------+ - - .. rst-class:: table-sm d-c-table - - +-------------------------+--------------+------------+---------------+ - |Account |Debit |Credit |Reconciliation | - +=========================+==============+============+===============+ - |Undeposited funds | |100 |Check 0123 | - +-------------------------+--------------+------------+---------------+ - |Bank |100 | | | - +-------------------------+--------------+------------+---------------+ - -.. h:div:: doc-aside - - A journal entry is created by registering the payment on the invoice. When - reconciling the bank statement, the statement line is linked to the - existing journal entry. - - .. rst-class:: table-sm d-c-table - - +-------------------------+--------------+------------+---------------+---------------+ - |Account |Debit |Credit |Reconciliation |Bank Statement | - +=========================+==============+============+===============+===============+ - |Account Receivable | |100 |Invoice ABC | | - +-------------------------+--------------+------------+---------------+---------------+ - |Bank |100 | | |Statement XYZ | - +-------------------------+--------------+------------+---------------+---------------+ diff --git a/content/contributing/documentation/rst_cheat_sheet.rst b/content/contributing/documentation/rst_cheat_sheet.rst index 69c057883..63f6d0fee 100644 --- a/content/contributing/documentation/rst_cheat_sheet.rst +++ b/content/contributing/documentation/rst_cheat_sheet.rst @@ -1022,7 +1022,7 @@ Document metadata | `code-column` | | Show a dynamic side column that can be used to display interactive | | | tutorials or code excerpts. | | | | For example, see | -| | :doc:`/applications/finance/accounting/getting_started/memento`. | +| | :doc:`/applications/finance/accounting/getting_started/cheat_sheet`. | +-----------------+--------------------------------------------------------------------------------+ | `hide-page-toc` | Hide the "On this page" sidebar and use full page width for the content. | +-----------------+--------------------------------------------------------------------------------+ diff --git a/redirects/14.0.txt b/redirects/14.0.txt index ec5bacb92..237a08f79 100644 --- a/redirects/14.0.txt +++ b/redirects/14.0.txt @@ -28,6 +28,7 @@ applications/finance/accounting/fiscal_localizations/localizations/switzerland.r applications/finance/accounting/fiscal_localizations/localizations/united_kingdom.rst applications/finance/fiscal_localizations/united_kingdom.rst # /accounting/fiscal_localizations/localizations/* --> /fiscal_localizations/* applications/finance/accounting/fiscal_localizations/overview/fiscal_localization_packages.rst applications/finance/fiscal_localizations.rst # /accounting/fiscal_localizations/overview/* --> fiscal_localizations applications/finance/accounting/fiscal_localizations/overview/localizations_list.rst applications/finance/fiscal_localizations.rst # /accounting/fiscal_localizations/overview/* --> fiscal_localizations +applications/finance/accounting/getting_started/memento.rst applications/finance/accounting/getting_started/cheat_sheet.rst # memento -> cheat_sheet applications/finance/accounting/payables/supplier_bills/manage.rst applications/inventory_and_mrp/purchase/manage_deals/manage.rst # (#3302) # applications/sales diff --git a/static/js/accounts.js b/static/js/accounts.js index 1659bd04b..f7ba5c776 100644 --- a/static/js/accounts.js +++ b/static/js/accounts.js @@ -1,6 +1,6 @@ /* global Immutable, React */ (function () { - // NOTE: used by memento.rst + // NOTE: used by cheat_sheet.rst 'use strict'; function highlight(primary, secondary) { diff --git a/static/js/chart-of-accounts.js b/static/js/chart-of-accounts.js index 90215c6a1..960e8af53 100644 --- a/static/js/chart-of-accounts.js +++ b/static/js/chart-of-accounts.js @@ -1,7 +1,7 @@ /* global Immutable, React */ /* global createAtom */ (function () { - // NOTE: used by memento.rst + // NOTE: used by cheat_sheet.rst 'use strict'; var data = createAtom(); @@ -145,8 +145,8 @@ var controls = document.createElement('div'); controls.setAttribute('id', 'chart-controls'); - chart.insertBefore(controls, chart.lastElementChild); + chart.children[1].insertBefore(controls, chart.children[1].lastElementChild); data.reset(Immutable.Map({ // last-selected operation active: null, @@ -245,14 +245,14 @@ ] }, { id: 'refund', - label: "Customer Refund", + label: "Customer Refund*", operations: [ { account: REVENUE.SALES.code, debit: constant(refund) }, { account: LIABILITIES.TAXES_PAYABLE.code, debit: constant(refund_tax) }, { account: ASSETS.ACCOUNTS_RECEIVABLE.code, credit: constant(refund + refund_tax) } ] }, { - label: "Customer Payment", + label: "Customer Payment*", operations: [ { account: ASSETS.BANK.code, debit: function (ops) { diff --git a/static/js/entries.js b/static/js/entries.js index d2a3bdad0..f6bbf2097 100644 --- a/static/js/entries.js +++ b/static/js/entries.js @@ -2,7 +2,7 @@ /* global createAtom, findAncestor */ (function () { 'use strict'; - // NOTE: memento.rst + // NOTE: cheat_sheet.rst var data = createAtom(); data.addWatch('chart', function (k, m, prev, next) { @@ -175,7 +175,7 @@ ], explanation: [ "The company receives $109 in cash", - "The customer owes $109 less" + "The receivable held against the client is reduced by $109" ], configuration: [ "Cash: defined on the journal used when registering the payment, fields Default Credit Account and Default Debit Account", diff --git a/static/js/misc.js b/static/js/misc.js index c39ea03e2..1bc7cd3e3 100644 --- a/static/js/misc.js +++ b/static/js/misc.js @@ -67,7 +67,7 @@ }); } function checks_handling() { - // NOTE: used by memento.rst + // NOTE: used by cheat_sheet.rst var $section = $('.checks-handling'); if (!$section.length) { return; } diff --git a/static/js/reconciliation.js b/static/js/reconciliation.js index b2dc99288..38158caf2 100644 --- a/static/js/reconciliation.js +++ b/static/js/reconciliation.js @@ -1,5 +1,5 @@ (function () { - // NOTE: memento.rst + // NOTE: cheat_sheet.rst document.addEventListener('DOMContentLoaded', function () { var $rec = $('#reconciliation .reconciliation-example'); if (!$rec.length) { return; }