Repository
OCA/bank-payment · module folder · Try on Runboat
Module version
1.0.5
Category
Banking addons
Folder size
2.28 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, ACSONE SA/NV, Odoo Community Association (OCA), Therp BV, Tecnativa
Maintainers
Akretion, ACSONE SA/NV, Odoo Community Association (OCA), Therp BV, Tecnativa
Committers
Pedro M. Baeza, Carlos Lopez, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Julien Guenat, AlexGarS73
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
account_banking_mandate, account_banking_pain_base, account_payment_order_grouped_output, account_payment_order_notification, account_payment_return_import_iso20022, l10n_es_payment_order_confirming_aef
Description
This module adds support for payment orders and debit orders.

Code Analysis

Views touched (24)
XML IDNameModelTypeStatus
account_invoice_payment_line_multi_form account_invoice_payment_line_multi.form account.invoice.payment.line.multi form New
account_payment_line_create_form account_payment_line_create.form account.payment.line.create form New
account_payment_line_form account.payment.line.form account.payment.line form New
account_payment_line_form_readonly account.payment.line.form.readonly account.payment.line form Inherits account_payment_order.account_payment_line_form
account_payment_line_tree account.payment.line.tree account.payment.line list New
account_payment_method_form_view account.payment.method.form (in account_payment_order) account.payment.method form Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode form Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode search Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode tree Inherits account_payment_mode.account_payment_mode_tree
account_payment_order_form account.payment.order.form account.payment.order form New
account_payment_order_graph account.payment.order.graph account.payment.order graph New
account_payment_order_pivot account.payment.order.pivot account.payment.order pivot New
account_payment_order_search account.payment.order.search account.payment.order search New
account_payment_order_tree account.payment.order.tree account.payment.order list New
account_payment_update_view_form Update Payment Communication account.payment.update form New
print_account_payment_order_document print_account_payment_order_document ir.ui.view qweb New
print_account_payment_order_main print_account_payment_order_main ir.ui.view qweb New
view_account_payment_form account.payment.form account.payment form Inherits account.view_account_payment_form
view_account_payment_tree_payment_order account.payment.tree account.payment tree Inherits account.view_account_payment_tree
view_attachment_simplified_form ir.attachment.simplified.form ir.attachment form New
view_invoice_tree account_payment_order.view_invoice_tree account.move tree Inherits account.view_invoice_tree
view_move_form account_payment_order.view_move_form account.move form Inherits account_payment_mode.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line form Inherits account_payment_mode.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line tree Inherits account.view_move_line_tree
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (12)

New fields (0)

No new fields.

Public methods (1)
  • run(self)

New fields (4)
  • payment_line_count Integer
    compute='_compute_payment_line_count'
  • payment_order_id Many2one → account.payment.order
    check_company=True comodel_name='account.payment.order' copy=False readonly=True string='Payment Order'
  • payment_order_ok Boolean
    compute='_compute_payment_order_ok'
  • reference_type Selection
    default='none' readonly=True selection=[('none', 'Free Reference'), ('structured', 'Structured Reference')]
Public methods (3)
  • action_payment_lines(self)
  • create_account_payment_line(self)
  • get_account_payment_domain(self, payment_mode)

New fields (2)
  • partner_bank_id Many2one → res.partner.bank
    check_company=True comodel_name='res.partner.bank' compute='_compute_partner_bank_id' help='Bank account on which we should pay the supplier' readonly=False store=True string='Partner Bank Account'
  • payment_line_ids One2many → account.payment.line
    check_company=True comodel_name='account.payment.line' inverse_name='move_line_id' string='Payment lines'
Public methods (1)
  • create_payment_line_from_move_line(self, payment_order)

New fields (4)
  • order_state Selection
    related='payment_order_id.state' string='Payment Order State'
  • payment_line_date Date
    compute='_compute_payment_line_date'
  • payment_line_ids Many2many → account.payment.line
    comodel_name='account.payment.line'
  • payment_order_id Many2one → account.payment.order
    comodel_name='account.payment.order'
Public methods (1)
  • update_payment_reference(self)

New fields (19)
  • amount_company_currency Monetary
    compute='_compute_amount_company_currency' currency_field='company_currency_id' string='Amount in Company Currency'
  • amount_currency Monetary
    currency_field='currency_id' string='Amount'
  • bank_account_required Boolean
    readonly=True related='order_id.payment_method_id.bank_account_required'
  • communication Char
    help='Label of the payment that will be seen by the destinee' required=False
  • communication_type Selection
    default='normal' required=True selection=[('normal', 'Free'), ('structured', 'Structured')]
  • company_currency_id Many2one
    readonly=True related='order_id.company_currency_id' store=True
  • company_id Many2one
    readonly=True related='order_id.company_id' store=True
  • currency_id Many2one → res.currency
    comodel_name='res.currency' default=<expr> required=True string='Currency of the Payment Transaction'
  • date Date
    string='Payment Date'
  • ml_maturity_date Date
    readonly=True related='move_line_id.date_maturity'
  • move_line_id Many2one → account.move.line
    check_company=True comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • name Char
    copy=False readonly=True string='Payment Reference'
  • order_id Many2one → account.payment.order
    check_company=True comodel_name='account.payment.order' index=True ondelete='cascade' string='Payment Order'
  • partner_bank_acc_type Selection
    related='partner_bank_id.acc_type' string='Bank Account Type'
  • partner_bank_id Many2one → res.partner.bank
    check_company=True comodel_name='res.partner.bank' ondelete='restrict' required=False string='Partner Bank Account'
  • partner_id Many2one → res.partner
    check_company=True comodel_name='res.partner' domain=[('parent_id', '=', False)] required=True string='Partner'
  • payment_ids Many2many → account.payment
    comodel_name='account.payment' readonly=True string='Payment transaction'
  • payment_type Selection
    readonly=True related='order_id.payment_type' store=True
  • state Selection
    readonly=True related='order_id.state' store=True string='State'
Public methods (7)
  • action_open_business_doc(self)
  • create(self, vals_list)
    @api.model_create_multi
  • draft2open_payment_line_check(self)
  • invoice_reference_type2communication_type(self)
    This method is designed to be inherited by localization modules
  • move_line_id_change(self)
    @api.onchange('move_line_id')
  • partner_id_change(self)
    @api.onchange('partner_id')
  • payment_line_hashcode(self)

New fields (12)
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_on Selection
    default='<=' required=True selection=[('<=', 'Before or equal'), ('=', 'Equal'), ('between', 'Between')] string='Due on'
  • filter_date Date
    default=fields.Date.context_today
  • filter_date_end Date
    help="For 'Due on' 'Between', date between 'Filter Date' and 'Filter Date End'"
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' string='Journals Filter'
  • move_line_domain Binary
    compute='_compute_move_line_domain'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • order_id Many2one → account.payment.order
    comodel_name='account.payment.order' string='Payment Order'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' domain=[('parent_id', '=', False)] string='Partners'
  • payment_mode Selection
    selection=[('same', 'Same'), ('same_or_null', 'Same or Empty'), ('any', 'Any')]
  • target_move Selection
    selection=[('posted', 'All Posted Entries'), ('all', 'All Entries')] string='Target Moves'
Public methods (3)
  • create_payment_lines(self)
  • default_get(self, field_list)
    @api.model
  • populate(self)

New fields (1)
  • payment_order_only Boolean
    default=False help='This option helps enforcing the use of payment orders for some payment methods.' string='Only for payment orders'
Public methods (0)

No public methods.

New fields (9)
  • default_date_prefered Selection
    selection=[('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')] string='Default Payment Execution Date'
  • default_date_type Selection
    default='due' selection=[('due', 'Due'), ('move', 'Move')] string='Type of Date Filter'
  • default_invoice Boolean
    default=False string='Linked to an Invoice or Refund'
  • default_journal_ids Many2many → account.journal
    comodel_name='account.journal' domain="[('company_id', '=', company_id)]" string='Journals Filter'
  • default_payment_mode Selection
    default='same' selection=[('same', 'Same'), ('same_or_null', 'Same or empty'), ('any', 'Any')] string='Payment Mode on Invoice'
  • default_target_move Selection
    default='posted' selection=[('posted', 'All Posted Entries'), ('all', 'All Entries')] string='Target Moves'
  • group_lines Boolean
    default=True help="If this mark is checked, the transaction lines of the payment order will be grouped upon confirmation of the payment order.The grouping will be done only if the following fields matches:\n* Partner\n* Currency\n* Destination Bank Account\n* Payment Date\nand if the 'Communication Type' is 'Free'\n(other modules can set additional fields to restrict the grouping.)" string='Group Transactions in Payment Orders'
  • no_debit_before_maturity Boolean
    help='If you activate this option on an Inbound payment mode, you will have an error message when you confirm a debit order that has a payment line with a payment date before the maturity date.' string='Disallow Debit Before Maturity Date'
  • payment_order_ok Boolean
    default=True string='Selectable in Payment Orders'
Public methods (1)
  • payment_method_id_change(self)
    @api.onchange('payment_method_id')

New fields (23)
  • allowed_journal_ids Many2many → account.journal
    comodel_name='account.journal' compute='_compute_allowed_journal_ids' string='Allowed journals'
  • bank_account_link Selection
    readonly=True related='payment_mode_id.bank_account_link'
  • company_currency_id Many2one
    readonly=True related='payment_mode_id.company_id.currency_id' store=True
  • company_id Many2one
    readonly=True related='payment_mode_id.company_id' store=True
  • company_partner_bank_id Many2one
    readonly=True related='journal_id.bank_account_id' string='Company Bank Account'
  • date_generated Date
    readonly=True string='File Generation Date'
  • date_prefered Selection
    default='due' readonly=True required=True selection=[('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')] string='Payment Execution Date Type' tracking=True
  • date_scheduled Date
    help="Select a requested date of execution if you selected 'Due Date' as the Payment Execution Date Type." readonly=True string='Payment Execution Date' tracking=True
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • description Char
  • generated_user_id Many2one → res.users
    check_company=True comodel_name='res.users' copy=False ondelete='restrict' readonly=True string='Generated by'
  • journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' ondelete='restrict' readonly=True string='Bank Journal' tracking=True
  • move_count Integer
    compute='_compute_move_count' string='Number of Journal Entries'
  • move_ids One2many → account.move
    comodel_name='account.move' inverse_name='payment_order_id' readonly=True string='Journal Entries'
  • name Char
    copy=False readonly=True string='Number'
  • payment_count Integer
    compute='_compute_payment_count' string='Number of Payment Transactions'
  • payment_ids One2many → account.payment
    comodel_name='account.payment' inverse_name='payment_order_id' readonly=True string='Payment Transactions'
  • payment_line_ids One2many → account.payment.line
    comodel_name='account.payment.line' inverse_name='order_id' readonly=True string='Transactions'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' readonly=True related='payment_mode_id.payment_method_id' store=True
  • payment_mode_id Many2one → account.payment.mode
    check_company=True comodel_name='account.payment.mode' ondelete='restrict' readonly=True required=True tracking=True
  • payment_type Selection
    readonly=True required=True selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • state Selection
    copy=False default='draft' readonly=True selection=[('draft', 'Draft'), ('open', 'Confirmed'), ('generated', 'File Generated'), ('uploaded', 'File Uploaded'), ('cancel', 'Cancel')] string='Status' tracking=True
  • total_company_currency Monetary
    compute='_compute_total' currency_field='company_currency_id' store=True
Public methods (13)
  • action_cancel(self)
  • action_move_journal_line(self)
  • action_uploaded_cancel(self)
  • cancel2draft(self)
  • check_date_scheduled(self)
    @api.constrains('date_scheduled')
  • create(self, vals_list)
    @api.model_create_multi
  • draft2open(self)
    Called when you click on the 'Confirm' button Set the 'date' on payment line depending on the 'date_prefered' setting of the payment.order Re-generate the account payments.
  • generate_payment_file(self)
    Returns (payment file as string, filename)
  • generated2uploaded(self)
  • open2generated(self)
  • payment_mode_id_change(self)
    @api.onchange('payment_mode_id')
  • payment_order_constraints(self)
    @api.constrains('payment_type', 'payment_mode_id')
  • post_and_reconcile(self)

New fields (1)
  • payment_reference Char
    required=True
Public methods (1)
  • update_payment_reference(self)

New fields (0)

No new fields.

Public methods (1)
  • get_bank_account_name(self, partner_bank)
    @api.model
    :param partner_bank: :return:

New fields (0)

No new fields.

Public methods (1)
  • check_bic_length(self)
    @api.constrains('bic')

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…