diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst new file mode 100644 index 00000000000..a99060a7538 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -0,0 +1,137 @@ +======================================= +Sales order invoicing grouping criteria +======================================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3c70277f0354cfbd5cb08a202aaf3f94fc33784247dae8240f583085b73d2e00 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png + :target: https://odoo-community.org/page/development-status + :alt: Production/Stable +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--invoicing-lightgray.png?logo=github + :target: https://github.com/OCA/account-invoicing/tree/17.0/sale_order_invoicing_grouping_criteria + :alt: OCA/account-invoicing +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/account-invoicing-17-0/account-invoicing-17-0-sale_order_invoicing_grouping_criteria + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-invoicing&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to use custom criteria for grouping sales orders to +be invoiced. + +Default criteria for grouping (invoicing partner, company and used +currency) will be always applied, as if not respected, there will be +business inconsistencies, but you can add more fields to split the +invoicing according them. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +For creating new grouping criteria: + +1. Go to *Invoicing > Configuration > Management > Invoicing Grouping + Criteria*. +2. Create or modify existing criteria, selecting fields belonging to + "Sales Order" header model for grouping according them. +3. Invoicing address and currency will always be applied with the + selected ones. + +For setting a different grouping criteria for a specific customer: + +1. Go to *Invoicing > Sales > Master Data > Customers*. +2. Open the desired customer. +3. Go to *Invoicing* page. +4. Set on "Sales Invoicing Grouping Criteria" the desired grouping + criteria. + +For setting a different default grouping criteria than the standard for +the whole company: + +1. Go to *Invoicing > Configuration> Settings*. +2. Locate inside "Sales Order Invoicing" section, the field "Default + Grouping Criteria". +3. Introduce there the grouping criteria to be applied by default. If + empty, the general default of invoicing address + currency + company + will be applied. + +Usage +===== + +1. Go to *Sales > Invoicing > Orders to Invoice*. +2. Select sales orders whose invoicing you want to do. +3. Click on *Action > Invoice Order*. +4. Click on "Create and View Invoices" button. +5. On that moment, the grouping criteria will be applied, and you will + see different invoices if the criteria doesn't match for them. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Tecnativa + +Contributors +------------ + +- `Tecnativa `__: + + - Pedro M. Baeza + +- `Sygel `__: + + - Valentin Vinagre valentin.vinagre@sygel.es + - Roger Sans roger.sans@sygel.es + +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. + +.. |maintainer-pedrobaeza| image:: https://github.com/pedrobaeza.png?size=40px + :target: https://github.com/pedrobaeza + :alt: pedrobaeza + +Current `maintainer `__: + +|maintainer-pedrobaeza| + +This module is part of the `OCA/account-invoicing `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_order_invoicing_grouping_criteria/__init__.py b/sale_order_invoicing_grouping_criteria/__init__.py new file mode 100644 index 00000000000..69f7babdfb1 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py new file mode 100644 index 00000000000..cc4fcb98e2e --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Sales order invoicing grouping criteria", + "version": "17.0.1.0.0", + "category": "Sales Management", + "license": "AGPL-3", + "author": "Tecnativa, " "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/account-invoicing", + "depends": ["sale_management"], + "data": [ + "security/ir.model.access.csv", + "views/res_config_settings_views.xml", + "views/res_partner_views.xml", + "views/sale_invoicing_grouping_criteria_views.xml", + ], + "installable": True, + "development_status": "Production/Stable", + "maintainers": ["pedrobaeza"], +} diff --git a/sale_order_invoicing_grouping_criteria/i18n/ca.po b/sale_order_invoicing_grouping_criteria/i18n/ca.po new file mode 100644 index 00000000000..b70aed6a966 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/ca.po @@ -0,0 +1,134 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_order_invoicing_grouping_criteria +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-06-23 14:10+0000\n" +"Last-Translator: eccit-quim \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_company +msgid "Companies" +msgstr "Companyies" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "Config Settings" +msgstr "Paràmetres de configuració" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner +msgid "Contact" +msgstr "Contacte" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_date +msgid "Created on" +msgstr "Creat el" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Default Grouping Criteria" +msgstr "Criteri d'agrupació per defecte" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__default_sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__res_default_sale_invoicing_grouping_criteria_id +msgid "Default Sales Invoicing Grouping Criteria" +msgstr "Criteri d'agrupació per defecte de factures de venda" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name +msgid "Display Name" +msgstr "Nom a mostrar" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address, " +"company and currency will always be applied." +msgstr "" +"Camps usats per agrupar comandes de venda a la facturació. Adreça de " +"facturació, companyia i divisa, s'aplicaran sempre." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "Grouping Fields" +msgstr "Camps d'agrupació" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id +msgid "ID" +msgstr "ID" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "" +"Si és buit, s'aplicarà el valor per defecte de la companyia (si n'hi ha) o " +"el valor per defecte general." + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address, company and currency will be applied." +msgstr "Si és buit, s'aplicaran adreça de facturació, companyia i divisa." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.ui.menu,name:sale_order_invoicing_grouping_criteria.menu_sale_invoice_grouping_criteria +msgid "Invoicing Grouping Criteria" +msgstr "Criteri d'agrupació de facturació" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update +msgid "Last Modified on" +msgstr "Darrera modificació el" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_uid +msgid "Last Updated by" +msgstr "Darrera actualització per" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_date +msgid "Last Updated on" +msgstr "Darrera actualització el" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__name +msgid "Name" +msgstr "Nom" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_property_form +msgid "Sales Invoicing Grouping Criteria" +msgstr "Criteri d'agrupació de facturació de vendes" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Sales Order" +msgstr "Comanda de venda" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Sales Order Invoicing" +msgstr "Facturació de comandes de venda" diff --git a/sale_order_invoicing_grouping_criteria/i18n/de.po b/sale_order_invoicing_grouping_criteria/i18n/de.po new file mode 100644 index 00000000000..f2132214e30 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/de.po @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_order_invoicing_grouping_criteria +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-11 09:15+0000\n" +"Last-Translator: David Brühlmeier \n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_company +msgid "Companies" +msgstr "Unternehmen" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "Config Settings" +msgstr "Konfigurationseinstellungen" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner +msgid "Contact" +msgstr "Kontakt" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_uid +msgid "Created by" +msgstr "Erstellt von" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_date +msgid "Created on" +msgstr "Erstellt am" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Default Grouping Criteria" +msgstr "Standard-Gruppierungsmerkmal" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__default_sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__res_default_sale_invoicing_grouping_criteria_id +msgid "Default Sales Invoicing Grouping Criteria" +msgstr "Standard-Gruppierungsmerkmal für Verkaufsaufträge" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address, " +"company and currency will always be applied." +msgstr "" +"Felder, die für die Gruppierung von Verkaufsaufträgen bei der " +"Rechnungsstellung verwendet werden. Rechnungsadresse, Unternehmen und " +"Währung werden immer verwendet." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "Grouping Fields" +msgstr "Felder für die Gruppierung" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id +msgid "ID" +msgstr "ID" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "" +"Wenn leer, wird der Unternehmensstandard (falls vorhanden) oder der " +"Standardwert angewendet." + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address, company and currency will be applied." +msgstr "Wenn leer, werden Rechnungsadresse, Unternehmen und Währung übernommen." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.ui.menu,name:sale_order_invoicing_grouping_criteria.menu_sale_invoice_grouping_criteria +msgid "Invoicing Grouping Criteria" +msgstr "Gruppierungsmerkmale für die Rechnungsstellung" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update +msgid "Last Modified on" +msgstr "Zuletzt geändert am" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__name +msgid "Name" +msgstr "Name" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_property_form +msgid "Sales Invoicing Grouping Criteria" +msgstr "Gruppierung von Verkaufsaufträgen" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Sales Order" +msgstr "Verkaufsauftrag" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Sales Order Invoicing" +msgstr "Rechnungsstellung von Verkaufsaufträgen" diff --git a/sale_order_invoicing_grouping_criteria/i18n/es.po b/sale_order_invoicing_grouping_criteria/i18n/es.po new file mode 100644 index 00000000000..d0601dccba4 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/es.po @@ -0,0 +1,137 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_order_invoicing_grouping_criteria +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-03-05 09:09+0000\n" +"PO-Revision-Date: 2020-03-05 10:10+0100\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 2.0.6\n" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "Config Settings" +msgstr "Ajustes de configuración" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Default Grouping Criteria" +msgstr "Criterio de agrupación por defecto" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__default_sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__res_default_sale_invoicing_grouping_criteria_id +msgid "Default Sales Invoicing Grouping Criteria" +msgstr "Criterio de agrupación de facturación de ventas por defecto" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address, " +"company and currency will always be applied." +msgstr "" +"Campos usados para agrupar los pedidos de venta cuando se facturan. La " +"dirección de facturación, la compañía y la moneda se aplicarán siempre." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "Grouping Fields" +msgstr "Campos de agrupación" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id +msgid "ID" +msgstr "ID" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "" +"Si está vacío, el valor por defecto de la compañía (si está establecido) o " +"el de por defecto general serán aplicados." + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address, company and currency will be applied." +msgstr "" +"Si está vacío, la dirección de facturacíón, la compañía y la moneda serán " +"aplicados." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.ui.menu,name:sale_order_invoicing_grouping_criteria.menu_sale_invoice_grouping_criteria +msgid "Invoicing Grouping Criteria" +msgstr "Criterio de agrupación de facturación" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__name +msgid "Name" +msgstr "Nombre" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_property_form +msgid "Sales Invoicing Grouping Criteria" +msgstr "Criterio de agrupación de facturación de ventas" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Sales Order" +msgstr "Pedido de venta" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Sales Order Invoicing" +msgstr "Facturación de pedidos de venta" diff --git a/sale_order_invoicing_grouping_criteria/i18n/fr.po b/sale_order_invoicing_grouping_criteria/i18n/fr.po new file mode 100644 index 00000000000..ecd0f3dbdb1 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/fr.po @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_order_invoicing_grouping_criteria +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-07-05 14:05+0000\n" +"Last-Translator: ClementChaumienneC2C \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.3.2\n" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_company +msgid "Companies" +msgstr "Sociétés" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "Config Settings" +msgstr "Paramètres" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner +msgid "Contact" +msgstr "Contact" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_uid +msgid "Created by" +msgstr "Crée par" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_date +msgid "Created on" +msgstr "Crée le" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Default Grouping Criteria" +msgstr "Critère de Groupement par Défaut" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__default_sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__res_default_sale_invoicing_grouping_criteria_id +msgid "Default Sales Invoicing Grouping Criteria" +msgstr "Critère de groupement factures vente par défaut" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name +msgid "Display Name" +msgstr "Nom" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address, " +"company and currency will always be applied." +msgstr "" +"Champ utilisé pour grouper les commandes de ventes lors de la facturation. " +"Par défaut, l'adresse de facturation, la société, et la devise seront " +"toujours appliqués." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "Grouping Fields" +msgstr "Champs de Groupement" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id +msgid "ID" +msgstr "ID" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "Si vide, le paramètre société par défaut (si existant) sera appliqués." + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address, company and currency will be applied." +msgstr "" +"Si vide, l'adresse de facturation, la société, et la devise seront appliqués " +"comme critères de groupement." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.ui.menu,name:sale_order_invoicing_grouping_criteria.menu_sale_invoice_grouping_criteria +msgid "Invoicing Grouping Criteria" +msgstr "Critère de groupement de facturation" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_date +msgid "Last Updated on" +msgstr "Dernière modification le" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__name +msgid "Name" +msgstr "Nom" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_property_form +msgid "Sales Invoicing Grouping Criteria" +msgstr "Groupement de Facture de Vente" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Sales Order" +msgstr "Commande de Vente" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Sales Order Invoicing" +msgstr "Facturation Commandes de Vente" diff --git a/sale_order_invoicing_grouping_criteria/i18n/it.po b/sale_order_invoicing_grouping_criteria/i18n/it.po new file mode 100644 index 00000000000..f48836c9470 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/it.po @@ -0,0 +1,137 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_order_invoicing_grouping_criteria +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-05-02 14:38+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_company +msgid "Companies" +msgstr "Aziende" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "Config Settings" +msgstr "Impostazioni configurazione" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Default Grouping Criteria" +msgstr "Criteri di raggruppamento predefiniti" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__default_sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__res_default_sale_invoicing_grouping_criteria_id +msgid "Default Sales Invoicing Grouping Criteria" +msgstr "Critero di raggruppamento della fatturazione di vendita predefinito" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address, " +"company and currency will always be applied." +msgstr "" +"Campi utilizzati per raggruppare ordini di vendita al momento della " +"fatturazione. Verranno sempre applicati indirizzo di fatturazione, società e " +"valuta." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "Grouping Fields" +msgstr "Campi raggruppamento" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id +msgid "ID" +msgstr "ID" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "" +"Se vuoto, verrà applicato il valore predefinito dell'azienda (se presente) o " +"il valore predefinito." + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address, company and currency will be applied." +msgstr "" +"Se vuoto, verranno applicati l'indirizzo di fatturazione, l'azienda e la " +"valuta." + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.ui.menu,name:sale_order_invoicing_grouping_criteria.menu_sale_invoice_grouping_criteria +msgid "Invoicing Grouping Criteria" +msgstr "Criteri di raggruppamento di fatturazione" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__name +msgid "Name" +msgstr "Nome" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_property_form +msgid "Sales Invoicing Grouping Criteria" +msgstr "Criteri di raggruppamento della fatturazione" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Sales Order" +msgstr "Ordine di vendita" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Sales Order Invoicing" +msgstr "Fatturazione degli ordini di vendita" diff --git a/sale_order_invoicing_grouping_criteria/i18n/sale_order_invoicing_grouping_criteria.pot b/sale_order_invoicing_grouping_criteria/i18n/sale_order_invoicing_grouping_criteria.pot new file mode 100644 index 00000000000..17d4b1c07a1 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/sale_order_invoicing_grouping_criteria.pot @@ -0,0 +1,127 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_order_invoicing_grouping_criteria +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_company +msgid "Companies" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner +msgid "Contact" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_uid +msgid "Created by" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__create_date +msgid "Created on" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Default Grouping Criteria" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__default_sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__res_default_sale_invoicing_grouping_criteria_id +msgid "Default Sales Invoicing Grouping Criteria" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address, " +"company and currency will always be applied." +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__field_ids +msgid "Grouping Fields" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id +msgid "ID" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,help:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address, company and currency will be applied." +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.ui.menu,name:sale_order_invoicing_grouping_criteria.menu_sale_invoice_grouping_criteria +msgid "Invoicing Grouping Criteria" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__write_date +msgid "Last Updated on" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__name +msgid "Name" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__sale_invoicing_grouping_criteria_id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_users__sale_invoicing_grouping_criteria_id +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_property_form +msgid "Sales Invoicing Grouping Criteria" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Sales Order Invoicing" +msgstr "" diff --git a/sale_order_invoicing_grouping_criteria/models/__init__.py b/sale_order_invoicing_grouping_criteria/models/__init__.py new file mode 100644 index 00000000000..c4a886ae92f --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/__init__.py @@ -0,0 +1,7 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import res_company +from . import res_config_settings +from . import res_partner +from . import sale_invoicing_grouping_criteria +from . import sale_order diff --git a/sale_order_invoicing_grouping_criteria/models/res_company.py b/sale_order_invoicing_grouping_criteria/models/res_company.py new file mode 100644 index 00000000000..8c939aee2e1 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/res_company.py @@ -0,0 +1,13 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + default_sale_invoicing_grouping_criteria_id = fields.Many2one( + string="Default Sales Invoicing Grouping Criteria", + comodel_name="sale.invoicing.grouping.criteria", + ) diff --git a/sale_order_invoicing_grouping_criteria/models/res_config_settings.py b/sale_order_invoicing_grouping_criteria/models/res_config_settings.py new file mode 100644 index 00000000000..550be1a4c02 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/res_config_settings.py @@ -0,0 +1,12 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + res_default_sale_invoicing_grouping_criteria_id = fields.Many2one( + related="company_id.default_sale_invoicing_grouping_criteria_id" + ) diff --git a/sale_order_invoicing_grouping_criteria/models/res_partner.py b/sale_order_invoicing_grouping_criteria/models/res_partner.py new file mode 100644 index 00000000000..c4659dbac16 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/res_partner.py @@ -0,0 +1,21 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + sale_invoicing_grouping_criteria_id = fields.Many2one( + string="Sales Invoicing Grouping Criteria", + comodel_name="sale.invoicing.grouping.criteria", + help="If empty, company default (if any) or default will be applied.", + ) + + @api.model + def _commercial_fields(self): + """Add this field to commercial fields, as it should be propagated + to children. + """ + return super()._commercial_fields() + ["sale_invoicing_grouping_criteria_id"] diff --git a/sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py b/sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py new file mode 100644 index 00000000000..5a526b5312d --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py @@ -0,0 +1,18 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class SaleInvoicingGroupingCriteria(models.Model): + _name = "sale.invoicing.grouping.criteria" + _description = "Sales Invoicing Grouping Criteria" + + name = fields.Char() + field_ids = fields.Many2many( + string="Grouping Fields", + comodel_name="ir.model.fields", + domain="[('model', '=', 'sale.order')]", + help="Fields used for grouping sales orders when invoicing. " + "Invoicing address, company and currency will always be applied.", + ) diff --git a/sale_order_invoicing_grouping_criteria/models/sale_order.py b/sale_order_invoicing_grouping_criteria/models/sale_order.py new file mode 100644 index 00000000000..6b329346363 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -0,0 +1,51 @@ +# Copyright 2019-2020 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + def _get_grouping_partner(self): + """ + Get the partner who contains the grouping criteria. + On sale.order, the default should be the invoice address. + If not set, use the partner_id. + :return: res.partner recordset + """ + self.ensure_one() + return self.partner_invoice_id or self.partner_id + + def _get_sale_invoicing_group_key(self): + """Prepare extended grouping criteria for sales orders.""" + self.ensure_one() + group_key = [ + self.company_id.id, + self.partner_invoice_id.id, + self.currency_id.id, + ] + partner = self._get_grouping_partner() + criteria = ( + partner.sale_invoicing_grouping_criteria_id + or self.company_id.default_sale_invoicing_grouping_criteria_id + ) + for field in criteria.field_ids.sudo(): + group_key.append(self[field.name]) + return tuple(group_key) + + def _create_invoices(self, grouped=False, final=False, date=None): + """Slice the batch according grouping criteria.""" + order_groups = {} + for order in self: + group_key = order._get_sale_invoicing_group_key() + if group_key not in order_groups: + order_groups[group_key] = order + else: + order_groups[group_key] += order + moves = self.env["account.move"] + for group in order_groups.values(): + moves += super(SaleOrder, group)._create_invoices( + grouped=grouped, final=final, date=date + ) + return moves diff --git a/sale_order_invoicing_grouping_criteria/pyproject.toml b/sale_order_invoicing_grouping_criteria/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.md b/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.md new file mode 100644 index 00000000000..0fe076c161f --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.md @@ -0,0 +1,26 @@ +For creating new grouping criteria: + +1. Go to *Invoicing \> Configuration \> Management \> Invoicing + Grouping Criteria*. +2. Create or modify existing criteria, selecting fields belonging to + "Sales Order" header model for grouping according them. +3. Invoicing address and currency will always be applied with the + selected ones. + +For setting a different grouping criteria for a specific customer: + +1. Go to *Invoicing \> Sales \> Master Data \> Customers*. +2. Open the desired customer. +3. Go to *Invoicing* page. +4. Set on "Sales Invoicing Grouping Criteria" the desired grouping + criteria. + +For setting a different default grouping criteria than the standard for +the whole company: + +1. Go to *Invoicing \> Configuration\> Settings*. +2. Locate inside "Sales Order Invoicing" section, the field "Default + Grouping Criteria". +3. Introduce there the grouping criteria to be applied by default. If + empty, the general default of invoicing address + currency + company + will be applied. diff --git a/sale_order_invoicing_grouping_criteria/readme/CONTRIBUTORS.md b/sale_order_invoicing_grouping_criteria/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..0bc0c62626f --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/CONTRIBUTORS.md @@ -0,0 +1,8 @@ +- [Tecnativa](https://www.tecnativa.com): + + - Pedro M. Baeza + +- [Sygel](https://www.sygel.es/): + + - Valentin Vinagre + - Roger Sans \ No newline at end of file diff --git a/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.md b/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.md new file mode 100644 index 00000000000..543e9262c8c --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.md @@ -0,0 +1,7 @@ +This module allows to use custom criteria for grouping sales orders to +be invoiced. + +Default criteria for grouping (invoicing partner, company and used +currency) will be always applied, as if not respected, there will be +business inconsistencies, but you can add more fields to split the +invoicing according them. diff --git a/sale_order_invoicing_grouping_criteria/readme/USAGE.md b/sale_order_invoicing_grouping_criteria/readme/USAGE.md new file mode 100644 index 00000000000..ace488d898e --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/USAGE.md @@ -0,0 +1,6 @@ +1. Go to *Sales \> Invoicing \> Orders to Invoice*. +2. Select sales orders whose invoicing you want to do. +3. Click on *Action \> Invoice Order*. +4. Click on "Create and View Invoices" button. +5. On that moment, the grouping criteria will be applied, and you will + see different invoices if the criteria doesn't match for them. diff --git a/sale_order_invoicing_grouping_criteria/security/ir.model.access.csv b/sale_order_invoicing_grouping_criteria/security/ir.model.access.csv new file mode 100644 index 00000000000..58026a36d0a --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_sale_invoicing_grouping_criteria_user,access_sale_invoicing_grouping_criteria user,model_sale_invoicing_grouping_criteria,account.group_account_invoice,1,0,0,0 +access_sale_invoicing_grouping_criteria_manager,access_sale_invoicing_grouping_criteria manager,model_sale_invoicing_grouping_criteria,account.group_account_manager,1,1,1,1 diff --git a/sale_order_invoicing_grouping_criteria/static/description/icon.png b/sale_order_invoicing_grouping_criteria/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/sale_order_invoicing_grouping_criteria/static/description/icon.png differ diff --git a/sale_order_invoicing_grouping_criteria/static/description/index.html b/sale_order_invoicing_grouping_criteria/static/description/index.html new file mode 100644 index 00000000000..0482bdbb520 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -0,0 +1,481 @@ + + + + + +Sales order invoicing grouping criteria + + + +
+

Sales order invoicing grouping criteria

+ + +

Production/Stable License: AGPL-3 OCA/account-invoicing Translate me on Weblate Try me on Runboat

+

This module allows to use custom criteria for grouping sales orders to +be invoiced.

+

Default criteria for grouping (invoicing partner, company and used +currency) will be always applied, as if not respected, there will be +business inconsistencies, but you can add more fields to split the +invoicing according them.

+

Table of contents

+ +
+

Configuration

+

For creating new grouping criteria:

+
    +
  1. Go to Invoicing > Configuration > Management > Invoicing Grouping +Criteria.
  2. +
  3. Create or modify existing criteria, selecting fields belonging to +“Sales Order” header model for grouping according them.
  4. +
  5. Invoicing address and currency will always be applied with the +selected ones.
  6. +
+

For setting a different grouping criteria for a specific customer:

+
    +
  1. Go to Invoicing > Sales > Master Data > Customers.
  2. +
  3. Open the desired customer.
  4. +
  5. Go to Invoicing page.
  6. +
  7. Set on “Sales Invoicing Grouping Criteria” the desired grouping +criteria.
  8. +
+

For setting a different default grouping criteria than the standard for +the whole company:

+
    +
  1. Go to Invoicing > Configuration> Settings.
  2. +
  3. Locate inside “Sales Order Invoicing” section, the field “Default +Grouping Criteria”.
  4. +
  5. Introduce there the grouping criteria to be applied by default. If +empty, the general default of invoicing address + currency + company +will be applied.
  6. +
+
+
+

Usage

+
    +
  1. Go to Sales > Invoicing > Orders to Invoice.
  2. +
  3. Select sales orders whose invoicing you want to do.
  4. +
  5. Click on Action > Invoice Order.
  6. +
  7. Click on “Create and View Invoices” button.
  8. +
  9. On that moment, the grouping criteria will be applied, and you will +see different invoices if the criteria doesn’t match for them.
  10. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

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.

+

Current maintainer:

+

pedrobaeza

+

This module is part of the OCA/account-invoicing project on GitHub.

+

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

+
+
+
+ + diff --git a/sale_order_invoicing_grouping_criteria/tests/__init__.py b/sale_order_invoicing_grouping_criteria/tests/__init__.py new file mode 100644 index 00000000000..d643db91a84 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_sale_order_invoicing_group_criteria diff --git a/sale_order_invoicing_grouping_criteria/tests/test_sale_order_invoicing_group_criteria.py b/sale_order_invoicing_grouping_criteria/tests/test_sale_order_invoicing_group_criteria.py new file mode 100644 index 00000000000..6b039b162ec --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/tests/test_sale_order_invoicing_group_criteria.py @@ -0,0 +1,115 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests import TransactionCase + + +class TestSaleOrderInvoicingGroupingCriteria(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env( + context=dict( + cls.env.context, + mail_create_nolog=True, + mail_create_nosubscribe=True, + mail_notrack=True, + no_reset_password=True, + tracking_disable=True, + ) + ) + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.partner = cls.env["res.partner"].create({"name": "Test partner"}) + cls.partner2 = cls.env["res.partner"].create({"name": "Other partner"}) + cls.product = cls.env["product.product"].create( + {"name": "Test product", "type": "service", "invoice_policy": "order"} + ) + cls.GroupingCriteria = cls.env["sale.invoicing.grouping.criteria"] + cls.grouping_criteria = cls.GroupingCriteria.create( + { + "name": "Delivery Address", + "field_ids": [ + (4, cls.env.ref("sale.field_sale_order__partner_shipping_id").id) + ], + } + ) + cls.order = cls.env["sale.order"].create( + { + "partner_id": cls.partner.id, + "partner_shipping_id": cls.partner.id, + "partner_invoice_id": cls.partner.id, + "pricelist_id": cls.partner.property_product_pricelist.id, + "order_line": [ + ( + 0, + 0, + { + "name": cls.product.name, + "product_id": cls.product.id, + "price_unit": 20, + "product_uom_qty": 1, + "product_uom": cls.product.uom_id.id, + }, + ) + ], + } + ) + cls.order.action_confirm() + cls.order2 = cls.order.copy() + cls.order2.action_confirm() + + def test_invoicing_same_data(self): + invoice_ids = (self.order + self.order2)._create_invoices() + self.assertEqual(len(invoice_ids), 1) + self.assertEqual(self.order.invoice_ids, self.order2.invoice_ids) + + def test_invoicing_grouping_default(self): + self.order2.partner_invoice_id = self.partner2.id + invoice_ids = (self.order + self.order2)._create_invoices() + self.assertEqual(len(invoice_ids), 2) + self.assertNotEqual(self.order.invoice_ids, self.order2.invoice_ids) + + def test_invoicing_grouping_company_criteria(self): + self.order2.partner_shipping_id = self.partner2.id + self.order.company_id.default_sale_invoicing_grouping_criteria_id = ( + self.grouping_criteria.id + ) + invoice_ids = (self.order + self.order2)._create_invoices() + self.assertEqual(len(invoice_ids), 2) + self.assertNotEqual(self.order.invoice_ids, self.order2.invoice_ids) + + def test_invoicing_grouping_partner_criteria(self): + self.order2.partner_shipping_id = self.partner2.id + self.partner.sale_invoicing_grouping_criteria_id = self.grouping_criteria.id + invoice_ids = (self.order + self.order2)._create_invoices() + self.assertEqual(len(invoice_ids), 2) + self.assertNotEqual(self.order.invoice_ids, self.order2.invoice_ids) + + def test_invoicing_grouping_partner_criteria_as_demo(self): + self.order2.partner_shipping_id = self.partner2.id + self.partner.sale_invoicing_grouping_criteria_id = self.grouping_criteria.id + user_demo = self.env.ref("base.user_demo") + user_demo.groups_id = [ + (4, self.env.ref("sales_team.group_sale_salesman_all_leads").id) + ] + invoice_ids = (self.order + self.order2).with_user(user_demo)._create_invoices() + self.assertEqual(len(invoice_ids), 2) + self.assertNotEqual(self.order.invoice_ids, self.order2.invoice_ids) + + def test_invoicing_grouping_specific_order_field(self): + """Regression test for checking values in order, not in invoices vals.""" + self.partner.sale_invoicing_grouping_criteria_id = self.grouping_criteria.id + self.grouping_criteria["field_ids"] = [ + (4, self.env.ref("sale.field_sale_order__id").id) + ] + invoices = (self.order + self.order2)._create_invoices() + self.assertEqual(len(invoices), 2) + + def test_commercial_field(self): + self.partner.sale_invoicing_grouping_criteria_id = self.grouping_criteria.id + children = self.env["res.partner"].create( + {"name": "Test children", "parent_id": self.partner.id} + ) + self.assertEqual( + children.sale_invoicing_grouping_criteria_id, self.grouping_criteria + ) diff --git a/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml b/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml new file mode 100644 index 00000000000..2a9c28f711d --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml @@ -0,0 +1,28 @@ + + + + + + res.config.settings + + + + + + + + + + diff --git a/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml b/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml new file mode 100644 index 00000000000..6794b8931df --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml @@ -0,0 +1,19 @@ + + + + + res.partner + + + + + + + + + + diff --git a/sale_order_invoicing_grouping_criteria/views/sale_invoicing_grouping_criteria_views.xml b/sale_order_invoicing_grouping_criteria/views/sale_invoicing_grouping_criteria_views.xml new file mode 100644 index 00000000000..f1b6bf97056 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/views/sale_invoicing_grouping_criteria_views.xml @@ -0,0 +1,50 @@ + + + + + sale.invoicing.grouping.criteria + +
+ +

+ +

+ + + +
+
+
+
+ + sale.invoicing.grouping.criteria + + + + + + + + + sale.invoicing.grouping.criteria + + + + + + + + Sales Invoicing Grouping Criteria + ir.actions.act_window + sale.invoicing.grouping.criteria + tree,form + + +