| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/bank-payment-alternative |
| GIT | |
| GIT | https://github.com/OCA/bank-payment-alternative.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/bank-payment-alternative/tree/19.0/account_payment_base_oca |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/bank-payment-alternative |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-payment: - account_payment_method_base odoo/odoo: - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This is the new base module for the OCA project **bank-payment-alternative**. As the name suggests, the OCA project **bank-payment-alternative** is an alternative to the OCA project **bank-payment**. The project **bank-payment-alternative** uses the native payment method object of Odoo (model *account.payment.method.line*) which has been introduced in Odoo v15 and is used on partners and invoices since Odoo v18. This module adds support for variable link between bank/cash journal and payment method. A typical use case is for a company that has several bank accounts and wants to have an outbound payment method *Wire transfer to suppliers* which is not linked to a specific bank account and decide which bank account will be debited when confirming the payment order. This module also adds support for the display of partially scrambled bank account numbers. This is useful for some inbound payment methods where the company debits the bank account of its customers and the company wants to show on its customer invoices the bank account number that will be debited without printing the full bank account number, but print it partially scrambled. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_report_view_tree |
account.invoice.report | field | Inherits account.account_invoice_report_view_tree | |
account_payment_method_form |
account.payment.method | group | Inherits account_payment_method_base.account_payment_method_form | |
account_payment_method_line_form |
account.payment.method.line.form | account.payment.method.line | form | New |
account_payment_method_line_search |
account.payment.method.line.search | account.payment.method.line | search | New |
account_payment_method_list |
account.payment.method | list | Inherits account_payment_method_base.account_payment_method_list | |
view_account_invoice_report_search |
account.invoice.report | field | Inherits account.view_account_invoice_report_search | |
view_account_payment_method_line_tree |
account.payment.method.line | xpath | Inherits account.view_account_payment_method_line_tree | |
view_invoice_tree |
account_payment_partner.view_invoice_tree | account.move | field | Inherits account.view_invoice_tree |
view_move_form |
account.move | field | Inherits account.view_move_form |
payment_method_line_id
Many2one → account.payment.method.line
readonly=True
string='Payment Method'
args: 'account.payment.method.line'
No public methods.
bank_account_required
Boolean
related='preferred_payment_method_line_id.payment_method_id.bank_account_required'
payment_method_code
Char
related='preferred_payment_method_line_id.payment_method_id.code'
store=True
No public methods.
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.'
No public methods.
active
Boolean
default=True
bank_account_link
Selection
default='fixed'
help="For payment methods 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 methods 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
compute='_compute_company_id'
precompute=True
readonly=False
related=False
required=True
store=True
args: 'res.company'
filter_journal_ids
Many2many → account.journal
compute='_compute_filter_journal_ids'
args: 'account.journal'
journal_id
Many2one
domain="[('id', 'in', filter_journal_ids)]"
name
Char
translate=True
payment_account_id
Many2one
string='Outstanding Payment/Receipt Account'
payment_method_id
Many2one
string='Technical Payment Method'
refund_payment_method_line_id
Many2one → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
domain="[('payment_type', '!=', payment_type)]"
help='This payment method will be used when doing refunds coming from the current payment method.'
string='Payment Method for Refunds'
report_description
Html
translate=True
selectable
Boolean
string='Selectable on Partners/Invoices'
show_bank_account
Selection
default='full'
help='On invoice report, show partial or full bank account number.'
selection=[('full', 'Full'), ('first', 'First n chars'), ('last', 'Last n chars'), ('first_last', 'First n chars and Last n chars'), ('no', 'No')]
string='Show Customer Bank Account'
show_bank_account_chars
Integer
default=4
string='# of Digits to Show for Customer Bank Account'
variable_journal_ids
Many2many → account.journal
check_company=True
column1='method_line_id'
column2='journal_id'
comodel_name='account.journal'
compute='_compute_variable_journal_ids'
domain="[('id', 'in', filter_journal_ids)]"
precompute=True
readonly=False
relation='account_payment_method_line_variable_journal_rel'
store=True
string='Allowed Bank Journals'
write(self, vals)
No new fields.
Public methods (0)No public methods.
property_inbound_payment_method_line_id
Many2one
domain=<expr>
property_outbound_payment_method_line_id
Many2one
domain=<expr>
No public methods.
acc_number_scrambled
Char
compute='_compute_acc_number_scrambled'
get_acc_number(self, show_policy, show_chars=4)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/bank-payment-alternative |
| GIT | |
| GIT | https://github.com/OCA/bank-payment-alternative.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/bank-payment-alternative/tree/18.0/account_payment_base_oca |
| VERSION | |
| VERSION | 1.7.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Jacques-Etienne Baudoux, Florian da Costa, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/bank-payment-alternative |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-payment: - account_payment_method_base odoo/odoo: - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This is the new base module for the OCA project **bank-payment-alternative**. As the name suggests, the OCA project **bank-payment-alternative** is an alternative to the OCA project **bank-payment**. The project **bank-payment-alternative** uses the native payment method object of Odoo (model *account.payment.method.line*) which has been introduced in Odoo v15 and is used on partners and invoices since Odoo v18. This module adds support for variable link between bank/cash journal and payment method. A typical use case is for a company that has several bank accounts and wants to have an outbound payment method *Wire transfer to suppliers* which is not linked to a specific bank account and decide which bank account will be debited when confirming the payment order. This module also adds support for the display of partially scrambled bank account numbers. This is useful for some inbound payment methods where the company debits the bank account of its customers and the company wants to show on its customer invoices the bank account number that will be debited without printing the full bank account number, but print it partially scrambled. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_report_view_tree |
account.invoice.report | field | Inherits account.account_invoice_report_view_tree | |
account_payment_method_form |
account.payment.method | group | Inherits account_payment_method_base.account_payment_method_form | |
account_payment_method_line_form |
account.payment.method.line.form | account.payment.method.line | form | New |
account_payment_method_line_search |
account.payment.method.line.search | account.payment.method.line | search | New |
account_payment_method_list |
account.payment.method | list | Inherits account_payment_method_base.account_payment_method_list | |
view_account_invoice_report_search |
account.invoice.report | field | Inherits account.view_account_invoice_report_search | |
view_account_payment_method_line_tree |
account.payment.method.line | xpath | Inherits account.view_account_payment_method_line_tree | |
view_invoice_tree |
account_payment_partner.view_invoice_tree | account.move | field | Inherits account.view_invoice_tree |
view_move_form |
account.move | field | Inherits account.view_move_form |
payment_method_line_id
Many2one → account.payment.method.line
readonly=True
string='Payment Method'
args: 'account.payment.method.line'
No public methods.
bank_account_required
Boolean
related='preferred_payment_method_line_id.payment_method_id.bank_account_required'
payment_method_code
Char
related='preferred_payment_method_line_id.payment_method_id.code'
store=True
No public methods.
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.'
No public methods.
active
Boolean
default=True
bank_account_link
Selection
default='fixed'
help="For payment methods 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 methods 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
compute='_compute_company_id'
precompute=True
readonly=False
related=False
required=True
store=True
args: 'res.company'
filter_journal_ids
Many2many → account.journal
compute='_compute_filter_journal_ids'
args: 'account.journal'
journal_id
Many2one
domain="[('id', 'in', filter_journal_ids)]"
name
Char
translate=True
payment_account_id
Many2one
string='Outstanding Payment/Receipt Account'
payment_method_id
Many2one
string='Technical Payment Method'
refund_payment_method_line_id
Many2one → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
domain="[('payment_type', '!=', payment_type)]"
help='This payment method will be used when doing refunds coming from the current payment method.'
string='Payment Method for Refunds'
report_description
Html
translate=True
selectable
Boolean
string='Selectable on Partners/Invoices'
show_bank_account
Selection
default='full'
help='On invoice report, show partial or full bank account number.'
selection=[('full', 'Full'), ('first', 'First n chars'), ('last', 'Last n chars'), ('first_last', 'First n chars and Last n chars'), ('no', 'No')]
string='Show Customer Bank Account'
show_bank_account_chars
Integer
default=4
string='# of Digits to Show for Customer Bank Account'
variable_journal_ids
Many2many → account.journal
check_company=True
column1='method_line_id'
column2='journal_id'
comodel_name='account.journal'
compute='_compute_variable_journal_ids'
domain="[('id', 'in', filter_journal_ids)]"
precompute=True
readonly=False
relation='account_payment_method_line_variable_journal_rel'
store=True
string='Allowed Bank Journals'
write(self, vals)
No new fields.
Public methods (0)No public methods.
property_inbound_payment_method_line_id
Many2one
domain=<expr>
property_outbound_payment_method_line_id
Many2one
domain=<expr>
No public methods.
acc_number_scrambled
Char
compute='_compute_acc_number_scrambled'
get_acc_number(self, show_policy, show_chars=4)