From c09989bde489a756207d2773fbc339325e0c797a Mon Sep 17 00:00:00 2001 From: Tobias Zehntner Date: Tue, 18 Nov 2025 11:49:39 +0100 Subject: [PATCH 1/4] [18.0][IMP] contract: hook for line is invoiceable --- contract/models/contract.py | 10 +--------- contract/models/contract_line.py | 9 +++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/contract/models/contract.py b/contract/models/contract.py index a3555f4f5b..18da3b8ff0 100644 --- a/contract/models/contract.py +++ b/contract/models/contract.py @@ -568,14 +568,6 @@ def _get_lines_to_invoice(self, date_ref): """ self.ensure_one() - def can_be_invoiced(contract_line): - return ( - not contract_line.is_canceled - and contract_line.recurring_next_date - and contract_line.recurring_next_date <= date_ref - and contract_line.next_period_date_start - ) - lines2invoice = previous = self.env["contract.line"] current_section = current_note = False for line in self.contract_line_ids: @@ -589,7 +581,7 @@ def can_be_invoiced(contract_line): elif line.note_invoicing_mode == "with_next_line": current_note = line elif line.is_recurring_note or not line.display_type: - if can_be_invoiced(line): + if line._can_be_invoiced(date_ref): if current_section: lines2invoice |= current_section current_section = False diff --git a/contract/models/contract_line.py b/contract/models/contract_line.py index 8337767ec4..f4ec8575d8 100644 --- a/contract/models/contract_line.py +++ b/contract/models/contract_line.py @@ -261,6 +261,15 @@ def _update_last_date_invoiced(self): } ) + def _can_be_invoiced(self, date_ref): + self.ensure_one() + return ( + not self.is_canceled + and self.recurring_next_date + and self.recurring_next_date <= date_ref + and self.next_period_date_start + ) + @api.model def get_view(self, view_id=None, view_type="form", **options): default_contract_type = self.env.context.get("default_contract_type") From fe708363c3257bf9156b30cc41946e5994cbe8fa Mon Sep 17 00:00:00 2001 From: Tobias Zehntner Date: Tue, 18 Nov 2025 11:58:57 +0100 Subject: [PATCH 2/4] [18.0][ADD] contract_line_defer: Avoid invoicing line until activated --- contract_line_defer/README.rst | 148 ++++++ contract_line_defer/__init__.py | 2 + contract_line_defer/__manifest__.py | 21 + contract_line_defer/models/__init__.py | 4 + contract_line_defer/models/contract_line.py | 37 ++ .../models/contract_recurring_mixin.py | 40 ++ contract_line_defer/models/res_company.py | 15 + .../models/res_config_settings.py | 13 + contract_line_defer/pyproject.toml | 3 + contract_line_defer/readme/CONFIGURE.md | 5 + contract_line_defer/readme/CONTEXT.md | 11 + contract_line_defer/readme/CONTRIBUTORS.md | 1 + contract_line_defer/readme/DESCRIPTION.md | 1 + contract_line_defer/readme/USAGE.md | 28 + .../contract_line_activate_wizard.xml | 14 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 495 ++++++++++++++++++ .../static/src/company_settings.png | Bin 0 -> 30963 bytes .../static/src/contract_line_edit.png | Bin 0 -> 32265 bytes .../static/src/contract_line_new.png | Bin 0 -> 47102 bytes contract_line_defer/tests/__init__.py | 1 + .../tests/test_contract_line.py | 43 ++ contract_line_defer/views/contract.xml | 64 +++ contract_line_defer/views/contract_line.xml | 30 ++ .../views/res_config_settings.xml | 20 + contract_line_defer/wizards/__init__.py | 1 + .../wizards/contract_line_activate_wizard.py | 34 ++ .../wizards/contract_line_activate_wizard.xml | 32 ++ 28 files changed, 1063 insertions(+) create mode 100644 contract_line_defer/README.rst create mode 100644 contract_line_defer/__init__.py create mode 100644 contract_line_defer/__manifest__.py create mode 100644 contract_line_defer/models/__init__.py create mode 100644 contract_line_defer/models/contract_line.py create mode 100644 contract_line_defer/models/contract_recurring_mixin.py create mode 100644 contract_line_defer/models/res_company.py create mode 100644 contract_line_defer/models/res_config_settings.py create mode 100644 contract_line_defer/pyproject.toml create mode 100644 contract_line_defer/readme/CONFIGURE.md create mode 100644 contract_line_defer/readme/CONTEXT.md create mode 100644 contract_line_defer/readme/CONTRIBUTORS.md create mode 100644 contract_line_defer/readme/DESCRIPTION.md create mode 100644 contract_line_defer/readme/USAGE.md create mode 100644 contract_line_defer/security/contract_line_activate_wizard.xml create mode 100644 contract_line_defer/static/description/icon.png create mode 100644 contract_line_defer/static/description/index.html create mode 100644 contract_line_defer/static/src/company_settings.png create mode 100644 contract_line_defer/static/src/contract_line_edit.png create mode 100644 contract_line_defer/static/src/contract_line_new.png create mode 100644 contract_line_defer/tests/__init__.py create mode 100644 contract_line_defer/tests/test_contract_line.py create mode 100644 contract_line_defer/views/contract.xml create mode 100644 contract_line_defer/views/contract_line.xml create mode 100644 contract_line_defer/views/res_config_settings.xml create mode 100644 contract_line_defer/wizards/__init__.py create mode 100644 contract_line_defer/wizards/contract_line_activate_wizard.py create mode 100644 contract_line_defer/wizards/contract_line_activate_wizard.xml diff --git a/contract_line_defer/README.rst b/contract_line_defer/README.rst new file mode 100644 index 0000000000..8ed5737b88 --- /dev/null +++ b/contract_line_defer/README.rst @@ -0,0 +1,148 @@ +=================== +Contract Line Defer +=================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:5026e9d29520acf8591e453f1a7b5d8b1c3fab840a5735bcad4a77e8e07bc944 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github + :target: https://github.com/OCA/contract/tree/18.0/contract_line_defer + :alt: OCA/contract +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/contract-18-0/contract-18-0-contract_line_defer + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/contract&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Enable to defer contract line's invoicing. If a contract line start date +is not known, it can be deferred. It will not be invoiced until manually +activated. + +**Table of contents** + +.. contents:: + :local: + +Use Cases / Context +=================== + +BUSINESS NEED: + +- Your company sells contracts which start dates are not known at the + conclusion of the sale. +- Lines which start dates are not confirmed should not be invoiced + +APPROACH: + +- This module adds a "deferred" flag on the contract line, that can be + enabled and disabled via a button +- A deferred line is not invoiced until manually activated +- A company setting allows deferring all contract lines by default + +USEFUL INFORMATION: + +- Use the module **contract_line_defer_product** when also using + contract products (module **product_contract**) + +Configuration +============= + +To configure this module, you need to: + +1. Go to *Invoicing/Accounting* > Configuration > Settings > Contract +2. Select **Defer contract line start** if you want to defer contract + lines by default. Use this setting if you sell contracts which start + dates are unknown at the conclusion of the sale. + +Usage +===== + +Optional Settings +----------------- + +1. Go to *Invoicing/Accounting* > Configuration > Settings > Contract +2. Select **Defer contract line start** if you want to defer contract + lines by default. Use this setting if you sell contracts which start + dates are unknown at the conclusion of the sale. + +|Company Settings| + +Add a contract line +------------------- + +When adding a contract line, you can select **Deferred** instead of a +start date + +|New Contract Line| + +Modify a contract line +---------------------- + +An existing contract line can be deferred and activated via a button on +the line + +|Edit Contract Line| + +Activate a contract line +------------------------ + +When activating a line, a new start (and optionally end) date can be +chosen. + +.. |Company Settings| image:: https://raw.githubusercontent.com/OCA/contract/18.0/contract_line_defer/static/src/company_settings.png +.. |New Contract Line| image:: https://raw.githubusercontent.com/OCA/contract/18.0/contract_line_defer/static/src/contract_line_new.png +.. |Edit Contract Line| image:: https://raw.githubusercontent.com/OCA/contract/18.0/contract_line_defer/static/src/contract_line_edit.png + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* ACSONE SA/NV + +Contributors +------------ + +- Tobias Zehntner tobias.zehntner@acsone.eu (ACSONE SA/NV) + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/contract `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/contract_line_defer/__init__.py b/contract_line_defer/__init__.py new file mode 100644 index 0000000000..aee8895e7a --- /dev/null +++ b/contract_line_defer/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/contract_line_defer/__manifest__.py b/contract_line_defer/__manifest__.py new file mode 100644 index 0000000000..89c26aafb9 --- /dev/null +++ b/contract_line_defer/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2025 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Contract Line Defer", + "summary": """Defer Contract Lines to avoid invoicing while start date unknown""", + "version": "18.0.1.0.0", + "license": "AGPL-3", + "author": "ACSONE SA/NV,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/contract", + "depends": [ + "contract", + ], + "data": [ + "security/contract_line_activate_wizard.xml", + "wizards/contract_line_activate_wizard.xml", + "views/contract.xml", + "views/contract_line.xml", + "views/res_config_settings.xml", + ], +} diff --git a/contract_line_defer/models/__init__.py b/contract_line_defer/models/__init__.py new file mode 100644 index 0000000000..4424a302e7 --- /dev/null +++ b/contract_line_defer/models/__init__.py @@ -0,0 +1,4 @@ +from . import contract_line +from . import res_company +from . import res_config_settings +from . import contract_recurring_mixin diff --git a/contract_line_defer/models/contract_line.py b/contract_line_defer/models/contract_line.py new file mode 100644 index 0000000000..b0531d285c --- /dev/null +++ b/contract_line_defer/models/contract_line.py @@ -0,0 +1,37 @@ +# Copyright 2025 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ContractLine(models.Model): + _inherit = "contract.line" + + def _check_recurring_next_date_recurring_invoices(self): + return super( + ContractLine, self.filtered(lambda line: not line.is_deferred) + )._check_recurring_next_date_recurring_invoices() + + @api.depends("is_deferred") + def _compute_display_name(self): + res = super()._compute_display_name() + for rec in self: + if rec.is_deferred: + rec.display_name = f"Deferred - {rec.name}" + return res + + @api.onchange("is_deferred") + def _onchange_is_deferred(self): + """ + If activating a contract line, make sure start/end dates are compatible + """ + self.ensure_one() + if not self.is_deferred: + today = fields.date.today() + if self.date_start < today: + self.date_start = today + if self.date_end and self.date_end < today: + self.date_end = False + + def _can_be_invoiced(self, date_ref): + return not self.is_deferred and super()._can_be_invoiced(date_ref) diff --git a/contract_line_defer/models/contract_recurring_mixin.py b/contract_line_defer/models/contract_recurring_mixin.py new file mode 100644 index 0000000000..282fd1686d --- /dev/null +++ b/contract_line_defer/models/contract_recurring_mixin.py @@ -0,0 +1,40 @@ +# Copyright 2025 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ContractRecurringMixin(models.AbstractModel): + _inherit = "contract.recurring.mixin" + + is_deferred = fields.Boolean( + "Deferred", help="Do not invoice this line until it is activated" + ) + + @api.model + def default_get(self, fields): + result = super().default_get(fields) + if "is_deferred" in fields: + company = ( + self.env["res.company"].browse(company_id) + if (company_id := result.get("company_id")) + else self.env.company + ) + if company.defer_contract_line_start: + result["is_deferred"] = True + return result + + def enable_deferred(self): + self.ensure_one() + self.is_deferred = True + + @api.depends("is_deferred") + def _compute_recurring_next_date(self): + """No next invoice date for deferred lines""" + res = super()._compute_recurring_next_date() + self.filtered(lambda r: r.is_deferred).update({"recurring_next_date": False}) + return res + + @api.depends("is_deferred") + def _compute_next_period_date_start(self): + return super()._compute_next_period_date_start() diff --git a/contract_line_defer/models/res_company.py b/contract_line_defer/models/res_company.py new file mode 100644 index 0000000000..dc1bbf3195 --- /dev/null +++ b/contract_line_defer/models/res_company.py @@ -0,0 +1,15 @@ +# Copyright 2025 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + defer_contract_line_start = fields.Boolean( + "Defer contract line start", + help="At creation, defer contract lines by default (i.e. do not invoice until " + "activated). Use this setting if you sell contracts which start dates are " + "unknown at the conclusion of the sale.", + ) diff --git a/contract_line_defer/models/res_config_settings.py b/contract_line_defer/models/res_config_settings.py new file mode 100644 index 0000000000..7d87fa3137 --- /dev/null +++ b/contract_line_defer/models/res_config_settings.py @@ -0,0 +1,13 @@ +# Copyright 2025 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + defer_contract_line_start = fields.Boolean( + related="company_id.defer_contract_line_start", + readonly=False, + ) diff --git a/contract_line_defer/pyproject.toml b/contract_line_defer/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/contract_line_defer/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/contract_line_defer/readme/CONFIGURE.md b/contract_line_defer/readme/CONFIGURE.md new file mode 100644 index 0000000000..cf3e14b801 --- /dev/null +++ b/contract_line_defer/readme/CONFIGURE.md @@ -0,0 +1,5 @@ +To configure this module, you need to: + +1. Go to *Invoicing/Accounting* > Configuration > Settings > Contract +1. Select **Defer contract line start** if you want to defer contract lines by default. Use this setting if you sell contracts which start dates are unknown at the conclusion of the sale. + diff --git a/contract_line_defer/readme/CONTEXT.md b/contract_line_defer/readme/CONTEXT.md new file mode 100644 index 0000000000..4805c81c6a --- /dev/null +++ b/contract_line_defer/readme/CONTEXT.md @@ -0,0 +1,11 @@ +BUSINESS NEED: +- Your company sells contracts which start dates are not known at the conclusion of the sale. +- Lines which start dates are not confirmed should not be invoiced + +APPROACH: +- This module adds a "deferred" flag on the contract line, that can be enabled and disabled via a button +- A deferred line is not invoiced until manually activated +- A company setting allows deferring all contract lines by default + +USEFUL INFORMATION: +- Use the module **contract_line_defer_product** when also using contract products (module **product_contract**) diff --git a/contract_line_defer/readme/CONTRIBUTORS.md b/contract_line_defer/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..ade36150e7 --- /dev/null +++ b/contract_line_defer/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Tobias Zehntner (ACSONE SA/NV) diff --git a/contract_line_defer/readme/DESCRIPTION.md b/contract_line_defer/readme/DESCRIPTION.md new file mode 100644 index 0000000000..ea0c9842ac --- /dev/null +++ b/contract_line_defer/readme/DESCRIPTION.md @@ -0,0 +1 @@ +Enable to defer contract line's invoicing. If a contract line start date is not known, it can be deferred. It will not be invoiced until manually activated. diff --git a/contract_line_defer/readme/USAGE.md b/contract_line_defer/readme/USAGE.md new file mode 100644 index 0000000000..1515f56bf5 --- /dev/null +++ b/contract_line_defer/readme/USAGE.md @@ -0,0 +1,28 @@ + +Optional Settings +----------------- + +1. Go to *Invoicing/Accounting* > Configuration > Settings > Contract +1. Select **Defer contract line start** if you want to defer contract lines by default. Use this setting if you sell contracts which start dates are unknown at the conclusion of the sale. + +![Company Settings](../static/src/company_settings.png) + +Add a contract line +------------------- + +When adding a contract line, you can select **Deferred** instead of a start date + +![New Contract Line](../static/src/contract_line_new.png) + +Modify a contract line +---------------------- + +An existing contract line can be deferred and activated via a button on the line + +![Edit Contract Line](../static/src/contract_line_edit.png) + +Activate a contract line +------------------------ + +When activating a line, a new start (and optionally end) date can be chosen. + diff --git a/contract_line_defer/security/contract_line_activate_wizard.xml b/contract_line_defer/security/contract_line_activate_wizard.xml new file mode 100644 index 0000000000..e6847cbdd8 --- /dev/null +++ b/contract_line_defer/security/contract_line_activate_wizard.xml @@ -0,0 +1,14 @@ + + + + + access_contract_line_activate_wizard_user + + + + + + + + diff --git a/contract_line_defer/static/description/icon.png b/contract_line_defer/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/contract_line_defer/static/description/index.html b/contract_line_defer/static/description/index.html new file mode 100644 index 0000000000..53ea1064c5 --- /dev/null +++ b/contract_line_defer/static/description/index.html @@ -0,0 +1,495 @@ + + + + + +Contract Line Defer + + + +
+

Contract Line Defer

+ + +

Beta License: AGPL-3 OCA/contract Translate me on Weblate Try me on Runboat

+

Enable to defer contract line’s invoicing. If a contract line start date +is not known, it can be deferred. It will not be invoiced until manually +activated.

+

Table of contents

+ +
+

Use Cases / Context

+

BUSINESS NEED:

+
    +
  • Your company sells contracts which start dates are not known at the +conclusion of the sale.
  • +
  • Lines which start dates are not confirmed should not be invoiced
  • +
+

APPROACH:

+
    +
  • This module adds a “deferred” flag on the contract line, that can be +enabled and disabled via a button
  • +
  • A deferred line is not invoiced until manually activated
  • +
  • A company setting allows deferring all contract lines by default
  • +
+

USEFUL INFORMATION:

+
    +
  • Use the module contract_line_defer_product when also using +contract products (module product_contract)
  • +
+
+
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to Invoicing/Accounting > Configuration > Settings > Contract
  2. +
  3. Select Defer contract line start if you want to defer contract +lines by default. Use this setting if you sell contracts which start +dates are unknown at the conclusion of the sale.
  4. +
+
+
+

Usage

+
+

Optional Settings

+
    +
  1. Go to Invoicing/Accounting > Configuration > Settings > Contract
  2. +
  3. Select Defer contract line start if you want to defer contract +lines by default. Use this setting if you sell contracts which start +dates are unknown at the conclusion of the sale.
  4. +
+

Company Settings

+
+
+

Add a contract line

+

When adding a contract line, you can select Deferred instead of a +start date

+

New Contract Line

+
+
+

Modify a contract line

+

An existing contract line can be deferred and activated via a button on +the line

+

Edit Contract Line

+
+
+

Activate a contract line

+

When activating a line, a new start (and optionally end) date can be +chosen.

+
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • ACSONE SA/NV
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/contract project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/contract_line_defer/static/src/company_settings.png b/contract_line_defer/static/src/company_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..92aa42de5408476b8a5dd1f0dcbcb16bc732b243 GIT binary patch literal 30963 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%0Atmk2%n8P&hM=AgS literal 0 HcmV?d00001 diff --git a/contract_line_defer/static/src/contract_line_edit.png b/contract_line_defer/static/src/contract_line_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..19ecfe37a0f1685f5d4ffc0079363f2901e48be7 GIT binary patch literal 32265 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 X)kFy7Qo#3uARt5pB>78twLSkAB5--b literal 0 HcmV?d00001 diff --git a/contract_line_defer/static/src/contract_line_new.png b/contract_line_defer/static/src/contract_line_new.png new file mode 100644 index 0000000000000000000000000000000000000000..4d59d25fc3862f92c89a6fc02ce413f71410feb6 GIT binary patch literal 47102 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�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 b3EabFGK+t@4<+vvm_N`4-7CEN&x`*BEQ0c- literal 0 HcmV?d00001 diff --git a/contract_line_defer/tests/__init__.py b/contract_line_defer/tests/__init__.py new file mode 100644 index 0000000000..d718d2fa21 --- /dev/null +++ b/contract_line_defer/tests/__init__.py @@ -0,0 +1 @@ +from . import test_contract_line diff --git a/contract_line_defer/tests/test_contract_line.py b/contract_line_defer/tests/test_contract_line.py new file mode 100644 index 0000000000..ab0b0f622a --- /dev/null +++ b/contract_line_defer/tests/test_contract_line.py @@ -0,0 +1,43 @@ +# Copyright 2025 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests import Form + +from odoo.addons.base.tests.common import BaseCommon +from odoo.addons.contract.tests.test_contract import TestContractBase + + +class Test(BaseCommon, TestContractBase): + """ + Tests for contract.line + """ + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.company = cls.env.company + + def _enable_default_setting(self): + self.company.write({"defer_contract_line_start": True}) + + def test_contract_line_defer(self): + line1 = self.contract2.contract_line_ids + line2 = line1.copy() + self.assertEqual(len(self.contract2.contract_line_ids), 2) + + # One line is deferred + line1.enable_deferred() + self.assertTrue(line1.is_deferred) + + # One line is invoiced + self.contract2.recurring_create_invoice() + invoice = self.contract2._get_related_invoices() + self.assertNotIn(line1, invoice.invoice_line_ids.mapped("contract_line_id")) + self.assertIn(line2, invoice.invoice_line_ids.mapped("contract_line_id")) + + def test_contract_line_deferred_default(self): + self._enable_default_setting() + contract_form = Form(self.contract) + with contract_form.contract_line_ids.new() as contract_line_form: + contract_line_form.product_id = self.product_1 + self.assertTrue(contract_line_form.is_deferred) diff --git a/contract_line_defer/views/contract.xml b/contract_line_defer/views/contract.xml new file mode 100644 index 0000000000..5dcb78187e --- /dev/null +++ b/contract_line_defer/views/contract.xml @@ -0,0 +1,64 @@ + + + + + contract.contract + + + + is_deferred + + + + is_deferred + + + + +