From 1457c4aeea7c3d66f26e4373d1d00c671878d3f2 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 19 Feb 2025 14:13:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=BD=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 4 + __manifest__.py | 21 +++ i18n/ar.po | 46 +++++ i18n/bg.po | 47 +++++ i18n/ca.po | 48 +++++ i18n/cs.po | 48 +++++ i18n/da.po | 46 +++++ i18n/de.po | 46 +++++ i18n/es.po | 47 +++++ i18n/es_419.po | 46 +++++ i18n/et.po | 48 +++++ i18n/fa.po | 47 +++++ i18n/fi.po | 48 +++++ i18n/fr.po | 46 +++++ i18n/he.po | 46 +++++ i18n/hu.po | 47 +++++ i18n/id.po | 46 +++++ i18n/it.po | 46 +++++ i18n/ja.po | 46 +++++ i18n/ko.po | 46 +++++ i18n/lt.po | 47 +++++ i18n/lv.po | 48 +++++ i18n/nl.po | 46 +++++ i18n/pl.po | 46 +++++ i18n/project_account.pot | 42 +++++ i18n/pt.po | 46 +++++ i18n/pt_BR.po | 46 +++++ i18n/ru.po | 47 +++++ i18n/sk.po | 46 +++++ i18n/sl.po | 48 +++++ i18n/sr.po | 46 +++++ i18n/sv.po | 48 +++++ i18n/th.po | 46 +++++ i18n/tr.po | 47 +++++ i18n/uk.po | 47 +++++ i18n/vi.po | 46 +++++ i18n/zh_CN.po | 46 +++++ i18n/zh_TW.po | 46 +++++ models/__init__.py | 4 + models/project_project.py | 175 +++++++++++++++++++ tests/__init__.py | 3 + tests/test_project_profitability.py | 87 +++++++++ views/account_analytic_line_views.xml | 33 ++++ views/project_project_views.xml | 26 +++ views/project_sharing_project_task_views.xml | 18 ++ views/project_task_views.xml | 32 ++++ 46 files changed, 2077 insertions(+) create mode 100644 __init__.py create mode 100644 __manifest__.py create mode 100644 i18n/ar.po create mode 100644 i18n/bg.po create mode 100644 i18n/ca.po create mode 100644 i18n/cs.po create mode 100644 i18n/da.po create mode 100644 i18n/de.po create mode 100644 i18n/es.po create mode 100644 i18n/es_419.po create mode 100644 i18n/et.po create mode 100644 i18n/fa.po create mode 100644 i18n/fi.po create mode 100644 i18n/fr.po create mode 100644 i18n/he.po create mode 100644 i18n/hu.po create mode 100644 i18n/id.po create mode 100644 i18n/it.po create mode 100644 i18n/ja.po create mode 100644 i18n/ko.po create mode 100644 i18n/lt.po create mode 100644 i18n/lv.po create mode 100644 i18n/nl.po create mode 100644 i18n/pl.po create mode 100644 i18n/project_account.pot create mode 100644 i18n/pt.po create mode 100644 i18n/pt_BR.po create mode 100644 i18n/ru.po create mode 100644 i18n/sk.po create mode 100644 i18n/sl.po create mode 100644 i18n/sr.po create mode 100644 i18n/sv.po create mode 100644 i18n/th.po create mode 100644 i18n/tr.po create mode 100644 i18n/uk.po create mode 100644 i18n/vi.po create mode 100644 i18n/zh_CN.po create mode 100644 i18n/zh_TW.po create mode 100644 models/__init__.py create mode 100644 models/project_project.py create mode 100644 tests/__init__.py create mode 100644 tests/test_project_profitability.py create mode 100644 views/account_analytic_line_views.xml create mode 100644 views/project_project_views.xml create mode 100644 views/project_sharing_project_task_views.xml create mode 100644 views/project_task_views.xml diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..dc5e6b6 --- /dev/null +++ b/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/__manifest__.py b/__manifest__.py new file mode 100644 index 0000000..47ee6ba --- /dev/null +++ b/__manifest__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + 'name': "Project - Account", + 'summary': "project profitability items computation", + 'description': """ +Allows the computation of some section for the project profitability +================================================================================================== +This module allows the computation of the 'Vendor Bills', 'Other Costs' and 'Other Revenues' section for the project profitability, in the project update view. +""", + 'category': 'Hidden', + 'depends': ['account', 'project'], + 'auto_install': True, + 'license': 'LGPL-3', + 'data': [ + 'views/account_analytic_line_views.xml', + 'views/project_project_views.xml', + 'views/project_task_views.xml', + 'views/project_sharing_project_task_views.xml', + ], +} diff --git a/i18n/ar.po b/i18n/ar.po new file mode 100644 index 0000000..6adc40e --- /dev/null +++ b/i18n/ar.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "التكاليف الأخرى " + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "الإيرادات الأخرى " + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "المشروع" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "فواتير المورد" diff --git a/i18n/bg.po b/i18n/bg.po new file mode 100644 index 0000000..b57f442 --- /dev/null +++ b/i18n/bg.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# aleksandar ivanov, 2023 +# KeyVillage, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: KeyVillage, 2023\n" +"Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Проект" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Дневник на покупките" diff --git a/i18n/ca.po b/i18n/ca.po new file mode 100644 index 0000000..77e1cf8 --- /dev/null +++ b/i18n/ca.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# marcescu, 2023 +# Martin Trigaux, 2023 +# Quim - eccit , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Quim - eccit , 2023\n" +"Language-Team: Catalan (https://app.transifex.com/odoo/teams/41243/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Altres costos" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Altres ingressos" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projecte" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Factures de proveïdors " diff --git a/i18n/cs.po b/i18n/cs.po new file mode 100644 index 0000000..4f04019 --- /dev/null +++ b/i18n/cs.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# karolína schusterová , 2023 +# Jakub Smolka, 2023 +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Czech (https://app.transifex.com/odoo/teams/41243/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Ostatní náklady" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Ostatní výnosy" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekty" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Přijaté faktury" diff --git a/i18n/da.po b/i18n/da.po new file mode 100644 index 0000000..ffcdb27 --- /dev/null +++ b/i18n/da.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Martin Trigaux, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Martin Trigaux, 2023\n" +"Language-Team: Danish (https://app.transifex.com/odoo/teams/41243/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Andre Omkostninger" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Andre Indtægter" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekt" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Leverandørfakturaer" diff --git a/i18n/de.po b/i18n/de.po new file mode 100644 index 0000000..f45b7a9 --- /dev/null +++ b/i18n/de.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Andere Kosten" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Sonstige Einnahmen" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekt" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Lieferantenrechnungen" diff --git a/i18n/es.po b/i18n/es.po new file mode 100644 index 0000000..f21a16f --- /dev/null +++ b/i18n/es.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# Larissa Manderfeld, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Larissa Manderfeld, 2024\n" +"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Otros costes" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Otros ingresos" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Proyecto" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Facturas de proveedor" diff --git a/i18n/es_419.po b/i18n/es_419.po new file mode 100644 index 0000000..2428809 --- /dev/null +++ b/i18n/es_419.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Otros gastos" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Otros ingresos" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Proyecto" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Facturas de proveedores" diff --git a/i18n/et.po b/i18n/et.po new file mode 100644 index 0000000..a0ad05b --- /dev/null +++ b/i18n/et.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Triine Aavik , 2023 +# Patrick-Jordan Kiudorv, 2023 +# Eneli Õigus , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Eneli Õigus , 2023\n" +"Language-Team: Estonian (https://app.transifex.com/odoo/teams/41243/et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Muud kulud" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Muud tulud" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projektid" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Ostuarved" diff --git a/i18n/fa.po b/i18n/fa.po new file mode 100644 index 0000000..751b03a --- /dev/null +++ b/i18n/fa.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Hamid Darabi, 2023 +# Hanna Kheradroosta, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Hanna Kheradroosta, 2023\n" +"Language-Team: Persian (https://app.transifex.com/odoo/teams/41243/fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fa\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "سایر هزینه ها" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "سایر درآمدها" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "پروژه" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "صورتهای فروشنده" diff --git a/i18n/fi.po b/i18n/fi.po new file mode 100644 index 0000000..0da1270 --- /dev/null +++ b/i18n/fi.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Ossi Mantylahti , 2023 +# Svante Suominen , 2023 +# Tuomo Aura , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Tuomo Aura , 2023\n" +"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Muut kustannukset" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Muut tulot" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projektit" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Ostolaskut" diff --git a/i18n/fr.po b/i18n/fr.po new file mode 100644 index 0000000..535bcf2 --- /dev/null +++ b/i18n/fr.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: French (https://app.transifex.com/odoo/teams/41243/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Autres coûts" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Autres revenus" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projet" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Factures fournisseurs" diff --git a/i18n/he.po b/i18n/he.po new file mode 100644 index 0000000..32eb421 --- /dev/null +++ b/i18n/he.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# ZVI BLONDER , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: ZVI BLONDER , 2023\n" +"Language-Team: Hebrew (https://app.transifex.com/odoo/teams/41243/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: he\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "פרויקט" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "חשבוניות הספק" diff --git a/i18n/hu.po b/i18n/hu.po new file mode 100644 index 0000000..2059c2b --- /dev/null +++ b/i18n/hu.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Ákos Nagy , 2023 +# Tamás Németh , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Tamás Németh , 2023\n" +"Language-Team: Hungarian (https://app.transifex.com/odoo/teams/41243/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekt" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Beszállítói számlák" diff --git a/i18n/id.po b/i18n/id.po new file mode 100644 index 0000000..8a9eaf0 --- /dev/null +++ b/i18n/id.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Indonesian (https://app.transifex.com/odoo/teams/41243/id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Ongkos Lain" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Pendapatan Lain" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Proyek" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Tagihan Vendor" diff --git a/i18n/it.po b/i18n/it.po new file mode 100644 index 0000000..e31f1ff --- /dev/null +++ b/i18n/it.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Italian (https://app.transifex.com/odoo/teams/41243/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Altri costi" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Altri ricavi" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Progetto" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Fatture fornitore" diff --git a/i18n/ja.po b/i18n/ja.po new file mode 100644 index 0000000..c9545ad --- /dev/null +++ b/i18n/ja.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "他の原価" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "他の収益" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "プロジェクト" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "仕入先請求書" diff --git a/i18n/ko.po b/i18n/ko.po new file mode 100644 index 0000000..7e10f6c --- /dev/null +++ b/i18n/ko.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Korean (https://app.transifex.com/odoo/teams/41243/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "기타 비용" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "기타 수익" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "프로젝트" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "공급업체 청구서" diff --git a/i18n/lt.po b/i18n/lt.po new file mode 100644 index 0000000..fd706b5 --- /dev/null +++ b/i18n/lt.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Martin Trigaux, 2023 +# Linas Versada , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Linas Versada , 2023\n" +"Language-Team: Lithuanian (https://app.transifex.com/odoo/teams/41243/lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lt\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projektas" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Tiekėjų sąskaitos" diff --git a/i18n/lv.po b/i18n/lv.po new file mode 100644 index 0000000..d0ea451 --- /dev/null +++ b/i18n/lv.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Armīns Jeltajevs , 2023 +# ievaputnina , 2023 +# Will Sensors, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Will Sensors, 2024\n" +"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Citi ieņēmumi" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekti" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Iepirkumu rēķini" diff --git a/i18n/nl.po b/i18n/nl.po new file mode 100644 index 0000000..4b4994e --- /dev/null +++ b/i18n/nl.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Andere kosten" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Andere opbrengsten" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Project" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Leveranciersfacturen" diff --git a/i18n/pl.po b/i18n/pl.po new file mode 100644 index 0000000..9378cbd --- /dev/null +++ b/i18n/pl.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Polish (https://app.transifex.com/odoo/teams/41243/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Inne koszty" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Inne przychody" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekt" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Faktury zakupu" diff --git a/i18n/project_account.pot b/i18n/project_account.pot new file mode 100644 index 0000000..1e6b7dc --- /dev/null +++ b/i18n/project_account.pot @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 21:55+0000\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: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "" diff --git a/i18n/pt.po b/i18n/pt.po new file mode 100644 index 0000000..e1529da --- /dev/null +++ b/i18n/pt.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Portuguese (https://app.transifex.com/odoo/teams/41243/pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projeto" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Faturas de Fornecedor" diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po new file mode 100644 index 0000000..973686d --- /dev/null +++ b/i18n/pt_BR.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Portuguese (Brazil) (https://app.transifex.com/odoo/teams/41243/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Outros custos" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Outras receitas" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projeto" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Faturas de fornecedor" diff --git a/i18n/ru.po b/i18n/ru.po new file mode 100644 index 0000000..a74065d --- /dev/null +++ b/i18n/ru.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Сергей Шебанин , 2023 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2024\n" +"Language-Team: Russian (https://app.transifex.com/odoo/teams/41243/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Прочие расходы" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Прочие доходы" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Проект" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Счета поставщиков" diff --git a/i18n/sk.po b/i18n/sk.po new file mode 100644 index 0000000..f355a75 --- /dev/null +++ b/i18n/sk.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekt" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Dodávateľské faktúry" diff --git a/i18n/sl.po b/i18n/sl.po new file mode 100644 index 0000000..4dc2a09 --- /dev/null +++ b/i18n/sl.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Jasmina Macur , 2023 +# Martin Trigaux, 2023 +# Matjaz Mozetic , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Matjaz Mozetic , 2023\n" +"Language-Team: Slovenian (https://app.transifex.com/odoo/teams/41243/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Ostali stroški" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekt" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Prejeti računi" diff --git a/i18n/sr.po b/i18n/sr.po new file mode 100644 index 0000000..1d8a753 --- /dev/null +++ b/i18n/sr.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Milan Bojovic, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Milan Bojovic, 2023\n" +"Language-Team: Serbian (https://app.transifex.com/odoo/teams/41243/sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sr\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Ostali troškovi" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Ostali prihodi" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekat" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Računi dobavljača" diff --git a/i18n/sv.po b/i18n/sv.po new file mode 100644 index 0000000..3592900 --- /dev/null +++ b/i18n/sv.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Lasse L, 2023 +# Martin Trigaux, 2023 +# lynnliuying , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: lynnliuying , 2023\n" +"Language-Team: Swedish (https://app.transifex.com/odoo/teams/41243/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Övriga kostnader" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Projekt" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Leverantörsfakturor" diff --git a/i18n/th.po b/i18n/th.po new file mode 100644 index 0000000..1eccf08 --- /dev/null +++ b/i18n/th.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Thai (https://app.transifex.com/odoo/teams/41243/th/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: th\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "ต้นทุนอื่น " + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "รายได้อื่น" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "โปรเจ็กต์" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "บิลผู้ขาย" diff --git a/i18n/tr.po b/i18n/tr.po new file mode 100644 index 0000000..41a070f --- /dev/null +++ b/i18n/tr.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Ediz Duman , 2023 +# Murat Kaplan , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Murat Kaplan , 2023\n" +"Language-Team: Turkish (https://app.transifex.com/odoo/teams/41243/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Diğer Maliyetler" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Diğer Gelirler" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Proje" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Tedarikçi Faturaları" diff --git a/i18n/uk.po b/i18n/uk.po new file mode 100644 index 0000000..605adb5 --- /dev/null +++ b/i18n/uk.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Martin Trigaux, 2023 +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Ukrainian (https://app.transifex.com/odoo/teams/41243/uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: uk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Інші витрати" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Інші доходи" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Проект" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Рахунки постачальників" diff --git a/i18n/vi.po b/i18n/vi.po new file mode 100644 index 0000000..46df7bf --- /dev/null +++ b/i18n/vi.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Vietnamese (https://app.transifex.com/odoo/teams/41243/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "Chi phí khác" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "Doanh thu khác" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "Dự án" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "Hoá đơn mua hàng" diff --git a/i18n/zh_CN.po b/i18n/zh_CN.po new file mode 100644 index 0000000..4f17303 --- /dev/null +++ b/i18n/zh_CN.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "其他费用" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "其他收入" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "项目" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "供应商账单" diff --git a/i18n/zh_TW.po b/i18n/zh_TW.po new file mode 100644 index 0000000..96ba8dc --- /dev/null +++ b/i18n/zh_TW.po @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_account +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:55+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\n" +"Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Costs" +msgstr "其他費用" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Other Revenues" +msgstr "其他收入" + +#. module: project_account +#: model:ir.model,name:project_account.model_project_project +msgid "Project" +msgstr "專案" + +#. module: project_account +#. odoo-python +#: code:addons/project_account/models/project_project.py:0 +#, python-format +msgid "Vendor Bills" +msgstr "供應商賬單" diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..446c740 --- /dev/null +++ b/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import project_project diff --git a/models/project_project.py b/models/project_project.py new file mode 100644 index 0000000..906f5fb --- /dev/null +++ b/models/project_project.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import json +from collections import defaultdict + +from odoo import models, _lt +from odoo.tools.misc import OrderedSet + + +class Project(models.Model): + _inherit = 'project.project' + + def _add_purchase_items(self, profitability_items, with_action=True): + domain = self._get_add_purchase_items_domain() + with_action = with_action and self.user_has_groups('account.group_account_invoice, account.group_account_readonly') + self._get_costs_items_from_purchase(domain, profitability_items, with_action=with_action) + + def _get_add_purchase_items_domain(self): + purchase_order_line_invoice_line_ids = self._get_already_included_profitability_invoice_line_ids() + return [ + ('move_type', 'in', ['in_invoice', 'in_refund']), + ('parent_state', 'in', ['draft', 'posted']), + ('price_subtotal', '>', 0), + ('id', 'not in', purchase_order_line_invoice_line_ids), + ] + + def _get_costs_items_from_purchase(self, domain, profitability_items, with_action=True): + """ This method is used in sale_project and project_purchase. Since project_account is the only common module (except project), we create the method here. """ + # calculate the cost of bills without a purchase order + query = self.env['account.move.line'].sudo()._search(domain) + query.add_where('account_move_line.analytic_distribution ? %s', [str(self.analytic_account_id.id)]) + # account_move_line__move_id is the alias of the joined table account_move in the query + # we can use it, because of the "move_id.move_type" clause in the domain of the query, which generates the join + # this is faster than a search_read followed by a browse on the move_id to retrieve the move_type of each account.move.line + query_string, query_param = query.select('price_subtotal', 'parent_state', 'account_move_line.currency_id', 'account_move_line.analytic_distribution', 'account_move_line__move_id.move_type', 'move_id') + self._cr.execute(query_string, query_param) + bills_move_line_read = self._cr.dictfetchall() + if bills_move_line_read: + # Get conversion rate from currencies to currency of the current company + currency_ids = OrderedSet(bml['currency_id'] for bml in bills_move_line_read) + amount_invoiced = amount_to_invoice = 0.0 + move_ids = set() + for moves_read in bills_move_line_read: + price_subtotal = self.env['res.currency'].browse(moves_read['currency_id']).with_prefetch(currency_ids)._convert( + from_amount=moves_read['price_subtotal'], to_currency=self.currency_id, + ) + analytic_contribution = moves_read['analytic_distribution'][str(self.analytic_account_id.id)] / 100. + move_ids.add(moves_read['move_id']) + if moves_read['parent_state'] == 'draft': + if moves_read['move_type'] == 'in_invoice': + amount_to_invoice -= price_subtotal * analytic_contribution + else: # moves_read['move_type'] == 'in_refund' + amount_to_invoice += price_subtotal * analytic_contribution + else: # moves_read['parent_state'] == 'posted' + if moves_read['move_type'] == 'in_invoice': + amount_invoiced -= price_subtotal * analytic_contribution + else: # moves_read['move_type'] == 'in_refund' + amount_invoiced += price_subtotal * analytic_contribution + # don't display the section if the final values are both 0 (bill -> vendor credit) + if amount_invoiced != 0 or amount_to_invoice != 0: + costs = profitability_items['costs'] + section_id = 'other_purchase_costs' + bills_costs = { + 'id': section_id, + 'sequence': self._get_profitability_sequence_per_invoice_type()[section_id], + 'billed': amount_invoiced, + 'to_bill': amount_to_invoice, + } + if with_action: + bills_costs['action'] = self._get_action_for_profitability_section(list(move_ids), section_id) + costs['data'].append(bills_costs) + costs['total']['billed'] += amount_invoiced + costs['total']['to_bill'] += amount_to_invoice + + def _get_action_for_profitability_section(self, record_ids, name): + self.ensure_one() + args = [name, [('id', 'in', record_ids)]] + if len(record_ids) == 1: + args.append(record_ids[0]) + return {'name': 'action_profitability_items', 'type': 'object', 'args': json.dumps(args)} + + def _get_profitability_labels(self): + return { + **super()._get_profitability_labels(), + 'other_purchase_costs': _lt('Vendor Bills'), + 'other_revenues': _lt('Other Revenues'), + 'other_costs': _lt('Other Costs'), + } + + def _get_profitability_sequence_per_invoice_type(self): + return { + **super()._get_profitability_sequence_per_invoice_type(), + 'other_purchase_costs': 11, + 'other_revenues': 14, + 'other_costs': 15, + } + + def action_profitability_items(self, section_name, domain=None, res_id=False): + if section_name in ['other_revenues', 'other_costs']: + action = self.env["ir.actions.actions"]._for_xml_id("analytic.account_analytic_line_action_entries") + action['domain'] = domain + action['context'] = { + 'group_by_date': True, + } + if res_id: + action['views'] = [(False, 'form')] + action['view_mode'] = 'form' + action['res_id'] = res_id + else: + pivot_view_id = self.env['ir.model.data']._xmlid_to_res_id('project_account.project_view_account_analytic_line_pivot') + graph_view_id = self.env['ir.model.data']._xmlid_to_res_id('project_account.project_view_account_analytic_line_graph') + action['views'] = [(pivot_view_id, view_type) if view_type == 'pivot' else (graph_view_id, view_type) if view_type == 'graph' else (view_id, view_type) + for (view_id, view_type) in action['views']] + return action + + if section_name == 'other_purchase_costs': + action = self.env["ir.actions.actions"]._for_xml_id("account.action_move_in_invoice_type") + action['domain'] = domain or [] + if res_id: + action['views'] = [(False, 'form')] + action['view_mode'] = 'form' + action['res_id'] = res_id + return action + + return super().action_profitability_items(section_name, domain, res_id) + + def _get_domain_aal_with_no_move_line(self): + """ this method is used in order to overwrite the domain in sale_timesheet module. Since the field 'project_id' is added to the "analytic line" model + in the hr_timesheet module, we can't add the condition ('project_id', '=', False) here. """ + return [('account_id', '=', self.analytic_account_id.id), ('move_line_id', '=', False), ('category', '!=', 'manufacturing_order')] + + def _get_items_from_aal(self, with_action=True): + domain = self._get_domain_aal_with_no_move_line() + aal_other_search = self.env['account.analytic.line'].sudo().search_read(domain, ['id', 'amount', 'currency_id']) + if not aal_other_search: + return { + 'revenues': {'data': [], 'total': {'invoiced': 0.0, 'to_invoice': 0.0}}, + 'costs': {'data': [], 'total': {'billed': 0.0, 'to_bill': 0.0}}, + } + # dict of form { company : {costs : float, revenues: float}} + dict_amount_per_currency_id = defaultdict(lambda: {'costs': 0.0, 'revenues': 0.0}) + set_currency_ids = {self.currency_id.id} + cost_ids = [] + revenue_ids = [] + for aal in aal_other_search: + set_currency_ids.add(aal['currency_id'][0]) + aal_amount = aal['amount'] + if aal_amount < 0.0: + dict_amount_per_currency_id[aal['currency_id'][0]]['costs'] += aal_amount + cost_ids.append(aal['id']) + else: + dict_amount_per_currency_id[aal['currency_id'][0]]['revenues'] += aal_amount + revenue_ids.append(aal['id']) + + total_revenues = total_costs = 0.0 + for currency_id, dict_amounts in dict_amount_per_currency_id.items(): + currency = self.env['res.currency'].browse(currency_id).with_prefetch(dict_amount_per_currency_id) + total_revenues += currency._convert(dict_amounts['revenues'], self.currency_id, self.company_id) + total_costs += currency._convert(dict_amounts['costs'], self.currency_id, self.company_id) + + # we dont know what part of the numbers has already been billed or not, so we have no choice but to put everything under the billed/invoiced columns. + # The to bill/to invoice ones will simply remain 0 + profitability_sequence_per_invoice_type = self._get_profitability_sequence_per_invoice_type() + revenues = {'id': 'other_revenues', 'sequence': profitability_sequence_per_invoice_type['other_revenues'], 'invoiced': total_revenues, 'to_invoice': 0.0} + costs = {'id': 'other_costs', 'sequence': profitability_sequence_per_invoice_type['other_costs'], 'billed': total_costs, 'to_bill': 0.0} + + if with_action and self.user_has_groups('account.group_account_readonly'): + costs['action'] = self._get_action_for_profitability_section(cost_ids, 'other_costs') + revenues['action'] = self._get_action_for_profitability_section(revenue_ids, 'other_revenues') + + return { + 'revenues': {'data': [revenues], 'total': {'invoiced': total_revenues, 'to_invoice': 0.0}}, + 'costs': {'data': [costs], 'total': {'billed': total_costs, 'to_bill': 0.0}}, + } diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..b74c67c --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import test_project_profitability diff --git a/tests/test_project_profitability.py b/tests/test_project_profitability.py new file mode 100644 index 0000000..08f42a7 --- /dev/null +++ b/tests/test_project_profitability.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests import tagged + +from odoo.addons.project.tests.test_project_profitability import TestProjectProfitabilityCommon + + +@tagged('-at_install', 'post_install') +class TestProjectAccountProfitability(TestProjectProfitabilityCommon): + + def test_project_profitability(self): + """ + In this module, the project profitability should be computed while checking the AAL data. + The Other Revenue and Other Cost sections should be displayed if some data are available. + """ + project = self.env['project.project'].create({'name': 'new project'}) + project._create_analytic_account() + self.assertDictEqual( + project._get_profitability_items(False), + self.project_profitability_items_empty, + 'The profitability data of the project should return no data and so 0 for each total amount.' + ) + # Create a new company with the foreign currency. + foreign_company = self.env['res.company'].create({'name': "My Test Company", 'currency_id': self.foreign_currency.id}) + + # Create new AAL with the new company. + self.env['account.analytic.line'].create([{ + 'name': 'extra revenues 1', + 'account_id': project.analytic_account_id.id, + 'amount': 100, + 'company_id': foreign_company.id, + }, { + 'name': 'extra costs 1', + 'account_id': project.analytic_account_id.id, + 'amount': -100, + 'company_id': foreign_company.id, + }, { + 'name': 'extra revenues 2', + 'account_id': project.analytic_account_id.id, + 'amount': 50, + 'company_id': foreign_company.id, + }, { + 'name': 'extra costs 2', + 'account_id': project.analytic_account_id.id, + 'amount': -50, + 'company_id': foreign_company.id, + }]) + # Ensures that when all the AAL of the account belongs to another company, the total amount is still converted to the currency of the current active company + self.assertDictEqual( + project._get_profitability_items(False), + { + 'revenues': {'data': [{'id': 'other_revenues', 'sequence': self.project._get_profitability_sequence_per_invoice_type()['other_revenues'], + 'invoiced': 30.0, 'to_invoice': 0.0}], 'total': {'invoiced': 30.0, 'to_invoice': 0.0}}, + 'costs': {'data': [{'id': 'other_costs', 'sequence': self.project._get_profitability_sequence_per_invoice_type()['other_costs'], + 'billed': -30.0, 'to_bill': 0.0}], 'total': {'billed': -30.0, 'to_bill': 0.0}} + }, + 'The profitability data of the project should return the total amount for the revenues and costs from tha AAL of the account of the project.' + ) + self.env['account.analytic.line'].create([{ + 'name': 'extra revenues 1', + 'account_id': project.analytic_account_id.id, + 'amount': 100, + }, { + 'name': 'extra costs 1', + 'account_id': project.analytic_account_id.id, + 'amount': -100, + }, { + 'name': 'extra revenues 2', + 'account_id': project.analytic_account_id.id, + 'amount': 50, + }, { + 'name': 'extra costs 2', + 'account_id': project.analytic_account_id.id, + 'amount': -50, + }]) + # Ensures that multiple AAL from different companies are correctly computed for the project profitability + self.assertDictEqual( + project._get_profitability_items(False), + { + 'revenues': {'data': [{'id': 'other_revenues', 'sequence': project._get_profitability_sequence_per_invoice_type()['other_revenues'], + 'invoiced': 180.0, 'to_invoice': 0.0}], 'total': {'invoiced': 180.0, 'to_invoice': 0.0}}, + 'costs': {'data': [{'id': 'other_costs', 'sequence': project._get_profitability_sequence_per_invoice_type()['other_costs'], + 'billed': -180.0, 'to_bill': 0.0}], 'total': {'billed': -180.0, 'to_bill': 0.0}} + }, + 'The profitability data of the project should return the total amount for the revenues and costs from tha AAL of the account of the project.' + ) diff --git a/views/account_analytic_line_views.xml b/views/account_analytic_line_views.xml new file mode 100644 index 0000000..15d58d5 --- /dev/null +++ b/views/account_analytic_line_views.xml @@ -0,0 +1,33 @@ + + + + account.analytic.line.graph + account.analytic.line + + primary + + + + + + + + + + + account.analytic.line.pivot + account.analytic.line + + primary + + + + + + context.get('group_by_date', False) + + + + + + diff --git a/views/project_project_views.xml b/views/project_project_views.xml new file mode 100644 index 0000000..3651eb8 --- /dev/null +++ b/views/project_project_views.xml @@ -0,0 +1,26 @@ + + + + + project.project.tree.view.account.inherit + project.project + + + + {'res_partner_search_mode': 'customer'} + + + + + + project.project.form.view.account.inherit + project.project + + + + {'res_partner_search_mode': 'customer'} + + + + + diff --git a/views/project_sharing_project_task_views.xml b/views/project_sharing_project_task_views.xml new file mode 100644 index 0000000..574ca33 --- /dev/null +++ b/views/project_sharing_project_task_views.xml @@ -0,0 +1,18 @@ + + + + + project.sharing.project.task.form.view.account.inherit + project.task + + + + {'res_partner_search_mode': 'customer'} + + + {'res_partner_search_mode': 'customer'} + + + + + diff --git a/views/project_task_views.xml b/views/project_task_views.xml new file mode 100644 index 0000000..6bc4f97 --- /dev/null +++ b/views/project_task_views.xml @@ -0,0 +1,32 @@ + + + + + project.task.form.view.account.inherit + project.task + + + + {'res_partner_search_mode': 'customer'} + + + {'res_partner_search_mode': 'customer'} + + + {'res_partner_search_mode': 'customer'} + + + + + + project.task.tree.view.account.inherit + project.task + + + + {'res_partner_search_mode': 'customer'} + + + + +