Skip to content

Commit ae3a115

Browse files
committed
[IMP] bank rec: massive update for 18.3 UI
This PR includes updates for multiple pages: - Reconciliation - Reconciliation Models - Transactions - Internal Transfers task-4771607 This commit updates the bank reconciliation page and other related pages to align with the 18.3 changes. closes #14250 X-original-commit: 86048fb Signed-off-by: Audrey Vandromme (auva) <[email protected]> Signed-off-by: Dallas Dean (dade) <[email protected]>
1 parent 9ada4fb commit ae3a115

File tree

17 files changed

+510
-250
lines changed

17 files changed

+510
-250
lines changed

content/applications/finance/accounting/bank.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Connect a bank for automatic synchronization
3030
--------------------------------------------
3131

3232
To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration
33-
--> Add a Bank Account`, select your bank in the list, click on :guilabel:`Connect`, and follow the
33+
--> Add a Bank Account`, select your bank in the list, click :guilabel:`Connect`, and follow the
3434
instructions.
3535

3636
.. seealso::
@@ -45,7 +45,7 @@ If your banking institution is not available in Odoo, or if you don't want to co
4545
account to your database, you can configure your bank account manually.
4646

4747
To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank
48-
Account`, click on :guilabel:`Record transactions manually` (at the bottom right), fill out the bank
48+
Account`, click :guilabel:`Record transactions manually` (at the bottom right), fill out the bank
4949
information, and click :guilabel:`Create`.
5050

5151
.. note::
@@ -59,7 +59,7 @@ Create a cash journal
5959
---------------------
6060

6161
To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting:
62-
Journals`, click on :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
62+
Journals`, click :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
6363

6464
For more information on the accounting information fields, read the
6565
:ref:`accounting/bank/configuration` section of this page.
@@ -125,8 +125,8 @@ You can edit the currency used to enter the transactions.
125125
Account number
126126
--------------
127127

128-
If you need to **edit your bank account details**, click on the external link arrow next to your
129-
:guilabel:`Account Number`. On the account page, click on the external link arrow next to your
128+
If you need to **edit your bank account details**, click the external link arrow next to your
129+
:guilabel:`Account Number`. On the account page, click the external link arrow next to your
130130
:guilabel:`Bank` and update your bank information accordingly. These details are used when
131131
registering payments.
132132

content/applications/finance/accounting/bank/internal_transfers.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ select the :guilabel:`Internal Transfers` :doc:`reconciliation model <reconcilia
2626
button. This reconciliation model button writes the transaction off to the :guilabel:`Internal
2727
Transfer` account.
2828

29-
.. tip::
29+
.. important::
3030
Remember to reconcile the transaction for both the outgoing transaction on the journal that sends
3131
the payment and the incoming transaction on the journal that receives the payment.
3232

content/applications/finance/accounting/bank/reconciliation.rst

Lines changed: 244 additions & 90 deletions
Large diffs are not rendered by default.
-716 Bytes
Loading
Binary file not shown.
-22.9 KB
Loading

content/applications/finance/accounting/bank/reconciliation_models.rst

Lines changed: 129 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -2,111 +2,158 @@
22
Reconciliation models
33
=====================
44

5-
Reconciliation models are used to automate the :doc:`bank reconciliation <reconciliation>` process,
6-
which is especially handy when dealing with recurring entries like bank fees. Reconciliation models
7-
can also be helpful in handling :doc:`cash discounts <../customer_invoices/cash_discounts>`.
8-
9-
Each model is created based on a :ref:`model type <models/type>` and :guilabel:`bank transaction
10-
conditions`.
5+
Reconciliation models are custom rules that complement the :ref:`default set of matching rules
6+
<accounting/reconciliation/reconcile>` and enable more advanced automation of the :doc:`bank
7+
reconciliation <reconciliation>` process. These models are especially useful when dealing with
8+
recurring flows like writing off bank fees or :doc:`cash discounts
9+
<../customer_invoices/cash_discounts>`.
1110

1211
.. seealso::
13-
- :doc:`bank_synchronization`
14-
- `Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-6858>`_
15-
16-
.. _models/type:
17-
18-
Reconciliation model types
19-
==========================
20-
21-
To access reconciliation models, go to the :guilabel:`Accounting Dashboard`, click on the
22-
:icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` menu on the bank journal and select
23-
:guilabel:`Models` under the :guilabel:`Reconciliation` section. For each reconciliation model, a
24-
:guilabel:`Type` must be set. Three types of models exist:
25-
26-
- :guilabel:`Button to generate counterpart entry`: a button is created in the resulting entry
27-
section of the bank reconciliation view. If clicked, this button generates a counterpart entry to
28-
reconcile with the active transaction based on the rules set in the model. The rules specified in
29-
the model determine the counterpart entry's account(s), amount(s), label(s), and analytic
30-
distribution;
31-
- :guilabel:`Rule to suggest counterpart entry`: used for recurring transactions to match the
32-
transaction to a new entry based on conditions that must match the information on the transaction;
33-
- :guilabel:`Rule to match invoices/bills`: used for recurring transactions to match the transaction
34-
to existing invoices, bills, or payments based on conditions that must match the information on
35-
the transaction.
12+
`Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-6858>`_
3613

37-
Default reconciliation models
38-
=============================
14+
.. _accounting/rec-models/config:
15+
16+
Configuration
17+
=============
18+
19+
To access reconciliation models, go to the :guilabel:`Accounting Dashboard`, click the
20+
:icon:`fa-ellipsis-v` :guilabel:`(dropdown menu)` menu on the bank journal, and select
21+
:guilabel:`Models` under the :guilabel:`Reconciliation` section.
22+
23+
To create a new reconciliation model, click :guilabel:`New`.
24+
25+
Reconciliation models can be either :guilabel:`Manual` or :guilabel:`Automated`. Manual
26+
reconciliation models appear as :ref:`possible action buttons
27+
<accounting/reconciliation/action-buttons>` when :doc:`reconciling <reconciliation>`. Automatic
28+
reconciliation models apply automatically to transactions that meet the reconciliation model's
29+
:ref:`matching conditions <accounting/rec-models/conditions>`.
30+
31+
Each reconciliation model is configured with :ref:`matching conditions
32+
<accounting/rec-models/conditions>` to identify the relevant bank transactions and :ref:`Counterpart
33+
Items <accounting/rec-models/counterpart>` to be generated during reconciliation.
3934

40-
In Odoo, different models are available by default depending on the company's fiscal localization.
41-
These can be updated if needed. Users can also create their own reconciliation models by clicking
42-
:guilabel:`New`.
35+
.. tip::
36+
To create an activity on the transaction, select which type of activity to create in the
37+
:guilabel:`Next Activity` field.
4338

4439
.. important::
4540
If a record matches with several reconciliation models, the first one in the *sequence* of models
46-
is applied. You can rearrange the order by dragging and dropping the handle next to the name.
41+
is applied. Rearrange the order by dragging and dropping the handle next to the name.
4742

4843
.. image:: reconciliation_models/list-view.png
4944
:alt: Rearrange the sequence of models in the list view.
5045

51-
Invoices/Bills perfect match
52-
----------------------------
46+
.. _accounting/rec-models/conditions:
47+
48+
Matching conditions
49+
-------------------
50+
51+
A reconciliation model's matching conditions determine to which transactions it applies.
52+
53+
The following fields can be used to restrict the reconciliation model's availability to transactions
54+
that meet the conditions:
55+
56+
- :guilabel:`Journals`
57+
- :guilabel:`Partners`
58+
- :guilabel:`Amount`: Select :guilabel:`Is lower than or equal to`, :guilabel:`Is greater than or
59+
equal to`, or :guilabel:`Is between` and enter the amount(s).
60+
- :guilabel:`Label`: Select :guilabel:`Contains`, :guilabel:`Not Contains`, or :guilabel:`Match
61+
Regex` and enter the transaction label's matching condition.
62+
63+
.. tip::
64+
`Regular expressions <https://regexone.com/>`_, often abbreviated as **regex**, can be used in
65+
Odoo in various ways to search, validate, and manipulate data. Regex can be powerful but also
66+
complex, so it's essential to use it judiciously.
67+
68+
To use regular expressions in a reconciliation model, set the :guilabel:`Label` to
69+
:guilabel:`Match Regex` and add an expression. Odoo automatically retrieves the transactions
70+
that match the regex expression and the conditions specified in the reconciliation model.
5371

54-
This model should be at the top of the *sequence* of models, as it enables Odoo to suggest matching
55-
existing invoices or bills with a bank transaction based on set conditions.
72+
.. note::
73+
A transaction must meet all conditions for the reconciliation model to be available for it. If no
74+
condition is defined (i.e., if all fields are left blank), the reconciliation model will be
75+
available for all transactions.
5676

57-
.. image:: reconciliation_models/invoices-bills-perfect-match.png
58-
:alt: Set rules to trigger the reconciliation.
77+
.. _accounting/rec-models/counterpart:
5978

60-
Odoo automatically reconciles the payment when the :guilabel:`Auto-validate` option is selected, and
61-
the model conditions are perfectly met. In this case, it expects to find on the bank statement's
62-
line the invoice/payment's reference (as :guilabel:`Label` is selected) and the partner's name
63-
(as :guilabel:`Partner is set` is selected) to suggest the correct counterpart entry and reconcile
64-
the payment automatically.
79+
Counterpart items
80+
-----------------
6581

66-
Invoices/Bills partial match if underpaid
67-
-----------------------------------------
82+
Each line in the :guilabel:`Counterpart items` tab creates a journal item with the specified
83+
details:
6884

69-
This model suggests a customer invoice or vendor bill that partially matches the payment when the
70-
amount received is slightly lower than the invoice amount, for example in the case of
71-
**cash discounts**. The difference is reconciled with the account indicated in the
72-
:guilabel:`counterpart entries` tab.
85+
- :guilabel:`Partner`: Select the partner, if any, to set on the journal item.
86+
- :guilabel:`Account`: Select the account, if any, to set on the journal item.
87+
- :guilabel:`Amount Type`: Select how the amount of the journal item should be calculated:
7388

74-
The reconciliation model :guilabel:`Type` is :guilabel:`Rule to match invoices/bills`, and the
75-
:guilabel:`Payment tolerance` should be set.
89+
- :guilabel:`Fixed`: Use a fixed amount.
90+
- :guilabel:`Percentage of balance`: Use a percentage of the remaining balance of the
91+
transaction, regardless of the transaction total.
92+
- :guilabel:`Percentage of statement line`: Use a percentage of the transaction total, regardless
93+
of the remaining balance of the transaction.
94+
- :guilabel:`From label`: Use a percentage from the transaction's label using regex.
7695

77-
.. image:: reconciliation_models/partial-match.png
78-
:alt: Set rules to trigger the reconciliation.
96+
- :guilabel:`Amount`: Enter the amount to be used on the journal item. This field will be either a
97+
fixed amount, percentage amount, or regex depending on the :guilabel:`Account Type`.
98+
- :guilabel:`Taxes`: Select a tax, if any, to set on the journal item. This field is hidden behind
99+
the :icon:`oi-settings-adjust` :guilabel:`(settings adjust)` icon by default.
100+
- :guilabel:`Analytic`: Select an analytic distribution, if any, to set on the journal item.
101+
- :guilabel:`Label`: Enter a label, if any, to set on the journal item.
79102

80103
.. note::
81-
The :guilabel:`Payment tolerance` is only applicable to lower payments. It is disregarded when an
82-
overpayment is received.
104+
- While neither the :guilabel:`Partner` nor :guilabel:`Account` fields are mandatory, at least
105+
one of the two must be set for the reconciliation model to work correctly.
106+
- The reconciliation model can be used for :ref:`partner mapping <accounting/rec-models/partner>`
107+
if the :guilabel:`Counterpart Items` include a :guilabel:`Partner` but no :guilabel:`Account`.
108+
109+
.. _accounting/rec-models/defaults:
110+
111+
Default reconciliation models
112+
=============================
113+
114+
In Odoo, different models are available by default depending on the company's :doc:`fiscal
115+
localization <../../fiscal_localizations>`. These can be updated if needed. The following
116+
reconciliation models exist across most fiscal localizations.
117+
118+
Internal Transfers
119+
------------------
120+
121+
The :guilabel:`Internal Transfers` reconciliation model is used for making :doc:`internal transfers
122+
<internal_transfers>` from one bank or cash account to another by moving the entire transaction's
123+
balance to a liquidity or internal transfer account. To fully transfer the amount from one account
124+
to another, this reconciliation model must be used on both the incoming journal's transaction and
125+
the outgoing journal's transaction.
83126

84127
.. seealso::
85-
:doc:`../customer_invoices/cash_discounts`
128+
:doc:`internal_transfers`
86129

87-
Line with bank fees
88-
-------------------
130+
Bank Fees
131+
---------
89132

90-
This model suggests a counterpart entry according to the rules set in the model. In this case, the
91-
reconciliation model :guilabel:`Type` is :guilabel:`Rule to suggest counterpart entry`, and the
92-
:guilabel:`Label` can be used for example, to identify the information referring to the
93-
:guilabel:`Bank fees` in the label of the transaction.
133+
The :guilabel:`Bank Fees` reconciliation model generates a counterpart item that moves the remaining
134+
balance of a transaction to a bank fees account (that varies by :doc:`fiscal localization
135+
<../../fiscal_localizations>`) and includes "Bank Fees" in the :guilabel:`Label` of the new item
136+
that it creates. This reconciliation model is only applicable to transactions whose label contains
137+
"Bank Fees" due to its :ref:`matching conditions <accounting/rec-models/conditions>`.
94138

95-
.. image:: reconciliation_models/bank-fees.png
96-
:alt: Set rules to trigger the reconciliation.
139+
.. example::
140+
An outgoing bank transaction for $103 is partially matched with a vendor bill for $100, leaving
141+
$3 of the transaction still unreconciled. Use the :guilabel:`Bank Fees` reconciliation model to
142+
create a new counterpart item for $3 and reconcile it with the remaining $3 of the bank
143+
transaction.
97144

98-
.. note::
99-
`Regular expressions <https://regexone.com/>`_, often abbreviated as **Regex**, can be used in
100-
Odoo in various ways to search, validate, and manipulate data within the system. Regex can be
101-
powerful but also complex, so it's essential to use it judiciously and with a good understanding
102-
of the patterns you're working with.
145+
Cash Discount
146+
-------------
103147

104-
To use regular expressions in your reconciliation models, set the :guilabel:`Transaction Type`
105-
to :guilabel:`Match Regex` and add your expression. Odoo automatically retrieves the
106-
transactions that match your Regex expression and the conditions specified in your model.
148+
The :guilabel:`Cash Discount` reconciliation model generates a counterpart item that moves the
149+
remaining balance of a transaction to a cash discount account (that varies by :doc:`fiscal
150+
localization <../../fiscal_localizations>`) and includes "Cash Discount" in the :guilabel:`Label` of
151+
the new item that it creates.
107152

108-
.. image:: reconciliation_models/regex.png
109-
:alt: Using Regex in Odoo
153+
.. seealso::
154+
:doc:`../customer_invoices/cash_discounts`
155+
156+
.. _accounting/rec-models/partner:
110157

111158
Partner mapping
112159
===============
@@ -117,8 +164,8 @@ reconciliation. For example, you can create a partner mapping rule for incoming
117164
specific reference numbers or keywords in the transaction description. When an incoming payment
118165
meets these criteria, Odoo automatically maps it to the corresponding customer's account.
119166

120-
To create a partner mapping rule, go to the :guilabel:`Partner Mapping` tab and enter the
121-
:guilabel:`Find Text in Label`, :guilabel:`Find Text in Notes`, and :guilabel:`Partner`.
122-
123-
.. image:: reconciliation_models/partner-mapping.png
124-
:alt: defining partner mapping
167+
To create a partner mapping rule, configure any :ref:`matching conditions
168+
<accounting/rec-models/conditions>`, such as a specific transaction label, and then configure the
169+
:guilabel:`Partner` and any other relevant fields in the :ref:`Counterpart Items
170+
<accounting/rec-models/counterpart>` tab. Setting an :guilabel:`Account` is not mandatory for
171+
partner mapping.
Binary file not shown.
-561 Bytes
Loading

0 commit comments

Comments
 (0)