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..08fbd5c --- /dev/null +++ b/__manifest__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + +{ + 'name': 'Project Expenses', + 'version': '1.0', + 'category': 'Services/expenses', + 'summary': 'Project expenses', + 'description': 'Bridge created to add the number of expenses linked to an AA to a project form', + 'depends': ['project_account', 'hr_expense'], + 'demo': [ + 'data/project_hr_expense_demo.xml', + ], + 'installable': True, + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/data/project_hr_expense_demo.xml b/data/project_hr_expense_demo.xml new file mode 100644 index 0000000..d75d58d --- /dev/null +++ b/data/project_hr_expense_demo.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/i18n/ar.po b/i18n/ar.po new file mode 100644 index 0000000..3ab74e4 --- /dev/null +++ b/i18n/ar.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "عدد النفقات " + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "النفقات " + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "المشروع" diff --git a/i18n/bg.po b/i18n/bg.po new file mode 100644 index 0000000..17ea045 --- /dev/null +++ b/i18n/bg.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# aleksandar ivanov, 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: aleksandar ivanov, 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Разходи" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Проект" diff --git a/i18n/ca.po b/i18n/ca.po new file mode 100644 index 0000000..b653200 --- /dev/null +++ b/i18n/ca.po @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# marcescu, 2023 +# 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: 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Despeses" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Despeses" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projecte" diff --git a/i18n/cs.po b/i18n/cs.po new file mode 100644 index 0000000..1087664 --- /dev/null +++ b/i18n/cs.po @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Ivana Bartonkova, 2023 +# Jakub Smolka, 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: Jakub Smolka, 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Náklady" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekty" diff --git a/i18n/da.po b/i18n/da.po new file mode 100644 index 0000000..42fcdbd --- /dev/null +++ b/i18n/da.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Øvrige omkostninger" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekt" diff --git a/i18n/de.po b/i18n/de.po new file mode 100644 index 0000000..11d01dd --- /dev/null +++ b/i18n/de.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Ausgaben" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Ausgaben" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekt" diff --git a/i18n/es.po b/i18n/es.po new file mode 100644 index 0000000..3c8793e --- /dev/null +++ b/i18n/es.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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 (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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Gastos" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Gastos" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Proyecto" diff --git a/i18n/es_419.po b/i18n/es_419.po new file mode 100644 index 0000000..fceb515 --- /dev/null +++ b/i18n/es_419.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Gastos" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Gastos" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Proyecto" diff --git a/i18n/et.po b/i18n/et.po new file mode 100644 index 0000000..6c45d3a --- /dev/null +++ b/i18n/et.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Marek Pontus, 2023 +# JanaAvalah, 2023 +# Patrick-Jordan Kiudorv, 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: Patrick-Jordan Kiudorv, 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Kulud" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Kulud" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projektid" diff --git a/i18n/fa.po b/i18n/fa.po new file mode 100644 index 0000000..674ff9f --- /dev/null +++ b/i18n/fa.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Hanna Kheradroosta, 2023 +# M.Hossein S.Farvashani , 2023 +# Hamid Darabi, 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: Hamid Darabi, 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# هزینه ها" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "هزینه ها" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "پروژه" diff --git a/i18n/fi.po b/i18n/fi.po new file mode 100644 index 0000000..001afdf --- /dev/null +++ b/i18n/fi.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Jarmo Kortetjärvi , 2023 +# Ossi Mantylahti , 2023 +# Svante Suominen , 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: Svante Suominen , 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Kulut" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Kulut" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projektit" diff --git a/i18n/fr.po b/i18n/fr.po new file mode 100644 index 0000000..bcc14c6 --- /dev/null +++ b/i18n/fr.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Notes de frais" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Notes de frais" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projet" diff --git a/i18n/fr_BE.po b/i18n/fr_BE.po new file mode 100644 index 0000000..64e2d4c --- /dev/null +++ b/i18n/fr_BE.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server saas~14.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-23 08:02+0000\n" +"PO-Revision-Date: 2021-09-14 10:29+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: project_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#: code:addons/project_hr_expense/models/project.py:0 +#, python-format +msgid "Expenses" +msgstr "" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "" diff --git a/i18n/he.po b/i18n/he.po new file mode 100644 index 0000000..d84df4b --- /dev/null +++ b/i18n/he.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Yihya Hugirat , 2023 +# Lilach Gilliam , 2023 +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# הוצאות" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "הוצאות" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "פרויקט" diff --git a/i18n/hu.po b/i18n/hu.po new file mode 100644 index 0000000..bdd7d47 --- /dev/null +++ b/i18n/hu.po @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Tamás Németh , 2023 +# Ákos Nagy , 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: Ákos Nagy , 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Költségek" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekt" diff --git a/i18n/id.po b/i18n/id.po new file mode 100644 index 0000000..7dc50d0 --- /dev/null +++ b/i18n/id.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Pengeluaran" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Pengeluaran" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Proyek" diff --git a/i18n/it.po b/i18n/it.po new file mode 100644 index 0000000..9959bee --- /dev/null +++ b/i18n/it.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "N. spese" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Spese" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Progetto" diff --git a/i18n/ja.po b/i18n/ja.po new file mode 100644 index 0000000..d4c5159 --- /dev/null +++ b/i18n/ja.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "経費数" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "費用" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "プロジェクト" diff --git a/i18n/ko.po b/i18n/ko.po new file mode 100644 index 0000000..93cf0fd --- /dev/null +++ b/i18n/ko.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# 비용" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "경비" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "프로젝트" diff --git a/i18n/lt.po b/i18n/lt.po new file mode 100644 index 0000000..e00745a --- /dev/null +++ b/i18n/lt.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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: 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Išlaidos" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projektas" diff --git a/i18n/lv.po b/i18n/lv.po new file mode 100644 index 0000000..6a2a7f7 --- /dev/null +++ b/i18n/lv.po @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Arnis Putniņš , 2023 +# ievaputnina , 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: ievaputnina , 2023\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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Izdevumi" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekti" diff --git a/i18n/nl.po b/i18n/nl.po new file mode 100644 index 0000000..95528e6 --- /dev/null +++ b/i18n/nl.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Declaraties" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Declaraties" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Project" diff --git a/i18n/pl.po b/i18n/pl.po new file mode 100644 index 0000000..6a6f459 --- /dev/null +++ b/i18n/pl.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Wydatki" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Wydatki" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekt" diff --git a/i18n/project_hr_expense.pot b/i18n/project_hr_expense.pot new file mode 100644 index 0000000..579ed3a --- /dev/null +++ b/i18n/project_hr_expense.pot @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "" diff --git a/i18n/pt.po b/i18n/pt.po new file mode 100644 index 0000000..7223cf8 --- /dev/null +++ b/i18n/pt.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Despesas" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Despesas" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projeto" diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po new file mode 100644 index 0000000..e09f184 --- /dev/null +++ b/i18n/pt_BR.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "Nº de despesas" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Despesas" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projeto" diff --git a/i18n/ru.po b/i18n/ru.po new file mode 100644 index 0000000..17249ae --- /dev/null +++ b/i18n/ru.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +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: 2024-01-30 15:14+0400\n" +"Last-Translator: \n" +"Language-Team: Russian (https://app.transifex.com/odoo/teams/41243/ru/)\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Расходы" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Расходы" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Проект" diff --git a/i18n/sk.po b/i18n/sk.po new file mode 100644 index 0000000..d9564e7 --- /dev/null +++ b/i18n/sk.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Výdavky" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekt" diff --git a/i18n/sl.po b/i18n/sl.po new file mode 100644 index 0000000..bbd726c --- /dev/null +++ b/i18n/sl.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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: 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Stroški" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekt" diff --git a/i18n/sr.po b/i18n/sr.po new file mode 100644 index 0000000..2173486 --- /dev/null +++ b/i18n/sr.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Troškovi" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Troškovi" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekat" diff --git a/i18n/sv.po b/i18n/sv.po new file mode 100644 index 0000000..1d91eb7 --- /dev/null +++ b/i18n/sv.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Kim Asplund , 2023 +# Simon S, 2023 +# 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: 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Utgifter" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Utlägg" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Projekt" diff --git a/i18n/th.po b/i18n/th.po new file mode 100644 index 0000000..165e96d --- /dev/null +++ b/i18n/th.po @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Wil Odoo, 2023 +# Rasareeyar Lappiam, 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: Rasareeyar Lappiam, 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# ค่าใช้จ่าย" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "ค่าใช้จ่าย" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "โปรเจ็กต์" diff --git a/i18n/tr.po b/i18n/tr.po new file mode 100644 index 0000000..fa2cfe5 --- /dev/null +++ b/i18n/tr.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# Translators: +# Tugay Hatıl , 2023 +# Özlem Atalay , 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Masraflar" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Masraflar" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Proje" diff --git a/i18n/uk.po b/i18n/uk.po new file mode 100644 index 0000000..fcd8660 --- /dev/null +++ b/i18n/uk.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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: 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "К-сть витрат" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Витрати" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Проект" diff --git a/i18n/vi.po b/i18n/vi.po new file mode 100644 index 0000000..d7d04e6 --- /dev/null +++ b/i18n/vi.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# Chi phí" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "Chi phí" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "Dự án" diff --git a/i18n/zh_CN.po b/i18n/zh_CN.po new file mode 100644 index 0000000..2345e29 --- /dev/null +++ b/i18n/zh_CN.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "# 费用" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "费用" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "项目" diff --git a/i18n/zh_TW.po b/i18n/zh_TW.po new file mode 100644 index 0000000..cfeb4b4 --- /dev/null +++ b/i18n/zh_TW.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_hr_expense +# +# 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_hr_expense +#: model:ir.model.fields,field_description:project_hr_expense.field_project_project__expenses_count +msgid "# Expenses" +msgstr "開支數目" + +#. module: project_hr_expense +#. odoo-python +#: code:addons/project_hr_expense/models/project_project.py:0 +#: code:addons/project_hr_expense/models/project_project.py:0 +#, python-format +msgid "Expenses" +msgstr "開支" + +#. module: project_hr_expense +#: model:ir.model,name:project_hr_expense.model_project_project +msgid "Project" +msgstr "專案" diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..5de26c1 --- /dev/null +++ b/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import project_project diff --git a/models/project_project.py b/models/project_project.py new file mode 100644 index 0000000..58ca379 --- /dev/null +++ b/models/project_project.py @@ -0,0 +1,139 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import json + +from odoo import api, fields, models, _, _lt +from odoo.osv import expression +from collections import defaultdict + +class Project(models.Model): + _inherit = 'project.project' + + expenses_count = fields.Integer('# Expenses', compute='_compute_expenses_count', groups='hr_expense.group_hr_expense_team_approver') + + @api.depends('analytic_account_id') + def _compute_expenses_count(self): + if not self.analytic_account_id: + self.expenses_count = 0 + return + query = self.env['hr.expense']._search([]) + query.add_where('hr_expense.analytic_distribution ?| %s', [[str(account_id) for account_id in self.analytic_account_id.ids]]) + + query_string, query_param = query.select( + 'jsonb_object_keys(analytic_distribution) as account_id', + 'COUNT(DISTINCT(id)) as expense_count', + ) + query_string = f'{query_string} GROUP BY jsonb_object_keys(analytic_distribution)' + self._cr.execute(query_string, query_param) + data = {int(record.get('account_id')): record.get('expense_count') for record in self._cr.dictfetchall()} + for project in self: + project.expenses_count = data.get(project.analytic_account_id.id, 0) + + # ---------------------------- + # Actions + # ---------------------------- + + def _get_expense_action(self, domain=None, expense_ids=None): + if not domain and not expense_ids: + return {} + action = self.env["ir.actions.actions"]._for_xml_id("hr_expense.hr_expense_actions_all") + action.update({ + 'display_name': _('Expenses'), + 'views': [[False, 'tree'], [False, 'form'], [False, 'kanban'], [False, 'graph'], [False, 'pivot']], + 'context': {'default_analytic_distribution': {self.analytic_account_id.id: 100}}, + 'domain': domain or [('id', 'in', expense_ids)], + }) + if len(expense_ids) == 1: + action["views"] = [[False, 'form']] + action["res_id"] = expense_ids[0] + return action + + def _get_add_purchase_items_domain(self): + return expression.AND([ + super()._get_add_purchase_items_domain(), + [('expense_id', '=', False)], + ]) + + def action_profitability_items(self, section_name, domain=None, res_id=False): + if section_name == 'expenses': + return self._get_expense_action(domain, [res_id] if res_id else []) + return super().action_profitability_items(section_name, domain, res_id) + + # ---------------------------- + # Project Update + # ---------------------------- + + def _get_profitability_labels(self): + labels = super()._get_profitability_labels() + labels['expenses'] = _lt('Expenses') + return labels + + def _get_profitability_sequence_per_invoice_type(self): + sequence_per_invoice_type = super()._get_profitability_sequence_per_invoice_type() + sequence_per_invoice_type['expenses'] = 13 + return sequence_per_invoice_type + + def _get_already_included_profitability_invoice_line_ids(self): + # As both purchase orders and expenses (paid by employee) create vendor bills, + # we need to make sure they are exclusive in the profitability report. + move_line_ids = super()._get_already_included_profitability_invoice_line_ids() + query = self.env['account.move.line']._search([ + ('move_id.expense_sheet_id', '!=', False), + ('id', 'not in', move_line_ids), + ]) + return move_line_ids + list(query) + + def _get_expenses_profitability_items(self, with_action=True): + if not self.analytic_account_id: + return {} + can_see_expense = with_action and self.user_has_groups('hr_expense.group_hr_expense_team_approver') + query = self.env['hr.expense']._search([('state', 'in', ['approved', 'done'])]) + query.add_where('hr_expense.analytic_distribution ? %s', [str(self.analytic_account_id.id)]) + query_string, query_param = query.select('currency_id', 'array_agg(id) as ids', 'SUM(untaxed_amount_currency) as untaxed_amount') + query_string = f"{query_string} GROUP BY currency_id" + self._cr.execute(query_string, query_param) + expenses_read_group = [expense for expense in self._cr.dictfetchall()] + if not expenses_read_group or not expenses_read_group[0].get('ids'): + return {} + expense_ids = [] + amount_billed = 0.0 + all_currencies = {res['currency_id'] for res in expenses_read_group} + for res in expenses_read_group: + if can_see_expense: + expense_ids.extend(res['ids']) + amount_billed += self.env['res.currency'].browse(res['currency_id']).with_prefetch(all_currencies)._convert( + from_amount=res['untaxed_amount'], + to_currency=self.currency_id, + company=self.company_id, + ) + + section_id = 'expenses' + expense_profitability_items = { + 'costs': {'id': section_id, 'sequence': self._get_profitability_sequence_per_invoice_type()[section_id], 'billed': -amount_billed, 'to_bill': 0.0}, + } + if can_see_expense: + args = [section_id, [('id', 'in', expense_ids)]] + if expense_ids: + args.append(expense_ids) + action = {'name': 'action_profitability_items', 'type': 'object', 'args': json.dumps(args)} + expense_profitability_items['action'] = action + return expense_profitability_items + + def _get_profitability_aal_domain(self): + return expression.AND([ + super()._get_profitability_aal_domain(), + ['|', ('move_line_id', '=', False), ('move_line_id.expense_id', '=', False)], + ]) + + def _get_profitability_items(self, with_action=True): + profitability_data = super()._get_profitability_items(with_action) + expenses_data = self._get_expenses_profitability_items(with_action) + if expenses_data: + if 'revenues' in expenses_data: + revenues = profitability_data['revenues'] + revenues['data'].append(expenses_data['revenues']) + revenues['total'] = {k: revenues['total'][k] + expenses_data['revenues'][k] for k in ['invoiced', 'to_invoice']} + costs = profitability_data['costs'] + costs['data'].append(expenses_data['costs']) + costs['total'] = {k: costs['total'][k] + expenses_data['costs'][k] for k in ['billed', 'to_bill']} + return profitability_data diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..4fa67e8 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +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..bba32c6 --- /dev/null +++ b/tests/test_project_profitability.py @@ -0,0 +1,165 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.addons.hr_expense.tests.common import TestExpenseCommon +from odoo.addons.project.tests.test_project_profitability import TestProjectProfitabilityCommon +from odoo.addons.account.tests.common import AccountTestInvoicingCommon +from odoo.tests.common import tagged + + +class TestProjectHrExpenseProfitabilityCommon(TestExpenseCommon, AccountTestInvoicingCommon): + def check_project_profitability_before_creating_and_approving_expense_sheet(self, expense, project, project_profitability_items_empty): + self.assertDictEqual( + project._get_profitability_items(False), + project_profitability_items_empty, + 'No data should be found since the expense is not approved yet.', + ) + + expense_sheet_vals_list = expense._get_default_expense_sheet_values() + expense_sheet = self.env['hr.expense.sheet'].create(expense_sheet_vals_list) + self.assertEqual(len(expense_sheet), 1, '1 expense sheet should be created.') + + expense_sheet.action_submit_sheet() + self.assertEqual(expense_sheet.state, 'submit') + + self.assertDictEqual( + project._get_profitability_items(False), + project_profitability_items_empty, + 'No data should be found since the sheet is not approved yet.', + ) + + expense_sheet.action_approve_expense_sheets() + self.assertEqual(expense_sheet.state, 'approve') + return expense_sheet + + +@tagged('post_install', '-at_install') +class TestProjectHrExpenseProfitability(TestProjectProfitabilityCommon, TestProjectHrExpenseProfitabilityCommon): + + def test_project_profitability(self): + self.project.company_id = False + # Create a new company with the foreign currency. + foreign_company = self.company_data_2['company'] + foreign_company.currency_id = self.foreign_currency + foreign_employee = self.env['hr.employee'].create({'name': 'Foreign employee', 'company_id': foreign_company.id}) + + expense = self.env['hr.expense'].create({ + 'name': 'Car Travel Expenses', + 'employee_id': self.expense_employee.id, + 'product_id': self.product_c.id, + 'total_amount_currency': 350.00, + 'company_id': self.env.company.id, + 'analytic_distribution': {self.project.analytic_account_id.id: 100}, + }) + + expense_sheet = self.check_project_profitability_before_creating_and_approving_expense_sheet( + expense, + self.project, + self.project_profitability_items_empty) + + sequence_per_invoice_type = self.project._get_profitability_sequence_per_invoice_type() + self.assertIn('expenses', sequence_per_invoice_type) + expense_sequence = sequence_per_invoice_type['expenses'] + + self.assertDictEqual( + self.project._get_profitability_items(False), + { + 'costs': { + 'data': [{'id': 'expenses', 'sequence': expense_sequence, 'to_bill': 0.0, 'billed': -expense.untaxed_amount_currency}], + 'total': {'to_bill': 0.0, 'billed': -expense.untaxed_amount_currency}, + }, + 'revenues': {'data': [], 'total': {'to_invoice': 0.0, 'invoiced': 0.0}}, + }, + ) + + # Create an expense in a foreign company, the expense is linked to the AA of the project. + expense_foreign = self.env['hr.expense'].create({ + 'name': 'Car Travel Expenses foreign', + 'employee_id': foreign_employee.id, + 'product_id': self.product_c.id, + 'total_amount_currency': 350.00, + 'company_id': foreign_company.id, + 'analytic_distribution': {self.project.analytic_account_id.id: 100}, + 'currency_id': self.foreign_currency.id, + }) + expense_sheet_vals_list = expense_foreign._get_default_expense_sheet_values() + expense_sheet_vals_list[0]['employee_journal_id'] = self.company_data_2['default_journal_purchase'].id + expense_sheet_foreign = self.env['hr.expense.sheet'].create(expense_sheet_vals_list) + expense_sheet_foreign.action_submit_sheet() + self.assertEqual(expense_sheet_foreign.state, 'submit') + expense_sheet_foreign.action_approve_expense_sheets() + self.assertEqual(expense_sheet_foreign.state, 'approve') + + # The cost of the foreign expense sheet should now be computed in the project profitability, since it is now approved + self.assertDictEqual( + self.project._get_profitability_items(False), + { + 'costs': { + 'data': [{ + 'id': 'expenses', + 'sequence': expense_sequence, + 'to_bill': 0.0, + 'billed': -expense.untaxed_amount_currency - expense_foreign.untaxed_amount_currency * 0.2 + }], + 'total': {'to_bill': 0.0, 'billed': -expense.untaxed_amount_currency - expense_foreign.untaxed_amount_currency * 0.2}, + }, + 'revenues': {'data': [], 'total': {'to_invoice': 0.0, 'invoiced': 0.0}}, + }, + ) + + # Cancel the expense sheet of the main company. Only the total from the foreign company should be computed + expense_sheet._do_refuse('Test cancel expense') + self.assertDictEqual( + self.project._get_profitability_items(False), + { + 'costs': { + 'data': [{'id': 'expenses', 'sequence': expense_sequence, 'to_bill': 0.0, 'billed': -expense_foreign.untaxed_amount_currency * 0.2}], + 'total': {'to_bill': 0.0, 'billed': -expense_foreign.untaxed_amount_currency * 0.2}, + }, + 'revenues': {'data': [], 'total': {'to_invoice': 0.0, 'invoiced': 0.0}}, + }, + ) + + expense_sheet_foreign._do_refuse('Test cancel foreign expense') + self.assertDictEqual( + self.project._get_profitability_items(False), + self.project_profitability_items_empty, + 'No data should be found since the sheets are not approved yet.', + ) + + def test_project_profitability_after_expense_sheet_actions(self): + expense = self.env["hr.expense"].create( + { + "name": "Car Travel Expenses", + "employee_id": self.expense_employee.id, + "product_id": self.product_c.id, + "total_amount": 50.00, + "company_id": self.project.company_id.id, + "analytic_distribution": {self.project.analytic_account_id.id: 100}, + } + ) + expense_sheet = self.env["hr.expense.sheet"].create( + { + "name": "Expense for Jannette", + "employee_id": self.expense_employee.id, + "expense_line_ids": expense, + } + ) + + sequence_per_invoice_type = self.project._get_profitability_sequence_per_invoice_type() + self.assertIn('expenses', sequence_per_invoice_type) + expense_sequence = sequence_per_invoice_type['expenses'] + + expense_sheet.action_submit_sheet() + expense_sheet.action_approve_expense_sheets() + expense_sheet.action_sheet_move_create() + + self.assertDictEqual( + self.project._get_profitability_items(False), + { + 'costs': { + 'data': [{'id': 'expenses', 'sequence': expense_sequence, 'to_bill': 0.0, 'billed': -expense.untaxed_amount_currency}], + 'total': {'to_bill': 0.0, 'billed': -expense.untaxed_amount_currency}, + }, + 'revenues': {'data': [], 'total': {'to_invoice': 0.0, 'invoiced': 0.0}}, + }, + )