Repository
OCA/bank-payment-alternative · module folder · Try on Runboat
Module version
1.0.0
Category
Banking addons
Folder size
1.03 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/bank-payment-alternative
Last tracking update
2026-08-07 09:06:26
Authors
Akretion, Odoo Community Association (OCA), Tecnativa, Compassion CH, Therp B.V.
Maintainers
Akretion, Odoo Community Association (OCA), Tecnativa, Compassion CH, Therp B.V.
Committers
Alexis de Lattre, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
account_payment_mandate_sale, account_payment_sepa_direct_debit
Description
This module adds a generic model for banking mandates. These mandates
can be specialized to fit any banking mandates (such as sepa or lsv).

A banking mandate is attached to a bank account and represents an
authorization that the bank account owner gives to a company for a
specific operation (such as direct debit). You can setup mandates from
the accounting menu or directly from a bank account.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
account_payment_line_form account_payment_mandate.account.payment.line.form account.payment.line form Inherits account_payment_batch_oca.account_payment_line_form
account_payment_line_tree account_payment_mandate.account.payment.line.list account.payment.line list Inherits account_payment_batch_oca.account_payment_line_tree
account_payment_method_form account_payment_mandate.account.payment.method.form account.payment.method form Inherits account_payment_base_oca.account_payment_method_form
account_payment_order_form account.payment.order form Inherits account_payment_batch_oca.account_payment_order_form
mandate_partner_bank_form mandate.res.partner.bank.form res.partner.bank form Inherits base.view_partner_bank_form
mandate_partner_bank_tree mandate.res.partner.bank.list res.partner.bank list Inherits base.view_partner_bank_tree
view_mandate_form view.mandate.form account.banking.mandate form New
view_mandate_search view.mandate.search account.banking.mandate search New
view_mandate_tree view.mandate.list account.banking.mandate list New
view_move_form add.mandate.on.account.move.form account.move form Inherits account_payment_base_oca.view_move_form
view_partner_property_form mandate.res.partner.form res.partner form Inherits account.view_partner_property_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (12)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • format Selection
    default='basic' required=True string='Mandate Format' tracking=20 args: [('basic', 'Basic Mandate')]
  • last_debit_date Date
    readonly=True string='Date of the Last Debit'
  • partner_bank_id Many2one → res.partner.bank
    check_company=True comodel_name='res.partner.bank' compute='_compute_partner_bank_id' domain="[('partner_id', '=', partner_id)]" index='btree' ondelete='restrict' precompute=True readonly=False store=True string='Bank Account' tracking=40
  • partner_id Many2one → res.partner
    comodel_name='res.partner' index='btree' ondelete='restrict' required=True string='Partner' tracking=35
  • payment_line_ids One2many → account.payment.line
    comodel_name='account.payment.line' inverse_name='mandate_id' string='Related Payment Lines'
  • payment_line_ids_count Integer
    compute='_compute_payment_line_ids_count'
  • scan Binary
    string='Scan of the Mandate'
  • signature_date Date
    string='Date of Signature' tracking=50
  • state Selection
    default='draft' help='Only valid mandates can be used in a payment line. A cancelled mandate is a mandate that has been cancelled by the customer.' string='Status' tracking=60 args: [('draft', 'Draft'), ('valid', 'Valid'), ('final', 'Final Debit'), ('expired', 'Expired'), ('cancel', 'Cancelled')]
  • type Selection
    default='recurrent' required=True string='Type of Mandate' tracking=30 args: [('recurrent', 'Recurrent'), ('oneoff', 'Single Use')]
  • unique_mandate_reference Char
    copy=False default=<expr> tracking=10
Public methods (7)
  • back2draft(self)
    Allows to set the mandate back to the draft state. This is for mandates cancelled by mistake.
  • cancel(self)
  • create(self, vals_list)
    @api.model_create_multi
  • final2valid(self)
    Should never happen. Only for user mistakes.
  • show_payment_lines(self)
  • valid2final(self)
  • validate(self)

New fields (2)
  • mandate_id Many2one → account.banking.mandate
    check_company=True compute='_compute_mandate_id' domain="[('partner_id', '=', commercial_partner_id), ('state', 'in', ('valid', 'final')), ('company_id', '=', company_id)]" ondelete='restrict' readonly=False store=True string='Direct Debit Mandate' args: 'account.banking.mandate'
  • mandate_required Boolean
    related='preferred_payment_method_line_id.payment_method_id.mandate_required'
Public methods (0)

No public methods.

New fields (2)
  • mandate_id Many2one → account.banking.mandate
    check_company=True comodel_name='account.banking.mandate' compute='_compute_mandate_id' domain="[('state', 'in', ('valid', 'final')), ('partner_id', '=', partner_id), ('company_id', '=', company_id)]" precompute=True readonly=False store=True string='Direct Debit Mandate'
  • mandate_required Boolean
    related='order_id.payment_method_id.mandate_required'
Public methods (0)

No public methods.

New fields (1)
  • mandate_required Boolean
    help='Activate this option if this payment method requires your customer to sign a direct debit mandate with your company.'
Public methods (0)

No public methods.

New fields (1)
  • mandate_required Boolean
    related='payment_method_id.mandate_required'
Public methods (0)

No public methods.

New fields (2)
  • mandate_count Integer
    compute='_compute_mandate_count' readonly=True string='Number of Mandates'
  • valid_mandate_id Many2one → account.banking.mandate
    comodel_name='account.banking.mandate' compute='_compute_valid_mandate_id' string='First Valid Mandate'
Public methods (0)

No public methods.

New fields (1)
  • mandate_ids One2many → account.banking.mandate
    comodel_name='account.banking.mandate' help='Banking mandates represent an authorization that the bank account owner gives to a company for a specific operation.' inverse_name='partner_bank_id' string='Direct Debit Mandates'
Public methods (0)

No public methods.

Loading…