TIP: You can type at any time to perform a new search.
Contract Split
contract_split · OCA/contract
- Repository
- OCA/contract · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Sales
- Folder size
- 0.07 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/contract
- Last tracking update
- 2026-08-07 07:47:44
- Authors
- Odoo Community Association (OCA), Foodles
- Maintainers
- Odoo Community Association (OCA), Foodles
- Committers
- Weblate, Damien Crier, OCA-git-bot, oca-ci
Code Analysis ⓘ
Views touched (2)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_contract_contract_form |
contract.contract.form | contract.contract | form | 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_idsMany2many → contract.contractcolumn1='contract_id'column2='split_contract_id'comodel_name='contract.contract'readonly=Truerelation='contract_split_contract_rel'
No public methods.
New fields (2)
-
splitted_from_contract_idMany2one → contract.contractcomodel_name='contract.contract'readonly=True -
splitted_from_line_idMany2one → contract.linecomodel_name='contract.line'readonly=True
No public methods.
New fields (4)
-
invoice_partner_idMany2one → res.partnercomodel_name='res.partner' -
main_contract_idMany2one → contract.contractcomodel_name='contract.contract' -
partner_idMany2one → res.partnercomodel_name='res.partner' -
split_line_idsOne2many → split.contract.linecomodel_name='split.contract.line'inverse_name='split_contract_id'
-
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)
-
nameText → product.productcomodel_name='product.product'readonly=Truerelated='original_contract_line_id.name' -
original_contract_line_idMany2one → contract.linecomodel_name='contract.line' -
original_qtyFloatreadonly=Truerelated='original_contract_line_id.quantity'store=False -
product_idMany2one → product.productcomodel_name='product.product'readonly=Truerelated='original_contract_line_id.product_id'store=False -
quantity_to_splitFloatdefault=0string='Quantity to move' -
split_contract_idMany2one → split.contractcomodel_name='split.contract' -
uom_idMany2one → uom.uomcomodel_name='uom.uom'readonly=Truerelated='original_contract_line_id.uom_id'store=False
No public methods.