odoo/enterprise#80787

Created by Accounting, Maximilien La Barre (malb)
Merged at 2335c953723dce66af8811fdfbfd5b811d42b109

Statuses:

Linked pull requests
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>

task-4603207