From eded82794cf636f328bd41631fe768946a728b00 Mon Sep 17 00:00:00 2001 From: Carlos Dauden Date: Wed, 28 Mar 2018 12:10:44 +0200 Subject: [PATCH 01/12] [IMP] contract_variable_qty_timesheet: New module --- contract_variable_qty_timesheet/README.rst | 68 ++++++++++++++++++ contract_variable_qty_timesheet/__init__.py | 1 + .../__manifest__.py | 20 ++++++ .../data/contract_line_qty_formula_data.xml | 44 ++++++++++++ .../i18n/contract_variable_qty_timesheet.pot | 30 ++++++++ contract_variable_qty_timesheet/i18n/es.po | 33 +++++++++ contract_variable_qty_timesheet/i18n/fr.po | 34 +++++++++ contract_variable_qty_timesheet/i18n/zh.po | 34 +++++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes 9 files changed, 264 insertions(+) create mode 100644 contract_variable_qty_timesheet/README.rst create mode 100644 contract_variable_qty_timesheet/__init__.py create mode 100644 contract_variable_qty_timesheet/__manifest__.py create mode 100644 contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml create mode 100644 contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot create mode 100644 contract_variable_qty_timesheet/i18n/es.po create mode 100644 contract_variable_qty_timesheet/i18n/fr.po create mode 100644 contract_variable_qty_timesheet/i18n/zh.po create mode 100644 contract_variable_qty_timesheet/static/description/icon.png diff --git a/contract_variable_qty_timesheet/README.rst b/contract_variable_qty_timesheet/README.rst new file mode 100644 index 0000000000..4206a323ad --- /dev/null +++ b/contract_variable_qty_timesheet/README.rst @@ -0,0 +1,68 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl + :alt: License: AGPL-3 + +=============================== +Contract Variable Qty Timesheet +=============================== + +This module extends the functionality of contract_variable_quantity adding +several variable quantity formulas to allow to invoice lines from Timesheet +(Analytic Lines) + +Usage +===== + +To use this module, you need to: + +#. Go to Invoicing > Sales > Contracts and select or create a new contract. +#. Check *Generate recurring invoices automatically*. +#. Add a new recurring invoicing line. +#. Select "Variable quantity" in column "Qty. type". +#. Select "Project Timesheets", "Tasks Timesheets" or "Analytic Same Product" + depending on your need. + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/110/11.0 + + +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 smash it by providing detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* `Tecnativa `_: + * Carlos Dauden + +Do not contact contributors directly about support or help with technical issues. + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +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. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/contract_variable_qty_timesheet/__init__.py b/contract_variable_qty_timesheet/__init__.py new file mode 100644 index 0000000000..ef5ae3587f --- /dev/null +++ b/contract_variable_qty_timesheet/__init__.py @@ -0,0 +1 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). diff --git a/contract_variable_qty_timesheet/__manifest__.py b/contract_variable_qty_timesheet/__manifest__.py new file mode 100644 index 0000000000..1071b7d73c --- /dev/null +++ b/contract_variable_qty_timesheet/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2018 Tecnativa - Carlos Dauden +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + 'name': 'Contract Variable Qty Timesheet', + 'summary': 'Add formula to invoice ', + 'version': '11.0.1.0.0', + 'category': 'Contract Management', + 'website': 'https://github.com/oca/contract', + 'author': 'Tecnativa, ' + 'Odoo Community Association (OCA)', + 'license': 'AGPL-3', + 'installable': True, + 'depends': [ + 'contract_variable_quantity', + 'hr_timesheet', + ], + 'data': [ + 'data/contract_line_qty_formula_data.xml', + ], +} diff --git a/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml b/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml new file mode 100644 index 0000000000..0b83b49296 --- /dev/null +++ b/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml @@ -0,0 +1,44 @@ + + + + + + Project Timesheets + group = env['account.analytic.line'].read_group([ + ('account_id', '=', contract.id), + ('product_id', '=', False), + ('project_id', '!=', False), + ('date', '>=', line.date_from), + ('date', '<=', line.date_to), +], fields=['unit_amount'], groupby=[]) +result = group and group[0]['unit_amount'] or 0.0 + + + + + Task Timesheets + group = env['account.analytic.line'].read_group([ + ('account_id', '=', contract.id), + ('product_id', '=', False), + ('task_id', '!=', False), + ('date', '>=', line.date_from), + ('date', '<=', line.date_to), +], fields=['unit_amount'], groupby=[]) +result = group and group[0]['unit_amount'] or 0.0 + + + + + Analytic Same Product + group = env['account.analytic.line'].read_group([ + ('account_id', '=', contract.id), + ('product_id', '=', line.product_id.id), + ('date', '>=', line.date_from), + ('date', '<=', line.date_to), +], fields=['unit_amount'], groupby=[]) +result = group and group[0]['unit_amount'] or 0.0 + + + + diff --git a/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot b/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot new file mode 100644 index 0000000000..d4d87538a5 --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "" + diff --git a/contract_variable_qty_timesheet/i18n/es.po b/contract_variable_qty_timesheet/i18n/es.po new file mode 100644 index 0000000000..7281d4ce1c --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/es.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-29 11:13+0200\n" +"PO-Revision-Date: 2018-03-29 11:21+0200\n" +"Last-Translator: Carlos Dauden \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "Analítica mismo producto" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "Partes de horas de proyectos" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "Partes de horas de tareas" diff --git a/contract_variable_qty_timesheet/i18n/fr.po b/contract_variable_qty_timesheet/i18n/fr.po new file mode 100644 index 0000000000..4b87abfdd7 --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/fr.po @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +# Translators: +# Quentin THEURET , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-06 21:09+0000\n" +"PO-Revision-Date: 2018-04-06 21:09+0000\n" +"Last-Translator: Quentin THEURET , 2018\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "Même produit analytique" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "Feuilles de temps du projet" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "Feuille de temps de la tâche" diff --git a/contract_variable_qty_timesheet/i18n/zh.po b/contract_variable_qty_timesheet/i18n/zh.po new file mode 100644 index 0000000000..95285088b2 --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/zh.po @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +# Translators: +# DIT INTL , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-27 01:12+0000\n" +"PO-Revision-Date: 2018-04-27 01:12+0000\n" +"Last-Translator: DIT INTL , 2018\n" +"Language-Team: Chinese (https://www.transifex.com/oca/teams/23907/zh/)\n" +"Language: zh\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "分析同一产品" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "项目时间表" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "任务时间表" diff --git a/contract_variable_qty_timesheet/static/description/icon.png b/contract_variable_qty_timesheet/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From 085a1492a6679d5777e2b0ffec9d5fd49dbb397e Mon Sep 17 00:00:00 2001 From: Sergio Zanchetta Date: Sun, 23 Dec 2018 23:09:15 +0000 Subject: [PATCH 02/12] Added translation using Weblate (Italian) Currently translated at 66.7% (2 of 3 strings) Translation: contract-11.0/contract-11.0-contract_variable_qty_timesheet Translate-URL: https://translation.odoo-community.org/projects/contract-11-0/contract-11-0-contract_variable_qty_timesheet/it/ --- contract_variable_qty_timesheet/i18n/it.po | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 contract_variable_qty_timesheet/i18n/it.po diff --git a/contract_variable_qty_timesheet/i18n/it.po b/contract_variable_qty_timesheet/i18n/it.po new file mode 100644 index 0000000000..f0f3226380 --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/it.po @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2018-12-24 23:58+0000\n" +"Last-Translator: Sergio Zanchetta \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.3\n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "Fogli ore progetto" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "Fogli ore attività" From e1568017ab7615ec5160809224a7d6e7ad8d3a9b Mon Sep 17 00:00:00 2001 From: Maria Sparenberg Date: Mon, 14 Jan 2019 12:39:31 +0000 Subject: [PATCH 03/12] Added translation using Weblate (German) Currently translated at 100.0% (3 of 3 strings) Translation: contract-11.0/contract-11.0-contract_variable_qty_timesheet Translate-URL: https://translation.odoo-community.org/projects/contract-11-0/contract-11-0-contract_variable_qty_timesheet/de/ --- contract_variable_qty_timesheet/i18n/de.po | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 contract_variable_qty_timesheet/i18n/de.po diff --git a/contract_variable_qty_timesheet/i18n/de.po b/contract_variable_qty_timesheet/i18n/de.po new file mode 100644 index 0000000000..4b09653ee0 --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/de.po @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-03-07 15:53+0000\n" +"Last-Translator: Maria Sparenberg \n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.4\n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "Gleiches Produkt" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "Projekt-Zeiterfassungen" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "Aufgaben-Zeiterfassungen" From 2f5ccb69d4922c9c205af3ed5e175c18e4aeb543 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Fri, 22 Nov 2019 00:42:02 +0100 Subject: [PATCH 04/12] [MIG] contract_variable_qty_timesheet: Migration to 12.0 * Standard procedure * README by fragments * Promoted to Production/Stable and declared maintainers * Code adapted to v12 * Tests added --- contract_variable_qty_timesheet/README.rst | 83 +++- .../__manifest__.py | 5 +- .../data/contract_line_qty_formula_data.xml | 19 +- .../i18n/contract_variable_qty_timesheet.pot | 2 +- .../readme/CONTRIBUTORS.rst | 4 + .../readme/DESCRIPTION.rst | 3 + .../readme/USAGE.rst | 8 + .../static/description/index.html | 440 ++++++++++++++++++ .../tests/__init__.py | 3 + .../test_contract_variable_qty_timesheet.py | 96 ++++ 10 files changed, 627 insertions(+), 36 deletions(-) create mode 100644 contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst create mode 100644 contract_variable_qty_timesheet/readme/DESCRIPTION.rst create mode 100644 contract_variable_qty_timesheet/readme/USAGE.rst create mode 100644 contract_variable_qty_timesheet/static/description/index.html create mode 100644 contract_variable_qty_timesheet/tests/__init__.py create mode 100644 contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py diff --git a/contract_variable_qty_timesheet/README.rst b/contract_variable_qty_timesheet/README.rst index 4206a323ad..8acf44fb15 100644 --- a/contract_variable_qty_timesheet/README.rst +++ b/contract_variable_qty_timesheet/README.rst @@ -1,14 +1,38 @@ -.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png - :target: https://www.gnu.org/licenses/agpl - :alt: License: AGPL-3 - =============================== Contract Variable Qty Timesheet =============================== +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png + :target: https://odoo-community.org/page/development-status + :alt: Production/Stable +.. |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/12.0/contract_variable_qty_timesheet + :alt: OCA/contract +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract_variable_qty_timesheet + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/110/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + This module extends the functionality of contract_variable_quantity adding several variable quantity formulas to allow to invoice lines from Timesheet -(Analytic Lines) +(Analytic Lines). + +**Table of contents** + +.. contents:: + :local: Usage ===== @@ -22,47 +46,56 @@ To use this module, you need to: #. Select "Project Timesheets", "Tasks Timesheets" or "Analytic Same Product" depending on your need. - -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/110/11.0 - - 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 smash it by providing detailed and welcomed feedback. +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 smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= -Images ------- +Authors +~~~~~~~ -* Odoo Community Association: `Icon `_. +* Tecnativa Contributors ------------- +~~~~~~~~~~~~ * `Tecnativa `_: + * Carlos Dauden + * Pedro M. Baeza -Do not contact contributors directly about support or help with technical issues. +Maintainers +~~~~~~~~~~~ -Maintainer ----------- +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - 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. -To contribute to this module, please visit https://odoo-community.org. +.. |maintainer-carlosdauden| image:: https://github.com/carlosdauden.png?size=40px + :target: https://github.com/carlosdauden + :alt: carlosdauden +.. |maintainer-pedrobaeza| image:: https://github.com/pedrobaeza.png?size=40px + :target: https://github.com/pedrobaeza + :alt: pedrobaeza + +Current `maintainers `__: + +|maintainer-carlosdauden| |maintainer-pedrobaeza| + +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_variable_qty_timesheet/__manifest__.py b/contract_variable_qty_timesheet/__manifest__.py index 1071b7d73c..3503e440bc 100644 --- a/contract_variable_qty_timesheet/__manifest__.py +++ b/contract_variable_qty_timesheet/__manifest__.py @@ -1,15 +1,17 @@ # Copyright 2018 Tecnativa - Carlos Dauden +# Copyright 2019 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { 'name': 'Contract Variable Qty Timesheet', 'summary': 'Add formula to invoice ', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'category': 'Contract Management', 'website': 'https://github.com/oca/contract', 'author': 'Tecnativa, ' 'Odoo Community Association (OCA)', 'license': 'AGPL-3', 'installable': True, + 'development_status': 'Production/Stable', 'depends': [ 'contract_variable_quantity', 'hr_timesheet', @@ -17,4 +19,5 @@ 'data': [ 'data/contract_line_qty_formula_data.xml', ], + 'maintainers': ['carlosdauden', 'pedrobaeza'], } diff --git a/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml b/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml index 0b83b49296..213d107499 100644 --- a/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml +++ b/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml @@ -1,16 +1,17 @@ Project Timesheets group = env['account.analytic.line'].read_group([ - ('account_id', '=', contract.id), + ('account_id', '=', line.analytic_account_id.id), ('product_id', '=', False), ('project_id', '!=', False), - ('date', '>=', line.date_from), - ('date', '<=', line.date_to), + ('date', '>=', period_first_date), + ('date', '<=', period_last_date), ], fields=['unit_amount'], groupby=[]) result = group and group[0]['unit_amount'] or 0.0 @@ -19,11 +20,11 @@ result = group and group[0]['unit_amount'] or 0.0 Task Timesheets group = env['account.analytic.line'].read_group([ - ('account_id', '=', contract.id), + ('account_id', '=', line.analytic_account_id.id), ('product_id', '=', False), ('task_id', '!=', False), - ('date', '>=', line.date_from), - ('date', '<=', line.date_to), + ('date', '>=', period_first_date), + ('date', '<=', period_last_date), ], fields=['unit_amount'], groupby=[]) result = group and group[0]['unit_amount'] or 0.0 @@ -32,10 +33,10 @@ result = group and group[0]['unit_amount'] or 0.0 Analytic Same Product group = env['account.analytic.line'].read_group([ - ('account_id', '=', contract.id), + ('account_id', '=', line.analytic_account_id.id), ('product_id', '=', line.product_id.id), - ('date', '>=', line.date_from), - ('date', '<=', line.date_to), + ('date', '>=', period_first_date), + ('date', '<=', period_last_date), ], fields=['unit_amount'], groupby=[]) result = group and group[0]['unit_amount'] or 0.0 diff --git a/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot b/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot index d4d87538a5..fb0e0363ae 100644 --- a/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot +++ b/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" diff --git a/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst b/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..e88bd67dd2 --- /dev/null +++ b/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Carlos Dauden + * Pedro M. Baeza diff --git a/contract_variable_qty_timesheet/readme/DESCRIPTION.rst b/contract_variable_qty_timesheet/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..0b238e9b73 --- /dev/null +++ b/contract_variable_qty_timesheet/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module extends the functionality of contract_variable_quantity adding +several variable quantity formulas to allow to invoice lines from Timesheet +(Analytic Lines). diff --git a/contract_variable_qty_timesheet/readme/USAGE.rst b/contract_variable_qty_timesheet/readme/USAGE.rst new file mode 100644 index 0000000000..3ca264dc04 --- /dev/null +++ b/contract_variable_qty_timesheet/readme/USAGE.rst @@ -0,0 +1,8 @@ +To use this module, you need to: + +#. Go to Invoicing > Sales > Contracts and select or create a new contract. +#. Check *Generate recurring invoices automatically*. +#. Add a new recurring invoicing line. +#. Select "Variable quantity" in column "Qty. type". +#. Select "Project Timesheets", "Tasks Timesheets" or "Analytic Same Product" + depending on your need. diff --git a/contract_variable_qty_timesheet/static/description/index.html b/contract_variable_qty_timesheet/static/description/index.html new file mode 100644 index 0000000000..b65106f896 --- /dev/null +++ b/contract_variable_qty_timesheet/static/description/index.html @@ -0,0 +1,440 @@ + + + + + + +Contract Variable Qty Timesheet + + + +
+

Contract Variable Qty Timesheet

+ + +

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

+

This module extends the functionality of contract_variable_quantity adding +several variable quantity formulas to allow to invoice lines from Timesheet +(Analytic Lines).

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to Invoicing > Sales > Contracts and select or create a new contract.
  2. +
  3. Check Generate recurring invoices automatically.
  4. +
  5. Add a new recurring invoicing line.
  6. +
  7. Select “Variable quantity” in column “Qty. type”.
  8. +
  9. Select “Project Timesheets”, “Tasks Timesheets” or “Analytic Same Product” +depending on your need.
  10. +
+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Carlos Dauden
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

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.

+

Current maintainers:

+

carlosdauden pedrobaeza

+

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_variable_qty_timesheet/tests/__init__.py b/contract_variable_qty_timesheet/tests/__init__.py new file mode 100644 index 0000000000..2bdf08124c --- /dev/null +++ b/contract_variable_qty_timesheet/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_contract_variable_qty_timesheet diff --git a/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py b/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py new file mode 100644 index 0000000000..bf08e65e6a --- /dev/null +++ b/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py @@ -0,0 +1,96 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields +from odoo.tests import common + + +class TestContractVariableQtyTimesheet(common.SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner = cls.env['res.partner'].create({'name': 'Test partner'}) + cls.analytic_account = cls.env['account.analytic.account'].create({ + 'name': 'Test analytic account'}) + cls.contract = cls.env['contract.contract'].create({ + 'name': 'Test contract', + 'partner_id': cls.partner.id}) + cls.product = cls.env['product.product'].create({ + 'name': 'Test product'}) + contract_line_vals = { + 'contract_id': cls.contract.id, + 'analytic_account_id': cls.analytic_account.id, + 'product_id': cls.product.id, + 'uom_id': cls.product.uom_id.id, + 'name': 'Test line contract', + 'recurring_interval': 1, + 'recurring_rule_type': 'monthly', + 'recurring_invoicing_type': 'pre-paid', + 'date_start': '2020-01-01', + 'recurring_next_date': '2020-01-01', + 'qty_type': 'variable', + 'qty_formula_id': cls.env.ref( + 'contract_variable_qty_timesheet.' + 'contract_line_qty_formula_project_timesheet').id, + } + cls.contract_line = cls.env['contract.line'].create( + contract_line_vals) + cls.project = cls.env['project.project'].create({ + 'name': 'Test project', + 'analytic_account_id': cls.analytic_account.id, + }) + cls.task = cls.env['project.task'].create({ + 'project_id': cls.project.id, + 'name': 'Test task', + }) + + def _contract_invoicing(self, contract): + date_ref = fields.Date.from_string('2020-01-01') + contract._recurring_create_invoice(date_ref) + return contract._get_related_invoices() + + def _create_analytic_line(self, project, task, date, product, unit_amount): + return self.env['account.analytic.line'].create({ + 'account_id': self.analytic_account.id, + 'project_id': project and project.id, + 'task_id': task and task.id, + 'name': 'Test %s %s' % (date, unit_amount), + 'date': date, + 'product_id': product and product.id, + 'unit_amount': unit_amount, + }) + + def test_project_timesheet(self): + self._create_analytic_line( + self.project, self.task, '2020-01-01', False, 3) + self._create_analytic_line( + False, False, '2020-01-01', False, 1) + invoice = self._contract_invoicing(self.contract) + self.assertEqual(len(invoice.invoice_line_ids), 1) + self.assertAlmostEqual(invoice.invoice_line_ids.quantity, 3) + + def test_task_timesheet(self): + self.contract_line.qty_formula_id = self.env.ref( + 'contract_variable_qty_timesheet.' + 'contract_line_qty_formula_task_timesheet' + ).id + self._create_analytic_line( + self.project, self.task, '2020-01-01', False, 3) + self._create_analytic_line( + self.project, False, '2020-01-01', False, 1) + invoice = self._contract_invoicing(self.contract) + self.assertEqual(len(invoice.invoice_line_ids), 1) + self.assertAlmostEqual(invoice.invoice_line_ids.quantity, 3) + + def test_same_product(self): + self.contract_line.qty_formula_id = self.env.ref( + 'contract_variable_qty_timesheet.' + 'contract_line_qty_formula_analytic_same_product' + ).id + self._create_analytic_line( + False, False, '2020-01-01', self.product, 3) + self._create_analytic_line( + self.project, False, '2020-01-01', False, 1) + invoice = self._contract_invoicing(self.contract) + self.assertEqual(len(invoice.invoice_line_ids), 1) + self.assertAlmostEqual(invoice.invoice_line_ids.quantity, 3) From 10f2a44679bd3a8866f9a0290539c93d315012d0 Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Wed, 12 Feb 2020 03:47:01 +0000 Subject: [PATCH 05/12] Added translation using Weblate (Portuguese (Brazil)) --- contract_variable_qty_timesheet/i18n/pt_BR.po | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 contract_variable_qty_timesheet/i18n/pt_BR.po diff --git a/contract_variable_qty_timesheet/i18n/pt_BR.po b/contract_variable_qty_timesheet/i18n/pt_BR.po new file mode 100644 index 0000000000..7f3be3ca3a --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/pt_BR.po @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "" From 24ebc13bd4601019baeba68df7552ede2c78e66b Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Wed, 12 Feb 2020 04:02:34 +0000 Subject: [PATCH 06/12] Translated using Weblate (Portuguese (Brazil)) Currently translated at 66.7% (2 of 3 strings) Translation: contract-12.0/contract-12.0-contract_variable_qty_timesheet Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract_variable_qty_timesheet/pt_BR/ --- contract_variable_qty_timesheet/i18n/pt_BR.po | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/contract_variable_qty_timesheet/i18n/pt_BR.po b/contract_variable_qty_timesheet/i18n/pt_BR.po index 7f3be3ca3a..75823443b9 100644 --- a/contract_variable_qty_timesheet/i18n/pt_BR.po +++ b/contract_variable_qty_timesheet/i18n/pt_BR.po @@ -6,13 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2020-02-12 05:03+0000\n" +"Last-Translator: Marcel Savegnago \n" "Language-Team: none\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.10\n" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product @@ -22,9 +24,9 @@ msgstr "" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet msgid "Project Timesheets" -msgstr "" +msgstr "Planilhas de Tempo do Projeto" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet msgid "Task Timesheets" -msgstr "" +msgstr "Planilhas de Tempo da Tarefa" From 6a94594bd3f0c68c2401e758b8c7fd02adaf582c Mon Sep 17 00:00:00 2001 From: Pedro Castro Silva Date: Mon, 17 Feb 2020 17:54:02 +0000 Subject: [PATCH 07/12] Added translation using Weblate (Portuguese) --- contract_variable_qty_timesheet/i18n/pt.po | 32 +++++++++++++++++++ contract_variable_qty_timesheet/i18n/pt_BR.po | 6 ++-- 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 contract_variable_qty_timesheet/i18n/pt.po diff --git a/contract_variable_qty_timesheet/i18n/pt.po b/contract_variable_qty_timesheet/i18n/pt.po new file mode 100644 index 0000000000..938e1c85f1 --- /dev/null +++ b/contract_variable_qty_timesheet/i18n/pt.po @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_variable_qty_timesheet +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-02-17 19:13+0000\n" +"Last-Translator: Pedro Castro Silva \n" +"Language-Team: none\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product +msgid "Analytic Same Product" +msgstr "Analítica Mesmo Produto" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet +msgid "Project Timesheets" +msgstr "Folhas de Horas de Projetos" + +#. module: contract_variable_qty_timesheet +#: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet +msgid "Task Timesheets" +msgstr "Folhas de horas de Tarefas" diff --git a/contract_variable_qty_timesheet/i18n/pt_BR.po b/contract_variable_qty_timesheet/i18n/pt_BR.po index 75823443b9..5c57ec996f 100644 --- a/contract_variable_qty_timesheet/i18n/pt_BR.po +++ b/contract_variable_qty_timesheet/i18n/pt_BR.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2020-02-12 05:03+0000\n" -"Last-Translator: Marcel Savegnago \n" +"PO-Revision-Date: 2020-06-17 01:19+0000\n" +"Last-Translator: Fernando Colus \n" "Language-Team: none\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product msgid "Analytic Same Product" -msgstr "" +msgstr "Mesmo Produto Analítico" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet From 981d5b96c761c2880d85d989e73595897705015c Mon Sep 17 00:00:00 2001 From: Fernando La Chica Date: Mon, 23 Nov 2020 16:56:51 +0100 Subject: [PATCH 08/12] [IMP] contract_variable_qty_timesheet: black, isort --- .../__manifest__.py | 30 ++--- .../data/contract_line_qty_formula_data.xml | 39 ++++--- .../test_contract_variable_qty_timesheet.py | 110 +++++++++--------- 3 files changed, 86 insertions(+), 93 deletions(-) diff --git a/contract_variable_qty_timesheet/__manifest__.py b/contract_variable_qty_timesheet/__manifest__.py index 3503e440bc..f6b7682606 100644 --- a/contract_variable_qty_timesheet/__manifest__.py +++ b/contract_variable_qty_timesheet/__manifest__.py @@ -2,22 +2,16 @@ # Copyright 2019 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { - 'name': 'Contract Variable Qty Timesheet', - 'summary': 'Add formula to invoice ', - 'version': '12.0.1.0.0', - 'category': 'Contract Management', - 'website': 'https://github.com/oca/contract', - 'author': 'Tecnativa, ' - 'Odoo Community Association (OCA)', - 'license': 'AGPL-3', - 'installable': True, - 'development_status': 'Production/Stable', - 'depends': [ - 'contract_variable_quantity', - 'hr_timesheet', - ], - 'data': [ - 'data/contract_line_qty_formula_data.xml', - ], - 'maintainers': ['carlosdauden', 'pedrobaeza'], + "name": "Contract Variable Qty Timesheet", + "summary": "Add formula to invoice ", + "version": "12.0.1.0.0", + "category": "Contract Management", + "website": "https://github.com/oca/contract", + "author": "Tecnativa, " "Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "development_status": "Production/Stable", + "depends": ["contract_variable_quantity", "hr_timesheet",], + "data": ["data/contract_line_qty_formula_data.xml",], + "maintainers": ["carlosdauden", "pedrobaeza"], } diff --git a/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml b/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml index 213d107499..6ee6d1636a 100644 --- a/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml +++ b/contract_variable_qty_timesheet/data/contract_line_qty_formula_data.xml @@ -1,12 +1,14 @@ - + - - - Project Timesheets - group = env['account.analytic.line'].read_group([ + + Project Timesheets + group = env['account.analytic.line'].read_group([ ('account_id', '=', line.analytic_account_id.id), ('product_id', '=', False), ('project_id', '!=', False), @@ -15,11 +17,13 @@ ], fields=['unit_amount'], groupby=[]) result = group and group[0]['unit_amount'] or 0.0 - - - - Task Timesheets - group = env['account.analytic.line'].read_group([ + + + Task Timesheets + group = env['account.analytic.line'].read_group([ ('account_id', '=', line.analytic_account_id.id), ('product_id', '=', False), ('task_id', '!=', False), @@ -28,11 +32,13 @@ result = group and group[0]['unit_amount'] or 0.0 ], fields=['unit_amount'], groupby=[]) result = group and group[0]['unit_amount'] or 0.0 - - - - Analytic Same Product - group = env['account.analytic.line'].read_group([ + + + Analytic Same Product + group = env['account.analytic.line'].read_group([ ('account_id', '=', line.analytic_account_id.id), ('product_id', '=', line.product_id.id), ('date', '>=', period_first_date), @@ -40,6 +46,5 @@ result = group and group[0]['unit_amount'] or 0.0 ], fields=['unit_amount'], groupby=[]) result = group and group[0]['unit_amount'] or 0.0 - - + diff --git a/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py b/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py index bf08e65e6a..5f47cfc48d 100644 --- a/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py +++ b/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py @@ -9,88 +9,82 @@ class TestContractVariableQtyTimesheet(common.SavepointCase): @classmethod def setUpClass(cls): super().setUpClass() - cls.partner = cls.env['res.partner'].create({'name': 'Test partner'}) - cls.analytic_account = cls.env['account.analytic.account'].create({ - 'name': 'Test analytic account'}) - cls.contract = cls.env['contract.contract'].create({ - 'name': 'Test contract', - 'partner_id': cls.partner.id}) - cls.product = cls.env['product.product'].create({ - 'name': 'Test product'}) + cls.partner = cls.env["res.partner"].create({"name": "Test partner"}) + cls.analytic_account = cls.env["account.analytic.account"].create( + {"name": "Test analytic account"} + ) + cls.contract = cls.env["contract.contract"].create( + {"name": "Test contract", "partner_id": cls.partner.id} + ) + cls.product = cls.env["product.product"].create({"name": "Test product"}) contract_line_vals = { - 'contract_id': cls.contract.id, - 'analytic_account_id': cls.analytic_account.id, - 'product_id': cls.product.id, - 'uom_id': cls.product.uom_id.id, - 'name': 'Test line contract', - 'recurring_interval': 1, - 'recurring_rule_type': 'monthly', - 'recurring_invoicing_type': 'pre-paid', - 'date_start': '2020-01-01', - 'recurring_next_date': '2020-01-01', - 'qty_type': 'variable', - 'qty_formula_id': cls.env.ref( - 'contract_variable_qty_timesheet.' - 'contract_line_qty_formula_project_timesheet').id, + "contract_id": cls.contract.id, + "analytic_account_id": cls.analytic_account.id, + "product_id": cls.product.id, + "uom_id": cls.product.uom_id.id, + "name": "Test line contract", + "recurring_interval": 1, + "recurring_rule_type": "monthly", + "recurring_invoicing_type": "pre-paid", + "date_start": "2020-01-01", + "recurring_next_date": "2020-01-01", + "qty_type": "variable", + "qty_formula_id": cls.env.ref( + "contract_variable_qty_timesheet." + "contract_line_qty_formula_project_timesheet" + ).id, } - cls.contract_line = cls.env['contract.line'].create( - contract_line_vals) - cls.project = cls.env['project.project'].create({ - 'name': 'Test project', - 'analytic_account_id': cls.analytic_account.id, - }) - cls.task = cls.env['project.task'].create({ - 'project_id': cls.project.id, - 'name': 'Test task', - }) + cls.contract_line = cls.env["contract.line"].create(contract_line_vals) + cls.project = cls.env["project.project"].create( + {"name": "Test project", "analytic_account_id": cls.analytic_account.id,} + ) + cls.task = cls.env["project.task"].create( + {"project_id": cls.project.id, "name": "Test task",} + ) def _contract_invoicing(self, contract): - date_ref = fields.Date.from_string('2020-01-01') + date_ref = fields.Date.from_string("2020-01-01") contract._recurring_create_invoice(date_ref) return contract._get_related_invoices() def _create_analytic_line(self, project, task, date, product, unit_amount): - return self.env['account.analytic.line'].create({ - 'account_id': self.analytic_account.id, - 'project_id': project and project.id, - 'task_id': task and task.id, - 'name': 'Test %s %s' % (date, unit_amount), - 'date': date, - 'product_id': product and product.id, - 'unit_amount': unit_amount, - }) + return self.env["account.analytic.line"].create( + { + "account_id": self.analytic_account.id, + "project_id": project and project.id, + "task_id": task and task.id, + "name": "Test {} {}".format(date, unit_amount), + "date": date, + "product_id": product and product.id, + "unit_amount": unit_amount, + } + ) def test_project_timesheet(self): - self._create_analytic_line( - self.project, self.task, '2020-01-01', False, 3) - self._create_analytic_line( - False, False, '2020-01-01', False, 1) + self._create_analytic_line(self.project, self.task, "2020-01-01", False, 3) + self._create_analytic_line(False, False, "2020-01-01", False, 1) invoice = self._contract_invoicing(self.contract) self.assertEqual(len(invoice.invoice_line_ids), 1) self.assertAlmostEqual(invoice.invoice_line_ids.quantity, 3) def test_task_timesheet(self): self.contract_line.qty_formula_id = self.env.ref( - 'contract_variable_qty_timesheet.' - 'contract_line_qty_formula_task_timesheet' + "contract_variable_qty_timesheet." + "contract_line_qty_formula_task_timesheet" ).id - self._create_analytic_line( - self.project, self.task, '2020-01-01', False, 3) - self._create_analytic_line( - self.project, False, '2020-01-01', False, 1) + self._create_analytic_line(self.project, self.task, "2020-01-01", False, 3) + self._create_analytic_line(self.project, False, "2020-01-01", False, 1) invoice = self._contract_invoicing(self.contract) self.assertEqual(len(invoice.invoice_line_ids), 1) self.assertAlmostEqual(invoice.invoice_line_ids.quantity, 3) def test_same_product(self): self.contract_line.qty_formula_id = self.env.ref( - 'contract_variable_qty_timesheet.' - 'contract_line_qty_formula_analytic_same_product' + "contract_variable_qty_timesheet." + "contract_line_qty_formula_analytic_same_product" ).id - self._create_analytic_line( - False, False, '2020-01-01', self.product, 3) - self._create_analytic_line( - self.project, False, '2020-01-01', False, 1) + self._create_analytic_line(False, False, "2020-01-01", self.product, 3) + self._create_analytic_line(self.project, False, "2020-01-01", False, 1) invoice = self._contract_invoicing(self.contract) self.assertEqual(len(invoice.invoice_line_ids), 1) self.assertAlmostEqual(invoice.invoice_line_ids.quantity, 3) From 8bd471ea05b8efbd41bc3ae24ab9061fe5d52bc9 Mon Sep 17 00:00:00 2001 From: Fernando La Chica Date: Mon, 23 Nov 2020 18:02:45 +0100 Subject: [PATCH 09/12] [MIG][13.0] contract_variable_qty_timesheet: Migration to 13.0 --- contract_variable_qty_timesheet/README.rst | 14 +++++++++----- contract_variable_qty_timesheet/__manifest__.py | 6 +++--- .../i18n/contract_variable_qty_timesheet.pot | 7 +++---- contract_variable_qty_timesheet/i18n/de.po | 2 +- .../readme/CONTRIBUTORS.rst | 4 ++++ .../static/description/index.html | 10 +++++++--- .../tests/test_contract_variable_qty_timesheet.py | 4 ++-- 7 files changed, 29 insertions(+), 18 deletions(-) diff --git a/contract_variable_qty_timesheet/README.rst b/contract_variable_qty_timesheet/README.rst index 8acf44fb15..55cd089309 100644 --- a/contract_variable_qty_timesheet/README.rst +++ b/contract_variable_qty_timesheet/README.rst @@ -14,13 +14,13 @@ Contract Variable Qty Timesheet :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/12.0/contract_variable_qty_timesheet + :target: https://github.com/OCA/contract/tree/13.0/contract_variable_qty_timesheet :alt: OCA/contract .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract_variable_qty_timesheet + :target: https://translation.odoo-community.org/projects/contract-13-0/contract-13-0-contract_variable_qty_timesheet :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/110/12.0 + :target: https://runbot.odoo-community.org/runbot/110/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -52,7 +52,7 @@ 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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -72,6 +72,10 @@ Contributors * Carlos Dauden * Pedro M. Baeza +* `Guadaltech `_: + + * Fernando La Chica + Maintainers ~~~~~~~~~~~ @@ -96,6 +100,6 @@ Current `maintainers `__: |maintainer-carlosdauden| |maintainer-pedrobaeza| -This module is part of the `OCA/contract `_ project on GitHub. +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_variable_qty_timesheet/__manifest__.py b/contract_variable_qty_timesheet/__manifest__.py index f6b7682606..19e386b7f6 100644 --- a/contract_variable_qty_timesheet/__manifest__.py +++ b/contract_variable_qty_timesheet/__manifest__.py @@ -4,14 +4,14 @@ { "name": "Contract Variable Qty Timesheet", "summary": "Add formula to invoice ", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "category": "Contract Management", "website": "https://github.com/oca/contract", "author": "Tecnativa, " "Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, "development_status": "Production/Stable", - "depends": ["contract_variable_quantity", "hr_timesheet",], - "data": ["data/contract_line_qty_formula_data.xml",], + "depends": ["contract_variable_quantity", "hr_timesheet"], + "data": ["data/contract_line_qty_formula_data.xml"], "maintainers": ["carlosdauden", "pedrobaeza"], } diff --git a/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot b/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot index fb0e0363ae..290e919b5a 100644 --- a/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot +++ b/contract_variable_qty_timesheet/i18n/contract_variable_qty_timesheet.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * contract_variable_qty_timesheet +# * contract_variable_qty_timesheet # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,4 +27,3 @@ msgstr "" #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet msgid "Task Timesheets" msgstr "" - diff --git a/contract_variable_qty_timesheet/i18n/de.po b/contract_variable_qty_timesheet/i18n/de.po index 4b09653ee0..cc574369e1 100644 --- a/contract_variable_qty_timesheet/i18n/de.po +++ b/contract_variable_qty_timesheet/i18n/de.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * contract_variable_qty_timesheet +# * contract_variable_qty_timesheet # msgid "" msgstr "" diff --git a/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst b/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst index e88bd67dd2..63697f68d1 100644 --- a/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst +++ b/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst @@ -2,3 +2,7 @@ * Carlos Dauden * Pedro M. Baeza + +* `Guadaltech `_: + + * Fernando La Chica diff --git a/contract_variable_qty_timesheet/static/description/index.html b/contract_variable_qty_timesheet/static/description/index.html index b65106f896..9404427d69 100644 --- a/contract_variable_qty_timesheet/static/description/index.html +++ b/contract_variable_qty_timesheet/static/description/index.html @@ -367,7 +367,7 @@

Contract Variable Qty Timesheet

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module extends the functionality of contract_variable_quantity adding several variable quantity formulas to allow to invoice lines from Timesheet (Analytic Lines).

@@ -401,7 +401,7 @@

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 smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -420,6 +420,10 @@

Contributors

  • Pedro M. Baeza
  • +
  • Guadaltech: +
  • @@ -431,7 +435,7 @@

    Maintainers

    promote its widespread use.

    Current maintainers:

    carlosdauden pedrobaeza

    -

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

    +

    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_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py b/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py index 5f47cfc48d..bbed59517c 100644 --- a/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py +++ b/contract_variable_qty_timesheet/tests/test_contract_variable_qty_timesheet.py @@ -36,10 +36,10 @@ def setUpClass(cls): } cls.contract_line = cls.env["contract.line"].create(contract_line_vals) cls.project = cls.env["project.project"].create( - {"name": "Test project", "analytic_account_id": cls.analytic_account.id,} + {"name": "Test project", "analytic_account_id": cls.analytic_account.id} ) cls.task = cls.env["project.task"].create( - {"project_id": cls.project.id, "name": "Test task",} + {"project_id": cls.project.id, "name": "Test task"} ) def _contract_invoicing(self, contract): From 9c7df8f02e1bfa80afc4272eb9d58ae8fcb9ebbe Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Sat, 18 Jun 2022 14:25:51 +0200 Subject: [PATCH 10/12] [13.0][ADD] copier --- contract_variable_qty_timesheet/README.rst | 15 ++++--- .../__manifest__.py | 2 +- contract_variable_qty_timesheet/i18n/pt_BR.po | 8 ++-- .../static/description/index.html | 40 ++++++++++--------- 4 files changed, 35 insertions(+), 30 deletions(-) diff --git a/contract_variable_qty_timesheet/README.rst b/contract_variable_qty_timesheet/README.rst index 55cd089309..651aea9acb 100644 --- a/contract_variable_qty_timesheet/README.rst +++ b/contract_variable_qty_timesheet/README.rst @@ -2,10 +2,13 @@ Contract Variable Qty Timesheet =============================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:5ac85c806a69d7e4ecd65ddf220774240d8f64392b79b10183460c3a01d4d572 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Contract Variable Qty Timesheet .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/contract-13-0/contract-13-0-contract_variable_qty_timesheet :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/110/13.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/contract&target_branch=13.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module extends the functionality of contract_variable_quantity adding several variable quantity formulas to allow to invoice lines from Timesheet @@ -51,7 +54,7 @@ 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 smashing it by providing a detailed and welcomed +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. diff --git a/contract_variable_qty_timesheet/__manifest__.py b/contract_variable_qty_timesheet/__manifest__.py index 19e386b7f6..6b450fb736 100644 --- a/contract_variable_qty_timesheet/__manifest__.py +++ b/contract_variable_qty_timesheet/__manifest__.py @@ -6,7 +6,7 @@ "summary": "Add formula to invoice ", "version": "13.0.1.0.0", "category": "Contract Management", - "website": "https://github.com/oca/contract", + "website": "https://github.com/OCA/contract", "author": "Tecnativa, " "Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, diff --git a/contract_variable_qty_timesheet/i18n/pt_BR.po b/contract_variable_qty_timesheet/i18n/pt_BR.po index 5c57ec996f..4df8fa1b4f 100644 --- a/contract_variable_qty_timesheet/i18n/pt_BR.po +++ b/contract_variable_qty_timesheet/i18n/pt_BR.po @@ -6,15 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2020-06-17 01:19+0000\n" -"Last-Translator: Fernando Colus \n" +"PO-Revision-Date: 2022-10-12 03:42+0000\n" +"Last-Translator: Douglas Custódio \n" "Language-Team: none\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.10\n" +"X-Generator: Weblate 4.3.2\n" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_analytic_same_product @@ -24,7 +24,7 @@ msgstr "Mesmo Produto Analítico" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_project_timesheet msgid "Project Timesheets" -msgstr "Planilhas de Tempo do Projeto" +msgstr "Apontamentos de horas do Projeto" #. module: contract_variable_qty_timesheet #: model:contract.line.qty.formula,name:contract_variable_qty_timesheet.contract_line_qty_formula_task_timesheet diff --git a/contract_variable_qty_timesheet/static/description/index.html b/contract_variable_qty_timesheet/static/description/index.html index 9404427d69..adc7a6087d 100644 --- a/contract_variable_qty_timesheet/static/description/index.html +++ b/contract_variable_qty_timesheet/static/description/index.html @@ -1,20 +1,20 @@ - + - + Contract Variable Qty Timesheet