Contract Split

contract_split
REPOSITORY
REPOSITORYOCA/contract
GIT
GIThttps://github.com/OCA/contract.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/contract/tree/14.0/contract_split
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Foodles
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Foodles
COMMITTERS
COMMITTERSDamien Crier, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/contract
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/contract:
    - contract
odoo/odoo:
    - base
    - account
    - base_setup
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_contract_contract_form contract.contract.form contract.contract header Inherits contract.contract_contract_form_view
view_split_contract_form split.contract.form split.contract form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (4)

New fields (1)
  • original_contract_ids Many2many → contract.contract
    column1='contract_id' column2='split_contract_id' comodel_name='contract.contract' readonly=True relation='contract_split_contract_rel'
Public methods (0)

No public methods.

New fields (2)
  • splitted_from_contract_id Many2one → contract.contract
    comodel_name='contract.contract' readonly=True
  • splitted_from_line_id Many2one → contract.line
    comodel_name='contract.line' readonly=True
Public methods (0)

No public methods.

New fields (4)
  • invoice_partner_id Many2one → res.partner
    comodel_name='res.partner'
  • main_contract_id Many2one → contract.contract
    comodel_name='contract.contract'
  • partner_id Many2one → res.partner
    comodel_name='res.partner'
  • split_line_ids One2many → split.contract.line
    comodel_name='split.contract.line' inverse_name='split_contract_id'
Public methods (2)
  • action_split_contract(self)
    If lines exists in the wizard, create a new contract <CONTRACT> For all lines that are kept in the wizard lines : - check if it needs to be split or only moved to the new contract <CONTRACT> - if original_qty == qty_to_split: just move the contract_id - if original_qty < qty_to_split: split the line (eg: duplicate and change qties) - if qty_to_split == 0: do nothing
  • default_get(self, fields) -> dict
    @api.model

New fields (7)
  • name Text → product.product
    comodel_name='product.product' readonly=True related='original_contract_line_id.name'
  • original_contract_line_id Many2one → contract.line
    comodel_name='contract.line'
  • original_qty Float
    readonly=True related='original_contract_line_id.quantity' store=False
  • product_id Many2one → product.product
    comodel_name='product.product' readonly=True related='original_contract_line_id.product_id' store=False
  • quantity_to_split Float
    default=0 string='Quantity to move'
  • split_contract_id Many2one → split.contract
    comodel_name='split.contract'
  • uom_id Many2one → uom.uom
    comodel_name='uom.uom' readonly=True related='original_contract_line_id.uom_id' store=False
Public methods (0)

No public methods.