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
+
+
+
+
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
+
+
+
+
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.
+
+
+
+
+
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.
+
+
+
+
+
+
+
+- Tecnativa:
+- Carlos Dauden
+- Pedro M. Baeza
+
+
+
+
+
+
+
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.
+
Current maintainers:
+
+
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. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
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 @@
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 @@
Pedro M. Baeza
+
Guadaltech:
+
@@ -431,7 +435,7 @@
promote its widespread use.
Current maintainers:
-
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