odoo/enterprise#80787
Created by Accounting, Maximilien La Barre (malb)
Statuses:
- legal/cla: Contributor License Agreement check
- ci/runbot: Odoo Test Suite
- ci/upgrade_enterprise: Test upgrades for enterprise master
- ci/style: Optional style check. Ignore it only if strictly necessary.
- ci/security: Required security check. Can only be ignored by security team.
- ci/l10n: (runtime 3s)
- label
- odoo-dev:master-revamp-bank-rec-widget-malb
- head
- 04a304d58a56c7d2eeb70429340eb048fa9f2be6
- merged
- 6 months ago by Accounting, Quentin De Paoli (qdp)
| odoo/odoo | odoo/enterprise | odoo/upgrade | |
|---|---|---|---|
| master | #203327 | #80787 | #7508 |
[IMP] account, account_accountant: new bank reconciliation widget
This commit introduces a revamped kanban view to process the bank statement
lines and reconcile them with existing invoices/bills, or help the users to
create the correct journal entry.
RATIONALE:
The previous reconciliation widget was not really user friendly, and was bloated
with a lot of advance features for niche use cases.
IMPLEMENTATION DETAILS:
* account.reconcile.model
- rule_type: writeoff_suggestion and invoice_matching entirely removed. Those
features are now directly hardcoded, users can't modify the sequence or
tweak the invoice matching algorithm anymore. We belief this was way too
advance and that people modifying the existing rules (and default behaviour)
would more likely break something rather than help the processing of their
statement lines
- partner mapping: although it's not possible anymore to do it on the partner
categories, it's still possible to define a partner mapping by creating an
account.reconcile.model with match_label & match_label_param, and a single
counter part item with the partner_id set and no account_id
- deleted fields: rule_type, matching_order, match_note, match_note_param,
match_transaction_details, match_transaction_details_param,
match_text_location_label, match_text_location_note,
match_text_location_reference, match_same_currency,
match_partner_category_ids, match_partner, past_months_limit,
decimal_separator, show_decimal_separator, partner_mapping_line_ids
(+class), allow_payment_tolerance, payment_tolerance_type,
payment_tolerance_param, counterpart _type, journal_id, number_entries
- field auto_reconcile changed name & type (was boolean): it's replaced with
the selection field 'trigger'
- to_check boolean: would now be implemented with next_activity_type that you
can set on the account.reconcile.model
- account.bank.statement.line
- Revamp of the whole javascript with a clear subdivision into
multiple components. We used a Kanban view that we completely override for
our needs which are that each kanban record will display the information of
a bank statement line (belonging to a journal) that we can unfold to show
more information. When unfolding the bank statement line the user will have
access to different buttons allowing him to directly modify the move behind
the bank statement line (adding new line, delete some, editing them, ...) - The old bank rec widget was using two python file bank.rec.widget and
bank.rec.widget.line that were temporary models to display a representation
of the move before being validated and once it was validated the move was
changed. Those two classes were removed.
We now change directly the move because we want an auto validation. It means
that everytime a new line is added a reconciliation process is done. - To link the move line of the bank statement line with the move line chosen
in the reconcile search view and also to trigger the reconciliation
process, we used a manyToMany field compute non stored with an inverse.
Everytime the field is written on, the reconciliation plan will be
triggered. It allows to have a link between reconciled entries without the
need of a stored field since we benefit from the partial reconcile table. - Delete: bank.rec.widget, bank.rec.widget.line, views linked to
bank_rec_widget that are not used anymore
Co-authored by: malb <malb@odoo.com>
Co-authored-by: flg <flg@odoo.com>
Co-authored by: qdp <qdp@odoo.com>