Pos Split Invoice

pos_order_split_invoice
REPOSITORY
REPOSITORYOCA/pos
GIT
GIThttps://github.com/OCA/pos.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/pos/tree/17.0/pos_order_split_invoice
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Dixmit, INVITU
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Dixmit, INVITU
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/pos
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module would allow use to split a pos.order in two moves.

The first one will be payed inside the PoS Order, and the second one
will be payed after by this secondary partner.

This approach might appear in several cases, mainly on co-payments
(Medical centers, Pharmacies...)

The pricelists created with split method shouldn't be used on Sale Orders,
as they are only supported with pos orders made in the pos UI.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
account_move_form_view account.move field Inherits account.view_move_form
product_pricelist_form_view product.pricelist group Inherits product.product_pricelist_view
product_pricelist_item_form_view product.pricelist.item field Inherits product.product_pricelist_item_form_view
view_pos_pos_form pos.order field Inherits point_of_sale.view_pos_pos_form
Models touched (6)

New fields (2)
  • splitting_order_id Many2one → pos.order
    readonly=True args: 'pos.order'
  • splitting_partner_id Many2one → res.partner
    readonly=True args: 'res.partner'
Public methods (0)

No public methods.

New fields (2)
  • splitting_move_id Many2one → account.move
    readonly=True args: 'account.move'
  • splitting_partner_id Many2one → res.partner
    readonly=True args: 'res.partner'
Public methods (0)

No public methods.

New fields (1)
  • split_invoice_amount Float
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • split_invoice_partner_id Many2one → res.partner
    tracking=True args: 'res.partner'
Public methods (0)

No public methods.

New fields (5)
  • compute_price Selection
    ondelete={'split': 'set default'} selection_add=[('split', 'Split Invoice')]
  • split_base Selection
    default='list_price' help='Base price for computation.\nSales Price: The base price will be the Sales Price.\nCost Price: The base price will be the cost price.\nOther Pricelist: Computation of the base price based on another Pricelist.' required=True selection=[('list_price', 'Sales Price'), ('standard_price', 'Cost'), ('pricelist', 'Other Pricelist')] string='Split amount Based on'
  • split_base_pricelist_id Many2one → product.pricelist
    check_company=True args: 'product.pricelist', 'Other Pricelist'
  • split_invoice_partner_id Many2one → res.partner
    readonly=True related='pricelist_id.split_invoice_partner_id' args: 'res.partner'
  • split_percentage Float
    help='Percentage payed by the splitting partner'
Public methods (0)

No public methods.