From d1b5326990c6f3d9e8d22c6fe5346d619ad741f9 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 17 Mar 2015 14:58:55 +0100 Subject: [PATCH] [CHG] add functional doc TOC move accounting memento to a sub-document --- _static/accounts.js | 1 + _static/chart-of-accounts.js | 6 +- _static/entries.js | 6 +- _static/reconciliation.js | 5 +- accounting.rst | 248 ++++++++++++++++++++++++++++++++++ conf.py | 2 +- index.rst | 252 +---------------------------------- 7 files changed, 268 insertions(+), 252 deletions(-) create mode 100644 accounting.rst diff --git a/_static/accounts.js b/_static/accounts.js index 0e9470f32..af4e5223c 100644 --- a/_static/accounts.js +++ b/_static/accounts.js @@ -137,6 +137,7 @@ document.addEventListener('DOMContentLoaded', function () { var target = document.querySelector('.accounts-table'); + if (!target) { return; } function render(current) { React.render( React.createElement(AccountsTable, {current: current}), diff --git a/_static/chart-of-accounts.js b/_static/chart-of-accounts.js index 55104d644..8c57b0243 100644 --- a/_static/chart-of-accounts.js +++ b/_static/chart-of-accounts.js @@ -134,8 +134,10 @@ }); document.addEventListener('DOMContentLoaded', function () { - var chart = document.getElementById('chart-of-accounts'), - controls = document.createElement('div'); + var chart = document.getElementById('chart-of-accounts'); + if (!chart) { return; } + + var controls = document.createElement('div'); controls.setAttribute('id', 'chart-controls'); chart.insertBefore(controls, chart.lastElementChild); diff --git a/_static/entries.js b/_static/entries.js index 81a707fab..4a2ec52fe 100644 --- a/_static/entries.js +++ b/_static/entries.js @@ -11,8 +11,10 @@ document.querySelector('.journal-entries')); }); document.addEventListener('DOMContentLoaded', function () { - var entries_node = document.getElementById('journal-entries'), - controls = document.createElement('div'); + var entries_node = document.getElementById('journal-entries'); + if (!entries_node) { return; } + + var controls = document.createElement('div'); controls.setAttribute('id', 'entries-control'); entries_node.insertBefore(controls, entries_node.lastElementChild); diff --git a/_static/reconciliation.js b/_static/reconciliation.js index d0205eb1b..d45c6a37d 100644 --- a/_static/reconciliation.js +++ b/_static/reconciliation.js @@ -1,5 +1,8 @@ (function () { document.addEventListener('DOMContentLoaded', function () { + var $rec = $('#reconciliation .reconciliation-example'); + if (!$rec.length) { return; } + var state = 0; var operations = [ function reconcile2() { @@ -17,7 +20,6 @@ return 0; } ]; - var $rec = $('#reconciliation .reconciliation-example'); var $buttons = $('
').on('click', 'button', function () { this.disabled = true; state = operations[state](); @@ -67,4 +69,3 @@ } }); })(); - diff --git a/accounting.rst b/accounting.rst new file mode 100644 index 000000000..c11a3e5bb --- /dev/null +++ b/accounting.rst @@ -0,0 +1,248 @@ +:classes: stripe + +==================================== +Accounting Memento For Entrepreneurs +==================================== + +.. 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:: force-right 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:: force-right + +.. 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:: force-right + + .. 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:: force-right 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 + + +.. rst-class:: force-right reconciliation-example + +Customer Statement Example +-------------------------- + +.. rst-class:: table-condensed 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:: force-right + + 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-condensed d-c-table + + +-------------------------+--------------+------------+---------------+ + |Account |Debit |Credit |Reconciliation | + +=========================+==============+============+===============+ + |Account Receivable | |100 |Invoice ABC | + +-------------------------+--------------+------------+---------------+ + |Undeposited funds |100 | |Check 0123 | + +-------------------------+--------------+------------+---------------+ + + .. rst-class:: table-condensed d-c-table + + +-------------------------+--------------+------------+---------------+ + |Account |Debit |Credit |Reconciliation | + +=========================+==============+============+===============+ + |Undeposited funds | |100 |Check 0123 | + +-------------------------+--------------+------------+---------------+ + |Bank |100 | | | + +-------------------------+--------------+------------+---------------+ + +.. h:div:: force-right + + 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-condensed d-c-table + + +-------------------------+--------------+------------+---------------+---------------+ + |Account |Debit |Credit |Reconciliation |Bank Statement | + +=========================+==============+============+===============+===============+ + |Account Receivable | |100 |Invoice ABC | | + +-------------------------+--------------+------------+---------------+---------------+ + |Bank |100 | | |Statement XYZ | + +-------------------------+--------------+------------+---------------+---------------+ diff --git a/conf.py b/conf.py index dac3c3a00..3a492379e 100644 --- a/conf.py +++ b/conf.py @@ -46,7 +46,7 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'Understanding Accounting For Entrepreneurs' +project = u'Odoo Functional' copyright = u'2015, Odoo S.A.' # The version info for the project you're documenting, acts as replacement for diff --git a/index.rst b/index.rst index c11a3e5bb..a806edf8d 100644 --- a/index.rst +++ b/index.rst @@ -1,248 +1,10 @@ -:classes: stripe +==================== +Functional Mementoes +==================== -==================================== -Accounting Memento For Entrepreneurs -==================================== +.. rst-class:: index-tree -.. h:div:: intro-list +.. toctree:: + :maxdepth: 2 - .. 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:: force-right 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:: force-right - -.. 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:: force-right - - .. 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:: force-right 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 - - -.. rst-class:: force-right reconciliation-example - -Customer Statement Example --------------------------- - -.. rst-class:: table-condensed 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:: force-right - - 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-condensed d-c-table - - +-------------------------+--------------+------------+---------------+ - |Account |Debit |Credit |Reconciliation | - +=========================+==============+============+===============+ - |Account Receivable | |100 |Invoice ABC | - +-------------------------+--------------+------------+---------------+ - |Undeposited funds |100 | |Check 0123 | - +-------------------------+--------------+------------+---------------+ - - .. rst-class:: table-condensed d-c-table - - +-------------------------+--------------+------------+---------------+ - |Account |Debit |Credit |Reconciliation | - +=========================+==============+============+===============+ - |Undeposited funds | |100 |Check 0123 | - +-------------------------+--------------+------------+---------------+ - |Bank |100 | | | - +-------------------------+--------------+------------+---------------+ - -.. h:div:: force-right - - 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-condensed d-c-table - - +-------------------------+--------------+------------+---------------+---------------+ - |Account |Debit |Credit |Reconciliation |Bank Statement | - +=========================+==============+============+===============+===============+ - |Account Receivable | |100 |Invoice ABC | | - +-------------------------+--------------+------------+---------------+---------------+ - |Bank |100 | | |Statement XYZ | - +-------------------------+--------------+------------+---------------+---------------+ + accounting