changeset 19a27fe2805a in modules/account:default
details: https://hg.tryton.org/modules/account?cmd=changeset;node=19a27fe2805a
description:
        Improve documentation

        issue9610
        review292271005
diffstat:

 doc/conf.py                  |   61 ++++++++
 doc/configuration.rst        |   30 ++++
 doc/design/account.rst       |  194 ++++++++++++++++++++++++++
 doc/design/configuration.rst |   16 ++
 doc/design/fiscal-year.rst   |   89 ++++++++++++
 doc/design/index.rst         |   16 ++
 doc/design/journal.rst       |   85 +++++++++++
 doc/design/move.rst          |  177 ++++++++++++++++++++++++
 doc/design/tax.rst           |  151 ++++++++++++++++++++
 doc/design/template.rst      |  128 +++++++++++++++++
 doc/index.rst                |  317 +-----------------------------------------
 doc/reference.rst            |   49 ++++++
 doc/setup.rst                |   64 ++++++++
 doc/usage/close.rst          |  106 ++++++++++++++
 doc/usage/create.rst         |   57 +++++++
 doc/usage/index.rst          |   16 ++
 doc/usage/process.rst        |   21 ++
 doc/usage/report.rst         |   83 +++++++++++
 doc/usage/structure.rst      |   36 ++++
 doc/usage/view.rst           |   62 ++++++++
 setup.py                     |    7 +-
 21 files changed, 1458 insertions(+), 307 deletions(-)

diffs (1869 lines):

diff -r 9dc78c189562 -r 19a27fe2805a doc/conf.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/conf.py       Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,61 @@
+# This file is part of Tryton.  The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+
+modules_url = 'https://docs.tryton.org/projects/modules-{module}/en/{series}/'
+trytond_url = 'https://docs.tryton.org/projects/server/en/{series}/'
+
+
+def get_info():
+    import configparser
+    import os
+    import subprocess
+    import sys
+
+    module_dir = os.path.dirname(os.path.dirname(__file__))
+
+    config = configparser.ConfigParser()
+    config.read_file(open(os.path.join(module_dir, 'tryton.cfg')))
+    info = dict(config.items('tryton'))
+
+    result = subprocess.run(
+        [sys.executable, 'setup.py', '--name'],
+        stdout=subprocess.PIPE, check=True, cwd=module_dir)
+    info['name'] = result.stdout.decode('utf-8').strip()
+
+    result = subprocess.run(
+        [sys.executable, 'setup.py', '--version'],
+        stdout=subprocess.PIPE, check=True, cwd=module_dir)
+    version = result.stdout.decode('utf-8').strip()
+    if 'dev' in version:
+        info['series'] = 'latest'
+    else:
+        info['series'] = '.'.join(version.split('.', 2)[:2])
+
+    for key in {'depends', 'extras_depend'}:
+        info[key] = info.get(key, '').strip().splitlines()
+    info['modules'] = set(info['depends'] + info['extras_depend'])
+    info['modules'] -= {'ir', 'res'}
+
+    return info
+
+
+info = get_info()
+
+master_doc = 'index'
+project = info['name']
+release = version = info['series']
+default_role = 'ref'
+highlight_language = 'none'
+extensions = [
+    'sphinx.ext.intersphinx',
+    ]
+intersphinx_mapping = {
+    'trytond': (trytond_url.format(series=version), None),
+    }
+intersphinx_mapping.update({
+        m: (modules_url.format(
+                module=m.replace('_', '-'), series=version), None)
+        for m in info['modules']
+        })
+
+del get_info, info, modules_url, trytond_url
diff -r 9dc78c189562 -r 19a27fe2805a doc/configuration.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/configuration.rst     Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,30 @@
+*************
+Configuration
+*************
+
+The *Account Module* uses values from settings in the ``[account]`` section
+of the :doc:`configuration file <trytond:topics/configuration>`.
+
+.. _config-account.reconciliation_chunk:
+
+``reconciliation_chunk``
+========================
+
+The ``reconciliation_chunk`` defines the size of each block of sequential
+`Account Move Lines <model-account.move.line>` that are searched for
+`Reconciliation <model-account.move.reconciliation>` proposals.
+Larger chunk sizes allow more lines to be considered together, and sometimes
+better matches to be found.
+
+.. warning::
+
+   The number of combinations of lines considered, and consequently the search
+   time, increases exponentially along with the chunk size.
+   So you should keep this setting to a relatively low value.
+
+.. seealso::
+
+   The `Reconcile Accounts <wizard-account.reconcile>` wizard for details
+   of how this setting is used.
+
+The default value is: ``10``
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/account.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/account.rst    Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,194 @@
+.. _model-account.account:
+
+Account
+=======
+
+In Tryton the *Account* concept is used to represent the different accounts
+that make up the `Company's <company:model-company.company>` chart of accounts.
+These accounts are commonly organised into a structure, with each account
+having a single parent and zero or more sub accounts.
+
+The balance of an account is made up from all the credits and debits into
+the account and its sub accounts.
+These values are in the company's
+`Currency <currency:model-currency.currency>`, but a second currency can be
+used on accounts that record transactions that happen in a different currency.
+
+Each account has an `Account Type <model-account.account.type>` which
+defines some additional properties of the account.
+A second type can be specified for accounts whose type depends on whether they
+have a credit or debit balance.
+
+Only accounts that are not closed can be used as a source or destination for
+`Account Moves <model-account.move>`.
+
+Tryton will only try and reconcile
+`Account Move Lines <model-account.move.line>` in accounts that are correctly
+marked when `Reconciling <wizard-account.reconcile>` accounts.
+
+In Tryton a *deferral* account is any account that appears on a company's
+balance sheet, or is not shown on any reports.
+The amounts in these accounts are carried forward to subsequent
+`Fiscal Years <model-account.fiscalyear>`, and are stored using the
+`Account Deferral <model-account.account.deferral>` concept.
+
+.. seealso::
+
+   A list of the accounts is available via the main menu item:
+
+      |Financial --> Configuration --> General Account --> Accounts|__
+
+      .. |Financial --> Configuration --> General Account --> Accounts| 
replace:: :menuselection:`Financial --> Configuration --> General Account --> 
Accounts`
+      __ https://demo.tryton.org/model/account.account
+
+   Accounts can be created from
+   `Account Templates <model-account.account.template>`.
+
+Wizards
+-------
+
+.. _wizard-account.open_chart:
+
+Open Chart of Accounts
+^^^^^^^^^^^^^^^^^^^^^^
+
+This wizard opens the company's chart of accounts.
+
+.. seealso::
+
+   The chart of accounts can be opened using the main menu item:
+
+      :menuselection:`Financial --> Charts --> Open Chart of Accounts`
+
+.. _model-account.account.type:
+
+Account Type
+============
+
+The *Account Type* concept defines the structure of the
+`Company's <company:model-company.company>` accounting reports.
+It defines whether the account type appears on the balance sheet or income
+statement, and has a set of properties that indicate what any
+`Accounts <model-account.account>` of this type can be used for.
+
+When used as the balance sheet or income statement the amount shown for the
+account type includes the amounts from all the accounts of that type and
+includes the amounts from all of its children.
+
+The amounts from accounts that also have a debit type are only ever included
+in either the account's type, or its debit type, depending on whether the
+accounts balance is in credit, or debit, respectively.
+
+.. seealso::
+
+   The list of account types can be found by opening the main menu item:
+
+      |Financial --> Configuration --> General Account --> Account Types|__
+
+      .. |Financial --> Configuration --> General Account --> Account Types| 
replace:: :menuselection:`Financial --> Configuration --> General Account --> 
Account Types`
+      __ https://demo.tryton.org/model/account.account.type
+
+   Accounts Types can be created from
+   `Account Type Templates <model-account.account.type.template>`.
+
+.. _model-account.account.party:
+
+Account Party
+=============
+
+The *Account Party* concept is used to show the balances, and credits and
+debits, for each `Party <party:model-party.party>` in an
+`Account <model-account.account>`.
+
+.. _model-account.account.deferral:
+
+Account Deferral
+================
+
+The *Account Deferral* concept stores, by `Account <model-account.account>`,
+any amounts that need to be carried forward to the next
+`Fiscal Year <model-account.fiscalyear>`.
+The data that gets stored here is managed automatically when fiscal years
+are closed or re-opened.
+
+.. _model-account.general_ledger.account:
+
+General Ledger Account
+======================
+
+The list of *General Ledger Accounts* gives a top level view of a
+`Company's <company:model-company.company>` general ledger.
+For the specified period of time, it provides a summary of the debits and
+credits into the `Accounts <model-account.account>`, and the starting and
+ending values for the debits, credits and account balances.
+
+.. seealso::
+
+   The company's general ledger can be opened using the main menu item:
+
+      |Financial --> Reporting --> General Ledger|__
+
+      .. |Financial --> Reporting --> General Ledger| replace:: 
:menuselection:`Financial --> Reporting --> General Ledger`
+      __ 
https://demo.tryton.org/model/account.general_ledger.account;context_model=account.general_ledger.account.context
+
+Reports
+-------
+
+.. _report-account.general_ledger:
+
+General Ledger
+^^^^^^^^^^^^^^
+
+For each selected *General Ledger Account* the *General Ledger* report provides
+a detailed list of all of the transactions that occurred during the specified
+period of time.
+These are summed up for each general ledger account, and the account balance
+is also shown.
+
+.. _report-account.trial_balance:
+
+Trial Balance
+^^^^^^^^^^^^^
+
+The *Trial Balance* report allows a hard copy of the *General Ledger Account's*
+summaries to be printed out.
+It lists each selected general ledger account along with its start and end
+balances and total debits and credits.
+
+.. _model-account.general_ledger.account.party:
+
+General Ledger Account Party
+============================
+
+The *General Ledger Account Party* concept provides the same information as the
+`General Ledger Account <model-account.general_ledger.account>`, but grouped
+by `Party <party:model-party.party>`.
+
+It can be used to show the information that is normally found in a `Debtors
+or Creditors Ledger`_.
+
+.. _Debtors or Creditors Ledger: 
https://en.wikipedia.org/wiki/Ledger#Types_on_the_basis_of_purpose
+
+.. _model-account.aged_balance:
+
+Aged Balance
+============
+
+The *Aged Balance* shows a breakdown of how overdue payments are both to and
+from customers and suppliers.
+It allows the length of some terms to be set and then, for each
+`Party <party:model-party.party>`, groups the payment amounts into the
+appropriate term based on the maturity date from the payment's
+`Account Move Line <model-account.move.line>`.
+A payment amount appears in the first term it is equal to or more overdue than.
+
+Reports
+-------
+
+.. _report-account.aged_balance:
+
+Aged Balance
+^^^^^^^^^^^^
+
+The *Aged Balance* report lets the user get a hard copy of the selected terms
+and aged balances.
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/configuration.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/configuration.rst      Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,16 @@
+.. _model-account.configuration:
+
+Configuration
+=============
+
+The *Account Configuration* contains the settings used to configure the general
+behaviour and default values for accounting related activities.
+
+.. seealso::
+
+   Account configuration settings are found by opening the main menu item:
+
+      |Financial --> Configuration --> Account Configuration|__
+
+      .. |Financial --> Configuration --> Account Configuration| replace:: 
:menuselection:`Financial --> Configuration --> Account Configuration`
+      __ https://demo.tryton.org/model/account.configuration/1
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/fiscal-year.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/fiscal-year.rst        Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,89 @@
+.. _model-account.fiscalyear:
+
+Fiscal Year
+===========
+
+In accounting the concept of a *Fiscal Year* is used when generating a
+`Company's <company:model-company.company>` financial reports.
+In Tryton it groups together a set of `Periods <model-account.period>`.
+
+.. seealso::
+
+   Fiscal years can be found by opening the main menu item:
+
+      |Financial --> Configuration --> Fiscal Years --> Fiscal Years|__
+
+      .. |Financial --> Configuration --> Fiscal Years --> Fiscal Years| 
replace:: :menuselection:`Financial --> Configuration --> Fiscal Years --> 
Fiscal Years`
+      __ https://demo.tryton.org/model/account.fiscalyear
+
+Wizards
+-------
+
+.. _wizard-account.fiscalyear.create_periods:
+
+Create Periods
+^^^^^^^^^^^^^^
+
+For a *Fiscal Year*, the *Create Periods* wizard creates a set of monthly,
+quarterly, or other fixed length periods.
+The periods that are created cover the whole of the fiscal year, and do not
+overlap.
+
+.. _wizard-account.fiscalyear.renew:
+
+Renew Fiscal Year
+^^^^^^^^^^^^^^^^^
+
+The *Renew Fiscal Year* wizard takes a previous *Fiscal Year* and lets the
+user create a new fiscal year based on it.
+When the wizard is started, by default, it is setup ready to create a new
+fiscal year based on, and immediately following, the latest fiscal year.
+
+.. seealso::
+
+   The renew fiscal year wizard can be started from the main menu item:
+
+      :menuselection:`Financial --> Configuration --> Fiscal Years --> Renew 
Fiscal Year`
+
+.. _wizard-account.fiscalyear.balance_non_deferral:
+
+Balance Non-Deferral
+^^^^^^^^^^^^^^^^^^^^
+
+At the fiscal year-end the *Balance Non-Deferral* wizard is used to
+create `Account Moves <model-account.move>` that zero the balances of each
+non-deferral `Account <model-account.account>` using a counterpart account.
+
+.. seealso::
+
+   The balance non-deferral wizard is started using the main menu item:
+
+      :menuselection:`Financial --> Processing --> Balance Non-Deferral`
+
+.. _model-account.period:
+
+Period
+======
+
+An accounting *Period* represents a period of time between two dates.
+It allows a `Company's <company:model-company.company>` accounts to be
+processed, aggregated and analysed based on this fixed range of time.
+Each period in Tryton belongs to a `Fiscal Year <model-account.fiscalyear>`.
+
+There are two different types of period, standard periods, and
+adjustment periods.
+Standard periods from the same fiscal year cannot overlap, and by default
+Tryton will only use Standard periods when creating new
+`Account Moves <model-account.move>`.
+Adjustment periods are typically used for things like the
+accounting moves created when `Closing a fiscal year`, and these periods may
+overlap other periods.
+
+.. seealso::
+
+   Periods can be found by opening the main menu item:
+
+      |Financial --> Configuration --> Fiscal Years --> Fiscal Years --> 
Periods|__
+
+      .. |Financial --> Configuration --> Fiscal Years --> Fiscal Years --> 
Periods| replace:: :menuselection:`Financial --> Configuration --> Fiscal Years 
--> Fiscal Years --> Periods`
+      __ https://demo.tryton.org/model/account.period
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/index.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/index.rst      Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,16 @@
+******
+Design
+******
+
+The *Account Module* introduces the following concepts:
+
+.. toctree::
+    :maxdepth: 1
+
+    account
+    move
+    fiscal-year
+    journal
+    tax
+    template
+    configuration
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/journal.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/journal.rst    Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,85 @@
+.. _model-account.journal:
+
+Journal
+=======
+
+A *Journal* represents a book of original entry from traditional manual
+accounting.
+In Tryton it allows `Account Moves <model-account.move>` of the same class
+to be grouped together.
+Every account move gets associated with a journal, and the journal defines
+what sequence is then used to number the account move.
+
+Among the journal's properties is a type.
+This limits where the journal can be used.
+
+.. seealso::
+
+   The journals can be found by opening the main menu item:
+
+      |Financial --> Configuration --> Journals --> Journals|__
+
+      .. |Financial --> Configuration --> Journals --> Journals| replace:: 
:menuselection:`Financial --> Configuration --> Journals --> Journals`
+      __ https://demo.tryton.org/model/account.journal
+
+Reports
+-------
+
+.. _report-account.move.general_journal:
+
+General Journal
+^^^^^^^^^^^^^^^
+
+In Tryton the general journal lists all of the
+`Account Moves <model-account.move>` that happened between the selected start
+and end dates.
+It also includes details such as the accounts, debits and credits involved.
+
+.. seealso::
+
+   The general journal can be printed by using the main menu item:
+
+      :menuselection:`Financial --> Reporting --> Print General Journal`
+
+Wizards
+-------
+
+.. _wizard-account.move.open_journal:
+
+Open Journal
+^^^^^^^^^^^^
+
+The *Open Journal* wizard opens an editable list which can be used to quickly
+enter in journal entries for a specific journal and
+`Period <model-account.period>`.
+
+.. seealso::
+
+   The wizard can be started by using the main menu item:
+
+      :menuselection:`Financial --> Entries --> Open Journal`
+
+.. _model-account.journal.period:
+
+Journal Period
+==============
+
+For each `Company <company:model-company.company>`, a *Journal Period* links
+together the concepts of a `Journal <model-account.journal>`, and an accounting
+`Period <model-account.period>`.
+Each journal period is created automatically when the first
+`Account Move <model-account.move>` is created in the journal and period.
+It provides a way of partially closing a period one journal at a time.
+
+.. seealso::
+
+   The company's journal periods can be listed by opening the main menu item:
+
+      |Financial --> Reporting --> Journals - Periods|__
+
+      .. |Financial --> Reporting --> Journals - Periods| replace:: 
:menuselection:`Financial --> Reporting --> Journals - Periods`
+      __ https://demo.tryton.org/model/account.journal.period
+
+   The company's open journal periods can be found using the main menu item:
+
+      :menuselection:`Financial --> Entries --> Journals - Periods`
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/move.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/move.rst       Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,177 @@
+.. _model-account.move:
+
+Account Move
+============
+
+The *Account Move* concept is used to record transactions in a
+`Company's <company:model-company.company>` accounts.
+In Tryton each account move is made up from several
+`Account Move Lines <model-account.move.line>`.
+These lines form the separate parts of the transaction as required by
+`double-entry bookkeeping`_ principles.
+
+Account moves are always tied to a specific accounting
+`Period <model-account.period>`, and new account moves can only be created in
+an open period.
+All account moves are also entered into one of the
+`Journals <model-account.journal>`.
+
+An account move can be changed until it is posted.
+Posting an account move permanently adds it to the company's accounts.
+Only account moves whose line's debits and credits are balanced can be posted.
+
+.. _`Double-entry bookkeeping`: 
https://en.wikipedia.org/wiki/Double-entry_bookkeeping
+
+.. seealso::
+
+   Account moves can be found by opening the main menu item:
+
+      |Financial --> Entries --> Account Moves|__
+
+      .. |Financial --> Entries --> Account Moves| replace:: 
:menuselection:`Financial --> Entries --> Account Moves`
+      __ https://demo.tryton.org/model/account.move
+
+Wizards
+-------
+
+.. _wizard-account.move.cancel:
+
+Cancel Moves
+^^^^^^^^^^^^
+
+The *Cancel Moves* wizard creates new account moves whose debits and credits
+cancel out those from the original account moves.
+If any of the `Account Move Lines <model-account.move.line>` that got cancelled
+are in `Accounts <model-account.account>` that are marked as to be reconciled
+then the original lines are `Reconciled <model-account.move.reconciliation>`
+with those that cancel them out.
+
+.. _model-account.move.line:
+
+Account Move Line
+=================
+
+Each *Account Move Line* is used to represent a single debit, or credit, to
+a specific `Account <model-account.account>`.
+
+It is also used to record additional details about the transaction, such as:
+
+* the amount in a second `Currency <currency:model-currency.currency>`,
+* the `Party <party:model-party.party>` involved with the transaction,
+* the date when the line matures and a payment for the (payable or receivable)
+  line should happen, and
+* how the amount is split up for `Tax <model-account.tax.line>` purposes.
+
+Account move lines can only exist as part of an
+`Account Move <model-account.move>`.
+A valid line is part of an account move that has balanced debits and credits.
+Once the account move that a line belongs to has been posted the main
+properties of the line can no longer be changed.
+These facts help ensure the integrity of the
+`Company's <company:model-company.company>` accounts and the accounting reports
+generated by Tryton.
+
+Wizards
+-------
+
+.. _wizard-account.move.line.group:
+
+Group Lines
+^^^^^^^^^^^
+
+The *Group Lines* wizard allows payable and/or receivable *Account Move Lines*
+to be grouped together and a single unique payable or receivable account move
+line is created for the net amount of the grouped lines.
+The maturity date used for the newly created account move line is the
+earliest maturity date from the lines that were grouped together.
+
+.. _wizard-account.move.reconcile_lines:
+
+Reconcile Lines
+^^^^^^^^^^^^^^^
+
+The *Reconcile Lines* wizard matches together *Account Move Lines* from
+the same account that have credits and debits which are equal.
+If the selected account move lines do not balance then the wizard will offer
+to create a write-off account move for the difference, so the reconciliation
+can be completed.
+When the reconciliation is done the lines are linked together using a new
+`Reconciliation <model-account.move.reconciliation>`.
+
+.. _wizard-account.move.unreconcile_lines:
+
+Unreconcile Lines
+^^^^^^^^^^^^^^^^^
+
+The *Unreconcile Lines* wizard undoes a reconciliation.
+It does this by removing the
+`Reconciliation <model-account.move.reconciliation>` that linked together
+the *Account Move Lines*.
+
+.. note::
+
+   Running this wizard will not reverse any other operations that may have
+   been triggered when the reconciliation was initially performed.
+
+.. _model-account.move.reconciliation:
+
+Reconciliation
+==============
+
+In Tryton a *Reconciliation* groups together some
+`Account Move Lines <model-account.move.line>` whose total debits and credits
+balance.
+These account move lines must all have the same
+`Account <model-account.account>` and `Party <model-party.party>` and must
+not already be part of another *Reconciliation*.
+
+Each *Reconciliation* stores information about the reconciliation and when it
+happened.
+
+Wizards
+-------
+
+.. _wizard-account.reconcile:
+
+Reconcile Accounts
+^^^^^^^^^^^^^^^^^^
+
+The *Reconcile Accounts* wizard is used to find and reconcile groups of
+`Account Move Lines <model-account.move.line>` that have matching total
+debits and credits, in `Accounts <model-account.account>` that are marked
+for reconciliation.
+
+The wizard goes through each account and `Party <party:model-party.party>`
+in turn, and attempts to find the best possible reconciliations from the
+unreconciled account move lines that should be considered.
+
+It does this by splitting up the account move lines into sequential
+`chunks <config-account.reconciliation_chunk>`.
+It then tries all possible combinations of the account move lines within each
+chunk, in an attempt to find the best set of balanced lines.
+
+.. seealso::
+
+   The reconcile accounts wizard can be started from the main menu item:
+
+      :menuselection:`Financial --> Processing --> Reconcile Accounts`
+
+.. _model-account.move.reconcile.write_off:
+
+Reconcile Write Off
+===================
+
+The *Reconcile Write Off* concept is used to configure which
+`Journal <model-account.journal>` and debit or credit
+`Accounts <model-account.account>` are used for write-offs generated when
+`Reconciling Lines <wizard-account.move.reconcile_lines>`.
+
+.. seealso::
+
+   A list of the available reconcile write off settings can be found by
+   opening the main menu item:
+
+      |Financial --> Configuration --> Journals --> WriteOff Methods|__
+
+      .. |Financial --> Configuration --> Journals --> WriteOff Methods| 
replace:: :menuselection:`Financial --> Configuration --> Journals --> WriteOff 
Methods`
+      __ https://demo.tryton.org/model/account.move.reconcile.write_off
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/tax.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/tax.rst        Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,151 @@
+.. _model-account.tax:
+
+Tax
+===
+
+The *Tax* concept allows the taxes a `Company <company:model-company.company>`
+uses to be represented in Tryton.
+Taxes can be for a fixed amount, or a percentage of an item's price.
+The tax can also be setup to be included as part of an item's price for any
+later taxes that get applied, resulting in it being compounded by these later
+taxes.
+
+A date range can be used to restrict when a tax applies.
+
+Applying a tax will also apply all of its children.
+
+.. seealso::
+
+   The taxes can be found by opening the main menu item:
+
+      |Financial --> Configuration --> Taxes --> Taxes|__
+
+      .. |Financial --> Configuration --> Taxes --> Taxes| replace:: 
:menuselection:`Financial --> Configuration --> Taxes --> Taxes`
+      __ https://demo.tryton.org/model/account.tax
+
+   Taxes can be created from `Tax Templates <model-account.tax.template>`.
+
+Wizards
+-------
+
+.. _wizard-account.tax.test:
+
+Test Tax
+^^^^^^^^
+
+The *Test Tax* wizard allows a user to test how different taxes get applied.
+It does this without altering any data on the system, and lets the user
+instantly see the result of applying different taxes.
+
+.. seealso::
+
+   The test tax wizard can be started using the main menu item:
+
+      :menuselection:`Financial --> Configuration --> Taxes --> Test Tax`
+
+.. _model-account.tax.line:
+
+Tax Line
+========
+
+The *Tax Line* concept is used to record how an
+`Account Move Line <model-account.move.line>` is split up for tax purposes.
+Each tax line represents a tax amount, or base amount, for a specific
+*Account Move Line* and `Tax <model-account.tax>` combination.
+
+.. _model-account.tax.group:
+
+Tax Group
+=========
+
+The *Tax Group* concept is used to group together `Taxes <model-account.tax>`
+of the same type.
+These tax groups can then be used in `Tax Rules' <model-account.tax.rule>`
+lines to change which taxes are applied to an item.
+
+.. seealso::
+
+   The tax groups can be found using the main menu item:
+
+      |Financial --> Configuration --> Taxes --> Tax Groups|__
+
+      .. |Financial --> Configuration --> Taxes --> Tax Groups| replace:: 
:menuselection:`Financial --> Configuration --> Taxes --> Tax Groups`
+      __ https://demo.tryton.org/model/account.tax.group
+
+.. _model-account.tax.rule:
+
+Tax Rule
+========
+
+A *Tax Rule* allows taxes to be substituted for other taxes based on a set of
+rules.
+When the tax rule is applied the rule defined by its first matching line is
+used.
+
+The tax rule's lines contain a set of properties, such as the
+`Tax <model-account.tax>`, its `Group <model-account.tax.group>`, or a date
+range.
+These are used to work out if the tax rule line matches the tax.
+If the tax matches, then a substitution tax is added and the origin tax is
+removed, unless the tax rule line indicates that the origin tax should also
+be kept.
+
+.. seealso::
+
+   The available tax rules can be found by opening the main menu item:
+
+      |Financial --> Configuration --> Taxes --> Tax Rules|__
+
+      .. |Financial --> Configuration --> Taxes --> Tax Rules| replace:: 
:menuselection:`Financial --> Configuration --> Taxes --> Tax Rules`
+      __ https://demo.tryton.org/model/account.tax.rule
+
+   Tax rules can be created from
+   `Tax Rule Templates <model-account.tax.rule.template>`.
+
+.. _model-account.tax.code:
+
+Tax Code
+========
+
+In Tryton *Tax Codes* are used to collect together tax amounts and base amounts
+for tax reporting.
+
+Each tax code is made up from lines, each of which collect together either the
+tax or base amounts for a specific `Tax <model-account.tax>` and type of
+transaction.
+An operator then allows this value to be negated if required.
+
+The tax codes can be placed into a structure with each having a parent and
+some children.
+
+The amounts shown by each tax code are based on the values from tax code's
+lines, and the amounts provided by the tax code's children.
+
+.. seealso::
+
+   The list of tax codes can be found using the main menu item:
+
+      |Financial --> Configuration --> Taxes --> Tax Codes --> Tax Codes|__
+
+      .. |Financial --> Configuration --> Taxes --> Tax Codes --> Tax Codes| 
replace:: :menuselection:`Financial --> Configuration --> Taxes --> Tax Codes 
--> Tax Codes`
+      __ https://demo.tryton.org/model/account.tax.code
+
+   Tax codes can be created from
+   `Tax Code Templates <model-account.tax.code.template>`.
+
+Wizards
+-------
+
+.. _wizard-account.tax.code.open_chart:
+
+Open Chart of Tax Codes
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The *Open Chart of Tax Codes* wizard opens the chart of tax codes, showing the
+tax codes and amounts for the selected periods of time.
+
+.. seealso::
+
+   The open chart tax code wizard can be started from the main menu item:
+
+      :menuselection:`Financial --> Charts --> Open Tax Chart`
diff -r 9dc78c189562 -r 19a27fe2805a doc/design/template.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design/template.rst   Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,128 @@
+.. _concept-account.template:
+.. _model-account.account.template:
+.. _model-account.account.type.template:
+.. _model-account.tax.template:
+.. _model-account.tax.code.template:
+.. _model-account.tax.rule.template:
+
+Templates
+=========
+
+The *Templates* are used to predefine a set of basic accounting structures
+and rules.
+The templates have the same properties as their non-template equivalents
+except they are not linked to a `Company <company:model-company.company>`.
+
+There are templates for:
+
+* `Accounts <model-account.account>`,
+* `Account Types <model-account.account.type>`,
+* `Taxes <model-account.tax>`,
+* `Tax Codes <model-account.tax.code>`, and
+* `Tax Rules <model-account.tax.rule>`.
+
+These templates are used together to form a complete accounting structure for
+particular country and/or company type.
+
+.. seealso::
+
+    The templates can be found using the following menu entries:
+
+    * |Financial --> Configuration --> Templates --> Account Templates|__
+    * |Financial --> Configuration --> Templates --> Account Type Templates|__
+    * |Financial --> Configuration --> Templates --> Taxes Templates|__
+    * |Financial --> Configuration --> Templates --> Tax Codes Templates|__
+    * |Financial --> Configuration --> Templates --> Tax Rule Templates|__
+
+    .. |Financial --> Configuration --> Templates --> Account Templates| 
replace:: :menuselection:`Financial --> Configuration --> Templates --> Account 
Templates`
+    __ https://demo.tryton.org/model/account.account.template
+    .. |Financial --> Configuration --> Templates --> Account Type Templates| 
replace:: :menuselection:`Financial --> Configuration --> Templates --> Account 
Type Templates`
+    __ https://demo.tryton.org/model/account.account.type.template
+    .. |Financial --> Configuration --> Templates --> Taxes Templates| 
replace:: :menuselection:`Financial --> Configuration --> Templates --> Taxes 
Templates`
+    __ https://demo.tryton.org/model/account.tax.template
+    .. |Financial --> Configuration --> Templates --> Tax Codes Templates| 
replace:: :menuselection:`Financial --> Configuration --> Templates --> Tax 
Codes Templates`
+    __ https://demo.tryton.org/model/account.tax.code.template
+    .. |Financial --> Configuration --> Templates --> Tax Rule Templates| 
replace:: :menuselection:`Financial --> Configuration --> Templates --> Tax 
Rule Templates`
+    __ https://demo.tryton.org/model/account.tax.rule.template
+
+Wizards
+-------
+
+.. _wizard-account.create_chart:
+
+Create Chart
+^^^^^^^^^^^^
+
+The *Create Chart* wizard takes a set of templates and creates the
+corresponding accounts structure for a single
+`Company <company:model-company.company>`.
+This includes structures like the chart of accounts, balance sheet and income
+statement, and taxes and related tax management and reporting structures.
+
+.. seealso::
+
+   The create chart wizard can be started from the main menu item:
+
+      :menuselection:`Financial --> Configuration --> Templates --> Create 
Chart of Account from Template`
+
+.. _wizard-account.update_chart:
+
+Update Chart
+^^^^^^^^^^^^
+
+The *Update Chart* wizard updates a `Company's <company:model-company.company>`
+accounts structure with any changes that have been made to the underlying
+templates.
+
+.. seealso::
+
+   The update chart wizard can be started from the main menu item:
+
+      :menuselection:`Financial --> Configuration --> Templates --> Update 
Chart of Account from Template`
+
+.. _model-account.move.template:
+
+Account Move Template
+=====================
+
+An *Account Move Template* provides a predefined structure for an
+`Account Move <model-account.move>`.
+
+Each account move template can define a set of keywords.
+Values for these keywords are requested from the user when the template is
+used.
+These values are then substituted for the keyword placeholders defined in the
+account move template's fields.
+
+The account move template's lines, and their tax lines, mirror the structure of
+`Account Move Lines <model-account.move.line>` and
+`Tax Lines <model-account.tax.line>` respectively.
+However, in selected fields they also allow the use of expressions that can
+contain the keyword placeholders.
+
+.. seealso::
+
+   The account move templates can be found by using the main menu item:
+
+      |Financial --> Configuration --> Templates --> Account Move Template|__
+
+      .. |Financial --> Configuration --> Templates --> Account Move Template| 
replace:: :menuselection:`Financial --> Configuration --> Templates --> Account 
Move Template`
+      __ https://demo.tryton.org/model/account.move.template
+
+Wizards
+-------
+
+.. _wizard-account.move.template.create:
+
+Create Move
+^^^^^^^^^^^
+
+The *Create Move* wizard is used to create a new
+`Account Move <model-account.move>` based on a selected
+`Move Template <model-account.move.template>`.
+
+.. seealso::
+
+   The create move wizard can be started from the main menu item:
+
+      :menuselection:`Financial --> Entries --> Create Move from Template`
diff -r 9dc78c189562 -r 19a27fe2805a doc/index.rst
--- a/doc/index.rst     Mon Jan 04 21:33:28 2021 +0100
+++ b/doc/index.rst     Mon Jan 18 12:57:35 2021 +0000
@@ -1,310 +1,17 @@
+##############
 Account Module
 ##############
 
-The account module defines fundamentals for most of accounting needs.
-
-The module generates minimal chart of accounts for many languages. The XML
-files for each language are generated from the same original XML file thanks to
-the localize.xsl XSLT script. The script will produce on the standard output
-the desired XML file. The XSLT script can be launched with the following
-command::
-
-    xsltproc --stringparam lang <lang> localize.xsl minimal_chart.xml
-
-where ``lang`` is one of the languages.
-
-
-Fiscal Year
-***********
-
-A fiscal year aggregates a set of periods that are included between
-two dates. A Fiscal year can be *Open*, *Closed* or *Locked*. Closing a fiscal
-year will close all the corresponding periods. A *Locked* fiscal can not be
-re-open.
-
-- Name: The name of the fiscal year.
-- Code: The code, useful for fast data entry and searching.
-- Starting and Ending Date: The dates in which the periods should be
-  included.
-- Company: The company for which the fiscal year is defined.
-- State: Can be *Open*, *Closed* or *Locked*.
-- Periods: The list of periods.
-- Post Move Sequence: The sequence to use for numbering moves in this
-  fiscal year.
-
-The *Balance Non-Deferral* wizard allow to create a move that will debit/credit
-each non-deferral account in such way to have a balance equals to zero for the
-fiscal year and debit/credit a counter part account.
-
-
-Period
-******
-
-A period is mainly defined by a Starting and an Ending date, a Fiscal
-Year, a Type and a State (*Open*, *Closed* or *Locked*).
-
-The type can be *Standard* or *Adjustement*: Periods of type
-*Standard* on the same fiscal year can not overlap. Period of type
-*Adjustement* can overlap other periods and are typically used for all
-the accounting moves that must be created when closing a fiscal year.
-By default, the system uses only *Standard* period when creating
-moves.
-
-Each account move must be linked to a period and a move must be
-created on an open period.
-
-
-Account Type
-************
-
-The Account Type Model defines the structure of the accounting
-reports as balance sheet and income statement.
-It also defines check boxes to filter its accounts by usage.
-
-
-Account
-*******
-
-An Account is defined by these fields:
-
-- Name
-- Code
-- Company
-- Parent Account
-- Currency
-- Type: The Account Type of the account.
-- Debit Type: The Account Type of the account when debit > credit.
-- Start and End Date: The period for which the account can be used.
-- Replaced By: the account to use after end date.
-- Second currency: Force all moves for the account to have this
-  secondary currency.
-- Closed: Forbid move on the account.
-- Reconcile: Allow move lines of this account to be reconciled.
-- Party Required: Make party required for move lines of this account.
-- Taxes: This list of tax auto-complete move with new moves lines
-  corresponding to thoses taxes if the user create a line linked to
-  the current account and if the journal type is *Expense* or
-  *Revenue*.
-- Note
-
-
-Journal
-*******
-
-A Journal contains the following fields:
-
-- Name
-- Code
-- Active: A checkbox that allow to disable the tax.
-- Type: By default take one of the following values: *General*,
-  *Revenue*, *Expense*, *Cash*, *Situation*.
-
-
-Reconcile Write Off
-*******************
-
-A reconcile write off is used to set the writeoff options when reconciling
-unbalanced moves. It has the following fields:
-
-- Name
-- Company
-- Journal: Will be used for creating the write off move
-- Credit Account and Debit Account: The accounts used for the write off move
-  depending on the amount sign.
-- Active: A checkbox that allow to disable the writeoff.
-
-
-Move
-****
-
-A Move groups a list of Move Lines. It contains the following fields:
-
-- Name
-- Reference
-- Period
-- Journal
-- Effective Date: The date the move was created.
-- Post Date: The date the move was posted.
-- State: Can be *Draft* or *Posted*. A move should be balanced before
-  being posted. Once posted the move gets a Reference number, the
-  lines are posted and they can not be edited anymore.
-- Lines: The move lines.
-
-
-Moves Line:
-***********
-
-A Move Line is an amount of money that is credited to or debited from
-an account. The fields are:
-
-- Name
-- Reference
-- Debit and Credit: Define the debited or credited amount. Only one
-  field can be filled.
-- Account: The account.
-- Move: The move that links all the corresponding lines.
-- State: Can take one of the following value: 
-
-  - *Draft*: The line is part of a non-balanced move.
-  - *Valid*: The line is part of a balanced move.
-  - *Posted*: The line is part of a posted move.
+The *Account Module* defines the fundamentals needed for basic double entry
+accounting.
+It also includes templates for a basic chart of accounts, balance sheet and
+income statement.
 
-- Second Currency and Amount Second Currency: allow to keep track of
-  the original amount if the underlying transaction was made in an
-  other currency.
-- Maturity Date: used for payable and receivable lines. The Maturity
-  Date is the limit date for the payment.
-- Reconciliation: Hold a reconciliation number if applicable.
-- Journal, Period, Date: The values on these fields comes from the
-  corresponding move.
-- Tax Lines. Gives the distribution of the amount line on the account
-  chart
-
-The Move Line is displayed using the account's name eventualy surrounded by
-parenthesis when it is a credit line.
-
-The *Reconcile Lines* wizard allow to link move lines of the same
-acount for whose the credit sum is equal to the debit sum. If the
-selected lines are not balanced, the wizard offer to create a
-write-off line with the difference to make the reconciliation.
-
-The *Unreconcile Lines* wizard allow to do the inverse operation (but
-doesn't reverse other operations that could have triggered by the
-reconciliation).
-
-The *Reconcile Accounts* wizard allow to process one by one each party and
-account for reconciliation. The wizard tries to propose the best reconciliation
-possible. The configuration `reconciliation_chunk` in `account` section allow
-to define the length of lines that is allowed to search for proposal. The
-default is 10.
-
-The *Group Lines* wizard allow to group payable and/or receivable lines in
-order to have a unique payable or receivable line.
-
-
-Tax Code
-********
-
-The tax codes defines a tree structure and are used to create the tax
-reports. They are used to collect the tax amounts and the base amounts
-of the invoices. The Tax Code model contains the following fields:
-
-- Name
-- Code
-- Active: A checkbox that allow to disable the tax code.
-- Company: The company for which the tax code is defined.
-- Parent, Children: Parent and children tax codes.
-- Start and End date: The period for which the tax code is reported.
-- Amount: The sum of lines for the selected periods:
-
-    - Operator: `+` or `-`
-    - Tax
-    - Amount: *Tax* or *Base*
-    - Type: *Invoice* or *Credit*
-
-
-Tax
-***
-
-The tax model defines taxes, how the tax amount are computed and which
-tax code to use when creating invoices. The Tax model is defined by
-the following fields:
+.. toctree::
+   :maxdepth: 2
 
-- Name
-- Description
-- Group
-- Active: A checkbox that allow to disable the tax code.
-- Sequence
-- Type: May be *Percentage*, *Fixed*, or *None* for empty tax.
-- Amount: If Type is *Fixed*, defines a fix amount for the tax.
-- Percentage: If Type is *Percentage*, defines the percentage of the
-  tax.
-- Update Unit Price: If checked then the unit price for further tax calculation
-  will be increased by the amount of this tax.
-- Parent, Children: Parent and children taxes
-- Company: The company for which the tax is defined.
-- Invoice Account: The account to use when creating move lines for
-  invoicing with this tax, for credit on revenue or for debit on
-  expense.
-- Credit Note Account: The account to use when creating move lines for
-  credit notes with this tax, for debit on revenue or for credit on
-  expense
-
-If a code field is left empty, the corresponding amounts will be
-ignored by the tax reports.
-
-
-Tax Rule
-********
-
-The tax rule defines a set of rules that will be applied when computing taxes.
-It's composed by a name, it's kind and a list of lines. If a tax matches a tax
-rule line, it will be replaced by the *Substituion Tax*. The *Original Tax*
-will be included only if the *Keep Origin* check is checked.
-
-
-Templates
-*********
-
-The Template models (Account Template, Account Type Template, Tax
-Template, Tax Code Template, etc) are the equivalent of their
-counterparts except that they are not linked to a company. Two wizard
-(*Create Chart of Account from Template* and *Update Chart of Account
-from Template*) allow to create and update the accounts from the
-account templates (and consequently all other models associated to
-templates).
-
-Move Template
-*************
-
-A move template allows to configure predefined moves. A Move Template is
-defined by the following fields:
-
-- Name
-- Company
-- Keywords: The list of keywords used in the template.
-- Journal
-- Date: The date of the move. It must be leaved empty for today.
-- Description: The description of the move. The keyword values can be
-  substituted using the name surrounded by braces ('{' and '}').
-- Lines: The list of template lines.
-- Active
-
-A wizard to create moved base on templates is available in the *Entries* menu.
-The templates are also available as actions when opening a journal.
-
-Move Template Keywords
-**********************
-
-The keywords define the values asked to user to create the move based on the
-template. The fields are:
-
-- Name
-- String: The label used in the wizard form.
-- Sequence: The sequence used to order the fields in the wizard form.
-- Type:
-
-  - *Char*
-  - *Numeric*
-  - *Date*
-  - *Party*
-
-- Required
-- Digits: Only for numeric keyword.
-
-Move Line Template
-******************
-
-- Operation: *Debit* or *Credit*
-- Amount: An expression that can use any keywords to compute the amount.
-- Account
-- Party: Only for account that requires a party.
-- Description
-- Taxes: The list of template tax lines
-
-Tax Line Template
-*****************
-
-- Amount: An expression that can use any keywords to compute the amount.
-- Code: The tax code to use.
-- Tax
+   setup
+   usage/index
+   configuration
+   design/index
+   reference
diff -r 9dc78c189562 -r 19a27fe2805a doc/reference.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/reference.rst Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,49 @@
+*************
+API Reference
+*************
+
+Periods
+=======
+
+.. class:: ActivePeriodMixin
+
+   This mixin_ makes it easy to create a :class:`~trytond:trytond.model.Model`
+   which is active between a start and end date.
+   The date range, `Periods <model-account.period>`, or
+   `Fiscal Years <model-account.fiscalyear>` that are set in the context are
+   used to determine if a particular record should be considered active, or
+   not.
+
+.. class:: PeriodMixin
+
+   This mixin_ provides a start and end date to classes that inherit it.
+   It also limits any parent or child fields of the class to the same
+   `Company <company:model-company.company>` and to dates in the same period.
+
+Taxation
+========
+
+.. class:: TaxableMixin
+
+   This is a mixin_ that helps create classes that need to calculate
+   `Taxes <model-account.tax>`, tax lines, and tax and base amounts from
+   a list of taxable lines.
+
+.. _mixin: https://en.wikipedia.org/wiki/Mixin
+
+*********************
+Development Reference
+*********************
+
+The *Account Module* includes minimal charts of accounts for many languages.
+The :abbr:`XML (eXtensible Markup Language)` files that contain the localised
+charts of account are all generated from the same source XML file.
+The :file:`localize.xsl` :abbr:`XSLT (XML Stylesheet Language Transform)` file
+defines how the source XML file is transformed into a localised chart of
+accounts.
+
+To output a localised chart of accounts for language ``<lang>`` run:
+
+.. code-block:: bash
+
+   xsltproc --stringparam lang <lang> localize.xsl minimal_chart.xml
diff -r 9dc78c189562 -r 19a27fe2805a doc/setup.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/setup.rst     Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,64 @@
+*****
+Setup
+*****
+
+.. _Setting up the accounts structure:
+
+Setting up the accounts structure
+=================================
+
+After you've activated the *Account Module* the module configuration will run
+the `Create Chart <wizard-account.create_chart>` wizard and allow you to
+create your `Company's <company:model-company.company>` accounts structure
+from a template.
+It is normally a good idea to do this at this point, if you can.
+
+This will use the `Templates <concept-account.template>` from your selected
+:guilabel:`Account Template` and create things like a Chart of
+`Accounts <model-account.account>`,
+the `Account Types <model-account.account.type>` used to generate the
+balance sheet and income statements, and appropriate
+`Taxes <model-account.tax>`, `Tax Codes <model-account.tax.code>`, and
+`Tax Rules <model-account.tax.rule>` to go with them.
+
+.. tip::
+
+   If skipped running the *Create Chart* wizard you can always run it later
+   from its main menu item.
+
+.. _Creating a fiscal year:
+
+Creating a fiscal year
+======================
+
+In order to be able to record any of your company's transactions in Tryton
+you must first create a :ref:`Fiscal Year <model-account.fiscalyear>`.
+This is because every account move happens during an accounting
+:ref:`Period <model-account.period>`, and each period belongs to a fiscal
+year.
+
+You can create a new `Fiscal Year <model-account.fiscalyear>` from the
+[:menuselection:`Financial --> Configuration --> Fiscal Years --> Fiscal 
Years`]
+main menu item.
+
+.. tip::
+
+   The start and end of a fiscal year may align with a calendar year
+   (1 January to 31 December) in which case it is common to use the year as
+   its name.
+
+   It is not essential that a fiscal year and calendar year align, in fact a
+   fiscal year may be longer or shorter than a calendar year, depending on
+   your country's legal requirements and financial reporting standards.
+
+Once you have filled in the required information the
+`Create Periods <wizard-account.fiscalyear.create_periods>` wizard allows you
+to create a set of standard `Periods <model-account.period>`.
+You should choose an appropriate period length for your
+`Company <company:model-company.company>`, bearing in mind some reports are
+generated based on periods, and periods allow you to build up your accounts in
+smaller chunks.
+
+.. tip::
+
+   Tryton also provides easy ways of `Creating additional fiscal years`.
diff -r 9dc78c189562 -r 19a27fe2805a doc/usage/close.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage/close.rst       Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,106 @@
+.. _Closing a period:
+
+Closing a period
+================
+
+To help you keep your accounts tidy, and help you avoid errors, Tryton lets you
+close each of your `Company's <company:model-company.company>` accounting
+`Periods <model-account.period>` as soon as they are finished.
+
+Check everything is ready
+-------------------------
+
+Before you go ahead and close the period it is a good idea to check that
+you have recorded all the transactions related to the period in Tryton.
+This includes any `Account Moves <model-account.move>` that are needed for
+things like prepayments, accruals or depreciation.
+You may also want to check that things like bank balances reconcile, and
+account moves have been posted.
+
+.. tip::
+
+   If you are not ready to close the period, but want to restrict which
+   `Journals <model-account.journal>` are still open then you can partially
+   close a period.
+   In Tryton this is done by using the
+   [:menuselection:`Financial --> Processing --> Close Journals - Periods`]
+   main menu item.
+
+Close the period
+----------------
+
+Once you are happy everything seems to be okay you use the
+[:menuselection:`Financial --> Processing --> Close Periods`] main menu item
+to close the period.
+
+.. note::
+
+   Many companies will also have their own additional processes which need
+   to be run at period end.
+   These may include things like generating reports, and reporting taxes.
+
+.. tip::
+
+   If you need to make changes to a closed period you can re-open it, unless
+   it has been locked.
+
+   To re-open a closed period use the
+   [:menuselection:`Financial --> Processing --> Close Periods`] menu item.
+   To find a closed period, you will need to clear the filter so that all the
+   periods are listed, not just the open ones.
+
+.. _Closing a fiscal year:
+
+Closing a fiscal year
+=====================
+
+There are several steps you need to follow in order to close a
+`Fiscal Year <model-account.fiscalyear>` in Tryton.
+
+Check everything is ready
+-------------------------
+
+To help you prepare to close the fiscal year you will often want to first
+ensure all its `Periods <model-account.period>` are closed, by following your
+normal procedures for `Closing a period`.
+
+Now is also a good time to double check that you haven't forgotten anything,
+and ensure that there are no obvious errors, or anomalies.
+
+Reset non-deferral accounts
+---------------------------
+
+Next, you need to move the balances of all the non-deferral `Accounts
+<model-account.account>` (also known as nominal or temporary accounts) to an
+appropriate deferral account (also known as real or permanent account).
+The best way to do this is to use the `Balance Non-Deferral
+<wizard-account.fiscalyear.balance_non_deferral>` wizard.
+
+.. tip::
+
+   When using the balance non-deferral wizard, you should create an adjustment
+   period for the year end closing entries.
+   It is best practice to use the last day of the fiscal year as both the
+   start and end date for this period.
+
+.. tip::
+
+   The first time you use the balance non-deferral wizard, you may need to
+   create a special ``Situation`` `Journal <model-account.journal>` for
+   the year end closing entries.
+
+Create other year end entries
+-----------------------------
+
+With the initial closing entries created you can now go ahead and create any
+other moves that are required by the accounting processes of your country.
+These will be moves for things like taxes on revenue, dividends, and so on.
+When creating these you may want to use the adjustment period you used in
+the last step.
+
+Close the fiscal year
+---------------------
+
+Finally once all the year end and closing moves have been posted you can close
+the fiscal year from the
+[:menuselection:`Financial --> Processing --> Close Fiscal Year`] menu item.
diff -r 9dc78c189562 -r 19a27fe2805a doc/usage/create.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage/create.rst      Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,57 @@
+.. _Creating additional fiscal years:
+
+Creating additional fiscal years
+================================
+
+You will need a different `Fiscal Year <model-account.fiscalyear>` for each
+year that you want to record accounting transactions.
+
+You can create these in the same way as you
+`created your initial fiscal year <Creating a fiscal year>`.
+
+.. tip::
+
+   An alternative, and often simpler, way of creating a new fiscal year is to
+   use the `Renew Fiscal Year <wizard-account.fiscalyear.renew>` wizard.
+
+.. _Creating journal entries:
+
+Creating journal entries
+========================
+
+In Tryton `journal entries`_ are represented by
+`Account Moves <model-account.move>`.
+With the right modules activated Tryton will automatically create many of
+the account moves for you.
+However, there are times when you will need to manually move amounts from one
+`Account <model-account.account>` to another.
+You do this by using the items found under the
+[:menuselection:`Financial --> Entries`] main menu item.
+
+.. _journal entries: https://en.wikipedia.org/wiki/Journal_entry
+
+One-off entries
+---------------
+
+For entries that are only needed once, for example to set an account's
+initial opening balance, you can manually create an *Account Move*.
+
+The [:menuselection:`Financial --> Entries --> Open Journal`] main menu item
+provides another way of entering the details of an account move.
+It provides a list of individual
+`Account Move Lines <model-account.move.line>`, which can be added to as
+required.
+
+Reoccurring entries
+-------------------
+
+The best way to create accounting entries for things that are expected to
+happen more than once is to use an
+`Account Move Template <model-account.move.template>`.
+
+You must first create the *Account Move Template* and set it up to ask for the
+things that might change each time it is used.
+
+You then run the
+`Create Move from Template <wizard-account.move.template.create>` wizard to
+create account moves based on a template of your choice.
diff -r 9dc78c189562 -r 19a27fe2805a doc/usage/index.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage/index.rst       Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,16 @@
+*****
+Usage
+*****
+
+Accounting configuration, data, and reports are found under the
+[:menuselection:`Financial`] main menu item.
+
+.. toctree::
+   :maxdepth: 1
+
+   create
+   view
+   report
+   process
+   close
+   structure
diff -r 9dc78c189562 -r 19a27fe2805a doc/usage/process.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage/process.rst     Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,21 @@
+.. _Reconciling accounts:
+
+Reconciling accounts
+====================
+
+In Tryton account reconciliation is a process that matches up debits and credit
+in an `Account <model-account.account>` which balance out to zero.
+
+This allows you to easily see, for example, which payments were for which
+transactions, and which things still need to be paid for.
+Any `Reconciliation <model-account.move.reconciliation>` that an
+`Account Move Line <model-account.move.line>` is part of is shown by the
+account move line's :guilabel:`Reconciliation` field.
+
+The `Reconcile Accounts <wizard-account.reconcile>` wizard is used to manually
+run this account reconciliation.
+
+.. note::
+
+   Some other processes in Tryton will automatically reconcile account move
+   lines when appropriate.
diff -r 9dc78c189562 -r 19a27fe2805a doc/usage/report.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage/report.rst      Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,83 @@
+.. _Using the general ledger:
+
+Using the general ledger
+========================
+
+Opening the [:menuselection:`Financial --> Reporting --> General Ledger`]
+main menu item shows a list of the
+`General Ledger Accounts <model-account.general_ledger.account>`.
+
+You select the `Fiscal Year <model-account.fiscalyear>` and optionally the
+starting and ending `Periods <model-account.period>`, or dates, to see data
+for a specific time period.
+
+Each general ledger account can be opened to provide a breakdown of the items
+in that account.
+This breakdown can be done to a
+`Party <model-account.general_ledger.account.party>` or
+`Account Move Line <model-account.move.line>` level.
+
+A `General Ledger <report-account.general_ledger>` report, and a
+`Trial Balance <report-account.trial_balance>` can also be printed from here.
+
+.. tip::
+
+   If you are only interested in accounts which have debits or credits you
+   can use the filter to get a list of these by entering::
+
+      Debit: !0 or Credit: !0
+
+   Note: You should replace ``Debit`` and ``Credit`` with the correct names
+   used in the language you are using Tryton in.
+
+.. _Using the balance sheet:
+
+Using the balance sheet
+=======================
+
+The [:menuselection:`Financial --> Reporting --> Balance Sheet`] shows the
+`Company's <company:model-company.company>` assets and liabilities for the
+chosen date.
+
+You can use the :guilabel:`Comparison` checkbox to do a comparison of the
+company's data for two different dates.
+
+Opening a line from the balance sheet lists the
+`Accounts <model-account.account>` that were included in the balance sheet's
+line.
+You can then open these accounts to get a list of the individual
+`Account Move Lines <model-account.move.line>` that made up that account's
+debits and credits.
+
+.. _Using the income statement:
+
+Using the income statement
+==========================
+
+The [:menuselection:`Financial --> Reporting --> Income Statement`] shows the
+`Company's <company:model-company.company>` revenue and expenses for the
+chosen period of time.
+
+You can use the :guilabel:`Comparison` checkbox to do a comparison of the
+company's data for two different periods of time.
+
+Opening a line from the income statement lists the
+`Accounts <model-account.account>` that were included in the income statement's
+line.
+You can then open these accounts to get a breakdown of the amount to a
+`Party <model-account.general_ledger.account.party>` or
+`Account Move Line <model-account.move.line>` level.
+
+.. _Getting aged balances:
+
+Getting aged balances
+=====================
+
+You can get an `Aged Balance <model-account.aged_balance>` for both suppliers
+and customers.
+
+You can change what unit of time is used for the terms, and length of each
+term, to suit you needs.
+
+You can also print a copy of the aged balances by using the
+`Aged Balance <report-account.aged_balance>` report.
diff -r 9dc78c189562 -r 19a27fe2805a doc/usage/structure.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage/structure.rst   Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,36 @@
+.. _Making changes to the accounts structure:
+
+Making changes to the accounts structure
+========================================
+
+When you've created your `Company's <company:model-company.company>` accounts
+structure from a template you can extend it without needing to do anything
+special.
+
+If you want to change any of the `Accounts <model-account.account>`,
+`Account Types <model-account.account.type>`,
+`Taxes <model-account.tax>`, `Tax Codes <model-account.tax.code>`, and
+`Tax Rules <model-account.tax.rule>` that were created from the
+`Template <concept-account.template>` then you need to use the
+:guilabel:`Override Template` option on the items you want to change.
+
+.. note::
+
+   Items where you have overridden the template will not be changed when you
+   are `Updating the accounts structure`.
+
+.. _Updating the accounts structure:
+
+Updating the accounts structure
+===============================
+
+If you created your `Company's <company:model-company.company>` accounts
+structure from a template you will find that the template is occasionally
+updated or improved to match any updated accounting requirements.
+
+To bring these changes into your accounts structure you use the
+`Update Chart <wizard-account.update_chart>` wizard.
+
+.. note::
+
+   Any items where you have overridden the template will not be changed.
diff -r 9dc78c189562 -r 19a27fe2805a doc/usage/view.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage/view.rst        Mon Jan 18 12:57:35 2021 +0000
@@ -0,0 +1,62 @@
+.. _Viewing journal entries:
+
+Viewing journal entries
+=======================
+
+In Tryton there are plenty of different ways of getting information about
+the `journal entries`_ that record your
+`Company's <company:model-company.company>` accounting transactions.
+
+Each journal entry is represented by an `Account Move <model-account.move>`.
+These account moves, and the `Account Move Lines <model-account.move.line>`
+that make them up, can be found by:
+
+* Using the items in the [:menuselection:`Financial --> Entries`] main menu
+  item.
+* `Viewing your chart of accounts data` and opening the accounts.
+* `Using the general ledger` and opening the accounts.
+* `Using the balance sheet` and opening the lines and then accounts.
+* `Using the income statement` and opening the lines and then accounts.
+
+.. tip::
+
+    Account moves that are created by, or relate to, other documents or items
+    on you Tryton system can also often be found from those documents or items.
+
+.. _journal entries: https://en.wikipedia.org/wiki/Journal_entry
+
+.. _Viewing your chart of accounts data:
+
+Viewing your chart of accounts data
+===================================
+
+The `Open Chart of Accounts <wizard-account.open_chart>` wizard can be run
+from the main menu to open your chart of accounts.
+
+This provides a structured view of all the `Accounts <model-account.account>`
+that form your `Company's <company:model-company.company>` accounts.
+
+.. tip::
+
+    Each account can be opened to show the
+    `Account Move Lines <model-account.move.line>` that contributed to the
+    debits and credits shown for that account.
+
+.. _Viewing your tax code data:
+
+Viewing your tax code data
+==========================
+
+The `Open Chart of Tax Codes <wizard-account.tax.code.open_chart>` wizard can
+be run from the main menu to open your chart of tax codes.
+
+From here you are able to see data about what `Taxes <model-account.tax>` have
+been applied and what amounts these were based on.
+The `Tax Codes <model-account.tax.code>` are normally structured so that you
+can find the data that you need to do your tax reporting.
+
+.. tip::
+
+    Each tax code can be opened to show the
+    `Tax Lines <model-account.tax.line>` that contribute to the tax code's
+    amount.
diff -r 9dc78c189562 -r 19a27fe2805a setup.py
--- a/setup.py  Mon Jan 04 21:33:28 2021 +0100
+++ b/setup.py  Mon Jan 18 12:57:35 2021 +0000
@@ -10,9 +10,12 @@
 
 
 def read(fname):
-    return io.open(
+    content = io.open(
         os.path.join(os.path.dirname(__file__), fname),
         'r', encoding='utf-8').read()
+    content = re.sub(
+        r'(?m)^\.\. toctree::\r?\n((^$|^\s.*$)\r?\n)*', '', content)
+    return content
 
 
 def get_require_version(name):
@@ -80,7 +83,7 @@
     download_url=download_url,
     project_urls={
         "Bug Tracker": 'https://bugs.tryton.org/',
-        "Documentation": 'https://docs.tryton.org/',
+        "Documentation": 'https://docs.tryton.org/projects/modules-account/',
         "Forum": 'https://www.tryton.org/forum',
         "Source Code": 'https://hg.tryton.org/modules/account',
         },

Reply via email to