Third Party and Deferred/Electronic Checks Management

l10n_latam_check
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/l10n_latam_check
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting/Localizations
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSADHOC SA
MAINTAINERS
MAINTAINERSADHOC SA
COMMITTERS
COMMITTERSOdoo Translation Bot, Thibault Delavallée, Josse Colpaert, Xavier Morel, Anh Thao Pham (pta), Gorash, William Braeckman, william-andre, Renaud Thiry, Maximilien (malb), Pablo Montenegro, Dylan Kiss (dyki), Arnaud Sibille, Claire (clbr), Krzysztof Magusiak (krma), Martin Quinteros, Basioni (basm), bhra-odoo, Waleed Elgamal
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES 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_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Own Checks Management
---------------------

Extends 'Check Printing Base' module to manage own checks with more features:

* allow using own checks that are not printed but filled manually by the user
* allow to use deferred or electronic checks
  * printing is disabled
  * check number is set manually by the user
* add an optional "Check Cash-In Date" for post-dated checks (deferred payments)
* add a menu to track own checks

Third Party Checks Management
-----------------------------

Add new "Third party check Management" feature.

There are 2 main Payment Methods additions:

* New Third Party Checks:

  * Payments of this payment method represent the check you get from a customer when getting paid (from an invoice or a manual payment)

* Existing Third Party check.

  * Payments of this payment method are to track moves of the check, for eg:

    * Use a check to pay a vendor
    * Deposit the check on the bank
    * Get the check back from the bank (rejection)
    * Get the check back from the vendor (a rejection or return)
    * Transfer the check from one third party check journal to the other (one shop to another)

  * Those operations can be done with multiple checks at once

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
l10n_latam_check_view_form l10n_latam_check.view.form l10n_latam.check form New
report_payment_receipt_document report_payment_receipt_document ir.ui.view qweb Inherits account.report_payment_receipt_document
view_account_check_calendar account.check.calendar l10n_latam.check calendar New
view_account_check_pivot account.check.calendar l10n_latam.check pivot New
view_account_own_check_tree account.check.list l10n_latam.check list New
view_account_payment_form_inherited account.payment.form.inherited account.payment group Inherits account.view_account_payment_form
view_account_payment_register_form account.payment.register.form account.payment.register group Inherits account.view_account_payment_register_form
view_account_payment_search account.check.search l10n_latam.check search New
view_account_payment_third_party_checks_search account.check.search l10n_latam.check filter Inherits view_account_payment_search
view_account_third_party_check_operations_tree account.check.operations.list account.payment list New
view_account_third_party_check_tree account.check.list l10n_latam.check field Inherits view_account_own_check_tree
view_l10n_latam_payment_mass_transfer_form l10n_latam.payment.mass.transfer.form l10n_latam.payment.mass.transfer form New
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)

New fields (0)

No new fields.

Public methods (1)
  • button_draft(self)

New fields (1)
  • l10n_latam_check_ids One2many → l10n_latam.check
    string='Checks' args: 'l10n_latam.check', 'outstanding_line_id'
Public methods (0)

No public methods.

New fields (4)
  • amount Monetary
    compute='_compute_amount' readonly=False store=True
  • l10n_latam_check_warning_msg Text
    compute='_compute_l10n_latam_check_warning_msg'
  • l10n_latam_move_check_ids Many2many → l10n_latam.check
    column1='payment_id' column2='check_id' comodel_name='l10n_latam.check' copy=False relation='l10n_latam_check_account_payment_rel' required=True string='Checks Operations'
  • l10n_latam_new_check_ids One2many → l10n_latam.check
    string='Checks' args: 'l10n_latam.check', 'payment_id'
Public methods (3)
  • action_cancel(self)
  • action_draft(self)
  • action_post(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • l10n_latam_move_check_ids Many2many → l10n_latam.check
    comodel_name='l10n_latam.check' string='Checks'
  • l10n_latam_new_check_ids One2many → l10n_latam.payment.register.check
    string='New Checks' args: 'l10n_latam.payment.register.check', 'payment_register_id'
Public methods (1)
  • action_create_payments(self)

New fields (16)
  • amount Monetary
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' readonly=False store=True
  • company_id Many2one
    related='payment_id.company_id' store=True
  • currency_id Many2one
    related='payment_id.currency_id'
  • current_journal_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_current_journal' store=True
  • issue_state Selection
    compute='_compute_issue_state' selection=[('handed', 'Handed'), ('debited', 'Debited'), ('voided', 'Voided')] store=True
  • issuer_vat Char
    compute='_compute_issuer_vat' readonly=False store=True
  • name Char
    string='Number'
  • operation_ids Many2many → account.payment
    check_company=True column1='check_id' column2='payment_id' comodel_name='account.payment' readonly=True relation='l10n_latam_check_account_payment_rel'
  • original_journal_id Many2one
    related='payment_id.journal_id'
  • outstanding_line_id Many2one → account.move.line
    check_company=True readonly=True args: 'account.move.line'
  • partner_id Many2one
    related='payment_id.partner_id'
  • payment_date Date
    readonly=False required=True
  • payment_id Many2one → account.payment
    ondelete='cascade' required=True args: 'account.payment'
  • payment_method_code Char
    related='payment_id.payment_method_code'
  • payment_method_line_id Many2one
    related='payment_id.payment_method_line_id' store=True
Public methods (5)
  • action_show_journal_entry(self)
  • action_show_reconciled_move(self)
  • action_void(self)
  • button_open_check_operations(self)
    Redirect the user to the invoice(s) paid by this payment. :return: An action on account.move.
  • button_open_payment(self)

New fields (6)
  • check_ids Many2many → l10n_latam.check
    check_company=True args: 'l10n_latam.check', 'latam_tranfer_check_reltransfer_id', 'check_id'
  • communication Char
    string='Memo'
  • company_id Many2one → res.company
    compute='_compute_journal_company' args: 'res.company'
  • destination_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' domain="[('type', 'in', ('bank', 'cash')), ('id', '!=', journal_id)]" string='Destination Journal'
  • journal_id Many2one → account.journal
    check_company=True compute='_compute_journal_company' args: 'account.journal'
  • payment_date Date
    default=fields.Date.context_today required=True string='Payment Date'
Public methods (2)
  • action_create_payments(self)
  • default_get(self, fields)
    @api.model

New fields (8)
  • amount Monetary
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' readonly=False store=True
  • company_id Many2one
    related='payment_register_id.company_id'
  • currency_id Many2one
    related='payment_register_id.currency_id'
  • issuer_vat Char
    compute='_compute_issuer_vat' readonly=False store=True
  • name Char
    string='Number'
  • payment_date Date
    readonly=False required=True
  • payment_register_id Many2one → account.payment.register
    ondelete='cascade' required=True args: 'account.payment.register'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/l10n_latam_check
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting/Localizations
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSADHOC SA
MAINTAINERS
MAINTAINERSADHOC SA
COMMITTERS
COMMITTERSOdoo Translation Bot, Josse Colpaert, Xavier Morel, qdp-odoo, Laurent Smet, Anh Thao Pham (pta), Rémy Voet (ryv), Gorash, odoo, Vincent Larcin, Maximilien (malb), Gauthier Wala (gawa), Pablo Montenegro, Yosua Nicolaus, Antoine Boonen, Dylan Kiss (dyki), Arnaud Sibille, sesn-odoo, Louis (wil), mano-odoo, Julia Elizondo, Rocío Vega, Krzysztof Magusiak (krma), Martin Quinteros, bhra-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES 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_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Own Checks Management
---------------------

Extends 'Check Printing Base' module to manage own checks with more features:

* allow using own checks that are not printed but filled manually by the user
* allow to use deferred or electronic checks
  * printing is disabled
  * check number is set manually by the user
* add an optional "Check Cash-In Date" for post-dated checks (deferred payments)
* add a menu to track own checks

Third Party Checks Management
-----------------------------

Add new "Third party check Management" feature.

There are 2 main Payment Methods additions:

* New Third Party Checks:

  * Payments of this payment method represent the check you get from a customer when getting paid (from an invoice or a manual payment)

* Existing Third Party check.

  * Payments of this payment method are to track moves of the check, for eg:

    * Use a check to pay a vendor
    * Deposit the check on the bank
    * Get the check back from the bank (rejection)
    * Get the check back from the vendor (a rejection or return)
    * Transfer the check from one third party check journal to the other (one shop to another)

  * Those operations can be done with multiple checks at once

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
l10n_latam_check_view_form l10n_latam_check.view.form l10n_latam.check form New
view_account_check_calendar account.check.calendar l10n_latam.check calendar New
view_account_check_pivot account.check.calendar l10n_latam.check pivot New
view_account_own_check_tree account.check.list l10n_latam.check list New
view_account_payment_form_inherited account.payment.form.inherited account.payment group Inherits account.view_account_payment_form
view_account_payment_register_form account.payment.register.form account.payment.register group Inherits account.view_account_payment_register_form
view_account_payment_search account.check.search l10n_latam.check search New
view_account_payment_third_party_checks_search account.check.search l10n_latam.check filter Inherits view_account_payment_search
view_account_third_party_check_operations_tree account.check.operations.list account.payment list New
view_account_third_party_check_tree account.check.list l10n_latam.check field Inherits view_account_own_check_tree
view_l10n_latam_payment_mass_transfer_form l10n_latam.payment.mass.transfer.form l10n_latam.payment.mass.transfer form New
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)

New fields (0)

No new fields.

Public methods (1)
  • button_draft(self)

New fields (1)
  • l10n_latam_check_ids One2many → l10n_latam.check
    string='Checks' args: 'l10n_latam.check', 'outstanding_line_id'
Public methods (0)

No public methods.

New fields (4)
  • amount Monetary
    compute='_compute_amount' readonly=False store=True
  • l10n_latam_check_warning_msg Text
    compute='_compute_l10n_latam_check_warning_msg'
  • l10n_latam_move_check_ids Many2many → l10n_latam.check
    column1='payment_id' column2='check_id' comodel_name='l10n_latam.check' copy=False relation='l10n_latam_check_account_payment_rel' required=True string='Checks Operations'
  • l10n_latam_new_check_ids One2many → l10n_latam.check
    string='Checks' args: 'l10n_latam.check', 'payment_id'
Public methods (3)
  • action_cancel(self)
  • action_draft(self)
  • action_post(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • l10n_latam_move_check_ids Many2many → l10n_latam.check
    comodel_name='l10n_latam.check' string='Checks'
  • l10n_latam_new_check_ids One2many → l10n_latam.payment.register.check
    string='New Checks' args: 'l10n_latam.payment.register.check', 'payment_register_id'
Public methods (1)
  • action_create_payments(self)

New fields (16)
  • amount Monetary
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' readonly=False store=True
  • company_id Many2one
    related='payment_id.company_id' store=True
  • currency_id Many2one
    related='payment_id.currency_id'
  • current_journal_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_current_journal' store=True
  • issue_state Selection
    compute='_compute_issue_state' selection=[('handed', 'Handed'), ('debited', 'Debited'), ('voided', 'Voided')] store=True
  • issuer_vat Char
    compute='_compute_issuer_vat' readonly=False store=True
  • name Char
    string='Number'
  • operation_ids Many2many → account.payment
    check_company=True column1='check_id' column2='payment_id' comodel_name='account.payment' readonly=True relation='l10n_latam_check_account_payment_rel'
  • original_journal_id Many2one
    related='payment_id.journal_id'
  • outstanding_line_id Many2one → account.move.line
    check_company=True readonly=True args: 'account.move.line'
  • partner_id Many2one
    related='payment_id.partner_id'
  • payment_date Date
    readonly=False required=True
  • payment_id Many2one → account.payment
    ondelete='cascade' required=True args: 'account.payment'
  • payment_method_code Char
    related='payment_id.payment_method_code'
  • payment_method_line_id Many2one
    related='payment_id.payment_method_line_id' store=True
Public methods (5)
  • action_show_journal_entry(self)
  • action_show_reconciled_move(self)
  • action_void(self)
  • button_open_check_operations(self)
    Redirect the user to the invoice(s) paid by this payment. :return: An action on account.move.
  • button_open_payment(self)

New fields (6)
  • check_ids Many2many → l10n_latam.check
    check_company=True args: 'l10n_latam.check', 'latam_tranfer_check_reltransfer_id', 'check_id'
  • communication Char
    string='Memo'
  • company_id Many2one → res.company
    compute='_compute_journal_company' args: 'res.company'
  • destination_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' domain="[('type', 'in', ('bank', 'cash')), ('id', '!=', journal_id)]" string='Destination Journal'
  • journal_id Many2one → account.journal
    check_company=True compute='_compute_journal_company' args: 'account.journal'
  • payment_date Date
    default=fields.Date.context_today required=True string='Payment Date'
Public methods (2)
  • action_create_payments(self)
  • default_get(self, fields_list)
    @api.model

New fields (8)
  • amount Monetary
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' readonly=False store=True
  • company_id Many2one
    related='payment_register_id.company_id'
  • currency_id Many2one
    related='payment_register_id.currency_id'
  • issuer_vat Char
    compute='_compute_issuer_vat' readonly=False store=True
  • name Char
    string='Number'
  • payment_date Date
    readonly=False required=True
  • payment_register_id Many2one → account.payment.register
    ondelete='cascade' required=True args: 'account.payment.register'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/l10n_latam_check
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting/Localizations
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSADHOC SA
MAINTAINERS
MAINTAINERSADHOC SA
COMMITTERS
COMMITTERSOdoo Translation Bot, Josse Colpaert, qdp-odoo, Laurent Smet, Victor Feyens, Katherine Zaoral, Rémy Voet (ryv), Gorash, william-andre, Ignacio Cainelli, niyasraphy, Louis Wicket (wil), Pablo Montenegro, Antoine Boonen, Dylan Kiss (dyki), Arnaud Sibille, sesn-odoo, det, Julien Carion (juca), moerradi, mano-odoo, Julia Elizondo, Ian
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_check_printing
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Own Checks Management
---------------------

Extends 'Check Printing Base' module to manage own checks with more features:

* allow using own checks that are not printed but filled manually by the user
* allow to use deferred or electronic checks
  * printing is disabled
  * check number is set manually by the user
* add an optional "Check Cash-In Date" for post-dated checks (deferred payments)
* add a menu to track own checks

Third Party Checks Management
-----------------------------

Add new "Third party check Management" feature.

There are 2 main Payment Methods additions:

* New Third Party Checks:

  * Payments of this payment method represent the check you get from a customer when getting paid (from an invoice or a manual payment)

* Existing Third Party check.

  * Payments of this payment method are to track moves of the check, for eg:

    * Use a check to pay a vendor
    * Deposit the check on the bank
    * Get the check back from the bank (rejection)
    * Get the check back from the vendor (a rejection or return)
    * Transfer the check from one third party check journal to the other (one shop to another)

  * Those operations can be done with multiple checks at once

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
view_account_check_calendar account.check.calendar account.payment calendar New
view_account_check_pivot account.check.calendar account.payment pivot New
view_account_journal_tree account.journal.tree account.journal xpath Inherits account_check_printing.view_account_journal_form_inherited
view_account_own_check_tree account.check.tree account.payment field Inherits account.view_account_payment_tree
view_account_payment_form_inherited account.payment.form.inherited account.payment sheet Inherits account_check_printing.view_account_payment_form_inherited
view_account_payment_register_form account.payment.register.form account.payment.register field Inherits account.view_account_payment_register_form
view_account_payment_search account.check.search account.payment field Inherits account.view_account_payment_search
view_account_payment_third_party_checks_search account.check.search account.payment field Inherits account.view_account_payment_search
view_account_third_party_check_operations_tree account.check.operations.tree account.payment tree New
view_account_third_party_check_tree account.check.tree account.payment field Inherits view_account_own_check_tree
view_l10n_latam_payment_mass_transfer_form l10n_latam.payment.mass.transfer.form l10n_latam.payment.mass.transfer form New
Models touched (6)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • l10n_latam_manual_checks Boolean
    help='* Allows putting numbers manually\n* Enables Check Cash-In Date feature\n* Disables printing' string='Use electronic and deferred checks'
Public methods (0)

No public methods.

New fields (9)
  • l10n_latam_check_bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_l10n_latam_check_bank_id' readonly=False store=True string='Check Bank'
  • l10n_latam_check_current_journal_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_l10n_latam_check_current_journal' store=True string='Check Current Journal'
  • l10n_latam_check_id Many2one → account.payment
    check_company=True comodel_name='account.payment' copy=False string='Check'
  • l10n_latam_check_issuer_vat Char
    compute='_compute_l10n_latam_check_issuer_vat' readonly=False store=True string='Check Issuer VAT'
  • l10n_latam_check_number Char
    compute='_compute_l10n_latam_check_number' inverse='_inverse_l10n_latam_check_number'
  • l10n_latam_check_operation_ids One2many → account.payment
    comodel_name='account.payment' inverse_name='l10n_latam_check_id' readonly=True string='Check Operations'
  • l10n_latam_check_payment_date Date
    help='Date from when you can cash in the check, turn the check into cash' readonly=False string='Check Cash-In Date'
  • l10n_latam_check_warning_msg Text
    compute='_compute_l10n_latam_check_warning_msg'
  • l10n_latam_manual_checks Boolean
    related='journal_id.l10n_latam_manual_checks'
Public methods (4)
  • action_draft(self)
  • action_post(self)
  • action_unmark_sent(self)
    Unmarking as sent for electronic/deferred check would give the option to print and re-number check but it's not implemented yet for this kind of checks
  • button_open_check_operations(self)
    Redirect the user to the invoice(s) paid by this payment. :return: An action on account.move.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • l10n_latam_check_bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_l10n_latam_check_bank_id' readonly=False store=True string='Check Bank'
  • l10n_latam_check_id Many2one → account.payment
    comodel_name='account.payment' string='Check'
  • l10n_latam_check_issuer_vat Char
    compute='_compute_l10n_latam_check_issuer_vat' readonly=False store=True string='Check Issuer VAT'
  • l10n_latam_check_number Char
    string='Check Number'
  • l10n_latam_check_payment_date Date
    help='Date from when you can cash in the check, turn the check into cash' string='Check Cash-In Date'
  • l10n_latam_manual_checks Boolean
    related='journal_id.l10n_latam_manual_checks'
Public methods (0)

No public methods.

New fields (6)
  • check_ids Many2many → account.payment
    check_company=True args: 'account.payment'
  • communication Char
    string='Memo'
  • company_id Many2one → res.company
    compute='_compute_journal_company' args: 'res.company'
  • destination_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' domain="[('type', 'in', ('bank', 'cash')), ('id', '!=', journal_id)]" string='Destination Journal'
  • journal_id Many2one → account.journal
    check_company=True compute='_compute_journal_company' args: 'account.journal'
  • payment_date Date
    default=fields.Date.context_today required=True string='Payment Date'
Public methods (2)
  • action_create_payments(self)
  • default_get(self, fields_list)
    @api.model
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/l10n_latam_check
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting/Localizations
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSADHOC SA
MAINTAINERS
MAINTAINERSADHOC SA
COMMITTERS
COMMITTERSKatherine Zaoral, Ignacio Cainelli, Nshimiyimana Séna, Pablo Montenegro, Arnaud Sibille, det, moerradi, Ian
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_check_printing
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Own Checks Management
---------------------

Extends 'Check Printing Base' module to manage own checks with more features:

* allow using own checks that are not printed but filled manually by the user
* allow to use deferred or electronic checks
  * printing is disabled
  * check number is set manually by the user
* add an optional "Check Cash-In Date" for post-dated checks (deferred payments)
* add a menu to track own checks

Third Party Checks Management
-----------------------------

Add new "Third party check Management" feature.

There are 2 main Payment Methods additions:

* New Third Party Checks:

  * Payments of this payment method represent the check you get from a customer when getting paid (from an invoice or a manual payment)

* Existing Third Party check.

  * Payments of this payment method are to track moves of the check, for eg:

    * Use a check to pay a vendor
    * Deposit the check on the bank
    * Get the check back from the bank (rejection)
    * Get the check back from the vendor (a rejection or return)
    * Transfer the check from one third party check journal to the other (one shop to another)

  * Those operations can be done with multiple checks at once

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
view_account_check_calendar account.check.calendar account.payment calendar New
view_account_check_pivot account.check.calendar account.payment pivot New
view_account_journal_tree account.journal.tree account.journal xpath Inherits account_check_printing.view_account_journal_form_inherited
view_account_own_check_tree account.check.tree account.payment field Inherits account.view_account_payment_tree
view_account_payment_form_inherited account.payment.form.inherited account.payment sheet Inherits account_check_printing.view_account_payment_form_inherited
view_account_payment_register_form account.payment.register.form account.payment.register field Inherits account.view_account_payment_register_form
view_account_payment_search account.check.search account.payment field Inherits account.view_account_payment_search
view_account_payment_third_party_checks_search account.check.search account.payment field Inherits account.view_account_payment_search
view_account_third_party_check_operations_tree account.check.operations.tree account.payment tree New
view_account_third_party_check_tree account.check.tree account.payment field Inherits view_account_own_check_tree
view_l10n_latam_payment_mass_transfer_form l10n_latam.payment.mass.transfer.form l10n_latam.payment.mass.transfer form New
Models touched (6)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • l10n_latam_manual_checks Boolean
    help='* Allows putting numbers manually\n* Enables Check Cash-In Date feature\n* Disables printing' string='Use electronic and deferred checks'
Public methods (0)

No public methods.

New fields (9)
  • l10n_latam_check_bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_l10n_latam_check_bank_id' readonly=False states={'posted': [('readonly', True)], 'cancel': [('readonly', True)]} store=True string='Check Bank'
  • l10n_latam_check_current_journal_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_l10n_latam_check_current_journal' store=True string='Check Current Journal'
  • l10n_latam_check_id Many2one → account.payment
    check_company=True comodel_name='account.payment' copy=False readonly=True states={'draft': [('readonly', False)]} string='Check'
  • l10n_latam_check_issuer_vat Char
    compute='_compute_l10n_latam_check_issuer_vat' readonly=False states={'posted': [('readonly', True)], 'cancel': [('readonly', True)]} store=True string='Check Issuer VAT'
  • l10n_latam_check_number Char
    compute='_compute_l10n_latam_check_number' inverse='_inverse_l10n_latam_check_number'
  • l10n_latam_check_operation_ids One2many → account.payment
    comodel_name='account.payment' inverse_name='l10n_latam_check_id' readonly=True string='Check Operations'
  • l10n_latam_check_payment_date Date
    help='Date from when you can cash in the check, turn the check into cash' readonly=True states={'draft': [('readonly', False)]} string='Check Cash-In Date'
  • l10n_latam_check_warning_msg Text
    compute='_compute_l10n_latam_check_warning_msg'
  • l10n_latam_manual_checks Boolean
    related='journal_id.l10n_latam_manual_checks'
Public methods (5)
  • action_draft(self)
  • action_post(self)
  • action_unmark_sent(self)
    Unmarking as sent for electronic/deferred check would give the option to print and re-number check but it's not implemented yet for this kind of checks
  • button_open_check_operations(self)
    Redirect the user to the invoice(s) paid by this payment. :return: An action on account.move.
  • name_get(self)
    Add check number to display_name on check_id m2o field

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • l10n_latam_check_bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_l10n_latam_check_bank_id' readonly=False store=True string='Check Bank'
  • l10n_latam_check_id Many2one → account.payment
    comodel_name='account.payment' string='Check'
  • l10n_latam_check_issuer_vat Char
    compute='_compute_l10n_latam_check_issuer_vat' readonly=False store=True string='Check Issuer VAT'
  • l10n_latam_check_number Char
    string='Check Number'
  • l10n_latam_check_payment_date Date
    help='Date from when you can cash in the check, turn the check into cash' string='Check Cash-In Date'
  • l10n_latam_manual_checks Boolean
    related='journal_id.l10n_latam_manual_checks'
Public methods (0)

No public methods.

New fields (6)
  • check_ids Many2many → account.payment
    args: 'account.payment'
  • communication Char
    string='Memo'
  • company_id Many2one → res.company
    compute='_compute_journal_company' args: 'res.company'
  • destination_journal_id Many2one → account.journal
    comodel_name='account.journal' domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id), ('id', '!=', journal_id)]" string='Destination Journal'
  • journal_id Many2one → account.journal
    compute='_compute_journal_company' args: 'account.journal'
  • payment_date Date
    default=fields.Date.context_today required=True string='Payment Date'
Public methods (2)
  • action_create_payments(self)
  • default_get(self, fields_list)
    @api.model