From 5bd43bab22045c3e275366c2d66900c94818843b Mon Sep 17 00:00:00 2001
From: Carlos Dauden
Date: Wed, 28 Mar 2018 12:10:44 +0200
Subject: [PATCH 01/13] [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 000000000..4206a323a
--- /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 000000000..ef5ae3587
--- /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 000000000..1071b7d73
--- /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 000000000..0b83b4929
--- /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 000000000..d4d87538a
--- /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 000000000..7281d4ce1
--- /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 000000000..4b87abfdd
--- /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 000000000..95285088b
--- /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 0af2ee7674146b9ca4b1e2df8ccb4dc9e61d9b80 Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Sun, 23 Dec 2018 23:09:15 +0000
Subject: [PATCH 02/13] 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 000000000..f0f322638
--- /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 411eac3275d64eb955ea2fe6a8a9282c75c77709 Mon Sep 17 00:00:00 2001
From: Maria Sparenberg
Date: Mon, 14 Jan 2019 12:39:31 +0000
Subject: [PATCH 03/13] 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 000000000..4b09653ee
--- /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 98fc2e94ab52ca9bd2b2fa68899cdfdea47eeadf Mon Sep 17 00:00:00 2001
From: "Pedro M. Baeza"
Date: Fri, 22 Nov 2019 00:42:02 +0100
Subject: [PATCH 04/13] [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 +-
contract_variable_qty_timesheet/i18n/pt_BR.po | 30 ++
.../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 ++++
11 files changed, 657 insertions(+), 36 deletions(-)
create mode 100644 contract_variable_qty_timesheet/i18n/pt_BR.po
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 4206a323a..8acf44fb1 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 1071b7d73..3503e440b 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 0b83b4929..213d10749 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 d4d87538a..fb0e0363a 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/i18n/pt_BR.po b/contract_variable_qty_timesheet/i18n/pt_BR.po
new file mode 100644
index 000000000..7f3be3ca3
--- /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 ""
diff --git a/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst b/contract_variable_qty_timesheet/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..e88bd67dd
--- /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 000000000..0b238e9b7
--- /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 000000000..3ca264dc0
--- /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 000000000..b65106f89
--- /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 000000000..2bdf08124
--- /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 000000000..bf08e65e6
--- /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 a3ab79bc676368fe5c3d44a28144b1ea0ba2fe8b Mon Sep 17 00:00:00 2001
From: Marcel Savegnago
Date: Wed, 12 Feb 2020 04:02:34 +0000
Subject: [PATCH 05/13] 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 7f3be3ca3..75823443b 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 f098de725e98f4b01839756127e8d9a3098ac059 Mon Sep 17 00:00:00 2001
From: Pedro Castro Silva
Date: Mon, 17 Feb 2020 17:54:02 +0000
Subject: [PATCH 06/13] 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 000000000..938e1c85f
--- /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 75823443b..5c57ec996 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 50476c8ddf2dd6ff790c7b10fac131bb2dcb514e Mon Sep 17 00:00:00 2001
From: Fernando La Chica
Date: Mon, 23 Nov 2020 16:56:51 +0100
Subject: [PATCH 07/13] [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 3503e440b..f6b768260 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 213d10749..6ee6d1636 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 bf08e65e6..5f47cfc48 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 e3d70f3f423a4d38916964a583dc0372ef89edfb Mon Sep 17 00:00:00 2001
From: Fernando La Chica
Date: Mon, 23 Nov 2020 18:02:45 +0100
Subject: [PATCH 08/13] [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 8acf44fb1..55cd08930 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 f6b768260..19e386b7f 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 fb0e0363a..290e919b5 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 4b09653ee..cc574369e 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 e88bd67dd..63697f68d 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 b65106f89..9404427d6 100644
--- a/contract_variable_qty_timesheet/static/description/index.html
+++ b/contract_variable_qty_timesheet/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! 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 @@ 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.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -420,6 +420,10 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
Pedro M. Baeza
+
Guadaltech:
+
@@ -431,7 +435,7 @@ 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.
+
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 5f47cfc48..bbed59517 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 @@ class TestContractVariableQtyTimesheet(common.SavepointCase):
}
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 5eb32d045035700345a7fd978617cf94b7775470 Mon Sep 17 00:00:00 2001
From: Denis Roussel
Date: Sat, 18 Jun 2022 14:25:51 +0200
Subject: [PATCH 09/13] [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 55cd08930..651aea9ac 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 19e386b7f..6b450fb73 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 5c57ec996..4df8fa1b4 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 9404427d6..adc7a6087 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