Repository
OCA/bank-payment · module folder · Try on Runboat
Module version
1.1.0
Category
Banking addons
Folder size
0.59 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/bank-payment
Last tracking update
2026-08-07 09:06:34
Authors
Akretion, Odoo Community Association (OCA), Tecnativa
Maintainers
Akretion, Odoo Community Association (OCA), Tecnativa
Committers
Pedro M. Baeza, Enric Tobella, Miquel Raïch, Weblate, Ruchir Shukla, OCA-git-bot, oca-ci, JasminSForgeFlow
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
account_due_list_payment_mode, account_payment_order, account_payment_purchase, account_payment_sale, contract_payment_mode, l10n_es_facturae
Description
This module adds a new object *account.payment.mode*, that is used to
better classify and route incoming/outgoing payment orders with the
banks.
This module adds several fields:

- the *Supplier Payment Mode* and *Customer Payment Mode* on Partners,
- the *Payment Mode* on Invoices.
- the *Show bank account* on Payment Mode.
- the *\# of digits for customer bank account* on Payment Mode.
- the *Bank account from journals* on Payment Mode.
- the *Payment mode* on Invoices Analysis.

On a Payment Order, in the wizard *Select Invoices to Pay*, the invoices
will be filtered per Payment Mode.

Allows to print in the invoice to which account number the payment (via
SEPA direct debit) is going to be charged so the customer knows that
information, but there are some customers that don't want that everyone
looking at the invoice sees the full account number (and even GDPR can
say a word about that), so that's the reason behind the several options.

Code Analysis

Views touched (16)
XML IDNameModelTypeStatus
account_payment_method_form account_payment_method.form account.payment.method form New
account_payment_method_search account_payment_method.search account.payment.method search New
account_payment_method_tree account_payment_method.list account.payment.method list New
account_payment_mode_form account.payment.mode.form account.payment.mode form New
account_payment_mode_search account.payment.mode.search account.payment.mode search New
account_payment_mode_tree account.payment.mode.list account.payment.mode list New
report_invoice_payment_mode report_invoice_payment_mode ir.ui.view qweb Inherits account.report_invoice_document
res_config_settings_view_form res.config.settings.account.payment.mode res.config.settings form Inherits account.res_config_settings_view_form
view_account_invoice_filter account_payment_partner.account_invoice_search account.move search Inherits account.view_account_invoice_filter
view_account_invoice_report_search account.invoice.report.search account.invoice.report search Inherits account.view_account_invoice_report_search
view_account_journal_form usability.account_journal.form account.journal form Inherits account.view_account_journal_form
view_invoice_tree account_payment_partner.view_invoice_tree account.move tree Inherits account.view_invoice_tree
view_move_form account_payment_partner.view_move_form account.move form Inherits account.view_move_form
view_move_line_form account_payment_partner.move_line_form account.move.line form Inherits account.view_move_line_form
view_move_line_tree account.move.line.tree - Add payment mode account.move.line tree Inherits account.view_move_line_tree
view_partner_property_form account_partner_payment.partner_form res.partner form Inherits account.view_partner_property_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (9)

New fields (1)
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' readonly=True string='Payment mode'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • company_id_account_payment_mode_constrains(self)
    @api.constrains('company_id')

New fields (5)
  • bank_account_required Boolean
    readonly=True related='payment_mode_id.payment_method_id.bank_account_required'
  • has_reconciled_items Boolean
    compute='_compute_has_reconciled_items' help='Technical field for supporting the editability of the payment mode'
  • partner_bank_filter_type_domain Many2one → res.partner
    comodel_name='res.partner' compute='_compute_partner_bank_filter_type_domain'
  • payment_mode_filter_type_domain Char
    compute='_compute_payment_mode_filter_type_domain'
  • payment_mode_id Many2one → account.payment.mode
    check_company=True comodel_name='account.payment.mode' compute='_compute_payment_mode_id' ondelete='restrict' precompute=True readonly=False store=True tracking=True
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • partner_banks_to_show(self)

New fields (1)
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' compute='_compute_payment_mode' index=True ondelete='restrict' readonly=False store=True
Public methods (1)
  • write(self, vals)
    Propagate up to the move the payment mode if applies.

New fields (4)
  • active Boolean
    default=True
  • bank_account_required Boolean
    help='Activate this option if this payment method requires you to know the bank account number of your customer or supplier.'
  • code Char
    help='This code is used in the code of the Odoo module that handles this payment method. Therefore, if you change it, the generation of the payment file may fail.' string='Code (Do Not Modify)'
  • payment_mode_ids One2many → account.payment.mode
    comodel_name='account.payment.mode' inverse_name='payment_method_id' string='Payment modes'
Public methods (0)

No public methods.

New fields (15)
  • active Boolean
    default=True
  • bank_account_link Selection
    help="For payment modes that are always attached to the same bank account of your company (such as wire transfer from customers or SEPA direct debit from suppliers), select 'Fixed'. For payment modes that are not always attached to the same bank account (such as SEPA Direct debit for customers, wire transfer to suppliers), you should select 'Variable', which means that you will select the bank account on the payment order. If your company only has one bank account, you should always select 'Fixed'." required=True string='Link to Bank Account' args: [('fixed', 'Fixed'), ('variable', 'Variable')]
  • company_id Many2one → res.company
    default=<expr> ondelete='restrict' required=True string='Company' args: 'res.company'
  • fixed_journal_id Many2one → account.journal
    check_company=True domain="[('company_id', '=', company_id), ('type', 'in', ('bank', 'cash'))]" ondelete='restrict' string='Fixed Bank Journal' args: 'account.journal'
  • name Char
    required=True translate=True
  • note Html
    translate=True
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True
  • payment_method_id Many2one → account.payment.method
    ondelete='restrict' required=True string='Payment Method' args: 'account.payment.method'
  • payment_type Selection
    readonly=True related='payment_method_id.payment_type' store=True
  • refund_payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' domain="[('payment_type', '!=', payment_type)]" help='This payment mode will be used when doing refunds coming from the current payment mode.' string='Payment mode for refunds'
  • sequence Integer
    default=10
  • show_bank_account Selection
    default='full' help='Show in invoices partial or full bank account number' selection=[('full', 'Full'), ('first', 'First n chars'), ('last', 'Last n chars'), ('no', 'No')]
  • show_bank_account_chars Integer
    string='# of digits for customer bank account'
  • show_bank_account_from_journal Boolean
    string='Bank account from journals'
  • variable_journal_ids Many2many → account.journal
    column1='payment_mode_id' column2='journal_id' comodel_name='account.journal' domain="[('company_id', '=', company_id), ('type', 'in', ('bank', 'cash'))]" relation='account_payment_mode_variable_journal_rel' string='Allowed Bank Journals'
Public methods (4)
  • account_invoice_company_constrains(self)
    @api.constrains('company_id')
  • account_move_line_company_constrains(self)
    @api.constrains('company_id')
  • bank_account_link_constrains(self)
    @api.constrains('bank_account_link', 'fixed_journal_id', 'payment_method_id')
  • company_id_variable_journal_ids_constrains(self)
    @api.constrains('company_id', 'variable_journal_ids')

New fields (1)
  • keep_partner_bank_without_payment_mode Boolean
    default=False help='When enabled, invoices without a payment mode will keep the bank account auto-selected by Odoo. When disabled, the bank account will be cleared if no payment mode is set.' string='Keep Bank Account Without Payment Mode'
Public methods (0)

No public methods.

New fields (1)
  • keep_partner_bank_without_payment_mode Boolean
    readonly=False related='company_id.keep_partner_bank_without_payment_mode'
Public methods (0)

No public methods.

New fields (2)
  • customer_payment_mode_id Many2one → account.payment.mode
    check_company=True comodel_name='account.payment.mode' company_dependent=True domain="[('payment_type', '=', 'inbound'),('company_id', '=', current_company_id)]" help='Select the default payment mode for this customer.'
  • supplier_payment_mode_id Many2one → account.payment.mode
    check_company=True comodel_name='account.payment.mode' company_dependent=True domain="[('payment_type', '=', 'outbound'),('company_id', '=', current_company_id)]" help='Select the default payment mode for this supplier.'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…