diff --git a/contract_sale_generation/README.rst b/contract_sale_generation/README.rst new file mode 100644 index 000000000..24e5d2283 --- /dev/null +++ b/contract_sale_generation/README.rst @@ -0,0 +1,87 @@ +====================================== +Contracts Management - Recurring Sales +====================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github + :target: https://github.com/OCA/contract/tree/12.0/contract_sale_generation + :alt: OCA/contract +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract_sale_generation + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/110/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends functionality of contracts to be able to generate sales +orders instead of invoices. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +#. Go to Sales -> Contracts and select or create a new contract. +#. Fill fields for selecting the recurrency and invoice parameters: + + * Type defines document that contract will generate, can be "Sales" or "Invoices" + * Sale Autoconfirm, validate Sales Orders if type is "Sales" + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* PESOL + +Contributors +~~~~~~~~~~~~ + +* Angel Moya +* Florent THOMAS +* Serpent Consulting Services Pvt. Ltd. + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/contract `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/contract_sale_generation/__init__.py b/contract_sale_generation/__init__.py new file mode 100644 index 000000000..a9e337226 --- /dev/null +++ b/contract_sale_generation/__init__.py @@ -0,0 +1,2 @@ + +from . import models diff --git a/contract_sale_generation/__manifest__.py b/contract_sale_generation/__manifest__.py new file mode 100644 index 000000000..0c68fd648 --- /dev/null +++ b/contract_sale_generation/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2017 Pesol () +# Copyright 2017 Angel Moya +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html) + + +{ + 'name': 'Contracts Management - Recurring Sales', + 'version': '12.0.1.0.0', + 'category': 'Contract Management', + 'license': 'AGPL-3', + 'author': "PESOL, " + "Odoo Community Association (OCA)", + 'website': 'https://github.com/oca/contract', + 'depends': ['contract', 'sale'], + 'data': [ + 'data/contract_cron.xml', + 'views/contract.xml', + 'views/contract_template.xml', + ], + 'installable': True, +} diff --git a/contract_sale_generation/data/contract_cron.xml b/contract_sale_generation/data/contract_cron.xml new file mode 100644 index 000000000..841f52971 --- /dev/null +++ b/contract_sale_generation/data/contract_cron.xml @@ -0,0 +1,15 @@ + + + + Generate Recurring sales from Contracts + + code + model.cron_recurring_create_sale() + + 1 + days + -1 + + + + diff --git a/contract_sale_generation/i18n/ca.po b/contract_sale_generation/i18n/ca.po new file mode 100644 index 000000000..f0a483d42 --- /dev/null +++ b/contract_sale_generation/i18n/ca.po @@ -0,0 +1,74 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Compte analític" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/contract_sale_generation.pot b/contract_sale_generation/i18n/contract_sale_generation.pot new file mode 100644 index 000000000..45f0c8f6c --- /dev/null +++ b/contract_sale_generation/i18n/contract_sale_generation.pot @@ -0,0 +1,70 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" + diff --git a/contract_sale_generation/i18n/de.po b/contract_sale_generation/i18n/de.po new file mode 100644 index 000000000..61046f290 --- /dev/null +++ b/contract_sale_generation/i18n/de.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2019-02-22 15:51+0000\n" +"Last-Translator: Maria Sparenberg \n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.4\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Kostenstelle" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "Verkaufsaufträge anlegen" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Rechnung" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Verkaufsaufträge" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "automatisches Bestätigen der Verkaufsaufträge" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Verkäufe" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "Typ" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Sie müssen zuerst einen Kunden für den Vertrag '%s' auswählen!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "=> Periodische Verkaufsaufträge anzeigen" diff --git a/contract_sale_generation/i18n/el_GR.po b/contract_sale_generation/i18n/el_GR.po new file mode 100644 index 000000000..ae084a123 --- /dev/null +++ b/contract_sale_generation/i18n/el_GR.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/" +"el_GR/)\n" +"Language: el_GR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Αναλυτικός Λογαριασμός" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/es.po b/contract_sale_generation/i18n/es.po new file mode 100644 index 000000000..3057e9932 --- /dev/null +++ b/contract_sale_generation/i18n/es.po @@ -0,0 +1,82 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Ismael Calvo , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Ismael Calvo , 2018\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Cuenta analítica" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "Crear ventas" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Factura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Venta" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "Autoconfirmar venta" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Ventas" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "Tipo" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "¡Seleccione un cliente para este contrato %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "⇒ Mostrar ventas recurrentes" + +#~ msgid "" +#~ "You must review start and end dates!\n" +#~ "%s" +#~ msgstr "" +#~ "Debe revisar las fechas de inicio y de fin\n" +#~ "%s" diff --git a/contract_sale_generation/i18n/es_MX.po b/contract_sale_generation/i18n/es_MX.po new file mode 100644 index 000000000..be6b46db3 --- /dev/null +++ b/contract_sale_generation/i18n/es_MX.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/" +"es_MX/)\n" +"Language: es_MX\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Cuenta analítica" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/fi.po b/contract_sale_generation/i18n/fi.po new file mode 100644 index 000000000..6fb0e03b5 --- /dev/null +++ b/contract_sale_generation/i18n/fi.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2019-03-20 14:14+0000\n" +"Last-Translator: Jarmo Kortetjärvi \n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.5.1\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analyyttinen tili" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "Luo myyntejä" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Lasku" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Myynti" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "Myynnin automaattivahvistus" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Myynnit" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "Tyyppi" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Sopimukselle täytyy ensin valita asiakas %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "⇒ Näytä toistuvaismyynnit" diff --git a/contract_sale_generation/i18n/fr.po b/contract_sale_generation/i18n/fr.po new file mode 100644 index 000000000..f96ccd58d --- /dev/null +++ b/contract_sale_generation/i18n/fr.po @@ -0,0 +1,82 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Fabien Bourgeois , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-19 02:01+0000\n" +"PO-Revision-Date: 2018-05-19 02:01+0000\n" +"Last-Translator: Fabien Bourgeois , 2018\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Compte analytique" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "Créer des commandes" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Facture" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Vente" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "Confirmation automatique des commandes" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Ventes" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "Type" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Vous devez d'abord sélectionner un Client pour le contrat %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "⇒ Voir les commandes récurrentes" + +#~ msgid "" +#~ "You must review start and end dates!\n" +#~ "%s" +#~ msgstr "" +#~ "Vous devez vérifier vos dates de début et de fin!\n" +#~ "%s" diff --git a/contract_sale_generation/i18n/gl.po b/contract_sale_generation/i18n/gl.po new file mode 100644 index 000000000..6941bcbc8 --- /dev/null +++ b/contract_sale_generation/i18n/gl.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2019-02-07 11:50+0000\n" +"Last-Translator: Marta Vázquez Rodríguez \n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.4\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Conta analítica" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "Crear vendas" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Factura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Venda" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "Autoconfirmar venda" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Vendas" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "Tipo" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Seleccione un cliente para este contrato %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "'account.analytic.contract'" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "⇒ Mostrar vendas recurrentes" diff --git a/contract_sale_generation/i18n/hi_IN.po b/contract_sale_generation/i18n/hi_IN.po new file mode 100644 index 000000000..80c855d90 --- /dev/null +++ b/contract_sale_generation/i18n/hi_IN.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# Ashish Deshmukh , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: Ashish Deshmukh , 2017\n" +"Language-Team: Hindi (India) (https://www.transifex.com/oca/teams/23907/" +"hi_IN/)\n" +"Language: hi_IN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "विश्लेषणात्मक खाता" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "चालान" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/hr.po b/contract_sale_generation/i18n/hr.po new file mode 100644 index 000000000..827cdeb31 --- /dev/null +++ b/contract_sale_generation/i18n/hr.po @@ -0,0 +1,83 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \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: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analitički konto" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "Kreiraj ponude" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Račun" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Prodaja" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "Automatski potvrdi ponude" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Prodaje" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "Tip" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Prvo morate odabrati partnera ua ugovor %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "⇒ Prikaži ponavljajuće ponude" + +#~ msgid "" +#~ "You must review start and end dates!\n" +#~ "%s" +#~ msgstr "" +#~ "Morate revidirati početni i završni datum ugovora!!\n" +#~ "%s" diff --git a/contract_sale_generation/i18n/hr_HR.po b/contract_sale_generation/i18n/hr_HR.po new file mode 100644 index 000000000..0e92d5854 --- /dev/null +++ b/contract_sale_generation/i18n/hr_HR.po @@ -0,0 +1,77 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/" +"hr_HR/)\n" +"Language: hr_HR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \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: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Konto analitike" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Račun" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Prvo morate odabrati partnera za Ugovor %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/hu.po b/contract_sale_generation/i18n/hu.po new file mode 100644 index 000000000..a3cdebf01 --- /dev/null +++ b/contract_sale_generation/i18n/hu.po @@ -0,0 +1,74 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Hungarian (https://www.transifex.com/oca/teams/23907/hu/)\n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analitikus gyűjtőkód könyvelés" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/it.po b/contract_sale_generation/i18n/it.po new file mode 100644 index 000000000..653a2f3ad --- /dev/null +++ b/contract_sale_generation/i18n/it.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Lorenzo Battistini , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Lorenzo Battistini , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Conto Analitico" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Fattura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Bisogna prima selezionare un cliente per il contratto %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/nl.po b/contract_sale_generation/i18n/nl.po new file mode 100644 index 000000000..83600fa24 --- /dev/null +++ b/contract_sale_generation/i18n/nl.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Erwin van der Ploeg , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Erwin van der Ploeg , 2017\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Kostenplaats" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Factuur" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr " Er moet eerst een klant worden ingesteld op contract %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/nl_NL.po b/contract_sale_generation/i18n/nl_NL.po new file mode 100644 index 000000000..4a19bb362 --- /dev/null +++ b/contract_sale_generation/i18n/nl_NL.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Factuur" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/pt.po b/contract_sale_generation/i18n/pt.po new file mode 100644 index 000000000..e8554adc9 --- /dev/null +++ b/contract_sale_generation/i18n/pt.po @@ -0,0 +1,83 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Pedro Castro Silva , 2017 +# Pedro Castro Silva , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Pedro Castro Silva , 2017\n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Conta Analítica" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Fatura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Deve primeiro selecionar um Cliente para o Contrato %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" + +#~ msgid "" +#~ "You must review start and end dates!\n" +#~ "%s" +#~ msgstr "" +#~ "Tem que rever as datas de início e fim!\n" +#~ "%s" diff --git a/contract_sale_generation/i18n/pt_BR.po b/contract_sale_generation/i18n/pt_BR.po new file mode 100644 index 000000000..f5857be65 --- /dev/null +++ b/contract_sale_generation/i18n/pt_BR.po @@ -0,0 +1,76 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Albert Vonpupp , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Albert Vonpupp , 2017\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/" +"teams/23907/pt_BR/)\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Conta Analítica" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Fatura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Primeiro você deve selecionar um Cliente para o contrato %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/pt_PT.po b/contract_sale_generation/i18n/pt_PT.po new file mode 100644 index 000000000..82bf581a6 --- /dev/null +++ b/contract_sale_generation/i18n/pt_PT.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/" +"teams/23907/pt_PT/)\n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Conta Analítica" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/ro.po b/contract_sale_generation/i18n/ro.po new file mode 100644 index 000000000..01edb7708 --- /dev/null +++ b/contract_sale_generation/i18n/ro.po @@ -0,0 +1,76 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +# Dorin Hongu , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-06 03:17+0000\n" +"PO-Revision-Date: 2018-01-06 03:17+0000\n" +"Last-Translator: Dorin Hongu , 2018\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Cont analitic" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Factura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/ru.po b/contract_sale_generation/i18n/ru.po new file mode 100644 index 000000000..e130f169b --- /dev/null +++ b/contract_sale_generation/i18n/ru.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# Мед Ведь , 2017 +# nek, 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: nek, 2018\n" +"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/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: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Аналитический счет" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Счёт-фактура" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Продажа" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Продажи" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" + +#~ msgid "" +#~ "You must review start and end dates!\n" +#~ "%s" +#~ msgstr "" +#~ "Вы должны проверить даты начала и окончания!\n" +#~ "%s" diff --git a/contract_sale_generation/i18n/sk_SK.po b/contract_sale_generation/i18n/sk_SK.po new file mode 100644 index 000000000..e44ee01cb --- /dev/null +++ b/contract_sale_generation/i18n/sk_SK.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovak (Slovakia) (https://www.transifex.com/oca/teams/23907/" +"sk_SK/)\n" +"Language: sk_SK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analytický účet" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/sl.po b/contract_sale_generation/i18n/sl.po new file mode 100644 index 000000000..610c771fc --- /dev/null +++ b/contract_sale_generation/i18n/sl.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analitični konto" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/tr.po b/contract_sale_generation/i18n/tr.po new file mode 100644 index 000000000..40748f007 --- /dev/null +++ b/contract_sale_generation/i18n/tr.po @@ -0,0 +1,81 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# Ediz Duman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-21 01:47+0000\n" +"PO-Revision-Date: 2018-04-21 01:47+0000\n" +"Last-Translator: Ediz Duman , 2017\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analitik Hesap" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "Satış Oluşturun" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Fatura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "Satış" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "Satış otomatik onaylama" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "Satışlar" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "Türü" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Önce Sözleşme %s için bir Müşteri seçmelisiniz!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "account.analytic.contract" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "⇒ Tekrarlayan Satışları Göster" + +#~ msgid "" +#~ "You must review start and end dates!\n" +#~ "%s" +#~ msgstr "" +#~ "Başlangıç ve bitiş tarihlerini incelemelisiniz!\n" +#~ "%s" diff --git a/contract_sale_generation/i18n/tr_TR.po b/contract_sale_generation/i18n/tr_TR.po new file mode 100644 index 000000000..714751ab1 --- /dev/null +++ b/contract_sale_generation/i18n/tr_TR.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# Ediz Duman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-03 12:19+0000\n" +"PO-Revision-Date: 2018-04-03 12:19+0000\n" +"Last-Translator: Ediz Duman , 2017\n" +"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/" +"tr_TR/)\n" +"Language: tr_TR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analitik Hesap" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "Fatura" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "Önce bir Müşteri Sözleşmesi seçmelisiniz %s!" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/i18n/zh_CN.po b/contract_sale_generation/i18n/zh_CN.po new file mode 100644 index 000000000..eb7c2b94d --- /dev/null +++ b/contract_sale_generation/i18n/zh_CN.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_sale_generation +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-30 01:41+0000\n" +"PO-Revision-Date: 2017-11-30 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/" +"zh_CN/)\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_account +msgid "Analytic Account" +msgstr "核算科目" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "Create sales" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Invoice" +msgstr "" + +#. module: contract_sale_generation +#: selection:account.analytic.account,type:0 +#: selection:account.analytic.contract,type:0 +msgid "Sale" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_sale_autoconfirm +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_sale_autoconfirm +msgid "Sale autoconfirm" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.actions.act_window,name:contract_sale_generation.act_recurring_sales +msgid "Sales" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_account_type +#: model:ir.model.fields,field_description:contract_sale_generation.field_account_analytic_contract_type +msgid "Type" +msgstr "" + +#. module: contract_sale_generation +#: code:addons/contract_sale_generation/models/account_analytic_account.py:46 +#, python-format +msgid "You must first select a Customer for Contract %s!" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract +msgid "account.analytic.contract" +msgstr "" + +#. module: contract_sale_generation +#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form +msgid "⇒ Show recurring sales" +msgstr "" diff --git a/contract_sale_generation/models/__init__.py b/contract_sale_generation/models/__init__.py new file mode 100644 index 000000000..5a5b6e24b --- /dev/null +++ b/contract_sale_generation/models/__init__.py @@ -0,0 +1,6 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import abstract_contract +from . import contract +from . import sale_order_line +from . import contract_line diff --git a/contract_sale_generation/models/abstract_contract.py b/contract_sale_generation/models/abstract_contract.py new file mode 100644 index 000000000..bda9742c1 --- /dev/null +++ b/contract_sale_generation/models/abstract_contract.py @@ -0,0 +1,19 @@ +# Copyright 2017 Pesol () +# Copyright 2017 Angel Moya +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ContractAbstractContract(models.AbstractModel): + _inherit = 'contract.abstract.contract' + + type = fields.Selection( + [('invoice', 'Invoice'), + ('sale', 'Sale')], + string='Type', + default='invoice', + required=True, + ) + sale_autoconfirm = fields.Boolean( + string='Sale Autoconfirm') diff --git a/contract_sale_generation/models/contract.py b/contract_sale_generation/models/contract.py new file mode 100644 index 000000000..17c622d12 --- /dev/null +++ b/contract_sale_generation/models/contract.py @@ -0,0 +1,163 @@ +# © 2004-2010 OpenERP SA +# © 2014 Angel Moya +# © 2015 Pedro M. Baeza +# © 2016 Carlos Dauden +# Copyright 2016-2017 LasLabs Inc. +# Copyright 2017 Pesol () +# Copyright 2017 Angel Moya +# Copyright 2018 Therp BV . +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models, _ + + +class ContractContract(models.Model): + _inherit = 'contract.contract' + + sale_count = fields.Integer(compute="_compute_sale_count") + + @api.multi + def _prepare_sale(self, date_ref): + self.ensure_one() + sale = self.env['sale.order'].new({ + 'partner_id': self.partner_id, + 'date_order': fields.Date.to_string(date_ref), + 'origin': self.name, + 'company_id': self.company_id.id, + 'user_id': self.partner_id.user_id.id, + }) + if self.payment_term_id: + sale.payment_term_id = self.payment_term_id.id + if self.fiscal_position_id: + sale.fiscal_position_id = self.fiscal_position_id.id + # Get other sale values from partner onchange + sale.onchange_partner_id() + return sale._convert_to_write(sale._cache) + + @api.multi + def _get_related_sales(self): + self.ensure_one() + sales = (self.env['sale.order.line'] + .search([('contract_line_id', 'in', + self.contract_line_ids.ids) + ]).mapped('order_id')) + return sales + + @api.multi + def _compute_sale_count(self): + for rec in self: + rec.sale_count = len(rec._get_related_sales()) + + @api.multi + def action_show_sales(self): + self.ensure_one() + tree_view = self.env.ref('sale.view_order_tree', + raise_if_not_found=False) + form_view = self.env.ref('sale.view_order_form', + raise_if_not_found=False) + action = { + 'type': 'ir.actions.act_window', + 'name': 'Sales Orders', + 'res_model': 'sale.order', + 'view_type': 'form', + 'view_mode': 'tree,kanban,form,calendar,pivot,graph,activity', + 'domain': [('id', 'in', self._get_related_sales().ids)], + } + if tree_view and form_view: + action['views'] = [(tree_view.id, 'tree'), (form_view.id, 'form')] + return action + + @api.multi + def recurring_create_sale(self): + """ + This method triggers the creation of the next sale order of the + contracts even if their next sale order date is in the future. + """ + sales = self._recurring_create_sale() + for sale_rec in sales: + self.message_post( + body=_( + 'Contract manually sale order: ' + '' + 'Sale Order' + '' + ) + % (sale_rec._name, sale_rec.id) + ) + return sales + + @api.multi + def _prepare_recurring_sales_values(self, date_ref=False): + """ + This method builds the list of sales values to create, based on + the lines to sale of the contracts in self. + !!! The date of next invoice (recurring_next_date) is updated here !!! + :return: list of dictionaries (invoices values) + """ + sales_values = [] + for contract in self: + if not date_ref: + date_ref = contract.recurring_next_date + if not date_ref: + # this use case is possible when recurring_create_invoice is + # called for a finished contract + continue + contract_lines = contract._get_lines_to_invoice(date_ref) + if not contract_lines: + continue + sale_values = contract._prepare_sale(date_ref) + for line in contract_lines: + sale_values.setdefault('order_line', []) + invoice_line_values = line._prepare_sale_line( + sale_values=sale_values, + ) + if invoice_line_values: + sale_values['order_line'].append( + (0, 0, invoice_line_values) + ) + sales_values.append(sale_values) + contract_lines._update_recurring_next_date() + return sales_values + + @api.multi + def _recurring_create_sale(self, date_ref=False): + sales_values = self._prepare_recurring_sales_values(date_ref) + so_rec = self.env["sale.order"].create(sales_values) + for rec in self.filtered(lambda c: c.sale_autoconfirm): + so_rec.action_confirm() + return so_rec + + @api.model + def cron_recurring_create_sale(self, date_ref=None): + if not date_ref: + date_ref = fields.Date.context_today(self) + domain = self._get_contracts_to_invoice_domain(date_ref) + domain.extend([('type', '=', 'sale')]) + sales = self.env["sale.order"] + # Sales by companies, so assignation emails get correct context + companies_to_sale = self.read_group( + domain, ["company_id"], ["company_id"]) + for row in companies_to_sale: + contracts_to_sale = self.search(row["__domain"]).with_context( + allowed_company_ids=[row["company_id"][0]] + ) + sales |= contracts_to_sale._recurring_create_sale(date_ref) + return sales + + @api.model + def cron_recurring_create_invoice(self, date_ref=None): + if not date_ref: + date_ref = fields.Date.context_today(self) + domain = self._get_contracts_to_invoice_domain(date_ref) + domain.extend([('type', '=', 'invoice')]) + invoices = self.env["account.invoice"] + # Invoice by companies, so assignation emails get correct context + companies_to_invoice = self.read_group( + domain, ["company_id"], ["company_id"]) + for row in companies_to_invoice: + contracts_to_invoice = self.search(row["__domain"]).with_context( + allowed_company_ids=[row["company_id"][0]] + ) + invoices |= contracts_to_invoice._recurring_create_invoice( + date_ref) + return invoices diff --git a/contract_sale_generation/models/contract_line.py b/contract_sale_generation/models/contract_line.py new file mode 100644 index 000000000..02dd76ad1 --- /dev/null +++ b/contract_sale_generation/models/contract_line.py @@ -0,0 +1,46 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class ContractLine(models.Model): + _inherit = 'contract.line' + + @api.multi + def _prepare_sale_line(self, order_id=False, sale_values=False): + self.ensure_one() + dates = self._get_period_to_invoice( + self.last_date_invoiced, self.recurring_next_date + ) + sale_line_vals = { + 'product_id': self.product_id.id, + 'quantity': self._get_quantity_to_invoice(*dates), + 'uom_id': self.uom_id.id, + 'discount': self.discount, + 'contract_line_id': self.id, + } + if order_id: + sale_line_vals['order_id'] = order_id.id + order_line = self.env['sale.order.line'].with_context( + force_company=self.contract_id.company_id.id, + ).new(sale_line_vals) + if sale_values and not order_id: + sale = self.env['sale.order'].with_context( + force_company=self.contract_id.company_id.id, + ).new(sale_values) + order_line.order_id = sale + # Get other order line values from product onchange + order_line.product_id_change() + sale_line_vals = order_line._convert_to_write(order_line._cache) + # Insert markers + name = self._insert_markers(dates[0], dates[1]) + sale_line_vals.update( + { + 'sequence': self.sequence, + 'name': name, + 'analytic_tag_ids': [(6, 0, self.analytic_tag_ids.ids)], + 'price_unit': self.price_unit, + } + ) + return sale_line_vals diff --git a/contract_sale_generation/models/sale_order_line.py b/contract_sale_generation/models/sale_order_line.py new file mode 100644 index 000000000..08abb1332 --- /dev/null +++ b/contract_sale_generation/models/sale_order_line.py @@ -0,0 +1,12 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class SaleOrderLine(models.Model): + _inherit = 'sale.order.line' + + contract_line_id = fields.Many2one( + 'contract.line', string='Contract Line', index=True + ) diff --git a/contract_sale_generation/readme/CONTRIBUTORS.rst b/contract_sale_generation/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..4c26c0480 --- /dev/null +++ b/contract_sale_generation/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Angel Moya +* Florent THOMAS +* Serpent Consulting Services Pvt. Ltd. diff --git a/contract_sale_generation/readme/DESCRIPTION.rst b/contract_sale_generation/readme/DESCRIPTION.rst new file mode 100644 index 000000000..2ea92d9eb --- /dev/null +++ b/contract_sale_generation/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module extends functionality of contracts to be able to generate sales +orders instead of invoices. diff --git a/contract_sale_generation/readme/USAGE.rst b/contract_sale_generation/readme/USAGE.rst new file mode 100644 index 000000000..4f7623f66 --- /dev/null +++ b/contract_sale_generation/readme/USAGE.rst @@ -0,0 +1,7 @@ +To use this module, you need to: + +#. Go to Sales -> Contracts and select or create a new contract. +#. Fill fields for selecting the recurrency and invoice parameters: + + * Type defines document that contract will generate, can be "Sales" or "Invoices" + * Sale Autoconfirm, validate Sales Orders if type is "Sales" diff --git a/contract_sale_generation/static/description/icon.png b/contract_sale_generation/static/description/icon.png new file mode 100644 index 000000000..3a0328b51 Binary files /dev/null and b/contract_sale_generation/static/description/icon.png differ diff --git a/contract_sale_generation/static/description/index.html b/contract_sale_generation/static/description/index.html new file mode 100644 index 000000000..74937050d --- /dev/null +++ b/contract_sale_generation/static/description/index.html @@ -0,0 +1,435 @@ + + + + + + +Contracts Management - Recurring Sales + + + +
+

Contracts Management - Recurring Sales

+ + +

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

+

This module extends functionality of contracts to be able to generate sales +orders instead of invoices.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to Sales -> Contracts and select or create a new contract.
  2. +
  3. Fill fields for selecting the recurrency and invoice parameters:
      +
    • Type defines document that contract will generate, can be “Sales” or “Invoices”
    • +
    • Sale Autoconfirm, validate Sales Orders if type is “Sales”
    • +
    +
  4. +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • PESOL
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

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

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/contract_sale_generation/tests/__init__.py b/contract_sale_generation/tests/__init__.py new file mode 100644 index 000000000..87f76cff7 --- /dev/null +++ b/contract_sale_generation/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_contract_sale diff --git a/contract_sale_generation/tests/test_contract_sale.py b/contract_sale_generation/tests/test_contract_sale.py new file mode 100644 index 000000000..1f83a4e93 --- /dev/null +++ b/contract_sale_generation/tests/test_contract_sale.py @@ -0,0 +1,209 @@ +# © 2016 Carlos Dauden +# Copyright 2017 Pesol () +# Copyright 2017 Angel Moya +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.exceptions import ValidationError +from odoo import fields +from odoo.tests.common import TransactionCase + + +def to_date(date): + return fields.Date.to_date(date) + + +class TestContractSale(TransactionCase): + # Use case : Prepare some data for current test case + + def setUp(self): + super(TestContractSale, self).setUp() + self.pricelist = self.env['product.pricelist'].create({ + 'name': 'pricelist for contract test', + }) + self.partner = self.env['res.partner'].create({ + 'name': 'partner test contract', + 'property_product_pricelist': self.pricelist.id, + }) + self.product_1 = self.env.ref('product.product_product_1') + self.product_1.taxes_id += self.env['account.tax'].search( + [('type_tax_use', '=', 'sale')], limit=1 + ) + self.product_1.description_sale = 'Test description sale' + self.line_template_vals = { + 'product_id': self.product_1.id, + 'name': 'Test Contract Template', + 'quantity': 1, + 'uom_id': self.product_1.uom_id.id, + 'price_unit': 100, + 'discount': 50, + 'recurring_rule_type': 'yearly', + 'recurring_interval': 1, + } + self.template_vals = { + 'name': 'Test Contract Template', + 'contract_line_ids': [ + (0, 0, self.line_template_vals), + ], + } + self.template = self.env['contract.template'].create( + self.template_vals + ) + # For being sure of the applied price + self.env['product.pricelist.item'].create( + { + 'pricelist_id': self.partner.property_product_pricelist.id, + 'product_id': self.product_1.id, + 'compute_price': 'formula', + 'base': 'list_price', + } + ) + self.contract = self.env['contract.contract'].create( + { + 'name': 'Test Contract', + 'partner_id': self.partner.id, + 'pricelist_id': self.partner.property_product_pricelist.id, + 'type': 'sale', + 'sale_autoconfirm': False + } + ) + self.line_vals = { + 'contract_id': self.contract.id, + 'product_id': self.product_1.id, + 'name': 'Services from #START# to #END#', + 'quantity': 1, + 'uom_id': self.product_1.uom_id.id, + 'price_unit': 100, + 'discount': 50, + 'recurring_rule_type': 'monthly', + 'recurring_interval': 1, + 'date_start': '2020-01-01', + 'recurring_next_date': '2020-01-15', + } + self.contract.contract_template_id = self.template + self.contract._onchange_contract_template_id() + self.contract_line = self.env['contract.line'].create( + self.line_vals + ) + self.contract2 = self.env['contract.contract'].create( + { + 'name': 'Test Contract 2', + 'type': 'sale', + 'partner_id': self.partner.id, + 'pricelist_id': self.partner.property_product_pricelist.id, + 'contract_type': 'purchase', + 'contract_line_ids': [ + ( + 0, + 0, + { + 'product_id': self.product_1.id, + 'name': 'Services from #START# to #END#', + 'quantity': 1, + 'uom_id': self.product_1.uom_id.id, + 'price_unit': 100, + 'discount': 50, + 'recurring_rule_type': 'monthly', + 'recurring_interval': 1, + 'date_start': '2018-02-15', + 'recurring_next_date': '2018-02-22', + }, + ) + ], + } + ) + + def test_check_discount(self): + with self.assertRaises(ValidationError): + self.contract_line.write({'discount': 120}) + + def test_contract(self): + recurring_next_date = to_date('2020-02-15') + self.assertAlmostEqual(self.contract_line.price_subtotal, 50.0) + res = self.contract_line._onchange_product_id() + self.assertIn('uom_id', res['domain']) + self.contract_line.price_unit = 100.0 + self.contract.partner_id = self.partner.id + self.contract.recurring_create_sale() + self.sale_monthly = self.contract._get_related_sales() + self.assertTrue(self.sale_monthly) + self.assertEqual( + self.contract_line.recurring_next_date, recurring_next_date + ) + self.order_line = self.sale_monthly.order_line[0] + self.assertTrue(self.order_line.tax_id) + self.assertAlmostEqual(self.order_line.price_subtotal, 50.0) + self.assertEqual(self.contract.user_id, self.sale_monthly.user_id) + + def test_contract_autoconfirm(self): + recurring_next_date = to_date('2020-02-15') + self.contract.sale_autoconfirm = True + self.assertAlmostEqual(self.contract_line.price_subtotal, 50.0) + res = self.contract_line._onchange_product_id() + self.assertIn('uom_id', res['domain']) + self.contract_line.price_unit = 100.0 + self.contract.partner_id = self.partner.id + self.contract.recurring_create_sale() + self.sale_monthly = self.contract._get_related_sales() + self.assertTrue(self.sale_monthly) + self.assertEqual( + self.contract_line.recurring_next_date, recurring_next_date + ) + self.order_line = self.sale_monthly.order_line[0] + self.assertTrue(self.order_line.tax_id) + self.assertAlmostEqual(self.order_line.price_subtotal, 50.0) + self.assertEqual(self.contract.user_id, self.sale_monthly.user_id) + + def test_onchange_contract_template_id(self): + """It should change the contract values to match the template.""" + self.contract.contract_template_id = False + self.contract._onchange_contract_template_id() + self.contract.contract_template_id = self.template + self.contract._onchange_contract_template_id() + res = { + 'contract_line_ids': + [(0, 0, { + 'product_id': self.product_1.id, + 'name': 'Test Contract Template', + 'quantity': 1, + 'uom_id': self.product_1.uom_id.id, + 'price_unit': 100, + 'discount': 50, + 'recurring_rule_type': 'yearly', + 'recurring_interval': 1, + })] + } + del self.template_vals['name'] + self.assertDictEqual(res, self.template_vals) + + def test_contract_count_sale(self): + self.contract.recurring_create_sale() + self.contract.recurring_create_sale() + self.contract.recurring_create_sale() + self.contract._compute_sale_count() + self.assertEqual(self.contract.sale_count, 3) + + def test_contract_count_sale_2(self): + orders = self.env['sale.order'] + orders |= self.contract.recurring_create_sale() + orders |= self.contract.recurring_create_sale() + orders |= self.contract.recurring_create_sale() + action = self.contract.action_show_sales() + self.assertEqual(set(action['domain'][0][2]), set(orders.ids)) + + def test_cron_recurring_create_sale(self): + self.contract_line.date_start = '2020-01-01' + self.contract_line.recurring_invoicing_type = 'post-paid' + self.contract_line.date_end = '2020-03-15' + self.contract_line._onchange_date_start() + contracts = self.contract2 + for _i in range(10): + contracts |= self.contract.copy({'type': 'sale'}) + self.env['contract.contract'].cron_recurring_create_sale() + order_lines = self.env['sale.order.line'].search( + [('contract_line_id', 'in', + contracts.mapped('contract_line_ids').ids)] + ) + self.assertEqual( + len(contracts.mapped('contract_line_ids')), + len(order_lines), + ) diff --git a/contract_sale_generation/views/contract.xml b/contract_sale_generation/views/contract.xml new file mode 100644 index 000000000..647a8906c --- /dev/null +++ b/contract_sale_generation/views/contract.xml @@ -0,0 +1,41 @@ + + + + contract.contract.form.recurring.sale.form + contract.contract + + + + + + + + + + {'invisible': ['|', ('create_invoice_visibility', '=', False),('type','!=','invoice')]} + + + + + + + + diff --git a/contract_sale_generation/views/contract_template.xml b/contract_sale_generation/views/contract_template.xml new file mode 100644 index 000000000..9a4707c5a --- /dev/null +++ b/contract_sale_generation/views/contract_template.xml @@ -0,0 +1,14 @@ + + + + contract.template form view (in contract) + contract.template + + + + + + + + +