Account Payment Batch OCA

account_payment_batch_oca
REPOSITORY
REPOSITORYOCA/bank-payment-alternative
GIT
GIThttps://github.com/OCA/bank-payment-alternative.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment-alternative/tree/19.0/account_payment_batch_oca
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
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment-alternative
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_payment_method_base
OCA/bank-payment-alternative:
    - account_payment_base_oca
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 (23)
XML IDNameModelTypeStatus
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_batch_oca.account_payment_line_form
account_payment_line_tree account.payment.line.list account.payment.line list New
account_payment_lot_form account.payment.lot form New
account_payment_lot_list account.payment.lot list New
account_payment_lot_search account.payment.lot search New
account_payment_method_form_view account.payment.method field Inherits account_payment_base_oca.account_payment_method_form
account_payment_method_line_form account.payment.method.line field Inherits account_payment_base_oca.account_payment_method_line_form
account_payment_method_line_search account.payment.method.line filter Inherits account_payment_base_oca.account_payment_method_line_search
account_payment_method_list account.payment.method field Inherits account_payment_base_oca.account_payment_method_list
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.list account.payment.order list 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 group Inherits account.view_account_payment_form
view_account_payment_method_line_tree account.payment.method.line field Inherits account_payment_base_oca.view_account_payment_method_line_tree
view_account_payment_tree_payment_order account.payment.tree account.payment field Inherits account.view_account_payment_tree
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_base_oca.view_move_form
Models touched (9)

New fields (3)
  • payment_line_count Integer
    compute='_compute_payment_line_count'
  • payment_order_ok Boolean
    related='preferred_payment_method_line_id.payment_order_ok'
  • reference_type Selection
    default='free' readonly=True selection=[('free', 'Free Reference'), ('structured', 'Structured Reference')]
Public methods (2)
  • action_payment_lines(self)
  • create_account_payment_line(self)

New fields (1)
  • 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_ids Many2many → account.payment.line
    comodel_name='account.payment.line' readonly=True
  • payment_lot_id Many2one → account.payment.lot
    comodel_name='account.payment.lot' readonly=True
  • payment_order_id Many2one → account.payment.order
    comodel_name='account.payment.order' readonly=True
Public methods (0)

No public methods.

New fields (22)
  • 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_payment_line' currency_field='currency_id' precompute=True readonly=False store=True string='Amount'
  • bank_account_required Boolean
    related='order_id.payment_method_id.bank_account_required'
  • communication Char
    compute='_compute_payment_line' help='Label of the payment that will be seen by the destinee' precompute=True readonly=False required=False store=True
  • communication_type Selection
    compute='_compute_payment_line' precompute=True readonly=False required=True selection=[('free', 'Free'), ('structured', 'Structured')] store=True
  • company_currency_id Many2one
    related='order_id.company_currency_id' store=True
  • company_id Many2one
    related='order_id.company_id' store=True
  • currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_payment_line' precompute=True readonly=False required=True store=True string='Currency of the Payment Transaction'
  • date Date
    string='Payment Date'
  • mail_notif Boolean
    related='order_id.payment_method_line_id.mail_notif'
  • mail_notif_partner_id Many2one → res.partner
    compute='_compute_mail_notif_partner_id' domain="[('email', '!=', False), '|', ('parent_id', '=', partner_id), ('id', '=', partner_id)]" precompute=True readonly=False store=True string='Partner to Notify' args: 'res.partner'
  • ml_maturity_date Date
    related='move_line_id.date_maturity'
  • move_line_id Many2one → account.move.line
    check_company=True comodel_name='account.move.line' domain="[('reconciled','=', False), ('account_id.reconcile', '=', True), ('partner_id', '!=', False)]" 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_allow_out_payment Boolean
    related='partner_bank_id.allow_out_payment' store=True
  • partner_bank_id Many2one → res.partner.bank
    check_company=True comodel_name='res.partner.bank' compute='_compute_partner_bank_id' ondelete='restrict' precompute=True readonly=False required=False store=True string='Partner Bank Account'
  • partner_id Many2one → res.partner
    check_company=True comodel_name='res.partner' compute='_compute_payment_line' domain=[('parent_id', '=', False)] precompute=True readonly=False required=True store=True
  • payment_ids Many2many → account.payment
    comodel_name='account.payment' readonly=True string='Payment transaction'
  • payment_type Selection
    related='order_id.payment_type' store=True
  • state Selection
    related='order_id.state' store=True
Public methods (2)
  • action_open_related_move(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (11)
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_date Date
  • eligible_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_eligible_move_line_ids' string='Eligible Journal Items'
  • 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' domain="[('id', 'in', eligible_move_line_ids)]" string='Journal Items'
  • 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 Method'
  • 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 (11)
  • amount Monetary
    compute='_compute_payment_lot' store=True
  • company_id Many2one
    related='order_id.company_id' store=True
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency'
  • date Date
    readonly=True required=True string='Execution Date'
  • journal_id Many2one
    related='order_id.journal_id' store=True
  • name Char
    readonly=True required=True
  • order_id Many2one → account.payment.order
    check_company=True comodel_name='account.payment.order' index=True ondelete='cascade' readonly=True required=True string='Payment Order'
  • payment_count Integer
    compute='_compute_payment_lot' store=True
  • payment_ids One2many → account.payment
    args: 'account.payment', 'payment_lot_id'
  • payment_type Selection
    related='order_id.payment_type' store=True
  • state Selection
    related='order_id.state' store=True
Public methods (0)

No public methods.

New fields (1)
  • payment_order_ok Boolean
    help='Check this option for payment methods designed to be used in payment orders.' string='Payment Orders'
Public methods (0)

No public methods.

New fields (12)
  • default_date_prefered Selection
    compute='_compute_default_date_prefered' precompute=True readonly=False selection=[('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')] store=True 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
    check_company=True comodel_name='account.journal' compute='_compute_default_journal_ids' domain="[('company_id', '=', company_id)]" precompute=True readonly=False store=True string='Journals Filter'
  • default_payment_mode Selection
    default='same' selection=[('same', 'Same'), ('same_or_null', 'Same or empty'), ('any', 'Any')] string='Payment Method on Invoice'
  • default_target_move Selection
    default='posted' selection=[('posted', 'All Posted Entries'), ('all', 'All Entries')] string='Target Journal Items'
  • 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'
  • mail_notif Boolean
    help='If enabled, Odoo will automatically notify the partner by email when the payment/debit order file is successfully uploaded.' string='Notify by Email'
  • mail_partner_policy Selection
    default='invoice_partner' help='This configuration parameter will decide which partner is auto-configured as partner to notify on the payment/debit transaction. You can always manually change the partner to notify on the payment/debit transaction when the payment/debit order is in draft state.' string='Partner to Notify' args: [('invoice_partner', 'Partner of the Invoice'), ('last_payment', 'Last Payment'), ('parent', 'Parent Partner'), ('invoice_contact', 'First Invoice Contact'), ('manual', 'Manual')]
  • no_debit_before_maturity Boolean
    default=True help='If you activate this option on an Inbound payment method, 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
    compute='_compute_payment_order_ok' precompute=True readonly=False store=True string='Selectable on Payment Orders'
  • specific_sequence_id Many2one → ir.sequence
    check_company=True copy=False help='If left empty, the payment orders with this payment method will use the generic sequence for all payment orders.' args: 'ir.sequence'
Public methods (0)

No public methods.

New fields (30)
  • allowed_journal_ids Many2many → account.journal
    comodel_name='account.journal' compute='_compute_allowed_journal_ids' string='Allowed journals'
  • bank_account_link Selection
    related='payment_method_line_id.bank_account_link'
  • company_currency_id Many2one
    related='company_id.currency_id' store=True
  • company_id Many2one → res.company
    default=<expr> index=True ondelete='cascade' required=True args: 'res.company'
  • company_partner_bank_id Many2one
    related='journal_id.bank_account_id' string='Company Bank Account'
  • date_generated Date
    readonly=True string='File Generation Date'
  • date_prefered Selection
    compute='_compute_date_prefered' precompute=True required=True selection=[('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')] store=True 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." string='Payment Execution Date' tracking=True
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • description Char
  • journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' compute='_compute_journal_id' domain="[('id', 'in', allowed_journal_ids)]" ondelete='restrict' precompute=True store=True string='Bank Journal' tracking=True
  • mail_notif Boolean
    related='payment_method_line_id.mail_notif'
  • name Char
    copy=False default=<expr> readonly=True string='Reference'
  • payment_count Integer
    compute='_compute_payment_count' store=True string='Number of Payment Transactions'
  • payment_file_datas Binary
    related='payment_file_id.datas' string='Payment File'
  • payment_file_id Many2one → ir.attachment
    string='Payment File Attachment' args: 'ir.attachment'
  • payment_file_name Char
    related='payment_file_id.name' string='Payment Filename'
  • 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' string='Transactions'
  • payment_lot_count Integer
    compute='_compute_payment_lot_count' store=True string='Number of Lots'
  • payment_lot_ids One2many → account.payment.lot
    comodel_name='account.payment.lot' inverse_name='order_id' readonly=True
  • payment_method_code Char
    related='payment_method_line_id.payment_method_id.code' store=True
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_method_line_id.payment_method_id' store=True
  • payment_method_line_id Many2one → account.payment.method.line
    check_company=True comodel_name='account.payment.method.line' domain="[('payment_order_ok', '=', True), ('payment_type', '=', payment_type), ('company_id', '=', company_id)]" index=True ondelete='restrict' required=True string='Payment Method' tracking=True
  • payment_type Selection
    readonly=True required=True selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • search_partner_id Many2one
    related='payment_line_ids.partner_id' string='Partner'
  • state Selection
    copy=False default='draft' index=True 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
  • untrusted_bank_account_count Integer
    compute='_compute_untrusted_bank_accounts'
  • untrusted_bank_account_ids Many2many → res.partner.bank
    compute='_compute_untrusted_bank_accounts' args: 'res.partner.bank'
Public methods (10)
  • action_cancel(self)
  • action_open_invoices(self)
  • action_open_payments(self)
  • action_open_untrusted_accounts(self)
  • cancel2draft(self)
  • 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' of the order Generate the account payments and lots
  • generate_payment_file(self)
    Returns (payment file as bytes, filename extension without the dot)
  • generated2uploaded(self)
  • open2generated(self)
REPOSITORY
REPOSITORYOCA/bank-payment-alternative
GIT
GIThttps://github.com/OCA/bank-payment-alternative.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment-alternative/tree/18.0/account_payment_batch_oca
VERSION
VERSION 3.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
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment-alternative
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_payment_method_base
OCA/bank-payment-alternative:
    - account_payment_base_oca
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 (23)
XML IDNameModelTypeStatus
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_batch_oca.account_payment_line_form
account_payment_line_tree account.payment.line.list account.payment.line list New
account_payment_lot_form account.payment.lot form New
account_payment_lot_list account.payment.lot list New
account_payment_lot_search account.payment.lot search New
account_payment_method_form_view account.payment.method field Inherits account_payment_base_oca.account_payment_method_form
account_payment_method_line_form account.payment.method.line field Inherits account_payment_base_oca.account_payment_method_line_form
account_payment_method_line_search account.payment.method.line filter Inherits account_payment_base_oca.account_payment_method_line_search
account_payment_method_list account.payment.method field Inherits account_payment_base_oca.account_payment_method_list
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.list account.payment.order list 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 group Inherits account.view_account_payment_form
view_account_payment_method_line_tree account.payment.method.line field Inherits account_payment_base_oca.view_account_payment_method_line_tree
view_account_payment_tree_payment_order account.payment.tree account.payment field Inherits account.view_account_payment_tree
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_base_oca.view_move_form
Models touched (9)

New fields (3)
  • payment_line_count Integer
    compute='_compute_payment_line_count'
  • payment_order_ok Boolean
    related='preferred_payment_method_line_id.payment_order_ok'
  • reference_type Selection
    default='free' readonly=True selection=[('free', 'Free Reference'), ('structured', 'Structured Reference')]
Public methods (2)
  • action_payment_lines(self)
  • create_account_payment_line(self)

New fields (1)
  • 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_ids Many2many → account.payment.line
    comodel_name='account.payment.line' readonly=True
  • payment_lot_id Many2one → account.payment.lot
    comodel_name='account.payment.lot' readonly=True
  • payment_order_id Many2one → account.payment.order
    comodel_name='account.payment.order' readonly=True
Public methods (0)

No public methods.

New fields (22)
  • 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_payment_line' currency_field='currency_id' precompute=True readonly=False store=True string='Amount'
  • bank_account_required Boolean
    related='order_id.payment_method_id.bank_account_required'
  • communication Char
    compute='_compute_payment_line' help='Label of the payment that will be seen by the destinee' precompute=True readonly=False required=False store=True
  • communication_type Selection
    compute='_compute_payment_line' precompute=True readonly=False required=True selection=[('free', 'Free'), ('structured', 'Structured')] store=True
  • company_currency_id Many2one
    related='order_id.company_currency_id' store=True
  • company_id Many2one
    related='order_id.company_id' store=True
  • currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_payment_line' precompute=True readonly=False required=True store=True string='Currency of the Payment Transaction'
  • date Date
    string='Payment Date'
  • mail_notif Boolean
    related='order_id.payment_method_line_id.mail_notif'
  • mail_notif_partner_id Many2one → res.partner
    compute='_compute_mail_notif_partner_id' domain="[('email', '!=', False), '|', ('parent_id', '=', partner_id), ('id', '=', partner_id)]" precompute=True readonly=False store=True string='Partner to Notify' args: 'res.partner'
  • ml_maturity_date Date
    related='move_line_id.date_maturity'
  • move_line_id Many2one → account.move.line
    check_company=True comodel_name='account.move.line' domain="[('reconciled','=', False), ('account_id.reconcile', '=', True), ('partner_id', '!=', False)]" 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_allow_out_payment Boolean
    related='partner_bank_id.allow_out_payment' store=True
  • partner_bank_id Many2one → res.partner.bank
    check_company=True comodel_name='res.partner.bank' compute='_compute_partner_bank_id' ondelete='restrict' precompute=True readonly=False required=False store=True string='Partner Bank Account'
  • partner_id Many2one → res.partner
    check_company=True comodel_name='res.partner' compute='_compute_payment_line' domain=[('parent_id', '=', False)] precompute=True readonly=False required=True store=True
  • payment_ids Many2many → account.payment
    comodel_name='account.payment' readonly=True string='Payment transaction'
  • payment_type Selection
    related='order_id.payment_type' store=True
  • state Selection
    related='order_id.state' store=True
Public methods (2)
  • action_open_related_move(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (11)
  • date_type Selection
    required=True selection=[('due', 'Due Date'), ('move', 'Move Date')] string='Type of Date Filter'
  • due_date Date
  • eligible_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_eligible_move_line_ids' string='Eligible Journal Items'
  • 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' domain="[('id', 'in', eligible_move_line_ids)]" string='Journal Items'
  • 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 Method'
  • 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 (11)
  • amount Monetary
    compute='_compute_payment_lot' store=True
  • company_id Many2one
    related='order_id.company_id' store=True
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency'
  • date Date
    readonly=True required=True string='Execution Date'
  • journal_id Many2one
    related='order_id.journal_id' store=True
  • name Char
    readonly=True required=True
  • order_id Many2one → account.payment.order
    check_company=True comodel_name='account.payment.order' index=True ondelete='cascade' readonly=True required=True string='Payment Order'
  • payment_count Integer
    compute='_compute_payment_lot' store=True
  • payment_ids One2many → account.payment
    args: 'account.payment', 'payment_lot_id'
  • payment_type Selection
    related='order_id.payment_type' store=True
  • state Selection
    related='order_id.state' store=True
Public methods (0)

No public methods.

New fields (1)
  • payment_order_ok Boolean
    help='Check this option for payment methods designed to be used in payment orders.' string='Payment Orders'
Public methods (0)

No public methods.

New fields (12)
  • default_date_prefered Selection
    compute='_compute_default_date_prefered' precompute=True readonly=False selection=[('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')] store=True 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
    check_company=True comodel_name='account.journal' compute='_compute_default_journal_ids' domain="[('company_id', '=', company_id)]" precompute=True readonly=False store=True string='Journals Filter'
  • default_payment_mode Selection
    default='same' selection=[('same', 'Same'), ('same_or_null', 'Same or empty'), ('any', 'Any')] string='Payment Method on Invoice'
  • default_target_move Selection
    default='posted' selection=[('posted', 'All Posted Entries'), ('all', 'All Entries')] string='Target Journal Items'
  • 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'
  • mail_notif Boolean
    help='If enabled, Odoo will automatically notify the partner by email when the payment/debit order file is successfully uploaded.' string='Notify by Email'
  • mail_partner_policy Selection
    default='invoice_partner' help='This configuration parameter will decide which partner is auto-configured as partner to notify on the payment/debit transaction. You can always manually change the partner to notify on the payment/debit transaction when the payment/debit order is in draft state.' string='Partner to Notify' args: [('invoice_partner', 'Partner of the Invoice'), ('last_payment', 'Last Payment'), ('parent', 'Parent Partner'), ('invoice_contact', 'First Invoice Contact'), ('manual', 'Manual')]
  • no_debit_before_maturity Boolean
    default=True help='If you activate this option on an Inbound payment method, 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
    compute='_compute_payment_order_ok' precompute=True readonly=False store=True string='Selectable on Payment Orders'
  • specific_sequence_id Many2one → ir.sequence
    check_company=True copy=False help='If left empty, the payment orders with this payment method will use the generic sequence for all payment orders.' args: 'ir.sequence'
Public methods (0)

No public methods.

New fields (30)
  • allowed_journal_ids Many2many → account.journal
    comodel_name='account.journal' compute='_compute_allowed_journal_ids' string='Allowed journals'
  • bank_account_link Selection
    related='payment_method_line_id.bank_account_link'
  • company_currency_id Many2one
    related='company_id.currency_id' store=True
  • company_id Many2one → res.company
    default=<expr> index=True ondelete='cascade' required=True args: 'res.company'
  • company_partner_bank_id Many2one
    related='journal_id.bank_account_id' string='Company Bank Account'
  • date_generated Date
    readonly=True string='File Generation Date'
  • date_prefered Selection
    compute='_compute_date_prefered' precompute=True required=True selection=[('now', 'Immediately'), ('due', 'Due Date'), ('fixed', 'Fixed Date')] store=True 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." string='Payment Execution Date' tracking=True
  • date_uploaded Date
    readonly=True string='File Upload Date'
  • description Char
  • journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' compute='_compute_journal_id' domain="[('id', 'in', allowed_journal_ids)]" ondelete='restrict' precompute=True store=True string='Bank Journal' tracking=True
  • mail_notif Boolean
    related='payment_method_line_id.mail_notif'
  • name Char
    copy=False default=<expr> readonly=True string='Reference'
  • payment_count Integer
    compute='_compute_payment_count' store=True string='Number of Payment Transactions'
  • payment_file_datas Binary
    related='payment_file_id.datas' string='Payment File'
  • payment_file_id Many2one → ir.attachment
    string='Payment File Attachment' args: 'ir.attachment'
  • payment_file_name Char
    related='payment_file_id.name' string='Payment Filename'
  • 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' string='Transactions'
  • payment_lot_count Integer
    compute='_compute_payment_lot_count' store=True string='Number of Lots'
  • payment_lot_ids One2many → account.payment.lot
    comodel_name='account.payment.lot' inverse_name='order_id' readonly=True
  • payment_method_code Char
    related='payment_method_line_id.payment_method_id.code' store=True
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_method_line_id.payment_method_id' store=True
  • payment_method_line_id Many2one → account.payment.method.line
    check_company=True comodel_name='account.payment.method.line' domain="[('payment_order_ok', '=', True), ('payment_type', '=', payment_type), ('company_id', '=', company_id)]" index=True ondelete='restrict' required=True string='Payment Method' tracking=True
  • payment_type Selection
    readonly=True required=True selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • search_partner_id Many2one
    related='payment_line_ids.partner_id' string='Partner'
  • state Selection
    copy=False default='draft' index=True 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
  • untrusted_bank_account_count Integer
    compute='_compute_untrusted_bank_accounts'
  • untrusted_bank_account_ids Many2many → res.partner.bank
    compute='_compute_untrusted_bank_accounts' args: 'res.partner.bank'
Public methods (11)
  • action_cancel(self)
  • action_open_invoices(self)
  • action_open_payments(self)
  • action_open_untrusted_accounts(self)
  • cancel2draft(self)
  • 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' of the order Generate the account payments and lots
  • generate_payment_file(self)
    Returns (payment file as bytes, filename extension without the dot)
  • generated2uploaded(self)
  • open2generated(self)
  • unlink(self)