Account Payment Order

account_payment_order
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/19.0/account_payment_order
VERSION
VERSION 1.0.4
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Julien Guenat, AlexGarS73
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
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 field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 field Inherits account.view_account_payment_form
view_account_payment_tree_payment_order account.payment.tree account.payment field 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 button Inherits account.view_invoice_tree
view_move_form account_payment_order.view_move_form account.move button Inherits account_payment_mode.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_mode.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line xpath Inherits account.view_move_line_tree
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')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/18.0/account_payment_order
VERSION
VERSION 1.2.6
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, Pedro M. Baeza, Carlos Lopez, Víctor Martínez, JordiMForgeFlow, Weblate, OCA-git-bot, oca-ci, Benoit Aimont, Julien Guenat, rjaraspearhead, ricardoMC
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
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 field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 field Inherits account.view_account_payment_form
view_account_payment_tree_payment_order account.payment.tree account.payment field 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 button Inherits account.view_invoice_tree
view_move_form account_payment_order.view_move_form account.move button Inherits account_payment_partner.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line xpath Inherits account.view_move_line_tree
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 (15)
  • action_cancel(self)
  • action_move_journal_line(self)
  • action_uploaded_cancel(self)
  • action_view_payments(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)
  • unlink(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')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/17.0/account_payment_order
VERSION
VERSION 1.7.6
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Pedro M. Baeza, Luc De Meyer, sbejaoui, Víctor Martínez, Sébastien Alix, Weblate, OCA-git-bot, SilvioC2C, micheledic, Maxence Groine, oca-ci, David Ramia, Julien Guenat, Olaf Watteroth
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds support for payment orders and debit orders.

Code Analysis

Views touched (25)
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 tree New
account_payment_method_form_view account.payment.method.form (in account_payment_order) account.payment.method field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree 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 field Inherits account.view_account_payment_form
view_account_payment_tree_payment_order account.payment.tree account.payment field 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 button Inherits account.view_invoice_tree
view_move_form account_payment_order.view_move_form account.move button Inherits account_payment_partner.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
view_move_line_form_no_edit account.move.line.form.no_edit account.move.line form Inherits account.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line xpath Inherits account.view_move_line_tree
Models touched (13)

New fields (0)

No new fields.

Public methods (1)
  • run(self)

New fields (2)
  • inbound_payment_order_only Boolean
    compute='_compute_inbound_payment_order_only' readonly=True store=True
  • outbound_payment_order_only Boolean
    compute='_compute_outbound_payment_order_only' readonly=True store=True
Public methods (0)

No public methods.

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)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_date Date
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' string='Journals Filter'
  • move_date Date
    default=fields.Date.context_today
  • 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')
  • unlink(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')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/16.0/account_payment_order
VERSION
VERSION 1.13.2
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Pedro M. Baeza, GitHub, Enric Tobella, Luc De Meyer, sbejaoui, Víctor Martínez, Sébastien Alix, Weblate, OCA-git-bot, oca-ci, Aritz Olea, Antônio Neto, hda, Reyes4711, Nikul-OSI, Yadier A. De Quesada, Simon
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (26)
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 tree New
account_payment_method_form_view account.payment.method.form (in account_payment_order) account.payment.method field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree 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
res_config_settings_view_form res.config.settings.payment res.config.settings xpath Inherits account.res_config_settings_view_form
view_account_payment_form account.payment.form account.payment field Inherits account.view_account_payment_form
view_account_payment_tree_payment_order account.payment.tree account.payment field 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 button Inherits account.view_invoice_tree
view_move_form account_payment_order.view_move_form account.move button Inherits account_payment_partner.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
view_move_line_form_no_edit account.move.line.form.no_edit account.move.line form Inherits account.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line xpath Inherits account.view_move_line_tree
Models touched (15)

New fields (0)

No new fields.

Public methods (1)
  • run(self)

New fields (2)
  • inbound_payment_order_only Boolean
    compute='_compute_inbound_payment_order_only' readonly=True store=True
  • outbound_payment_order_only Boolean
    compute='_compute_outbound_payment_order_only' readonly=True store=True
Public methods (0)

No public methods.

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')] states={'draft': [('readonly', False)]}
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 (11)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_date Date
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' string='Journals Filter'
  • move_date Date
    default=fields.Date.context_today
  • 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 (4)
  • create_payment_lines(self)
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode', 'partner_ids')
  • 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 (10)
  • 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'
  • transfer_journal_id Many2one → account.journal
    comodel_name='account.journal' domain="[('type', '=', 'general')]" help='Journal to write payment entries when confirming payment/debit orders' string='Transfer journal on payment/debit orders'
Public methods (1)
  • payment_method_id_change(self)
    @api.onchange('payment_method_id')

New fields (24)
  • 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')] states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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'
  • partner_banks_archive_msg Html
    compute='_compute_partner_banks_archive_msg'
  • 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 states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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). By default, any method not specifically intercepted by extra modules will do nothing, including the existing manual one.
  • 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')
  • unlink(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')

New fields (1)
  • transfer_journal_id Many2one → account.journal
    comodel_name='account.journal' domain="[('type', '=', 'general')]" help='Journal to write payment entries when confirming payment/debit orders' string='Transfer journal on payment/debit orders'
Public methods (0)

No public methods.

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

No public methods.

REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/15.0/account_payment_order
VERSION
VERSION 2.7.2
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSPedro M. Baeza, Enric Tobella, Luc De Meyer, manu, OCA Transbot, Miquel Raïch, Adrien Peiffer, Víctor Martínez, Weblate, OCA-git-bot, Hans Henrik Gabelgaard, Ethan Hildick, Marçal Isern, oca-ci, David Ramia, David Alonso // Solvos, Danny W. Adair, josep-tecnativa, Simon, Antony Herrera
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES lxml
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (22)
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_tree account.payment.line.tree account.payment.line tree New
account_payment_method_form_view account.payment.method.form (in account_payment_order) account.payment.method field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree 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 field Inherits account.view_account_payment_form
view_account_payment_tree_payment_order account.payment.tree account.payment field 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 button Inherits account.view_invoice_tree
view_move_form account_payment_order.view_move_form account.move button Inherits account_payment_partner.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line xpath Inherits account.view_move_line_tree
Models touched (12)

New fields (0)

No new fields.

Public methods (1)
  • run(self)

New fields (2)
  • inbound_payment_order_only Boolean
    compute='_compute_inbound_payment_order_only' readonly=True store=True
  • outbound_payment_order_only Boolean
    compute='_compute_outbound_payment_order_only' readonly=True store=True
Public methods (0)

No public methods.

New fields (3)
  • 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')] states={'draft': [('readonly', False)]}
Public methods (2)
  • 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)
  • old_bank_payment_line_name Char
  • 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 (0)

No public methods.

New fields (18)
  • 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')]
  • 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_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 (6)
  • create(self, vals)
    @api.model
  • 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 (11)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_date Date
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' string='Journals Filter'
  • move_date Date
    default=fields.Date.context_today
  • 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 (4)
  • create_payment_lines(self)
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode', 'partner_ids')
  • 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 (24)
  • 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')] states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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'
  • partner_banks_archive_msg Html
    compute='_compute_partner_banks_archive_msg'
  • 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 states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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)
    @api.model
  • 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). By default, any method not specifically intercepted by extra modules will do nothing, including the existing manual one.
  • generated2uploaded(self)
    Post payments and reconcile against source journal items Partially reconcile payments that don't match their source journal items, then reconcile the rest in one go.
  • open2generated(self)
  • payment_mode_id_change(self)
    @api.onchange('payment_mode_id')
  • payment_order_constraints(self)
    @api.constrains('payment_type', 'payment_mode_id')
  • unlink(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')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/14.0/account_payment_order
VERSION
VERSION 2.5.7
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, GitHub, Denis Roussel, Enric Tobella, Luc De Meyer, manu, OCA Transbot, Miquel Raïch, Adrien Peiffer, Víctor Martínez, João Marques, Florian da Costa, oca-travis, Weblate, OCA-git-bot, David, Ethan Hildick, oca-ci, Carlos Roca, AmmarOfficewalaSerpentCS, Kaynnan Lemes, Vandan-OSI, Eduard Brahas, Bert Driehuis, Danny W. Adair, Simon Gonzalez, Daniel Eriksson
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES lxml
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (22)
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_tree account.payment.line.tree account.payment.line tree New
account_payment_method_form_view account.payment.method.form (in account_payment_order) account.payment.method field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree 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 field Inherits account.view_account_payment_form
view_account_payment_tree_payment_order account.payment.tree account.payment field 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 button Inherits account.view_invoice_tree
view_move_form account_payment_order.view_move_form account.move button Inherits account_payment_partner.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line xpath Inherits account.view_move_line_tree
Models touched (12)

New fields (0)

No new fields.

Public methods (1)
  • run(self)

New fields (2)
  • inbound_payment_order_only Boolean
    compute='_compute_inbound_payment_order_only' readonly=True store=True
  • outbound_payment_order_only Boolean
    compute='_compute_outbound_payment_order_only' readonly=True store=True
Public methods (0)

No public methods.

New fields (3)
  • 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')] states={'draft': [('readonly', False)]} string='Reference Type'
Public methods (2)
  • 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)
  • old_bank_payment_line_name Char
  • 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 (0)

No public methods.

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')]
  • 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 (6)
  • create(self, vals)
    @api.model
  • 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 (11)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_date Date
    string='Due Date'
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' string='Journals Filter'
  • move_date Date
    default=fields.Date.context_today string='Move Date'
  • 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')] string='Payment Mode'
  • target_move Selection
    selection=[('posted', 'All Posted Entries'), ('all', 'All Entries')] string='Target Moves'
Public methods (4)
  • create_payment_lines(self)
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode', 'partner_ids')
  • 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 (25)
  • allow_past_date Boolean
    help="When checked, the Payment Date won't fast-forward to today and will instead remain the scheduled date" readonly=True states={'draft': [('readonly', False)]} string='Allow date in the past'
  • 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')] states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} 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'
  • partner_banks_archive_msg Html
    compute='_compute_partner_banks_archive_msg'
  • 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 states={'draft': [('readonly', False)]} 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 states={'draft': [('readonly', False)]} tracking=True
  • payment_type Selection
    readonly=True required=True selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')] string='Payment Type'
  • 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)
    @api.model
  • 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)
    Post payments and reconcile against source journal items Partially reconcile payments that don't match their source journal items, then reconcile the rest in one go.
  • open2generated(self)
  • payment_mode_id_change(self)
    @api.onchange('payment_mode_id')
  • payment_order_constraints(self)
    @api.constrains('payment_type', 'payment_mode_id')
  • unlink(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')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/13.0/account_payment_order
VERSION
VERSION 1.6.7
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSAlexis de Lattre, Stefan Rijnhart, Pedro M. Baeza, Andrea, Enric Tobella, Carlos Lopez, Luc De Meyer, OCA Transbot, Miquel Raïch, Víctor Martínez, AaronHForgeFlow, João Marques, oca-travis, Weblate, OCA-git-bot, Raf Ven, valen, Benoit Aimont, Valentin Vinagre Urteaga, GuillemCForgeFlow, Jérémy Didderen
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES lxml
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

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_tree account.payment.line.tree account.payment.line tree New
account_payment_method_form_view account.payment.method.form (in account_payment_order) account.payment.method field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree New
bank_payment_line_form bank.payment.line.form bank.payment.line form New
bank_payment_line_search bank.payment.line.search bank.payment.line search New
bank_payment_line_tree bank.payment.line.tree bank.payment.line tree 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
print_bank_payment_line_document print_bank_payment_line_document ir.ui.view qweb New
print_bank_payment_line_main print_bank_payment_line_main ir.ui.view qweb New
view_attachment_simplified_form ir.attachment.simplified.form ir.attachment form New
view_move_form account_payment_order.view_move_form account.move button Inherits account_payment_partner.view_move_form
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
view_move_line_tree account_payment_order.add.move_line_tree account.move.line xpath Inherits account.view_move_line_tree
Models touched (14)

New fields (0)

No new fields.

Public methods (1)
  • run(self)

New fields (2)
  • inbound_payment_order_only Boolean
    compute='_compute_inbound_payment_order_only' readonly=True store=True
  • outbound_payment_order_only Boolean
    compute='_compute_outbound_payment_order_only' readonly=True store=True
Public methods (0)

No public methods.

New fields (3)
  • payment_order_id Many2one → account.payment.order
    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 required=True selection=[('none', 'Free Reference'), ('structured', 'Structured Reference')] states={'draft': [('readonly', False)]} string='Reference Type'
Public methods (1)
  • create_account_payment_line(self)

New fields (3)
  • bank_payment_line_id Many2one → bank.payment.line
    comodel_name='bank.payment.line' index=True readonly=True
  • partner_bank_id Many2one → res.partner.bank
    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
    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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (18)
  • 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'
  • bank_line_id Many2one → bank.payment.line
    comodel_name='bank.payment.line' index=True readonly=True string='Bank Payment Line'
  • communication Char
    help='Label of the payment that will be seen by the destinee' required=True
  • communication_type Selection
    default='normal' required=True selection=[('normal', 'Free')]
  • 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
    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
    comodel_name='account.payment.order' index=True ondelete='cascade' string='Payment Order'
  • partner_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' ondelete='restrict' required=False string='Partner Bank Account'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' domain=[('parent_id', '=', False)] required=True string='Partner'
  • 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)
  • create(self, vals)
    @api.model
  • draft2open_payment_line_check(self)
  • get_requested_date(self, default_date)
  • 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 (11)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_date Date
    string='Due Date'
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' string='Journals Filter'
  • move_date Date
    default=fields.Date.context_today string='Move Date'
  • 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')] string='Payment Mode'
  • target_move Selection
    selection=[('posted', 'All Posted Entries'), ('all', 'All Entries')] string='Target Moves'
Public methods (4)
  • create_payment_lines(self)
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode', 'partner_ids')
  • 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 (15)
  • 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'
  • generate_move Boolean
    default=True string='Generate Accounting Entries On File Upload'
  • 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'
  • move_option Selection
    default='date' selection=[('date', 'One move per payment date'), ('line', 'One move per payment line')]
  • 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'
  • offsetting_account Selection
    default='bank_account' selection=[('bank_account', 'Bank Account'), ('transfer_account', 'Transfer Account')]
  • payment_order_ok Boolean
    default=True string='Selectable in Payment Orders'
  • post_move Boolean
    default=True
  • transfer_account_id Many2one → account.account
    comodel_name='account.account' domain=[('reconcile', '=', True)] help="Pay off lines in 'file uploaded' payment orders with a move on this account. You can only select accounts that are marked for reconciliation"
  • transfer_journal_id Many2one → account.journal
    comodel_name='account.journal' help='Journal to write payment entries when confirming payment/debit orders of this mode'
Public methods (4)
  • generate_move_change(self)
    @api.onchange('generate_move')
  • offsetting_account_change(self)
    @api.onchange('offsetting_account')
  • payment_method_id_change(self)
    @api.onchange('payment_method_id')
  • transfer_move_constrains(self)
    @api.constrains('generate_move', 'offsetting_account', 'transfer_account_id', 'transfer_journal_id', 'move_option')

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'
  • bank_line_count Integer
    compute='_compute_bank_line_count' string='Number of Bank Lines'
  • bank_line_ids One2many → bank.payment.line
    comodel_name='bank.payment.line' help="The bank payment lines are used to generate the payment file. They are automatically created from transaction lines upon confirmation of the payment order: one bank payment line can group several transaction lines if the option 'Group Transactions in Payment Orders' is active on the payment mode." inverse_name='order_id' readonly=True string='Bank Payment Lines'
  • 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_done Date
    readonly=True string='Done Date'
  • 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')] states={'draft': [('readonly', False)]} string='Payment Execution Date Type' track_visibility='onchange'
  • date_scheduled Date
    help="Select a requested date of execution if you selected 'Due Date' as the Payment Execution Date Type." readonly=True states={'draft': [('readonly', False)]} string='Payment Execution Date' track_visibility='onchange'
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • description Char
  • generated_user_id Many2one → res.users
    comodel_name='res.users' copy=False ondelete='restrict' readonly=True string='Generated by'
  • journal_id Many2one → account.journal
    comodel_name='account.journal' ondelete='restrict' readonly=True states={'draft': [('readonly', False)]} string='Bank Journal' track_visibility='onchange'
  • 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_line_ids One2many → account.payment.line
    comodel_name='account.payment.line' inverse_name='order_id' readonly=True states={'draft': [('readonly', False)]} string='Transaction Lines'
  • 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
    comodel_name='account.payment.mode' ondelete='restrict' required=True states={'draft': [('readonly', False)]} track_visibility='onchange'
  • payment_type Selection
    readonly=True required=True selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')] string='Payment Type'
  • state Selection
    copy=False default='draft' readonly=True selection=[('draft', 'Draft'), ('open', 'Confirmed'), ('generated', 'File Generated'), ('uploaded', 'File Uploaded'), ('done', 'Done'), ('cancel', 'Cancel')] string='Status' track_visibility='onchange'
  • total_company_currency Monetary
    compute='_compute_total' currency_field='company_currency_id' store=True
Public methods (14)
  • action_cancel(self)
  • action_done(self)
  • action_done_cancel(self)
  • cancel2draft(self)
  • check_date_scheduled(self)
    @api.constrains('date_scheduled')
  • create(self, vals)
    @api.model
  • 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 bank payment lines
  • generate_move(self)
    Create the moves that pay off the move lines from the payment/debit order.
  • 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')
  • unlink(self)

New fields (15)
  • amount_company_currency Monetary
    compute='_compute_amount' currency_field='company_currency_id' readonly=True store=True string='Amount in Company Currency'
  • amount_currency Monetary
    compute='_compute_amount' currency_field='currency_id' readonly=True store=True string='Amount'
  • communication Char
    readonly=True required=True string='Communication'
  • communication_type Selection
    readonly=True related='payment_line_ids.communication_type'
  • company_currency_id Many2one → res.currency
    comodel_name='res.currency' readonly=True related='order_id.payment_mode_id.company_id.currency_id' store=True
  • company_id Many2one → res.company
    comodel_name='res.company' readonly=True related='order_id.payment_mode_id.company_id' store=True
  • currency_id Many2one → res.currency
    comodel_name='res.currency' readonly=True related='payment_line_ids.currency_id' required=True
  • date Date
    readonly=True related='payment_line_ids.date'
  • name Char
    readonly=True required=True string='Bank Payment Line Ref'
  • order_id Many2one → account.payment.order
    comodel_name='account.payment.order' index=True ondelete='cascade' readonly=True
  • partner_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' readonly=True related='payment_line_ids.partner_bank_id' string='Bank Account'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' readonly=True related='payment_line_ids.partner_id' store=True
  • payment_line_ids One2many → account.payment.line
    comodel_name='account.payment.line' inverse_name='bank_line_id' readonly=True string='Payment Lines'
  • payment_type Selection
    readonly=True related='order_id.payment_type' store=True
  • state Selection
    readonly=True related='order_id.state' store=True
Public methods (7)
  • create(self, vals)
    @api.model@api.returns('self')
  • move_line_offsetting_account_hashcode(self)
    This method is inherited in the module account_banking_sepa_direct_debit
  • no_reconcile_hook(self)
    This method is designed to be inherited if needed
  • reconcile(self)
  • reconcile_payment_lines(self)
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects
  • unlink(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)
  • 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')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/12.0/account_payment_order
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSGuewen Baconnier, Holger Brunn, Pedro M. Baeza, GitHub, Carlos Dauden, OCA Transbot, Ernesto Tejeda, Thomas Binsfeld, Sergio Teruel, oca-travis, Weblate, OCA-git-bot, Raf Ven, Pieter Paulussen, Daniel Palomar, Rubén Cerdà
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (22)
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_tree account.payment.line.tree account.payment.line tree New
account_payment_method_form_view account.payment.method.form (in account_payment_order) account.payment.method field Inherits account_payment_mode.account_payment_method_form
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree New
bank_payment_line_form bank.payment.line.form bank.payment.line form New
bank_payment_line_search bank.payment.line.search bank.payment.line search New
bank_payment_line_tree bank.payment.line.tree bank.payment.line tree New
invoice_form account_payment_order.invoice_form account.invoice button Inherits account_payment_partner.invoice_form
invoice_supplier_form account_payment_order.invoice_supplier_form account.invoice button Inherits account_payment_partner.invoice_supplier_form
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_attachment_simplified_form ir.attachment.simplified.form ir.attachment form New
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
Models touched (14)

New fields (2)
  • payment_order_ok Boolean
    compute='_compute_payment_order_ok'
  • reference_type Selection
    default='none' readonly=True required=True selection=[('none', 'Free Reference'), ('structured', 'Structured Reference')] states={'draft': [('readonly', False)]} string='Payment Reference'
Public methods (2)
  • create_account_payment_line(self)
    @api.multi
  • line_get_convert(self, line, part)
    @api.model
    Copy supplier bank account from invoice to account move line

New fields (0)

No new fields.

Public methods (1)
  • run(self)
    @api.multi

New fields (2)
  • inbound_payment_order_only Boolean
    compute='_compute_inbound_payment_order_only' readonly=True store=True
  • outbound_payment_order_only Boolean
    compute='_compute_outbound_payment_order_only' readonly=True store=True
Public methods (0)

No public methods.

New fields (1)
  • payment_order_id Many2one → account.payment.order
    copy=False readonly=True string='Payment Order' args: 'account.payment.order'
Public methods (0)

No public methods.

New fields (3)
  • bank_payment_line_id Many2one → bank.payment.line
    index=True readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • partner_bank_id Many2one → res.partner.bank
    help='Bank account on which we should pay the supplier' string='Partner Bank Account' args: 'res.partner.bank'
  • payment_line_ids One2many → account.payment.line
    comodel_name='account.payment.line' inverse_name='move_line_id' string='Payment lines'
Public methods (3)
  • create_payment_line_from_move_line(self, payment_order)
    @api.multi
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
  • reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
    @api.multi
    Set payment orders with fully reconciled lines to done

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (18)
  • amount_company_currency Monetary
    compute='_compute_amount_company_currency' currency_field='company_currency_id' readonly=True 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'
  • bank_line_id Many2one → bank.payment.line
    index=True readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • communication Char
    help='Label of the payment that will be seen by the destinee' required=True string='Communication'
  • communication_type Selection
    default='normal' required=True string='Communication Type' args: [('normal', 'Free')]
  • 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
    default=<expr> required=True string='Currency of the Payment Transaction' args: 'res.currency'
  • date Date
    string='Payment Date'
  • ml_maturity_date Date
    readonly=True related='move_line_id.date_maturity'
  • move_line_id Many2one → account.move.line
    ondelete='restrict' string='Journal Item' args: 'account.move.line'
  • name Char
    copy=False readonly=True string='Payment Reference'
  • order_id Many2one → account.payment.order
    index=True ondelete='cascade' string='Payment Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    ondelete='restrict' required=False string='Partner Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    domain=[('parent_id', '=', False)] required=True string='Partner' args: 'res.partner'
  • 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 (6)
  • create(self, vals)
    @api.model
  • draft2open_payment_line_check(self)
    @api.multi
  • 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)
    @api.multi

New fields (11)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True string='Type of Date Filter' args: [('due', 'Due Date'), ('move', 'Move Date')]
  • due_date Date
    string='Due Date'
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • move_date Date
    default=fields.Date.context_today string='Move Date'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • order_id Many2one → account.payment.order
    string='Payment Order' args: 'account.payment.order'
  • partner_ids Many2many → res.partner
    domain=[('parent_id', '=', False)] string='Partners' args: 'res.partner'
  • payment_mode Selection
    string='Payment Mode' args: [('same', 'Same'), ('same_or_null', 'Same or Empty'), ('any', 'Any')]
  • target_move Selection
    string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
Public methods (4)
  • create_payment_lines(self)
    @api.multi
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode', 'partner_ids')
  • populate(self)
    @api.multi

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 (15)
  • default_date_prefered Selection
    string='Default Payment Execution Date' args: [('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')]
  • default_date_type Selection
    default='due' string='Type of Date Filter' args: [('due', 'Due'), ('move', 'Move')]
  • default_invoice Boolean
    default=False string='Linked to an Invoice or Refund'
  • default_journal_ids Many2many → account.journal
    domain="[('company_id', '=', company_id)]" string='Journals Filter' args: 'account.journal'
  • default_payment_mode Selection
    default='same' string='Payment Mode on Invoice' args: [('same', 'Same'), ('same_or_null', 'Same or empty'), ('any', 'Any')]
  • default_target_move Selection
    default='posted' string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
  • generate_move Boolean
    default=True string='Generate Accounting Entries On File Upload'
  • 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'
  • move_option Selection
    default='date' string='Move Option' args: [('date', 'One move per payment date'), ('line', 'One move per payment line')]
  • 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'
  • offsetting_account Selection
    default='bank_account' string='Offsetting Account' args: [('bank_account', 'Bank Account'), ('transfer_account', 'Transfer Account')]
  • payment_order_ok Boolean
    default=True string='Selectable in Payment Orders'
  • post_move Boolean
    default=True string='Post Move'
  • transfer_account_id Many2one → account.account
    domain=[('reconcile', '=', True)] help="Pay off lines in 'file uploaded' payment orders with a move on this account. You can only select accounts that are marked for reconciliation" string='Transfer Account' args: 'account.account'
  • transfer_journal_id Many2one → account.journal
    help='Journal to write payment entries when confirming payment/debit orders of this mode' string='Transfer Journal' args: 'account.journal'
Public methods (4)
  • generate_move_change(self)
    @api.onchange('generate_move')
  • offsetting_account_change(self)
    @api.onchange('offsetting_account')
  • payment_method_id_change(self)
    @api.onchange('payment_method_id')
  • transfer_move_constrains(self)
    @api.multi@api.constrains('generate_move', 'offsetting_account', 'transfer_account_id', 'transfer_journal_id', 'move_option')

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'
  • bank_line_count Integer
    compute='_compute_bank_line_count' readonly=True string='Number of Bank Lines'
  • bank_line_ids One2many → bank.payment.line
    help="The bank payment lines are used to generate the payment file. They are automatically created from transaction lines upon confirmation of the payment order: one bank payment line can group several transaction lines if the option 'Group Transactions in Payment Orders' is active on the payment mode." readonly=True string='Bank Payment Lines' args: 'bank.payment.line', 'order_id'
  • 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_done Date
    readonly=True string='Done Date'
  • date_generated Date
    readonly=True string='File Generation Date'
  • date_prefered Selection
    default='due' readonly=True required=True states={'draft': [('readonly', False)]} string='Payment Execution Date Type' track_visibility='onchange' args: [('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')]
  • date_scheduled Date
    help="Select a requested date of execution if you selected 'Due Date' as the Payment Execution Date Type." readonly=True states={'draft': [('readonly', False)]} string='Payment Execution Date' track_visibility='onchange'
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • description Char
  • generated_user_id Many2one → res.users
    copy=False ondelete='restrict' readonly=True string='Generated by' args: 'res.users'
  • journal_id Many2one → account.journal
    ondelete='restrict' readonly=True states={'draft': [('readonly', False)]} string='Bank Journal' track_visibility='onchange' args: 'account.journal'
  • move_ids One2many → account.move
    readonly=True string='Journal Entries' args: 'account.move', 'payment_order_id'
  • name Char
    copy=False readonly=True string='Number'
  • payment_line_ids One2many → account.payment.line
    readonly=True states={'draft': [('readonly', False)]} string='Transaction Lines' args: 'account.payment.line', 'order_id'
  • payment_method_id Many2one → account.payment.method
    readonly=True related='payment_mode_id.payment_method_id' store=True args: 'account.payment.method'
  • payment_mode_id Many2one → account.payment.mode
    ondelete='restrict' readonly=True required=True states={'draft': [('readonly', False)]} track_visibility='onchange' args: 'account.payment.mode', 'Payment Mode'
  • payment_type Selection
    readonly=True required=True string='Payment Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • state Selection
    copy=False default='draft' readonly=True string='Status' track_visibility='onchange' args: [('draft', 'Draft'), ('open', 'Confirmed'), ('generated', 'File Generated'), ('uploaded', 'File Uploaded'), ('done', 'Done'), ('cancel', 'Cancel')]
  • total_company_currency Monetary
    compute='_compute_total' currency_field='company_currency_id' readonly=True store=True
Public methods (14)
  • action_cancel(self)
    @api.multi
  • action_done(self)
    @api.multi
  • action_done_cancel(self)
    @api.multi
  • cancel2draft(self)
    @api.multi
  • check_date_scheduled(self)
    @api.multi@api.constrains('date_scheduled')
  • create(self, vals)
    @api.model
  • draft2open(self)
    @api.multi
    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 bank payment lines
  • generate_move(self)
    @api.multi
    Create the moves that pay off the move lines from the payment/debit order.
  • generate_payment_file(self)
    @api.multi
    Returns (payment file as string, filename)
  • generated2uploaded(self)
    @api.multi
  • open2generated(self)
    @api.multi
  • payment_mode_id_change(self)
    @api.onchange('payment_mode_id')
  • payment_order_constraints(self)
    @api.multi@api.constrains('payment_type', 'payment_mode_id')
  • unlink(self)
    @api.multi

New fields (15)
  • amount_company_currency Monetary
    compute='_compute_amount' currency_field='company_currency_id' readonly=True store=True string='Amount in Company Currency'
  • amount_currency Monetary
    compute='_compute_amount' currency_field='currency_id' readonly=True store=True string='Amount'
  • communication Char
    readonly=True required=True string='Communication'
  • communication_type Selection
    readonly=True related='payment_line_ids.communication_type'
  • company_currency_id Many2one → res.currency
    readonly=True related='order_id.payment_mode_id.company_id.currency_id' store=True args: 'res.currency'
  • company_id Many2one → res.company
    readonly=True related='order_id.payment_mode_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    readonly=True related='payment_line_ids.currency_id' required=True args: 'res.currency'
  • date Date
    readonly=True related='payment_line_ids.date'
  • name Char
    readonly=True required=True string='Bank Payment Line Ref'
  • order_id Many2one → account.payment.order
    index=True ondelete='cascade' readonly=True string='Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    readonly=True related='payment_line_ids.partner_bank_id' string='Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    readonly=True related='payment_line_ids.partner_id' store=True args: 'res.partner'
  • payment_line_ids One2many → account.payment.line
    readonly=True string='Payment Lines' args: 'account.payment.line', 'bank_line_id'
  • payment_type Selection
    readonly=True related='order_id.payment_type' store=True string='Payment Type'
  • state Selection
    readonly=True related='order_id.state' store=True string='State'
Public methods (7)
  • create(self, vals)
    @api.model@api.returns('self')
  • move_line_offsetting_account_hashcode(self)
    @api.multi
    This method is inherited in the module account_banking_sepa_direct_debit
  • no_reconcile_hook(self)
    @api.multi
    This method is designed to be inherited if needed
  • reconcile(self)
    @api.multi
  • reconcile_payment_lines(self)
    @api.multi
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects
  • unlink(self)
    @api.multi

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.multi@api.constrains('bic')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/11.0/account_payment_order
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSGuewen Baconnier, Pedro M. Baeza, Carlos Dauden, Andrea, Enric Tobella, OCA Transbot, oca-travis, Weblate, OCA-git-bot, BT-cserra, Jon Zaballa
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
    - base_iban
    - document
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (21)
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_tree account.payment.line.tree account.payment.line tree New
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree New
bank_payment_line_form bank.payment.line.form bank.payment.line form New
bank_payment_line_search bank.payment.line.search bank.payment.line search New
bank_payment_line_tree bank.payment.line.tree bank.payment.line tree New
invoice_form account_payment_order.invoice_form account.invoice button Inherits account_payment_partner.invoice_form
invoice_supplier_form account_payment_order.invoice_supplier_form account.invoice button Inherits account_payment_partner.invoice_supplier_form
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_attachment_simplified_form ir.attachment.simplified.form ir.attachment form New
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
Models touched (11)

New fields (1)
  • payment_order_ok Boolean
    compute='_compute_payment_order_ok'
Public methods (2)
  • create_account_payment_line(self)
    @api.multi
  • line_get_convert(self, line, part)
    @api.model
    Copy supplier bank account from invoice to account move line

New fields (0)

No new fields.

Public methods (1)
  • run(self)
    @api.multi

New fields (1)
  • payment_order_id Many2one → account.payment.order
    copy=False readonly=True string='Payment Order' args: 'account.payment.order'
Public methods (0)

No public methods.

New fields (3)
  • bank_payment_line_id Many2one → bank.payment.line
    index=True readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • partner_bank_id Many2one → res.partner.bank
    help='Bank account on which we should pay the supplier' string='Partner Bank Account' args: 'res.partner.bank'
  • payment_line_ids One2many → account.payment.line
    comodel_name='account.payment.line' inverse_name='move_line_id' string='Payment lines'
Public methods (2)
  • create_payment_line_from_move_line(self, payment_order)
    @api.multi
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model

New fields (18)
  • amount_company_currency Monetary
    compute='_compute_amount_company_currency' currency_field='company_currency_id' readonly=True 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'
  • bank_line_id Many2one → bank.payment.line
    index=True readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • communication Char
    help='Label of the payment that will be seen by the destinee' required=True string='Communication'
  • communication_type Selection
    default='normal' required=True string='Communication Type' args: [('normal', 'Free')]
  • 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
    default=<expr> required=True string='Currency of the Payment Transaction' args: 'res.currency'
  • date Date
    string='Payment Date'
  • ml_maturity_date Date
    readonly=True related='move_line_id.date_maturity'
  • move_line_id Many2one → account.move.line
    ondelete='restrict' string='Journal Item' args: 'account.move.line'
  • name Char
    copy=False readonly=True string='Payment Reference'
  • order_id Many2one → account.payment.order
    index=True ondelete='cascade' string='Payment Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    ondelete='restrict' required=False string='Partner Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    domain=[('parent_id', '=', False)] required=True string='Partner' args: 'res.partner'
  • 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 (6)
  • create(self, vals)
    @api.model
  • draft2open_payment_line_check(self)
    @api.multi
  • 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)
    @api.multi

New fields (11)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True string='Type of Date Filter' args: [('due', 'Due Date'), ('move', 'Move Date')]
  • due_date Date
    string='Due Date'
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • move_date Date
    default=fields.Date.context_today string='Move Date'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • order_id Many2one → account.payment.order
    string='Payment Order' args: 'account.payment.order'
  • partner_ids Many2many → res.partner
    domain=[('parent_id', '=', False)] string='Partners' args: 'res.partner'
  • payment_mode Selection
    string='Payment Mode' args: [('same', 'Same'), ('same_or_null', 'Same or Empty'), ('any', 'Any')]
  • target_move Selection
    string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
Public methods (4)
  • create_payment_lines(self)
    @api.multi
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode', 'partner_ids')
  • populate(self)
    @api.multi

New fields (15)
  • default_date_prefered Selection
    string='Default Payment Execution Date' args: [('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')]
  • default_date_type Selection
    default='due' string='Type of Date Filter' args: [('due', 'Due'), ('move', 'Move')]
  • default_invoice Boolean
    default=False string='Linked to an Invoice or Refund'
  • default_journal_ids Many2many → account.journal
    domain="[('company_id', '=', company_id)]" string='Journals Filter' args: 'account.journal'
  • default_payment_mode Selection
    default='same' string='Payment Mode on Invoice' args: [('same', 'Same'), ('same_or_null', 'Same or empty'), ('any', 'Any')]
  • default_target_move Selection
    default='posted' string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
  • generate_move Boolean
    default=True string='Generate Accounting Entries On File Upload'
  • 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'
  • move_option Selection
    default='date' string='Move Option' args: [('date', 'One move per payment date'), ('line', 'One move per payment line')]
  • 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'
  • offsetting_account Selection
    default='bank_account' string='Offsetting Account' args: [('bank_account', 'Bank Account'), ('transfer_account', 'Transfer Account')]
  • payment_order_ok Boolean
    default=True string='Selectable in Payment Orders'
  • post_move Boolean
    default=True string='Post Move'
  • transfer_account_id Many2one → account.account
    domain=[('reconcile', '=', True)] help="Pay off lines in 'file uploaded' payment orders with a move on this account. You can only select accounts that are marked for reconciliation" string='Transfer Account' args: 'account.account'
  • transfer_journal_id Many2one → account.journal
    help='Journal to write payment entries when confirming payment/debit orders of this mode' string='Transfer Journal' args: 'account.journal'
Public methods (4)
  • generate_move_change(self)
    @api.onchange('generate_move')
  • offsetting_account_change(self)
    @api.onchange('offsetting_account')
  • payment_method_id_change(self)
    @api.onchange('payment_method_id')
  • transfer_move_constrains(self)
    @api.multi@api.constrains('generate_move', 'offsetting_account', 'transfer_account_id', 'transfer_journal_id', 'move_option')

New fields (22)
  • bank_account_link Selection
    readonly=True related='payment_mode_id.bank_account_link'
  • bank_line_count Integer
    compute='_compute_bank_line_count' readonly=True string='Number of Bank Lines'
  • bank_line_ids One2many → bank.payment.line
    help="The bank payment lines are used to generate the payment file. They are automatically created from transaction lines upon confirmation of the payment order: one bank payment line can group several transaction lines if the option 'Group Transactions in Payment Orders' is active on the payment mode." readonly=True string='Bank Payment Lines' args: 'bank.payment.line', 'order_id'
  • 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_done Date
    readonly=True string='Done Date'
  • date_generated Date
    readonly=True string='File Generation Date'
  • date_prefered Selection
    default='due' readonly=True required=True states={'draft': [('readonly', False)]} string='Payment Execution Date Type' track_visibility='onchange' args: [('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')]
  • date_scheduled Date
    help="Select a requested date of execution if you selected 'Due Date' as the Payment Execution Date Type." readonly=True states={'draft': [('readonly', False)]} string='Payment Execution Date' track_visibility='onchange'
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • description Char
  • generated_user_id Many2one → res.users
    copy=False ondelete='restrict' readonly=True string='Generated by' args: 'res.users'
  • journal_id Many2one → account.journal
    domain=domain_journal_id ondelete='restrict' readonly=True states={'draft': [('readonly', False)]} string='Bank Journal' track_visibility='onchange' args: 'account.journal'
  • move_ids One2many → account.move
    readonly=True string='Journal Entries' args: 'account.move', 'payment_order_id'
  • name Char
    copy=False readonly=True string='Number'
  • payment_line_ids One2many → account.payment.line
    readonly=True states={'draft': [('readonly', False)]} string='Transaction Lines' args: 'account.payment.line', 'order_id'
  • payment_method_id Many2one → account.payment.method
    readonly=True related='payment_mode_id.payment_method_id' store=True args: 'account.payment.method'
  • payment_mode_id Many2one → account.payment.mode
    ondelete='restrict' readonly=True required=True states={'draft': [('readonly', False)]} track_visibility='onchange' args: 'account.payment.mode', 'Payment Mode'
  • payment_type Selection
    readonly=True required=True string='Payment Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • state Selection
    copy=False default='draft' readonly=True string='Status' track_visibility='onchange' args: [('draft', 'Draft'), ('open', 'Confirmed'), ('generated', 'File Generated'), ('uploaded', 'File Uploaded'), ('done', 'Done'), ('cancel', 'Cancel')]
  • total_company_currency Monetary
    compute='_compute_total' currency_field='company_currency_id' readonly=True store=True
Public methods (15)
  • action_cancel(self)
    @api.multi
  • action_done(self)
    @api.multi
  • action_done_cancel(self)
    @api.multi
  • cancel2draft(self)
    @api.multi
  • check_date_scheduled(self)
    @api.multi@api.constrains('date_scheduled')
  • create(self, vals)
    @api.model
  • domain_journal_id(self)
  • draft2open(self)
    @api.multi
    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 bank payment lines
  • generate_move(self)
    @api.multi
    Create the moves that pay off the move lines from the payment/debit order.
  • generate_payment_file(self)
    @api.multi
    Returns (payment file as string, filename)
  • generated2uploaded(self)
    @api.multi
  • open2generated(self)
    @api.multi
  • payment_mode_id_change(self)
    @api.onchange('payment_mode_id')
  • payment_order_constraints(self)
    @api.multi@api.constrains('payment_type', 'payment_mode_id')
  • unlink(self)
    @api.multi

New fields (15)
  • amount_company_currency Monetary
    compute='_compute_amount' currency_field='company_currency_id' readonly=True store=True string='Amount in Company Currency'
  • amount_currency Monetary
    compute='_compute_amount' currency_field='currency_id' readonly=True store=True string='Amount'
  • communication Char
    readonly=True required=True string='Communication'
  • communication_type Selection
    readonly=True related='payment_line_ids.communication_type'
  • company_currency_id Many2one → res.currency
    readonly=True related='order_id.payment_mode_id.company_id.currency_id' store=True args: 'res.currency'
  • company_id Many2one → res.company
    readonly=True related='order_id.payment_mode_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    readonly=True related='payment_line_ids.currency_id' required=True args: 'res.currency'
  • date Date
    readonly=True related='payment_line_ids.date'
  • name Char
    readonly=True required=True string='Bank Payment Line Ref'
  • order_id Many2one → account.payment.order
    index=True ondelete='cascade' readonly=True string='Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    readonly=True related='payment_line_ids.partner_bank_id' string='Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    readonly=True related='payment_line_ids.partner_id' store=True args: 'res.partner'
  • payment_line_ids One2many → account.payment.line
    readonly=True string='Payment Lines' args: 'account.payment.line', 'bank_line_id'
  • payment_type Selection
    readonly=True related='order_id.payment_type' store=True string='Payment Type'
  • state Selection
    readonly=True related='order_id.state' store=True string='State'
Public methods (7)
  • create(self, vals)
    @api.model@api.returns('self')
  • move_line_offsetting_account_hashcode(self)
    @api.multi
    This method is inherited in the module account_banking_sepa_direct_debit
  • no_reconcile_hook(self)
    @api.multi
    This method is designed to be inherited if needed
  • reconcile(self)
    @api.multi
  • reconcile_payment_lines(self)
    @api.multi
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects
  • unlink(self)
    @api.multi

New fields (0)

No new fields.

Public methods (2)
  • get_bank_account_name(self, partner_bank)
    @api.model
    :param partner_bank: :return:
  • get_report_values(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • check_bic_length(self)
    @api.multi@api.constrains('bic')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/10.0/account_payment_order
VERSION
VERSION 1.7.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSAlexis de Lattre, Yannick Vaucher, Guewen Baconnier, Pedro M. Baeza, GitHub, Carlos Dauden, OCA Transbot, vrenaville, Adrien Peiffer (ACSONE), Emanuel Cino, oca-travis, Weblate, OCA-git-bot, Andrius Preimantas, mpanarin, gilles, Atte Isopuro
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
    - base_iban
    - document
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (21)
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_tree account.payment.line.tree account.payment.line tree New
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree New
bank_payment_line_form bank.payment.line.form bank.payment.line form New
bank_payment_line_search bank.payment.line.search bank.payment.line search New
bank_payment_line_tree bank.payment.line.tree bank.payment.line tree New
invoice_form account_payment_order.invoice_form account.invoice button Inherits account_payment_partner.invoice_form
invoice_supplier_form account_payment_order.invoice_supplier_form account.invoice button Inherits account_payment_partner.invoice_supplier_form
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_attachment_simplified_form ir.attachment.simplified.form ir.attachment form New
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
Models touched (11)

New fields (1)
  • payment_order_ok Boolean
    compute='_compute_payment_order_ok'
Public methods (2)
  • create_account_payment_line(self)
    @api.multi
  • line_get_convert(self, line, part)
    @api.model
    Copy supplier bank account from invoice to account move line

New fields (0)

No new fields.

Public methods (1)
  • run(self)
    @api.multi

New fields (1)
  • payment_order_id Many2one → account.payment.order
    copy=False readonly=True string='Payment Order' args: 'account.payment.order'
Public methods (0)

No public methods.

New fields (3)
  • bank_payment_line_id Many2one → bank.payment.line
    index=True readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • partner_bank_id Many2one → res.partner.bank
    help='Bank account on which we should pay the supplier' string='Partner Bank Account' args: 'res.partner.bank'
  • payment_line_ids One2many → account.payment.line
    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)
    @api.multi

New fields (18)
  • amount_company_currency Monetary
    compute='_compute_amount_company_currency' currency_field='company_currency_id' readonly=True 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'
  • bank_line_id Many2one → bank.payment.line
    index=True readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • communication Char
    help='Label of the payment that will be seen by the destinee' required=True string='Communication'
  • communication_type Selection
    default='normal' required=True string='Communication Type' args: [('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
    default=<expr> required=True string='Currency of the Payment Transaction' args: 'res.currency'
  • date Date
    string='Payment Date'
  • ml_maturity_date Date
    readonly=True related='move_line_id.date_maturity'
  • move_line_id Many2one → account.move.line
    ondelete='restrict' string='Journal Item' args: 'account.move.line'
  • name Char
    copy=False readonly=True string='Payment Reference'
  • order_id Many2one → account.payment.order
    index=True ondelete='cascade' string='Payment Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    ondelete='restrict' required=False string='Partner Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    domain=[('parent_id', '=', False)] required=True string='Partner' args: 'res.partner'
  • 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 (6)
  • create(self, vals)
    @api.model
  • draft2open_payment_line_check(self)
    @api.multi
  • 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)
    @api.multi

New fields (11)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True string='Type of Date Filter' args: [('due', 'Due Date'), ('move', 'Move Date')]
  • due_date Date
    string='Due Date'
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • move_date Date
    default=fields.Date.context_today string='Move Date'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • order_id Many2one → account.payment.order
    string='Payment Order' args: 'account.payment.order'
  • partner_ids Many2many → res.partner
    domain=[('parent_id', '=', False)] string='Partners' args: 'res.partner'
  • payment_mode Selection
    string='Payment Mode' args: [('same', 'Same'), ('same_or_null', 'Same or Empty'), ('any', 'Any')]
  • target_move Selection
    string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
Public methods (4)
  • create_payment_lines(self)
    @api.multi
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode', 'partner_ids')
  • populate(self)
    @api.multi

New fields (15)
  • default_date_prefered Selection
    string='Default Payment Execution Date' args: [('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')]
  • default_date_type Selection
    default='due' string='Type of Date Filter' args: [('due', 'Due'), ('move', 'Move')]
  • default_invoice Boolean
    default=False string='Linked to an Invoice or Refund'
  • default_journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • default_payment_mode Selection
    default='same' string='Payment Mode on Invoice' args: [('same', 'Same'), ('same_or_null', 'Same or empty'), ('any', 'Any')]
  • default_target_move Selection
    default='posted' string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
  • generate_move Boolean
    default=True string='Generate Accounting Entries On File Upload'
  • 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'
  • move_option Selection
    default='date' string='Move Option' args: [('date', 'One move per payment date'), ('line', 'One move per payment line')]
  • 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'
  • offsetting_account Selection
    default='bank_account' string='Offsetting Account' args: [('bank_account', 'Bank Account'), ('transfer_account', 'Transfer Account')]
  • payment_order_ok Boolean
    default=True string='Selectable in Payment Orders'
  • post_move Boolean
    default=True string='Post Move'
  • transfer_account_id Many2one → account.account
    domain=[('reconcile', '=', True)] help="Pay off lines in 'file uploaded' payment orders with a move on this account. You can only select accounts that are marked for reconciliation" string='Transfer Account' args: 'account.account'
  • transfer_journal_id Many2one → account.journal
    help='Journal to write payment entries when confirming payment/debit orders of this mode' string='Transfer Journal' args: 'account.journal'
Public methods (4)
  • generate_move_change(self)
    @api.onchange('generate_move')
  • offsetting_account_change(self)
    @api.onchange('offsetting_account')
  • payment_method_id_change(self)
    @api.onchange('payment_method_id')
  • transfer_move_constrains(self)
    @api.multi@api.constrains('generate_move', 'offsetting_account', 'transfer_account_id', 'transfer_journal_id', 'move_option')

New fields (22)
  • bank_account_link Selection
    readonly=True related='payment_mode_id.bank_account_link'
  • bank_line_count Integer
    compute='_compute_bank_line_count' readonly=True string='Number of Bank Lines'
  • bank_line_ids One2many → bank.payment.line
    help="The bank payment lines are used to generate the payment file. They are automatically created from transaction lines upon confirmation of the payment order: one bank payment line can group several transaction lines if the option 'Group Transactions in Payment Orders' is active on the payment mode." readonly=True string='Bank Payment Lines' args: 'bank.payment.line', 'order_id'
  • 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 states={'draft': [('readonly', False)]} string='Payment Execution Date Type' track_visibility='onchange' args: [('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')]
  • date_scheduled Date
    help="Select a requested date of execution if you selected 'Due Date' as the Payment Execution Date Type." readonly=True states={'draft': [('readonly', False)]} string='Payment Execution Date' track_visibility='onchange'
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • description Char
  • generated_user_id Many2one → res.users
    copy=False ondelete='restrict' readonly=True string='Generated by' args: 'res.users'
  • journal_id Many2one → account.journal
    ondelete='restrict' readonly=True states={'draft': [('readonly', False)]} string='Bank Journal' track_visibility='onchange' args: 'account.journal'
  • move_count Integer
    compute='_compute_move_count' readonly=True store=True string='# of Journal Entries'
  • move_ids One2many → account.move
    readonly=True string='Journal Entries' args: 'account.move', 'payment_order_id'
  • name Char
    copy=False readonly=True string='Number'
  • payment_line_ids One2many → account.payment.line
    readonly=True states={'draft': [('readonly', False)]} string='Transaction Lines' args: 'account.payment.line', 'order_id'
  • payment_method_id Many2one → account.payment.method
    readonly=True related='payment_mode_id.payment_method_id' store=True args: 'account.payment.method'
  • payment_mode_id Many2one → account.payment.mode
    ondelete='restrict' readonly=True required=True states={'draft': [('readonly', False)]} track_visibility='onchange' args: 'account.payment.mode', 'Payment Mode'
  • payment_type Selection
    readonly=True required=True string='Payment Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • state Selection
    copy=False default='draft' readonly=True string='Status' track_visibility='onchange' args: [('draft', 'Draft'), ('open', 'Confirmed'), ('generated', 'File Generated'), ('uploaded', 'File Uploaded'), ('cancel', 'Cancel')]
  • total_company_currency Monetary
    compute='_compute_total' currency_field='company_currency_id' readonly=True store=True
Public methods (15)
  • action_cancel(self)
    @api.multi
  • action_done(self)
    @api.multi
  • action_done_cancel(self)
    @api.multi
  • cancel2draft(self)
    @api.multi
  • check_date_scheduled(self)
    @api.multi@api.constrains('date_scheduled')
  • create(self, vals)
    @api.model
  • draft2open(self)
    @api.multi
    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 bank payment lines
  • generate_move(self)
    @api.multi
    Create the moves that pay off the move lines from the payment/debit order.
  • generate_payment_file(self)
    @api.multi
    Returns (payment file as string, filename)
  • generated2uploaded(self)
    @api.multi
  • open2generated(self)
    @api.multi
  • open_moves(self)
  • payment_mode_id_change(self)
    @api.onchange('payment_mode_id')
  • payment_order_constraints(self)
    @api.multi@api.constrains('payment_type', 'payment_mode_id')
  • unlink(self)
    @api.multi

New fields (15)
  • amount_company_currency Monetary
    compute='_compute_amount' currency_field='company_currency_id' readonly=True store=True string='Amount in Company Currency'
  • amount_currency Monetary
    compute='_compute_amount' currency_field='currency_id' readonly=True store=True string='Amount'
  • communication Char
    readonly=True required=True string='Communication'
  • communication_type Selection
    readonly=True related='payment_line_ids.communication_type'
  • company_currency_id Many2one
    readonly=True related='order_id.payment_mode_id.company_id.currency_id' store=True
  • company_id Many2one
    readonly=True related='order_id.payment_mode_id.company_id' store=True
  • currency_id Many2one → res.currency
    readonly=True related='payment_line_ids.currency_id' required=True args: 'res.currency'
  • date Date
    readonly=True related='payment_line_ids.date'
  • name Char
    readonly=True required=True string='Bank Payment Line Ref'
  • order_id Many2one → account.payment.order
    index=True ondelete='cascade' string='Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    readonly=True related='payment_line_ids.partner_bank_id' string='Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    readonly=True related='payment_line_ids.partner_id' store=True args: 'res.partner'
  • payment_line_ids One2many → account.payment.line
    readonly=True string='Payment Lines' args: 'account.payment.line', 'bank_line_id'
  • payment_type Selection
    readonly=True related='order_id.payment_type' store=True string='Payment Type'
  • state Selection
    readonly=True related='order_id.state' store=True string='State'
Public methods (7)
  • create(self, vals)
    @api.model@api.returns('self')
  • move_line_offsetting_account_hashcode(self)
    @api.multi
    This method is inherited in the module account_banking_sepa_direct_debit
  • no_reconcile_hook(self)
    @api.multi
    This method is designed to be inherited if needed
  • reconcile(self)
    @api.multi
  • reconcile_payment_lines(self)
    @api.multi
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects
  • unlink(self)
    @api.multi

New fields (0)

No new fields.

Public methods (3)
  • get_bank_account_name(self, partner_bank)
    @api.model
    :param partner_bank: :return:
  • get_invoice_ref(self, line)
    @api.model
  • render_html(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • check_bic_length(self)
    @api.multi@api.constrains('bic')
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/9.0/account_payment_order
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, ACSONE SA/NV, Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Yannick Vaucher, Stefan Rijnhart, Holger Brunn, Pedro M. Baeza, GitHub, sebalix, Stéphane Bidoul (ACSONE), OCA Transbot, Thomas Binsfeld, vrenaville, mdietrichc2c, oca-travis, Weblate, Sergio Teruel Albert
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - report
    - analytic
    - web_tip
    - web_planner
    - base_iban
    - document
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (20)
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_tree account.payment.line.tree account.payment.line tree New
account_payment_mode_form account_payment_order.account.payment.mode.form account.payment.mode field Inherits account_payment_mode.account_payment_mode_form
account_payment_mode_search account_payment_order.account.payment.mode.search account.payment.mode filter Inherits account_payment_mode.account_payment_mode_search
account_payment_mode_tree account_payment_order.account.payment.mode.tree account.payment.mode field 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 tree New
bank_payment_line_form bank.payment.line.form bank.payment.line form New
bank_payment_line_search bank.payment.line.search bank.payment.line search New
bank_payment_line_tree bank.payment.line.tree bank.payment.line tree New
invoice_form account_payment_order.invoice_form account.invoice button Inherits account_payment_partner.invoice_form
invoice_supplier_form account_payment_order.invoice_supplier_form account.invoice button Inherits account_payment_partner.invoice_supplier_form
view_attachment_simplified_form ir.attachment.simplified.form ir.attachment form New
view_create_payment_order_lines add.context.to.display.maturity.date payment.order.create field Inherits account_payment.view_create_payment_order_lines
view_move_line_form account_payment_order.move_line_form account.move.line group Inherits account_payment_partner.view_move_line_form
Models touched (11)

New fields (0)

No new fields.

Public methods (1)
  • button_cancel_reconciliation(self)
    @api.multi
    Unbind moves that are linked to bank.payment.line without cancelling nor deleting them.

New fields (1)
  • payment_order_ok Boolean
    readonly=True related='payment_mode_id.payment_order_ok'
Public methods (2)
  • create_account_payment_line(self)
    @api.multi
  • line_get_convert(self, line, part)
    @api.model
    Copy supplier bank account from invoice to account move line

New fields (0)

No new fields.

Public methods (1)
  • run(self)
    @api.multi

New fields (1)
  • payment_order_id Many2one → account.payment.order
    copy=False readonly=True string='Payment Order' args: 'account.payment.order'
Public methods (0)

No public methods.

New fields (2)
  • bank_payment_line_id Many2one → bank.payment.line
    readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • partner_bank_id Many2one → res.partner.bank
    help='Bank account on which we should pay the supplier' string='Partner Bank Account' args: 'res.partner.bank'
Public methods (1)
  • create_payment_line_from_move_line(self, payment_order)
    @api.multi

New fields (18)
  • amount_company_currency Monetary
    compute='compute_amount_company_currency' currency_field='company_currency_id' readonly=True 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'
  • bank_line_id Many2one → bank.payment.line
    readonly=True string='Bank Payment Line' args: 'bank.payment.line'
  • communication Char
    help='Label of the payment that will be seen by the destinee' required=True string='Communication'
  • communication_type Selection
    default='normal' required=True string='Communication Type' args: [('normal', 'Free')]
  • 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
    default=<expr> required=True string='Currency of the Payment Transaction' args: 'res.currency'
  • date Date
    string='Payment Date'
  • ml_maturity_date Date
    readonly=True related='move_line_id.date_maturity'
  • move_line_id Many2one → account.move.line
    ondelete='restrict' string='Journal Item' args: 'account.move.line'
  • name Char
    copy=False readonly=True string='Payment Reference'
  • order_id Many2one → account.payment.order
    ondelete='cascade' select=True string='Payment Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    ondelete='restrict' required=False string='Partner Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    domain=[('parent_id', '=', False)] required=True string='Partner' args: 'res.partner'
  • 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)
  • compute_amount_company_currency(self)
    @api.multi@api.depends('amount_currency', 'currency_id', 'company_currency_id', 'date')
  • create(self, vals)
    @api.model
  • draft2open_payment_line_check(self)
    @api.multi
  • 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)
    @api.multi

New fields (10)
  • allow_blocked Boolean
    string='Allow Litigation Move Lines'
  • date_type Selection
    required=True string='Type of Date Filter' args: [('due', 'Due Date'), ('move', 'Move Date')]
  • due_date Date
    string='Due Date'
  • invoice Boolean
    string='Linked to an Invoice or Refund'
  • journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • move_date Date
    default=fields.Date.context_today string='Move Date'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • order_id Many2one → account.payment.order
    string='Payment Order' args: 'account.payment.order'
  • payment_mode Selection
    string='Payment Mode' args: [('same', 'Same'), ('same_or_null', 'Same or Empty'), ('any', 'Any')]
  • target_move Selection
    string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
Public methods (4)
  • create_payment_lines(self)
    @api.multi
  • default_get(self, field_list)
    @api.model
  • move_line_filters_change(self)
    @api.onchange('date_type', 'move_date', 'due_date', 'journal_ids', 'invoice', 'target_move', 'allow_blocked', 'payment_mode')
  • populate(self)
    @api.multi

New fields (13)
  • default_date_type Selection
    default='due' string='Type of Date Filter' args: [('due', 'Due'), ('move', 'Move')]
  • default_invoice Boolean
    default=False string='Linked to an Invoice or Refund'
  • default_journal_ids Many2many → account.journal
    string='Journals Filter' args: 'account.journal'
  • default_payment_mode Selection
    default='same' string='Payment Mode on Invoice' args: [('same', 'Same'), ('same_or_null', 'Same or empty'), ('any', 'Any')]
  • default_target_move Selection
    default='posted' string='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
  • generate_move Boolean
    default=True string='Generate Accounting Entries On File Upload'
  • 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'
  • move_option Selection
    default='date' string='Move Option' args: [('date', 'One move per payment date'), ('line', 'One move per payment line')]
  • 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'
  • offsetting_account Selection
    default='bank_account' string='Offsetting Account' args: [('bank_account', 'Bank Account'), ('transfer_account', 'Transfer Account')]
  • payment_order_ok Boolean
    default=True string='Selectable in Payment Orders'
  • transfer_account_id Many2one → account.account
    domain=[('reconcile', '=', True)] help="Pay off lines in 'file uploaded' payment orders with a move on this account. You can only select accounts that are marked for reconciliation" string='Transfer Account' args: 'account.account'
  • transfer_journal_id Many2one → account.journal
    help='Journal to write payment entries when confirming payment/debit orders of this mode' string='Transfer Journal' args: 'account.journal'
Public methods (4)
  • generate_move_change(self)
    @api.onchange('generate_move')
  • offsetting_account_change(self)
    @api.onchange('offsetting_account')
  • payment_method_id_change(self)
    @api.onchange('payment_method_id')
  • transfer_move_constrains(self)
    @api.multi@api.constrains('generate_move', 'offsetting_account', 'transfer_account_id', 'transfer_journal_id', 'move_option')

New fields (20)
  • bank_account_link Selection
    readonly=True related='payment_mode_id.bank_account_link'
  • bank_line_count Integer
    compute='_bank_line_count' readonly=True string='Number of Bank Lines'
  • bank_line_ids One2many → bank.payment.line
    help="The bank payment lines are used to generate the payment file. They are automatically created from transaction lines upon confirmation of the payment order: one bank payment line can group several transaction lines if the option 'Group Transactions in Payment Orders' is active on the payment mode." readonly=True string='Bank Payment Lines' args: 'bank.payment.line', 'order_id'
  • 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 states={'draft': [('readonly', False)]} string='Payment Execution Date Type' track_visibility='onchange' args: [('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')]
  • date_scheduled Date
    help="Select a requested date of execution if you selected 'Due Date' as the Payment Execution Date Type." readonly=True states={'draft': [('readonly', False)]} string='Payment Execution Date' track_visibility='onchange'
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • generated_user_id Many2one → res.users
    copy=False ondelete='restrict' readonly=True string='Generated by' args: 'res.users'
  • journal_id Many2one → account.journal
    ondelete='restrict' readonly=True states={'draft': [('readonly', False)]} string='Bank Journal' track_visibility='onchange' args: 'account.journal'
  • move_ids One2many → account.move
    readonly=True string='Journal Entries' args: 'account.move', 'payment_order_id'
  • name Char
    copy=False readonly=True string='Number'
  • payment_line_ids One2many → account.payment.line
    readonly=True states={'draft': [('readonly', False)]} string='Transaction Lines' args: 'account.payment.line', 'order_id'
  • payment_method_id Many2one → account.payment.method
    readonly=True related='payment_mode_id.payment_method_id' store=True args: 'account.payment.method'
  • payment_mode_id Many2one → account.payment.mode
    ondelete='restrict' readonly=True required=True states={'draft': [('readonly', False)]} track_visibility='onchange' args: 'account.payment.mode', 'Payment Mode'
  • payment_type Selection
    readonly=True required=True string='Payment Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • state Selection
    copy=False default='draft' readonly=True string='Status' track_visibility='onchange' args: [('draft', 'Draft'), ('open', 'Confirmed'), ('generated', 'File Generated'), ('uploaded', 'File Uploaded'), ('cancel', 'Cancel')]
  • total_company_currency Monetary
    compute='_compute_total' currency_field='company_currency_id' readonly=True store=True
Public methods (14)
  • action_cancel(self)
    @api.multi
  • action_done(self)
    @api.multi
  • action_done_cancel(self)
    @api.multi
  • cancel2draft(self)
    @api.multi
  • check_date_scheduled(self)
    @api.multi@api.constrains('date_scheduled')
  • create(self, vals)
    @api.model
  • draft2open(self)
    @api.multi
    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 bank payment lines
  • generate_move(self)
    @api.multi
    Create the moves that pay off the move lines from the payment/debit order.
  • generate_payment_file(self)
    @api.multi
    Returns (payment file as string, filename)
  • generated2uploaded(self)
    @api.multi
  • open2generated(self)
    @api.multi
  • payment_mode_id_change(self)
    @api.onchange('payment_mode_id')
  • payment_order_constraints(self)
    @api.multi@api.constrains('payment_type', 'payment_mode_id')
  • unlink(self)
    @api.multi

New fields (15)
  • amount_company_currency Monetary
    compute='_compute_amount_company_currency' currency_field='company_currency_id' store=True string='Amount in Company Currency'
  • amount_currency Monetary
    compute='_compute_amount_currency' currency_field='currency_id' store=True string='Amount'
  • communication Char
    readonly=True required=True string='Communication'
  • communication_type Selection
    readonly=True related='payment_line_ids.communication_type'
  • company_currency_id Many2one
    readonly=True related='order_id.payment_mode_id.company_id.currency_id' store=True
  • company_id Many2one
    readonly=True related='order_id.payment_mode_id.company_id' store=True
  • currency_id Many2one → res.currency
    readonly=True related='payment_line_ids.currency_id' required=True args: 'res.currency'
  • date Date
    readonly=True related='payment_line_ids.date'
  • name Char
    readonly=True required=True string='Bank Payment Line Ref'
  • order_id Many2one → account.payment.order
    ondelete='cascade' select=True string='Order' args: 'account.payment.order'
  • partner_bank_id Many2one → res.partner.bank
    readonly=True related='payment_line_ids.partner_bank_id' string='Bank Account' args: 'res.partner.bank'
  • partner_id Many2one → res.partner
    readonly=True related='payment_line_ids.partner_id' store=True args: 'res.partner'
  • payment_line_ids One2many → account.payment.line
    readonly=True string='Payment Lines' args: 'account.payment.line', 'bank_line_id'
  • payment_type Selection
    readonly=True related='order_id.payment_type' store=True string='Payment Type'
  • state Selection
    readonly=True related='order_id.state' store=True string='State'
Public methods (7)
  • create(self, vals)
    @api.model@api.returns('self')
  • move_line_offsetting_account_hashcode(self)
    @api.multi
    This method is inherited in the module account_banking_sepa_direct_debit
  • no_reconcile_hook(self)
    @api.multi
    This method is designed to be inherited if needed
  • reconcile(self)
    @api.multi
  • reconcile_payment_lines(self)
    @api.multi
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects
  • unlink(self)
    @api.multi

New fields (0)

No new fields.

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