Reconcile sales orders

account_reconcile_sale_order
REPOSITORY
REPOSITORYOCA/account-reconcile
GIT
GIThttps://github.com/OCA/account-reconcile.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-reconcile/tree/18.0/account_reconcile_sale_order
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Hunki Enterprises BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Hunki Enterprises BV
COMMITTERS
COMMITTERSHolger Brunn, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-reconcile
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-reconcile:
    - account_reconcile_oca
    - account_statement_base
    - account_reconcile_model_oca
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows a workflow where you don't invoice sales orders until you've received a payment.

That's useful ie for webshops with non-instant payment like wire transfer, where you might have a lot of customers not doing the payment after all, which results in extra work for cancellation of the invoices/orders involved.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
bank_statement_line_form_reconcile_view account.bank.statement.line page Inherits account_reconcile_oca.bank_statement_line_form_reconcile_view
sale_order_tree sale.order list Inherits sale.sale_order_tree
view_account_reconcile_model_form account.reconcile.model group Inherits account.view_account_reconcile_model_form
Models touched (2)

New fields (1)
  • add_sale_order_id Many2one → sale.order
    check_company=True default=False prefetch=False store=False args: 'sale.order'
Public methods (0)

No public methods.

New fields (4)
  • rule_type Selection
    ondelete={'sale_order_matching': 'cascade'} selection_add=[('sale_order_matching', 'Rule to match sales orders')]
  • sale_order_matching_payment_method_ids Many2many → payment.method
    comodel_name='payment.method' help="Set this field to restrict sales order matching to specific payment methods used on the SO's payment transaction" relation='account_reconcile_model_sale_order_payment_method_rel' string='Payment methods'
  • sale_order_matching_token_length Integer
    default=3 help="Set the minimum word length to search for. If you set this to 4, and the statement line's label is 'hello you', it will only search for 'hello', not for 'you'" string='Minimum token length'
  • sale_order_matching_token_match Boolean
    help="When this is activated, the statement line's label is split into words and if one of those words match a sales order, it is considered a match. So if the statement line's label is 'hello world', sales orders with names 'hello', 'world', 'some name containing hello', 'some name containing world' will be considered matches, in that order" string='Match tokens'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/account-reconcile
PULL REQUEST
PULL REQUEST[16.0][MIG] account_reconcile_sale_order: Migration to 16.0 (#968)