diff --git a/README.md b/README.md index 2eef60514b..0c325f47c2 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Available addons addon | version | maintainers | summary --- | --- | --- | --- [agreement_rebate_partner_company_group](agreement_rebate_partner_company_group/) | 18.0.1.0.0 | | Rebate agreements applied to all company group members -[contract](contract/) | 18.0.2.4.0 | | Recurring - Contracts Management +[contract](contract/) | 18.0.2.4.1 | | Recurring - Contracts Management [contract_analytic_tag](contract_analytic_tag/) | 18.0.1.0.0 | victoralmau | Contract Analytic Tag [contract_forecast](contract_forecast/) | 18.0.1.0.1 | sbejaoui | Contract Forecast [contract_forecast_variable_quantity](contract_forecast_variable_quantity/) | 18.0.1.0.0 | | Contract Forecast Variable Quantity diff --git a/contract/README.rst b/contract/README.rst index a61baac273..d9075b5f5d 100644 --- a/contract/README.rst +++ b/contract/README.rst @@ -11,7 +11,7 @@ Recurring - Contracts Management !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:68f83bb4e4dde7a54beeac546d364285c4a44d7abab73c256aced1f6ae6e4e72 + !! source digest: sha256:8bf87caaab45c7753fd84be7828adf1b2667c83b0c0788beba02223780a52eab !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png diff --git a/contract/__manifest__.py b/contract/__manifest__.py index c4510b8a3c..bc8be7a299 100644 --- a/contract/__manifest__.py +++ b/contract/__manifest__.py @@ -11,7 +11,7 @@ { "name": "Recurring - Contracts Management", - "version": "18.0.2.4.0", + "version": "18.0.2.4.1", "category": "Contract Management", "license": "AGPL-3", "author": "Tecnativa, ACSONE SA/NV, Odoo Community Association (OCA)", diff --git a/contract/i18n/am.po b/contract/i18n/am.po index a56559fe2b..13dd7138f0 100644 --- a/contract/i18n/am.po +++ b/contract/i18n/am.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/ar.po b/contract/i18n/ar.po index 2cb08e849f..8f55949717 100644 --- a/contract/i18n/ar.po +++ b/contract/i18n/ar.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/bg.po b/contract/i18n/bg.po index 5d8be1210c..dd01d19f48 100644 --- a/contract/i18n/bg.po +++ b/contract/i18n/bg.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/bs.po b/contract/i18n/bs.po index 274d80829a..d273ab35fb 100644 --- a/contract/i18n/bs.po +++ b/contract/i18n/bs.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/ca.po b/contract/i18n/ca.po index 9858bd7d4b..2c419cecff 100644 --- a/contract/i18n/ca.po +++ b/contract/i18n/ca.po @@ -470,6 +470,12 @@ msgstr "Cancel·lar" msgid "Canceled" msgstr "Cancel·lat" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/ca_ES.po b/contract/i18n/ca_ES.po index 0326e4d96c..0eff6b6e3b 100644 --- a/contract/i18n/ca_ES.po +++ b/contract/i18n/ca_ES.po @@ -363,6 +363,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/contract.pot b/contract/i18n/contract.pot index 6b41d1b216..de10f3ecfa 100644 --- a/contract/i18n/contract.pot +++ b/contract/i18n/contract.pot @@ -335,6 +335,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/cs.po b/contract/i18n/cs.po index 736ac7eaef..f4c0209541 100644 --- a/contract/i18n/cs.po +++ b/contract/i18n/cs.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/da.po b/contract/i18n/da.po index c8de73d416..86866447cd 100644 --- a/contract/i18n/da.po +++ b/contract/i18n/da.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/de.po b/contract/i18n/de.po index 1d37c01f79..9d83f8149b 100644 --- a/contract/i18n/de.po +++ b/contract/i18n/de.po @@ -383,6 +383,12 @@ msgstr "Abbrechen" msgid "Canceled" msgstr "Abgebrochen" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/el_GR.po b/contract/i18n/el_GR.po index 451ef45273..a9d935ed9f 100644 --- a/contract/i18n/el_GR.po +++ b/contract/i18n/el_GR.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/en_GB.po b/contract/i18n/en_GB.po index b07d1c4a8e..2f550cb459 100644 --- a/contract/i18n/en_GB.po +++ b/contract/i18n/en_GB.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es.po b/contract/i18n/es.po index f0b74f670d..1b8286df23 100644 --- a/contract/i18n/es.po +++ b/contract/i18n/es.po @@ -395,6 +395,12 @@ msgstr "Cancelar" msgid "Canceled" msgstr "Cancelado" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_AR.po b/contract/i18n/es_AR.po index 9b2b755b22..652b5fe0bc 100644 --- a/contract/i18n/es_AR.po +++ b/contract/i18n/es_AR.po @@ -383,6 +383,12 @@ msgstr "Cancelar" msgid "Canceled" msgstr "Cancelado" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_CL.po b/contract/i18n/es_CL.po index 76ba811b70..ad2144c9b3 100644 --- a/contract/i18n/es_CL.po +++ b/contract/i18n/es_CL.po @@ -365,6 +365,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_CO.po b/contract/i18n/es_CO.po index 5e47766f5f..225fb65ee6 100644 --- a/contract/i18n/es_CO.po +++ b/contract/i18n/es_CO.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_CR.po b/contract/i18n/es_CR.po index 9f1e790876..5df7d77c3d 100644 --- a/contract/i18n/es_CR.po +++ b/contract/i18n/es_CR.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_DO.po b/contract/i18n/es_DO.po index 8e0819a49c..34658d0407 100644 --- a/contract/i18n/es_DO.po +++ b/contract/i18n/es_DO.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_EC.po b/contract/i18n/es_EC.po index 464f9dfdc6..ce553635b5 100644 --- a/contract/i18n/es_EC.po +++ b/contract/i18n/es_EC.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_MX.po b/contract/i18n/es_MX.po index d4c4895d25..900eacf487 100644 --- a/contract/i18n/es_MX.po +++ b/contract/i18n/es_MX.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_PY.po b/contract/i18n/es_PY.po index e428202aec..cd5bb301e0 100644 --- a/contract/i18n/es_PY.po +++ b/contract/i18n/es_PY.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/es_VE.po b/contract/i18n/es_VE.po index 200064a23c..917cfdb177 100644 --- a/contract/i18n/es_VE.po +++ b/contract/i18n/es_VE.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/et.po b/contract/i18n/et.po index 35b386b974..263d65c45f 100644 --- a/contract/i18n/et.po +++ b/contract/i18n/et.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/eu.po b/contract/i18n/eu.po index e2623061f4..e49b5b9308 100644 --- a/contract/i18n/eu.po +++ b/contract/i18n/eu.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/fa.po b/contract/i18n/fa.po index 86a6a274d3..c936001409 100644 --- a/contract/i18n/fa.po +++ b/contract/i18n/fa.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/fi.po b/contract/i18n/fi.po index 0fc0e80386..e8de2fb98a 100644 --- a/contract/i18n/fi.po +++ b/contract/i18n/fi.po @@ -370,6 +370,12 @@ msgstr "Peru" msgid "Canceled" msgstr "Peruttu" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/fr.po b/contract/i18n/fr.po index 0edf0589bc..b8f25d7bfd 100644 --- a/contract/i18n/fr.po +++ b/contract/i18n/fr.po @@ -478,6 +478,12 @@ msgstr "Annuler" msgid "Canceled" msgstr "Annulée" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/fr_CA.po b/contract/i18n/fr_CA.po index 37c94b777d..24140a7b0d 100644 --- a/contract/i18n/fr_CA.po +++ b/contract/i18n/fr_CA.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/fr_CH.po b/contract/i18n/fr_CH.po index 72f2fab7e5..05e32ed303 100644 --- a/contract/i18n/fr_CH.po +++ b/contract/i18n/fr_CH.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/fr_FR.po b/contract/i18n/fr_FR.po index 592d4ea606..64c4bde8bd 100644 --- a/contract/i18n/fr_FR.po +++ b/contract/i18n/fr_FR.po @@ -375,6 +375,12 @@ msgstr "Annuler" msgid "Canceled" msgstr "Annulée" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/gl.po b/contract/i18n/gl.po index ae54c36079..5f40ec5121 100644 --- a/contract/i18n/gl.po +++ b/contract/i18n/gl.po @@ -371,6 +371,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/gl_ES.po b/contract/i18n/gl_ES.po index 6795e6710d..390fd8a907 100644 --- a/contract/i18n/gl_ES.po +++ b/contract/i18n/gl_ES.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/he.po b/contract/i18n/he.po index aad3994f04..cbb09c224d 100644 --- a/contract/i18n/he.po +++ b/contract/i18n/he.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/hi_IN.po b/contract/i18n/hi_IN.po index 1f751d7dfd..5fc9570e29 100644 --- a/contract/i18n/hi_IN.po +++ b/contract/i18n/hi_IN.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/hr.po b/contract/i18n/hr.po index 90685f2c76..f7c4f0f447 100644 --- a/contract/i18n/hr.po +++ b/contract/i18n/hr.po @@ -372,6 +372,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/hr_HR.po b/contract/i18n/hr_HR.po index d9bc8f7ec3..d3f2af5f9d 100644 --- a/contract/i18n/hr_HR.po +++ b/contract/i18n/hr_HR.po @@ -369,6 +369,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/hu.po b/contract/i18n/hu.po index e12ef73fab..9b3834e9b3 100644 --- a/contract/i18n/hu.po +++ b/contract/i18n/hu.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/id.po b/contract/i18n/id.po index 359b724895..43fa5705bc 100644 --- a/contract/i18n/id.po +++ b/contract/i18n/id.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/it.po b/contract/i18n/it.po index ac36f6a66e..f0d43713bc 100644 --- a/contract/i18n/it.po +++ b/contract/i18n/it.po @@ -472,6 +472,12 @@ msgstr "Annulla" msgid "Canceled" msgstr "Annullata" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/ja.po b/contract/i18n/ja.po index 2af680f719..2c72a3f945 100644 --- a/contract/i18n/ja.po +++ b/contract/i18n/ja.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/ko.po b/contract/i18n/ko.po index b31e8ae1db..2839ffa3b0 100644 --- a/contract/i18n/ko.po +++ b/contract/i18n/ko.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/lt.po b/contract/i18n/lt.po index 207162c984..dd3d5ee32f 100644 --- a/contract/i18n/lt.po +++ b/contract/i18n/lt.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/lt_LT.po b/contract/i18n/lt_LT.po index 2f43b6c983..63826d8d0f 100644 --- a/contract/i18n/lt_LT.po +++ b/contract/i18n/lt_LT.po @@ -369,6 +369,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/lv.po b/contract/i18n/lv.po index edcf7db997..a04b3c1b86 100644 --- a/contract/i18n/lv.po +++ b/contract/i18n/lv.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/mk.po b/contract/i18n/mk.po index 4248bed571..b8bc8fb402 100644 --- a/contract/i18n/mk.po +++ b/contract/i18n/mk.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/mn.po b/contract/i18n/mn.po index c348714e40..4dda52e98b 100644 --- a/contract/i18n/mn.po +++ b/contract/i18n/mn.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/nb.po b/contract/i18n/nb.po index 922f9d75c6..1e6a6e0900 100644 --- a/contract/i18n/nb.po +++ b/contract/i18n/nb.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/nb_NO.po b/contract/i18n/nb_NO.po index 739bc84933..6416ae058a 100644 --- a/contract/i18n/nb_NO.po +++ b/contract/i18n/nb_NO.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/nl.po b/contract/i18n/nl.po index 1796dfad5c..29bbac3e6b 100644 --- a/contract/i18n/nl.po +++ b/contract/i18n/nl.po @@ -380,6 +380,12 @@ msgstr "Annuleren" msgid "Canceled" msgstr "Geannuleerd" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/nl_BE.po b/contract/i18n/nl_BE.po index c7aa65ff3c..41be039c8d 100644 --- a/contract/i18n/nl_BE.po +++ b/contract/i18n/nl_BE.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/nl_NL.po b/contract/i18n/nl_NL.po index be3e87b80f..1fa421167e 100644 --- a/contract/i18n/nl_NL.po +++ b/contract/i18n/nl_NL.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/pl.po b/contract/i18n/pl.po index 10e94e2e00..e7168f4feb 100644 --- a/contract/i18n/pl.po +++ b/contract/i18n/pl.po @@ -369,6 +369,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/pt.po b/contract/i18n/pt.po index 7b7b16abf9..4d6d55432b 100644 --- a/contract/i18n/pt.po +++ b/contract/i18n/pt.po @@ -369,6 +369,12 @@ msgstr "Cancelar" msgid "Canceled" msgstr "Cancelado" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/pt_BR.po b/contract/i18n/pt_BR.po index 987f58591f..627a807ee7 100644 --- a/contract/i18n/pt_BR.po +++ b/contract/i18n/pt_BR.po @@ -382,6 +382,12 @@ msgstr "Cancelar" msgid "Canceled" msgstr "Cancelado" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/pt_PT.po b/contract/i18n/pt_PT.po index 1bc72f3d2d..5b4d5013dd 100644 --- a/contract/i18n/pt_PT.po +++ b/contract/i18n/pt_PT.po @@ -369,6 +369,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/ro.po b/contract/i18n/ro.po index 7a8d7228cc..c50ad1a0d9 100644 --- a/contract/i18n/ro.po +++ b/contract/i18n/ro.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/ru.po b/contract/i18n/ru.po index 0bb743da01..8970736c58 100644 --- a/contract/i18n/ru.po +++ b/contract/i18n/ru.po @@ -369,6 +369,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/sk.po b/contract/i18n/sk.po index b21bbf1de6..362acb2b12 100644 --- a/contract/i18n/sk.po +++ b/contract/i18n/sk.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/sk_SK.po b/contract/i18n/sk_SK.po index 4554078b9d..cbaff02465 100644 --- a/contract/i18n/sk_SK.po +++ b/contract/i18n/sk_SK.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/sl.po b/contract/i18n/sl.po index 888d83d946..87442c5ce3 100644 --- a/contract/i18n/sl.po +++ b/contract/i18n/sl.po @@ -369,6 +369,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/sr.po b/contract/i18n/sr.po index d328fd35af..0eb691dcbd 100644 --- a/contract/i18n/sr.po +++ b/contract/i18n/sr.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/sr@latin.po b/contract/i18n/sr@latin.po index 58ab46b716..9c584064ff 100644 --- a/contract/i18n/sr@latin.po +++ b/contract/i18n/sr@latin.po @@ -369,6 +369,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/sv.po b/contract/i18n/sv.po index cac5eb2241..bccf459127 100644 --- a/contract/i18n/sv.po +++ b/contract/i18n/sv.po @@ -472,6 +472,12 @@ msgstr "Avbryt" msgid "Canceled" msgstr "Annullerad" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/th.po b/contract/i18n/th.po index e78b69b41b..9f987e42c5 100644 --- a/contract/i18n/th.po +++ b/contract/i18n/th.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/tr.po b/contract/i18n/tr.po index 0aa97117c0..3aa782179d 100644 --- a/contract/i18n/tr.po +++ b/contract/i18n/tr.po @@ -394,6 +394,12 @@ msgstr "İptal" msgid "Canceled" msgstr "İptal Edildi" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/tr_TR.po b/contract/i18n/tr_TR.po index fca63a35f4..f193d5a4f5 100644 --- a/contract/i18n/tr_TR.po +++ b/contract/i18n/tr_TR.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/uk.po b/contract/i18n/uk.po index 2a803d3b49..9712d1dca7 100644 --- a/contract/i18n/uk.po +++ b/contract/i18n/uk.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/vi.po b/contract/i18n/vi.po index f53cd986ff..1651273352 100644 --- a/contract/i18n/vi.po +++ b/contract/i18n/vi.po @@ -367,6 +367,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/vi_VN.po b/contract/i18n/vi_VN.po index bbe64ad5aa..4fb8a5e616 100644 --- a/contract/i18n/vi_VN.po +++ b/contract/i18n/vi_VN.po @@ -368,6 +368,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/zh_CN.po b/contract/i18n/zh_CN.po index adb74d733f..29adfc8784 100644 --- a/contract/i18n/zh_CN.po +++ b/contract/i18n/zh_CN.po @@ -371,6 +371,12 @@ msgstr "取消" msgid "Canceled" msgstr "已取消" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/i18n/zh_TW.po b/contract/i18n/zh_TW.po index 235b1a648f..ac10b6510a 100644 --- a/contract/i18n/zh_TW.po +++ b/contract/i18n/zh_TW.po @@ -372,6 +372,12 @@ msgstr "" msgid "Canceled" msgstr "" +#. module: contract +#. odoo-python +#: code:addons/contract/models/contract_line.py:0 +msgid "Cannot compute total value for contract line '%s': no end date is set." +msgstr "" + #. module: contract #: model:ir.model.fields,field_description:contract.field_contract_line__product_uom_category_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__product_uom_category_id diff --git a/contract/models/contract_line.py b/contract/models/contract_line.py index bbc9ccda8d..a86aa706f8 100644 --- a/contract/models/contract_line.py +++ b/contract/models/contract_line.py @@ -8,8 +8,8 @@ from dateutil.relativedelta import relativedelta -from odoo import api, fields, models -from odoo.exceptions import ValidationError +from odoo import _, api, fields, models +from odoo.exceptions import UserError, ValidationError # Months equivalent per recurrence unit (to normalise amounts to monthly) _MONTHS_PER_RULE = { @@ -345,3 +345,25 @@ def _get_quantity_to_invoice( ): self.ensure_one() return self.quantity if not self.display_type else 0.0 + + def _get_contract_line_total_value(self): + """Return the total value of this contract line over its full period. + + Raises UserError if the line has no date_end, since a + total cannot be computed without a known end date. + """ + self.ensure_one() + if not self.date_end: + raise UserError( + _( + "Cannot compute total value for contract line '%s': " + "no end date is set.", + self.display_name, + ) + ) + quantity = self._get_quantity_to_invoice( + self.date_start, + self.date_end, + self.date_start, + ) + return quantity * self.price_unit diff --git a/contract/static/description/index.html b/contract/static/description/index.html index 1e829477cd..fb6eee5180 100644 --- a/contract/static/description/index.html +++ b/contract/static/description/index.html @@ -372,7 +372,7 @@

Recurring - Contracts Management

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:68f83bb4e4dde7a54beeac546d364285c4a44d7abab73c256aced1f6ae6e4e72 +!! source digest: sha256:8bf87caaab45c7753fd84be7828adf1b2667c83b0c0788beba02223780a52eab !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module enables contracts management with recurring invoicing diff --git a/contract/tests/test_contract.py b/contract/tests/test_contract.py index 7e7029d0b8..96073b686f 100644 --- a/contract/tests/test_contract.py +++ b/contract/tests/test_contract.py @@ -10,7 +10,7 @@ from freezegun import freeze_time from odoo import Command, fields -from odoo.exceptions import ValidationError +from odoo.exceptions import UserError, ValidationError from odoo.tests import Form, common @@ -1610,3 +1610,61 @@ def test_analytic_distribution(self): self.assertEqual( new_contract_line.analytic_distribution, {str(analytic_account.id): 100} ) + + def test_get_contract_line_total_value_basic(self): + """Total value = quantity × price_unit over the full period.""" + self.acct_line.write( + { + "quantity": 3, + "price_unit": 400.0, + "date_start": "2026-01-01", + "date_end": "2026-12-31", + "recurring_next_date": "2026-01-01", + } + ) + self.assertEqual(self.acct_line._get_contract_line_total_value(), 3 * 400.0) + + def test_get_contract_line_total_value_single_unit(self): + self.acct_line.write( + { + "quantity": 1, + "price_unit": 1200.0, + "date_start": "2026-01-01", + "date_end": "2026-12-31", + "recurring_next_date": "2026-01-01", + } + ) + self.assertEqual(self.acct_line._get_contract_line_total_value(), 1200.0) + + def test_get_contract_line_total_value_zero_price(self): + self.acct_line.write( + { + "quantity": 5, + "price_unit": 0.0, + "date_start": "2026-01-01", + "date_end": "2026-06-30", + "recurring_next_date": "2026-01-01", + } + ) + self.assertEqual(self.acct_line._get_contract_line_total_value(), 0.0) + + def test_get_contract_line_total_value_no_date_end_raises(self): + """A line without date_end cannot compute a total: UserError expected.""" + line = self.env["contract.line"].new( + { + "contract_id": self.contract.id, + "product_id": self.product_1.id, + "name": "Test", + "quantity": 1, + "price_unit": 1000.0, + "date_start": to_date("2026-01-01"), + "recurring_next_date": to_date("2026-01-01"), + "recurring_interval": 1, + "recurring_rule_type": "monthly", + "recurring_invoicing_type": "pre-paid", + "uom_id": self.product_1.uom_id.id, + } + ) + line.date_end = False + with self.assertRaises(UserError): + line._get_contract_line_total_value()