From 1939f72f5ff4a7d5bef584e0078d10278d10b8e8 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 14 Nov 2019 22:27:08 +0100 Subject: [PATCH 01/31] [ADD] sale_order_invoicing_grouping_criteria: Sales order invoicing grouping criteria This module allows to use custom criteria for grouping sales orders to be invoiced. Default criteria for grouping (invoicing partner and currency used) 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. 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 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. --- .../README.rst | 126 +++++ .../__init__.py | 3 + .../__manifest__.py | 24 + .../i18n/es.po | 129 +++++ ...sale_order_invoicing_grouping_criteria.pot | 126 +++++ .../models/__init__.py | 7 + .../models/res_company.py | 13 + .../models/res_config_settings.py | 12 + .../models/res_partner.py | 22 + .../sale_invoicing_grouping_criteria.py | 18 + .../models/sale_order.py | 34 ++ .../readme/CONFIGURE.rst | 24 + .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 6 + .../readme/USAGE.rst | 6 + .../res_company.py | 14 + .../security/ir.model.access.csv | 3 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 469 ++++++++++++++++++ .../tests/__init__.py | 3 + ...est_sale_order_invoicing_group_criteria.py | 69 +++ .../views/res_config_settings_views.xml | 26 + .../views/res_partner_views.xml | 16 + ...sale_invoicing_grouping_criteria_views.xml | 60 +++ 24 files changed, 1213 insertions(+) create mode 100644 sale_order_invoicing_grouping_criteria/README.rst create mode 100644 sale_order_invoicing_grouping_criteria/__init__.py create mode 100644 sale_order_invoicing_grouping_criteria/__manifest__.py create mode 100644 sale_order_invoicing_grouping_criteria/i18n/es.po create mode 100644 sale_order_invoicing_grouping_criteria/i18n/sale_order_invoicing_grouping_criteria.pot create mode 100644 sale_order_invoicing_grouping_criteria/models/__init__.py create mode 100644 sale_order_invoicing_grouping_criteria/models/res_company.py create mode 100644 sale_order_invoicing_grouping_criteria/models/res_config_settings.py create mode 100644 sale_order_invoicing_grouping_criteria/models/res_partner.py create mode 100644 sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py create mode 100644 sale_order_invoicing_grouping_criteria/models/sale_order.py create mode 100644 sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst create mode 100644 sale_order_invoicing_grouping_criteria/readme/CONTRIBUTORS.rst create mode 100644 sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst create mode 100644 sale_order_invoicing_grouping_criteria/readme/USAGE.rst create mode 100644 sale_order_invoicing_grouping_criteria/res_company.py create mode 100644 sale_order_invoicing_grouping_criteria/security/ir.model.access.csv create mode 100644 sale_order_invoicing_grouping_criteria/static/description/icon.png create mode 100644 sale_order_invoicing_grouping_criteria/static/description/index.html create mode 100644 sale_order_invoicing_grouping_criteria/tests/__init__.py create mode 100644 sale_order_invoicing_grouping_criteria/tests/test_sale_order_invoicing_group_criteria.py create mode 100644 sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml create mode 100644 sale_order_invoicing_grouping_criteria/views/res_partner_views.xml create mode 100644 sale_order_invoicing_grouping_criteria/views/sale_invoicing_grouping_criteria_views.xml diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst new file mode 100644 index 00000000000..b4e5cc88bba --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -0,0 +1,126 @@ +======================================= +Sales order invoicing grouping criteria +======================================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Faccount--invoicing-lightgray.png?logo=github + :target: https://github.com/OCA/account-invoicing/tree/11.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-11-0/account-invoicing-11-0-sale_order_invoicing_grouping_criteria + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/95/11.0 + :alt: Try me on Runbot + +|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 and currency used) 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: + +#. Go to *Invoicing > Configuration > Management > Invoicing Grouping Criteria*. +#. Create or modify existing criteria, selecting fields belonging to "Sales + Order" header model for grouping according them. +#. Invoicing address and currency will always be applied with the selected + ones. + +For setting a different grouping criteria for a specific customer: + +#. Go to *Invoicing > Sales > Master Data > Customers*. +#. Open the desired customer. +#. Go to *Invoicing* page. +#. Set on "Sales Invoicing Grouping Criteria" the desired grouping + criteria. + +For setting a different default grouping criteria than the standard for the +whole company: + +#. Go to *Invoicing > Configuration> Settings*. +#. Locate inside "Sales Order Invoicing" section, the field "Default + Grouping Criteria". +#. Introduce there the grouping criteria to be applied by default. If empty, + the general default of invoicing address + currency will be applied. + +Usage +===== + +#. Go to *Sales > Invoicing > Orders to Invoice*. +#. Select sales orders whose invoicing you want to do. +#. Click on *Action > Invoice Order*. +#. Click on "Create and View Invoices" button. +#. 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 smashing 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 + +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..593c54615b1 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -0,0 +1,24 @@ +# 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': '11.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', + ], + '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': 'Beta', + 'maintainers': ['pedrobaeza'], +} 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..f307c4286ee --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/es.po @@ -0,0 +1,129 @@ +# 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: 2019-11-15 12:16+0000\n" +"PO-Revision-Date: 2019-11-15 13:17+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_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: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_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 and currency will always be applied." +msgstr "Campos usados para agrupar los pedidos de venta cuando se facturan. La dirección de facturación 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:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address and currency will be applied." +msgstr "Si está vacío, la dirección de facturacíón 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 +#: model:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_form +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.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Quotation" +msgstr "Presupuesto" + +#. 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 +msgid "Sales Invoicing Grouping Criteria" +msgstr "Criterio de agrupación de facturación de ventas" + +#. module: sale_order_invoicing_grouping_criteria +#: model: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" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "res.config.settings" +msgstr "res.config.settings" 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..a5a51a77ba3 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/sale_order_invoicing_grouping_criteria.pot @@ -0,0 +1,126 @@ +# 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" +"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_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: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_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 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:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "If empty, invoicing address 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 +#: model:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_form +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.model,name:sale_order_invoicing_grouping_criteria.model_sale_order +msgid "Quotation" +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 +msgid "Sales Invoicing Grouping Criteria" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +msgid "Sales Order Invoicing" +msgstr "" + +#. module: sale_order_invoicing_grouping_criteria +#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings +msgid "res.config.settings" +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..9fb6ba5fd69 --- /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..c648a0e3b0c --- /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' + + 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..53016572e6e --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/res_partner.py @@ -0,0 +1,22 @@ +# 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..26b99be2559 --- /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 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..4b7af5d9089 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -0,0 +1,34 @@ +# Copyright 2019 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_sale_invoicing_group_key(self): + self.ensure_one() + group_key = [self.partner_invoice_id.id, self.currency_id.id] + criteria = ( + self.partner_id.sale_invoicing_grouping_criteria_id or + self.company_id.default_sale_invoicing_grouping_criteria_id + ) + for field in criteria.field_ids: + group_key.append(self[field.name]) + return tuple(group_key) + + def action_invoice_create(self, grouped=False, final=False): + """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 + invoice_ids = [] + for group in order_groups.values(): + invoice_ids += super(SaleOrder, group).action_invoice_create( + grouped=grouped, final=final) + return invoice_ids diff --git a/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst b/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst new file mode 100644 index 00000000000..3d7cc762e1d --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst @@ -0,0 +1,24 @@ +For creating new grouping criteria: + +#. Go to *Invoicing > Configuration > Management > Invoicing Grouping Criteria*. +#. Create or modify existing criteria, selecting fields belonging to "Sales + Order" header model for grouping according them. +#. Invoicing address and currency will always be applied with the selected + ones. + +For setting a different grouping criteria for a specific customer: + +#. Go to *Invoicing > Sales > Master Data > Customers*. +#. Open the desired customer. +#. Go to *Invoicing* page. +#. Set on "Sales Invoicing Grouping Criteria" the desired grouping + criteria. + +For setting a different default grouping criteria than the standard for the +whole company: + +#. Go to *Invoicing > Configuration> Settings*. +#. Locate inside "Sales Order Invoicing" section, the field "Default + Grouping Criteria". +#. Introduce there the grouping criteria to be applied by default. If empty, + the general default of invoicing address + currency will be applied. diff --git a/sale_order_invoicing_grouping_criteria/readme/CONTRIBUTORS.rst b/sale_order_invoicing_grouping_criteria/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..2b13251bef4 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Tecnativa `__: + + * Pedro M. Baeza diff --git a/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst b/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..963c66733b9 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst @@ -0,0 +1,6 @@ +This module allows to use custom criteria for grouping sales orders to be +invoiced. + +Default criteria for grouping (invoicing partner and currency used) 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.rst b/sale_order_invoicing_grouping_criteria/readme/USAGE.rst new file mode 100644 index 00000000000..d0d43749129 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/USAGE.rst @@ -0,0 +1,6 @@ +#. Go to *Sales > Invoicing > Orders to Invoice*. +#. Select sales orders whose invoicing you want to do. +#. Click on *Action > Invoice Order*. +#. Click on "Create and View Invoices" button. +#. 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/res_company.py b/sale_order_invoicing_grouping_criteria/res_company.py new file mode 100644 index 00000000000..0c8c694c32e --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/res_company.py @@ -0,0 +1,14 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class SaleOrder(models.Model): + _inherit = "res.company" + + sale_invoicing_grouping_field_ids = fields.Many2many( + string="Sale Invoicing Grouping Fields", + comodel_name='ir.model.fields', + domain="[('model', '=', 'sale.order')]", + ) 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 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 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..26c8aafb0e8 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -0,0 +1,469 @@ + + + + + + +Sales order invoicing grouping criteria + + + +
+

Sales order invoicing grouping criteria

+ + +

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

+

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

+

Default criteria for grouping (invoicing partner and currency used) 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 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 smashing 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..dc4d37767c4 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/tests/test_sale_order_invoicing_group_criteria.py @@ -0,0 +1,69 @@ +# Copyright 2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests import SavepointCase + + +class TestSaleOrderInvoicingGroupingCriteria(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + 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).action_invoice_create() + 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).action_invoice_create() + 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).action_invoice_create() + 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).action_invoice_create() + self.assertEqual(len(invoice_ids), 2) + self.assertNotEqual(self.order.invoice_ids, self.order2.invoice_ids) 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..39de4ee1d49 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml @@ -0,0 +1,26 @@ + + + + + + + res.config.settings + +
+

Sales Order Invoicing

+
+
+
+
+
+
+
+
+ + + + 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..c895c03c9e0 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml @@ -0,0 +1,16 @@ + + + + + + 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..ef550c34af2 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/views/sale_invoicing_grouping_criteria_views.xml @@ -0,0 +1,60 @@ + + + + + + + + sale.invoicing.grouping.criteria + +
+ +

+ +

+ + + +
+
+
+
+ + + sale.invoicing.grouping.criteria + + + + + + + + + + sale.invoicing.grouping.criteria + + + + + + + + + Sales Invoicing Grouping Criteria + ir.actions.act_window + sale.invoicing.grouping.criteria + form + tree,form + + + +
From 19d0c8233059858bf7b0b0f387d66807a4f53dd3 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 26 Nov 2019 11:30:17 +0100 Subject: [PATCH 02/31] [MIG] sale_order_invoicing_criteria: Migration to 12.0 - Standard procedure - Adapt code --- .../README.rst | 10 ++-- .../__manifest__.py | 2 +- .../i18n/es.po | 58 +++++++++---------- ...sale_order_invoicing_grouping_criteria.pot | 56 +++++++++--------- .../models/res_config_settings.py | 3 +- .../res_company.py | 14 ----- .../static/description/index.html | 6 +- ...est_sale_order_invoicing_group_criteria.py | 2 +- .../views/res_config_settings_views.xml | 4 +- .../views/res_partner_views.xml | 12 ++-- ...sale_invoicing_grouping_criteria_views.xml | 6 +- 11 files changed, 81 insertions(+), 92 deletions(-) delete mode 100644 sale_order_invoicing_grouping_criteria/res_company.py diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst index b4e5cc88bba..1c76cd0336d 100644 --- a/sale_order_invoicing_grouping_criteria/README.rst +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -14,13 +14,13 @@ Sales order invoicing grouping criteria :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/11.0/sale_order_invoicing_grouping_criteria + :target: https://github.com/OCA/account-invoicing/tree/12.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-11-0/account-invoicing-11-0-sale_order_invoicing_grouping_criteria + :target: https://translation.odoo-community.org/projects/account-invoicing-12-0/account-invoicing-12-0-sale_order_invoicing_grouping_criteria :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/95/11.0 + :target: https://runbot.odoo-community.org/runbot/95/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -81,7 +81,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -121,6 +121,6 @@ Current `maintainer `__: |maintainer-pedrobaeza| -This module is part of the `OCA/account-invoicing `_ project on GitHub. +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/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index 593c54615b1..1b3bc07a9d0 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { 'name': 'Sales order invoicing grouping criteria', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'category': 'Sales Management', 'license': 'AGPL-3', 'author': 'Tecnativa, ' diff --git a/sale_order_invoicing_grouping_criteria/i18n/es.po b/sale_order_invoicing_grouping_criteria/i18n/es.po index f307c4286ee..f35031205a1 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/es.po +++ b/sale_order_invoicing_grouping_criteria/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 12:16+0000\n" -"PO-Revision-Date: 2019-11-15 13:17+0100\n" +"POT-Creation-Date: 2019-11-26 10:26+0000\n" +"PO-Revision-Date: 2019-11-26 11:27+0100\n" "Last-Translator: <>\n" "Language-Team: \n" "Language: es\n" @@ -22,108 +22,108 @@ msgstr "" 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 +#: 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 +#: 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:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +#: 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_default_sale_invoicing_grouping_criteria_id +#: 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__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 +#: 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 +#: 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 and currency will always be applied." msgstr "Campos usados para agrupar los pedidos de venta cuando se facturan. La dirección de facturación 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 +#: 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 +#: 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 +#: 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:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form msgid "If empty, invoicing address and currency will be applied." msgstr "Si está vacío, la dirección de facturacíón 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 -#: model:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_form 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 +#: 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 +#: 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 +#: 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 +#: 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.model,name:sale_order_invoicing_grouping_criteria.model_sale_order -msgid "Quotation" -msgstr "Presupuesto" +msgid "Sale Order" +msgstr "Pedido de venta" #. 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: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.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +#: 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" - -#. module: sale_order_invoicing_grouping_criteria -#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings -msgid "res.config.settings" -msgstr "res.config.settings" 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 index a5a51a77ba3..7f33ff608e9 100644 --- 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 @@ -4,8 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-11-26 10:26+0000\n" +"PO-Revision-Date: 2019-11-26 10:26+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -18,109 +20,109 @@ msgstr "" 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 +#: 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 +#: 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:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +#: 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_default_sale_invoicing_grouping_criteria_id +#: 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__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 +#: 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 +#: 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 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 +#: 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 +#: 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 +#: 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:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form msgid "If empty, invoicing address 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 -#: model:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.view_partner_form 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 +#: 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 +#: 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 +#: 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 +#: 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.model,name:sale_order_invoicing_grouping_criteria.model_sale_order -msgid "Quotation" +msgid "Sale Order" 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: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.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form +#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_grouping_criteria.res_config_settings_view_form msgid "Sales Order Invoicing" msgstr "" -#. module: sale_order_invoicing_grouping_criteria -#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_config_settings -msgid "res.config.settings" -msgstr "" - diff --git a/sale_order_invoicing_grouping_criteria/models/res_config_settings.py b/sale_order_invoicing_grouping_criteria/models/res_config_settings.py index c648a0e3b0c..a3fddff592f 100644 --- a/sale_order_invoicing_grouping_criteria/models/res_config_settings.py +++ b/sale_order_invoicing_grouping_criteria/models/res_config_settings.py @@ -7,6 +7,7 @@ class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' - default_sale_invoicing_grouping_criteria_id = fields.Many2one( + res_default_sale_invoicing_grouping_criteria_id = fields.Many2one( related='company_id.default_sale_invoicing_grouping_criteria_id', + readonly=False, ) diff --git a/sale_order_invoicing_grouping_criteria/res_company.py b/sale_order_invoicing_grouping_criteria/res_company.py deleted file mode 100644 index 0c8c694c32e..00000000000 --- a/sale_order_invoicing_grouping_criteria/res_company.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2019 Tecnativa - Pedro M. Baeza -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class SaleOrder(models.Model): - _inherit = "res.company" - - sale_invoicing_grouping_field_ids = fields.Many2many( - string="Sale Invoicing Grouping Fields", - comodel_name='ir.model.fields', - domain="[('model', '=', 'sale.order')]", - ) diff --git a/sale_order_invoicing_grouping_criteria/static/description/index.html b/sale_order_invoicing_grouping_criteria/static/description/index.html index 26c8aafb0e8..8b0550ac6ca 100644 --- a/sale_order_invoicing_grouping_criteria/static/description/index.html +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -367,7 +367,7 @@

Sales order invoicing grouping criteria

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

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

Default criteria for grouping (invoicing partner and currency used) will be @@ -431,7 +431,7 @@

Bug Tracker

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

+feedback.

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

@@ -460,7 +460,7 @@

Maintainers

promote its widespread use.

Current maintainer:

pedrobaeza

-

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

+

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/test_sale_order_invoicing_group_criteria.py b/sale_order_invoicing_grouping_criteria/tests/test_sale_order_invoicing_group_criteria.py index dc4d37767c4..a3858ee1e3e 100644 --- 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 @@ -19,7 +19,7 @@ def setUpClass(cls): cls.grouping_criteria = cls.GroupingCriteria.create({ 'name': 'Delivery Address', 'field_ids': [( - 4, cls.env.ref('sale.field_sale_order_partner_shipping_id').id, + 4, cls.env.ref('sale.field_sale_order__partner_shipping_id').id )], }) cls.order = cls.env['sale.order'].create({ 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 index 39de4ee1d49..44804fc96c7 100644 --- a/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml +++ b/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml @@ -13,9 +13,9 @@
-
diff --git a/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml b/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml index c895c03c9e0..781292e5975 100644 --- a/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml +++ b/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml @@ -3,13 +3,15 @@ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> - + 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 index ef550c34af2..b978cd0495e 100644 --- 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 @@ -1,9 +1,7 @@ - + From 7a0c290f362ff8f1a941c6dfcf95cbbd596d7164 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 27 Nov 2019 17:18:26 +0100 Subject: [PATCH 03/31] [IMP] sale_order_invoicing_grouping_criteria: black, isort --- .../__manifest__.py | 33 ++++----- .../models/res_company.py | 2 +- .../models/res_config_settings.py | 5 +- .../models/res_partner.py | 5 +- .../sale_invoicing_grouping_criteria.py | 6 +- .../models/sale_order.py | 7 +- ...est_sale_order_invoicing_group_criteria.py | 70 ++++++++++--------- 7 files changed, 65 insertions(+), 63 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index 1b3bc07a9d0..74cd6502a95 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -2,23 +2,20 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Sales order invoicing grouping criteria', - 'version': '12.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', + "name": "Sales order invoicing grouping criteria", + "version": "12.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"], + "data": [ + "security/ir.model.access.csv", + "views/res_config_settings_views.xml", + "views/res_partner_views.xml", + "views/sale_invoicing_grouping_criteria_views.xml", ], - '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': 'Beta', - 'maintainers': ['pedrobaeza'], + "installable": True, + "development_status": "Beta", + "maintainers": ["pedrobaeza"], } diff --git a/sale_order_invoicing_grouping_criteria/models/res_company.py b/sale_order_invoicing_grouping_criteria/models/res_company.py index 9fb6ba5fd69..8c939aee2e1 100644 --- a/sale_order_invoicing_grouping_criteria/models/res_company.py +++ b/sale_order_invoicing_grouping_criteria/models/res_company.py @@ -9,5 +9,5 @@ class ResCompany(models.Model): default_sale_invoicing_grouping_criteria_id = fields.Many2one( string="Default Sales Invoicing Grouping Criteria", - comodel_name='sale.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 index a3fddff592f..e3749617b93 100644 --- a/sale_order_invoicing_grouping_criteria/models/res_config_settings.py +++ b/sale_order_invoicing_grouping_criteria/models/res_config_settings.py @@ -5,9 +5,8 @@ class ResConfigSettings(models.TransientModel): - _inherit = 'res.config.settings' + _inherit = "res.config.settings" res_default_sale_invoicing_grouping_criteria_id = fields.Many2one( - related='company_id.default_sale_invoicing_grouping_criteria_id', - readonly=False, + related="company_id.default_sale_invoicing_grouping_criteria_id", readonly=False ) diff --git a/sale_order_invoicing_grouping_criteria/models/res_partner.py b/sale_order_invoicing_grouping_criteria/models/res_partner.py index 53016572e6e..c4659dbac16 100644 --- a/sale_order_invoicing_grouping_criteria/models/res_partner.py +++ b/sale_order_invoicing_grouping_criteria/models/res_partner.py @@ -9,7 +9,7 @@ class ResPartner(models.Model): sale_invoicing_grouping_criteria_id = fields.Many2one( string="Sales Invoicing Grouping Criteria", - comodel_name='sale.invoicing.grouping.criteria', + comodel_name="sale.invoicing.grouping.criteria", help="If empty, company default (if any) or default will be applied.", ) @@ -18,5 +18,4 @@ 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'] + 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 index 26b99be2559..1df477d9504 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py @@ -6,13 +6,13 @@ class SaleInvoicingGroupingCriteria(models.Model): _name = "sale.invoicing.grouping.criteria" - _description = 'Sales Invoicing Grouping Criteria' + _description = "Sales Invoicing Grouping Criteria" name = fields.Char() field_ids = fields.Many2many( string="Grouping Fields", - comodel_name='ir.model.fields', + comodel_name="ir.model.fields", domain="[('model', '=', 'sale.order')]", help="Fields used for grouping sales orders when invoicing. " - "Invoicing address and currency will always be applied.", + "Invoicing address 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 index 4b7af5d9089..4e8fa75e3f2 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_order.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -11,8 +11,8 @@ def _get_sale_invoicing_group_key(self): self.ensure_one() group_key = [self.partner_invoice_id.id, self.currency_id.id] criteria = ( - self.partner_id.sale_invoicing_grouping_criteria_id or - self.company_id.default_sale_invoicing_grouping_criteria_id + self.partner_id.sale_invoicing_grouping_criteria_id + or self.company_id.default_sale_invoicing_grouping_criteria_id ) for field in criteria.field_ids: group_key.append(self[field.name]) @@ -30,5 +30,6 @@ def action_invoice_create(self, grouped=False, final=False): invoice_ids = [] for group in order_groups.values(): invoice_ids += super(SaleOrder, group).action_invoice_create( - grouped=grouped, final=final) + grouped=grouped, final=final + ) return invoice_ids 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 index a3858ee1e3e..ea230b4660f 100644 --- 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 @@ -8,35 +8,41 @@ class TestSaleOrderInvoicingGroupingCriteria(SavepointCase): @classmethod def setUpClass(cls): super().setUpClass() - 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.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() @@ -55,15 +61,15 @@ def test_invoicing_grouping_default(self): 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) + self.grouping_criteria.id + ) invoice_ids = (self.order + self.order2).action_invoice_create() 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) + self.partner.sale_invoicing_grouping_criteria_id = self.grouping_criteria.id invoice_ids = (self.order + self.order2).action_invoice_create() self.assertEqual(len(invoice_ids), 2) self.assertNotEqual(self.order.invoice_ids, self.order2.invoice_ids) From 73f6fe9a9e56d06fa343207a1d8cb4ec337f0fa0 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 27 Nov 2019 17:34:12 +0100 Subject: [PATCH 04/31] [MIG] sale_order_invoicing_grouping_criteria: Migration to 13.0 - Standard procedure - Adapt code --- .../README.rst | 14 ++++----- .../__manifest__.py | 6 ++-- .../i18n/es.po | 29 ++++++++++++------- ...sale_order_invoicing_grouping_criteria.pot | 25 ++++++++-------- .../models/sale_order.py | 4 +-- .../static/description/index.html | 6 ++-- ...est_sale_order_invoicing_group_criteria.py | 17 ++++++++--- ...sale_invoicing_grouping_criteria_views.xml | 1 - 8 files changed, 59 insertions(+), 43 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst index 1c76cd0336d..3718120837f 100644 --- a/sale_order_invoicing_grouping_criteria/README.rst +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -7,20 +7,20 @@ Sales order invoicing grouping criteria !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status - :alt: Beta + :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/12.0/sale_order_invoicing_grouping_criteria + :target: https://github.com/OCA/account-invoicing/tree/13.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-12-0/account-invoicing-12-0-sale_order_invoicing_grouping_criteria + :target: https://translation.odoo-community.org/projects/account-invoicing-13-0/account-invoicing-13-0-sale_order_invoicing_grouping_criteria :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/95/12.0 + :target: https://runbot.odoo-community.org/runbot/95/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -81,7 +81,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -121,6 +121,6 @@ Current `maintainer `__: |maintainer-pedrobaeza| -This module is part of the `OCA/account-invoicing `_ project on GitHub. +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/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index 74cd6502a95..49f5978871f 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,12 +3,12 @@ { "name": "Sales order invoicing grouping criteria", - "version": "12.0.1.0.0", + "version": "13.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"], + "depends": ["sale_management"], "data": [ "security/ir.model.access.csv", "views/res_config_settings_views.xml", @@ -16,6 +16,6 @@ "views/sale_invoicing_grouping_criteria_views.xml", ], "installable": True, - "development_status": "Beta", + "development_status": "Production/Stable", "maintainers": ["pedrobaeza"], } diff --git a/sale_order_invoicing_grouping_criteria/i18n/es.po b/sale_order_invoicing_grouping_criteria/i18n/es.po index f35031205a1..3dd89cff020 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/es.po +++ b/sale_order_invoicing_grouping_criteria/i18n/es.po @@ -49,7 +49,7 @@ 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__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" @@ -60,8 +60,12 @@ 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 and currency will always be applied." -msgstr "Campos usados para agrupar los pedidos de venta cuando se facturan. La dirección de facturación y la moneda se aplicarán siempre." +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address and " +"currency will always be applied." +msgstr "" +"Campos usados para agrupar los pedidos de venta cuando se facturan. La " +"dirección de facturación 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 @@ -77,12 +81,15 @@ msgstr "ID" #: 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." +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 and currency will be applied." -msgstr "Si está vacío, la dirección de facturacíón y la moneda serán aplicados." +msgstr "" +"Si está vacío, la dirección de facturacíón 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 @@ -109,11 +116,6 @@ msgstr "Última actualización el" msgid "Name" msgstr "Nombre" -#. module: sale_order_invoicing_grouping_criteria -#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order -msgid "Sale Order" -msgstr "Pedido de venta" - #. 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 @@ -123,6 +125,13 @@ msgstr "Pedido de venta" 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 +#, fuzzy +#| msgid "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" 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 index 7f33ff608e9..641c2702b82 100644 --- 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 @@ -1,14 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * sale_order_invoicing_grouping_criteria +# * sale_order_invoicing_grouping_criteria # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-26 10:26+0000\n" -"PO-Revision-Date: 2019-11-26 10:26+0000\n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -47,7 +45,7 @@ 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__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 "" @@ -58,7 +56,9 @@ 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 and currency will always be applied." +msgid "" +"Fields used for grouping sales orders when invoicing. Invoicing address and " +"currency will always be applied." msgstr "" #. module: sale_order_invoicing_grouping_criteria @@ -107,11 +107,6 @@ msgstr "" msgid "Name" msgstr "" -#. module: sale_order_invoicing_grouping_criteria -#: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_sale_order -msgid "Sale Order" -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 @@ -121,8 +116,12 @@ msgstr "" 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/sale_order.py b/sale_order_invoicing_grouping_criteria/models/sale_order.py index 4e8fa75e3f2..7db02f0937a 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_order.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -18,7 +18,7 @@ def _get_sale_invoicing_group_key(self): group_key.append(self[field.name]) return tuple(group_key) - def action_invoice_create(self, grouped=False, final=False): + def _create_invoices(self, grouped=False, final=False): """Slice the batch according grouping criteria.""" order_groups = {} for order in self: @@ -29,7 +29,7 @@ def action_invoice_create(self, grouped=False, final=False): order_groups[group_key] += order invoice_ids = [] for group in order_groups.values(): - invoice_ids += super(SaleOrder, group).action_invoice_create( + invoice_ids += super(SaleOrder, group)._create_invoices( grouped=grouped, final=final ) return invoice_ids diff --git a/sale_order_invoicing_grouping_criteria/static/description/index.html b/sale_order_invoicing_grouping_criteria/static/description/index.html index 8b0550ac6ca..82a0a1704a9 100644 --- a/sale_order_invoicing_grouping_criteria/static/description/index.html +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -367,7 +367,7 @@

Sales order invoicing grouping criteria

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

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

Default criteria for grouping (invoicing partner and currency used) will be @@ -431,7 +431,7 @@

Bug Tracker

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

+feedback.

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

@@ -460,7 +460,7 @@

Maintainers

promote its widespread use.

Current maintainer:

pedrobaeza

-

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

+

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/test_sale_order_invoicing_group_criteria.py b/sale_order_invoicing_grouping_criteria/tests/test_sale_order_invoicing_group_criteria.py index ea230b4660f..47180f78a1e 100644 --- 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 @@ -48,13 +48,13 @@ def setUpClass(cls): cls.order2.action_confirm() def test_invoicing_same_data(self): - invoice_ids = (self.order + self.order2).action_invoice_create() + 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).action_invoice_create() + invoice_ids = (self.order + self.order2)._create_invoices() self.assertEqual(len(invoice_ids), 2) self.assertNotEqual(self.order.invoice_ids, self.order2.invoice_ids) @@ -63,13 +63,22 @@ def test_invoicing_grouping_company_criteria(self): self.order.company_id.default_sale_invoicing_grouping_criteria_id = ( self.grouping_criteria.id ) - invoice_ids = (self.order + self.order2).action_invoice_create() + 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).action_invoice_create() + 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_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/sale_invoicing_grouping_criteria_views.xml b/sale_order_invoicing_grouping_criteria/views/sale_invoicing_grouping_criteria_views.xml index b978cd0495e..3672c6aeecf 100644 --- 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 @@ -44,7 +44,6 @@ Sales Invoicing Grouping Criteria ir.actions.act_window sale.invoicing.grouping.criteria - form tree,form
From 7befa1ca941964badd3ff5d738542d459de439bb Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Mon, 2 Mar 2020 10:11:23 +0100 Subject: [PATCH 05/31] [FIX] sale_order_invoicing_grouping_criteria: Return recordset instead of list --- sale_order_invoicing_grouping_criteria/__manifest__.py | 2 +- sale_order_invoicing_grouping_criteria/models/sale_order.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index 49f5978871f..f1c96275881 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "13.0.1.0.0", + "version": "13.0.1.0.1", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", diff --git a/sale_order_invoicing_grouping_criteria/models/sale_order.py b/sale_order_invoicing_grouping_criteria/models/sale_order.py index 7db02f0937a..621cf28f10c 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_order.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -27,9 +27,9 @@ def _create_invoices(self, grouped=False, final=False): order_groups[group_key] = order else: order_groups[group_key] += order - invoice_ids = [] + invoices = self.env["account.move"].browse() for group in order_groups.values(): - invoice_ids += super(SaleOrder, group)._create_invoices( + invoices += super(SaleOrder, group)._create_invoices( grouped=grouped, final=final ) - return invoice_ids + return invoices From 19fe0692f1e4f063161e6442d236cd25821e406c Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 5 Mar 2020 10:12:18 +0100 Subject: [PATCH 06/31] [IMP] sale_order_invoicing_grouping_criter: Make use of new core hook Odoo now includes a hook for obtaining the grouping criteria, so we are making use of it for cleaning some code and being compatible with other developments. We also clarifies in documentation the new company grouping criteria also introduced by Odoo, as v13 allows to see several companies at the same time. --- .../README.rst | 16 +++++-- .../__manifest__.py | 2 +- .../i18n/es.po | 23 +++------- ...sale_order_invoicing_grouping_criteria.pot | 6 +-- .../sale_invoicing_grouping_criteria.py | 2 +- .../models/sale_order.py | 28 +++--------- .../readme/CONFIGURE.rst | 3 +- .../readme/DESCRIPTION.rst | 7 +-- .../readme/INSTALL.rst | 2 + .../static/description/index.html | 44 +++++++++++-------- .../views/res_config_settings_views.xml | 26 +++++++---- .../views/res_partner_views.xml | 11 ++--- ...sale_invoicing_grouping_criteria_views.xml | 19 +++----- 13 files changed, 93 insertions(+), 96 deletions(-) create mode 100644 sale_order_invoicing_grouping_criteria/readme/INSTALL.rst diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst index 3718120837f..644f1d08954 100644 --- a/sale_order_invoicing_grouping_criteria/README.rst +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -28,15 +28,22 @@ Sales order invoicing grouping criteria This module allows to use custom criteria for grouping sales orders to be invoiced. -Default criteria for grouping (invoicing partner and currency used) 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. +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: +Installation +============ + +This module only works in an updated 13.0 version after the 4th of March of 2020, +specifically after the commit https://github.com/odoo/odoo/commit/6f036e758000. + Configuration ============= @@ -63,7 +70,8 @@ whole company: #. Locate inside "Sales Order Invoicing" section, the field "Default Grouping Criteria". #. Introduce there the grouping criteria to be applied by default. If empty, - the general default of invoicing address + currency will be applied. + the general default of invoicing address + currency + company will be + applied. Usage ===== diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index f1c96275881..b250fb01dad 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "13.0.1.0.1", + "version": "13.0.2.0.0", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", diff --git a/sale_order_invoicing_grouping_criteria/i18n/es.po b/sale_order_invoicing_grouping_criteria/i18n/es.po index 3dd89cff020..45afbb4c051 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/es.po +++ b/sale_order_invoicing_grouping_criteria/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-26 10:26+0000\n" -"PO-Revision-Date: 2019-11-26 11:27+0100\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" @@ -60,12 +60,8 @@ 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 and " -"currency will always be applied." -msgstr "" -"Campos usados para agrupar los pedidos de venta cuando se facturan. La " -"dirección de facturación y la moneda se aplicarán siempre." +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 @@ -81,15 +77,12 @@ msgstr "ID" #: 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." +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 and currency will be applied." -msgstr "" -"Si está vacío, la dirección de facturacíón y la moneda serán aplicados." +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 @@ -127,8 +120,6 @@ 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 -#, fuzzy -#| msgid "Sale Order" msgid "Sales Order" msgstr "Pedido de venta" 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 index 641c2702b82..1624e646ba2 100644 --- 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 @@ -57,8 +57,8 @@ 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 and " -"currency will always be applied." +"Fields used for grouping sales orders when invoicing. Invoicing address, " +"company and currency will always be applied." msgstr "" #. module: sale_order_invoicing_grouping_criteria @@ -79,7 +79,7 @@ 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 and currency will be applied." +msgid "If empty, invoicing address, company and currency will be applied." msgstr "" #. module: sale_order_invoicing_grouping_criteria 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 index 1df477d9504..5a526b5312d 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_invoicing_grouping_criteria.py @@ -14,5 +14,5 @@ class SaleInvoicingGroupingCriteria(models.Model): comodel_name="ir.model.fields", domain="[('model', '=', 'sale.order')]", help="Fields used for grouping sales orders when invoicing. " - "Invoicing address and currency will always be applied.", + "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 index 621cf28f10c..00256bccfda 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_order.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -1,4 +1,4 @@ -# Copyright 2019 Tecnativa - Pedro M. Baeza +# Copyright 2019-2020 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import models @@ -7,29 +7,13 @@ class SaleOrder(models.Model): _inherit = "sale.order" - def _get_sale_invoicing_group_key(self): - self.ensure_one() - group_key = [self.partner_invoice_id.id, self.currency_id.id] + def _get_invoice_grouping_keys(self): + """Inject the extra grouping criteria.""" + group_key = super()._get_invoice_grouping_keys() criteria = ( self.partner_id.sale_invoicing_grouping_criteria_id or self.company_id.default_sale_invoicing_grouping_criteria_id ) for field in criteria.field_ids: - group_key.append(self[field.name]) - return tuple(group_key) - - def _create_invoices(self, grouped=False, final=False): - """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 - invoices = self.env["account.move"].browse() - for group in order_groups.values(): - invoices += super(SaleOrder, group)._create_invoices( - grouped=grouped, final=final - ) - return invoices + group_key.append(field.name) + return group_key diff --git a/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst b/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst index 3d7cc762e1d..cc7a3a0eac2 100644 --- a/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst +++ b/sale_order_invoicing_grouping_criteria/readme/CONFIGURE.rst @@ -21,4 +21,5 @@ whole company: #. Locate inside "Sales Order Invoicing" section, the field "Default Grouping Criteria". #. Introduce there the grouping criteria to be applied by default. If empty, - the general default of invoicing address + currency will be applied. + the general default of invoicing address + currency + company will be + applied. diff --git a/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst b/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst index 963c66733b9..cbc91b12288 100644 --- a/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst +++ b/sale_order_invoicing_grouping_criteria/readme/DESCRIPTION.rst @@ -1,6 +1,7 @@ This module allows to use custom criteria for grouping sales orders to be invoiced. -Default criteria for grouping (invoicing partner and currency used) 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. +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/INSTALL.rst b/sale_order_invoicing_grouping_criteria/readme/INSTALL.rst new file mode 100644 index 00000000000..844353ede10 --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/readme/INSTALL.rst @@ -0,0 +1,2 @@ +This module only works in an updated 13.0 version after the 4th of March of 2020, +specifically after the commit https://github.com/odoo/odoo/commit/6f036e758000. diff --git a/sale_order_invoicing_grouping_criteria/static/description/index.html b/sale_order_invoicing_grouping_criteria/static/description/index.html index 82a0a1704a9..6c96f36ba9d 100644 --- a/sale_order_invoicing_grouping_criteria/static/description/index.html +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -370,25 +370,32 @@

Sales order invoicing grouping criteria

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

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

-

Default criteria for grouping (invoicing partner and currency used) 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.

+

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

+
+

Installation

+

This module only works in an updated 13.0 version after the 4th of March of 2020, +specifically after the commit https://github.com/odoo/odoo/commit/6f036e758000.

+
-

Configuration

+

Configuration

For creating new grouping criteria:

  1. Go to Invoicing > Configuration > Management > Invoicing Grouping Criteria.
  2. @@ -412,11 +419,12 @@

    Configuration

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

Usage

+

Usage

  1. Go to Sales > Invoicing > Orders to Invoice.
  2. Select sales orders whose invoicing you want to do.
  3. @@ -427,7 +435,7 @@

    Usage

-

Bug Tracker

+

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 @@ -435,15 +443,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose 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 index 44804fc96c7..f091e6e62ee 100644 --- a/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml +++ b/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml @@ -1,26 +1,34 @@ - + - - + res.config.settings

Sales Order Invoicing

-
+
-
+
-
- diff --git a/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml b/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml index 781292e5975..6794b8931df 100644 --- a/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml +++ b/sale_order_invoicing_grouping_criteria/views/res_partner_views.xml @@ -1,18 +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 index 3672c6aeecf..f1b6bf97056 100644 --- 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 @@ -1,52 +1,45 @@ - - + - - 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 - Date: Fri, 9 Oct 2020 20:46:09 +0200 Subject: [PATCH 07/31] [FIX] sale_order_invoicing_grouping_criteria: Don't inject grouping criteria, but slice super calls It turns out that the grouping criteria is applied over the invoice vals dictionary list instead on sales order so you can't group by any field in sales order, including the trick of slicing by ID for not grouping at all. We then restore and adapt the v12 code, that slices the recordset in pieces according the grouping criteria with fields obtained in the sales orders. --- .../__manifest__.py | 2 +- .../models/sale_order.py | 31 ++++++++++++++++--- ...est_sale_order_invoicing_group_criteria.py | 9 ++++++ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index b250fb01dad..6f7e0b9b86d 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "13.0.2.0.0", + "version": "13.0.2.0.1", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", diff --git a/sale_order_invoicing_grouping_criteria/models/sale_order.py b/sale_order_invoicing_grouping_criteria/models/sale_order.py index 00256bccfda..87cd02c770d 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_order.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -7,13 +7,34 @@ class SaleOrder(models.Model): _inherit = "sale.order" - def _get_invoice_grouping_keys(self): - """Inject the extra grouping criteria.""" - group_key = super()._get_invoice_grouping_keys() + 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, + ] criteria = ( self.partner_id.sale_invoicing_grouping_criteria_id or self.company_id.default_sale_invoicing_grouping_criteria_id ) for field in criteria.field_ids: - group_key.append(field.name) - return group_key + group_key.append(self[field.name]) + return tuple(group_key) + + def _create_invoices(self, grouped=False, final=False): + """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 + ) + return moves 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 index 47180f78a1e..4ba72a21d0d 100644 --- 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 @@ -74,6 +74,15 @@ def test_invoicing_grouping_partner_criteria(self): 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( From db028a561a0d97858a1bde08d29de0676a426711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Honor=C3=A9?= Date: Fri, 21 May 2021 11:51:25 +0200 Subject: [PATCH 08/31] [13.0][FIX] sale_order_invoicing_grouping_criteria: - The partner to get the grouping criteria should be the invoice address (if set) as this one will be used to create the invoice; - Extract this part into a function to have a overwritable point; - Little improvement into unit test: disable tracking. --- .../__manifest__.py | 2 +- .../models/sale_order.py | 13 ++++++++++++- .../test_sale_order_invoicing_group_criteria.py | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index 6f7e0b9b86d..e9a28654a7f 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "13.0.2.0.1", + "version": "13.0.2.0.2", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", diff --git a/sale_order_invoicing_grouping_criteria/models/sale_order.py b/sale_order_invoicing_grouping_criteria/models/sale_order.py index 87cd02c770d..25d3ec2b0d7 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_order.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -7,6 +7,16 @@ 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() @@ -15,8 +25,9 @@ def _get_sale_invoicing_group_key(self): self.partner_invoice_id.id, self.currency_id.id, ] + partner = self._get_grouping_partner() criteria = ( - self.partner_id.sale_invoicing_grouping_criteria_id + partner.sale_invoicing_grouping_criteria_id or self.company_id.default_sale_invoicing_grouping_criteria_id ) for field in criteria.field_ids: 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 index 4ba72a21d0d..b68f45c94e9 100644 --- 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 @@ -8,6 +8,7 @@ class TestSaleOrderInvoicingGroupingCriteria(SavepointCase): @classmethod def setUpClass(cls): super().setUpClass() + 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( From 4b7aabcf09a164ec995a4b0d847f2c80a3774c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Telmo=20Su=C3=A1rez?= Date: Wed, 23 Jun 2021 13:10:52 +0200 Subject: [PATCH 09/31] [IMP] sale_order_invoicing_grouping_criteria: black, isort, prettier --- sale_order_invoicing_grouping_criteria/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index e9a28654a7f..7d629d27f62 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "13.0.2.0.2", + "version": "14.0.1.0.0", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", From 2011d50b9c219cc3cd7ac4dcf0ef09930679e3b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Telmo=20Su=C3=A1rez?= Date: Wed, 23 Jun 2021 14:44:30 +0200 Subject: [PATCH 10/31] [MIG] sale_order_invoicing_grouping_criteria: Migration to 14.0 --- sale_order_invoicing_grouping_criteria/README.rst | 10 +++++----- .../sale_order_invoicing_grouping_criteria.pot | 14 +++++++++++++- .../static/description/index.html | 6 +++--- .../views/res_config_settings_views.xml | 2 +- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst index 644f1d08954..fffe4000b81 100644 --- a/sale_order_invoicing_grouping_criteria/README.rst +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -14,13 +14,13 @@ Sales order invoicing grouping criteria :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/13.0/sale_order_invoicing_grouping_criteria + :target: https://github.com/OCA/account-invoicing/tree/14.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-13-0/account-invoicing-13-0-sale_order_invoicing_grouping_criteria + :target: https://translation.odoo-community.org/projects/account-invoicing-14-0/account-invoicing-14-0-sale_order_invoicing_grouping_criteria :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/95/13.0 + :target: https://runbot.odoo-community.org/runbot/95/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -89,7 +89,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -129,6 +129,6 @@ Current `maintainer `__: |maintainer-pedrobaeza| -This module is part of the `OCA/account-invoicing `_ project on GitHub. +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/i18n/sale_order_invoicing_grouping_criteria.pot b/sale_order_invoicing_grouping_criteria/i18n/sale_order_invoicing_grouping_criteria.pot index 1624e646ba2..d3937740aa8 100644 --- 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 @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -50,7 +50,11 @@ 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_res_company__display_name +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__display_name +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__display_name #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order__display_name msgid "Display Name" msgstr "" @@ -67,7 +71,11 @@ msgid "Grouping Fields" msgstr "" #. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__id #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order__id msgid "ID" msgstr "" @@ -88,7 +96,11 @@ msgid "Invoicing Grouping Criteria" msgstr "" #. module: sale_order_invoicing_grouping_criteria +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company____last_update +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings____last_update +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner____last_update #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update +#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order____last_update msgid "Last Modified on" msgstr "" diff --git a/sale_order_invoicing_grouping_criteria/static/description/index.html b/sale_order_invoicing_grouping_criteria/static/description/index.html index 6c96f36ba9d..14c895a99c3 100644 --- a/sale_order_invoicing_grouping_criteria/static/description/index.html +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -367,7 +367,7 @@

Sales order invoicing grouping criteria

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

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

Default criteria for grouping (invoicing partner, company and used currency) @@ -439,7 +439,7 @@

Bug Tracker

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

+feedback.

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

@@ -468,7 +468,7 @@

Maintainers

promote its widespread use.

Current maintainer:

pedrobaeza

-

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

+

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/views/res_config_settings_views.xml b/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml index f091e6e62ee..ec1202777d0 100644 --- a/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml +++ b/sale_order_invoicing_grouping_criteria/views/res_config_settings_views.xml @@ -17,7 +17,7 @@
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 index b68f45c94e9..f4f1c536d08 100644 --- 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 @@ -1,52 +1,51 @@ # Copyright 2019 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo.tests import SavepointCase +from odoo.tests import TransactionCase -class TestSaleOrderInvoicingGroupingCriteria(SavepointCase): - @classmethod - def setUpClass(cls): - super().setUpClass() - 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( +class TestSaleOrderInvoicingGroupingCriteria(TransactionCase): + def setUp(self): + super().setUp() + self.env = self.env(context=dict(self.env.context, tracking_disable=True)) + self.partner = self.env["res.partner"].create({"name": "Test partner"}) + self.partner2 = self.env["res.partner"].create({"name": "Other partner"}) + self.product = self.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( + self.GroupingCriteria = self.env["sale.invoicing.grouping.criteria"] + self.grouping_criteria = self.GroupingCriteria.create( { "name": "Delivery Address", "field_ids": [ - (4, cls.env.ref("sale.field_sale_order__partner_shipping_id").id) + (4, self.env.ref("sale.field_sale_order__partner_shipping_id").id) ], } ) - cls.order = cls.env["sale.order"].create( + self.order = self.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, + "partner_id": self.partner.id, + "partner_shipping_id": self.partner.id, + "partner_invoice_id": self.partner.id, + "pricelist_id": self.partner.property_product_pricelist.id, "order_line": [ ( 0, 0, { - "name": cls.product.name, - "product_id": cls.product.id, + "name": self.product.name, + "product_id": self.product.id, "price_unit": 20, "product_uom_qty": 1, - "product_uom": cls.product.uom_id.id, + "product_uom": self.product.uom_id.id, }, ) ], } ) - cls.order.action_confirm() - cls.order2 = cls.order.copy() - cls.order2.action_confirm() + self.order.action_confirm() + self.order2 = self.order.copy() + self.order2.action_confirm() def test_invoicing_same_data(self): invoice_ids = (self.order + self.order2)._create_invoices() From 4a91b2bd5875636bb7af2f0ddaec81d57966a11b Mon Sep 17 00:00:00 2001 From: Raf Ven Date: Fri, 3 Jun 2022 10:39:36 +0200 Subject: [PATCH 14/31] [15.0] [FIX] AccessError for user not having "Administration/Access Rights" --- .../__manifest__.py | 2 +- .../models/sale_order.py | 2 +- .../tests/test_sale_order_invoicing_group_criteria.py | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index f67fd3f6808..58c7ea1d26c 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "15.0.1.0.0", + "version": "15.0.1.0.1", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", diff --git a/sale_order_invoicing_grouping_criteria/models/sale_order.py b/sale_order_invoicing_grouping_criteria/models/sale_order.py index dd891542bfa..6b329346363 100644 --- a/sale_order_invoicing_grouping_criteria/models/sale_order.py +++ b/sale_order_invoicing_grouping_criteria/models/sale_order.py @@ -30,7 +30,7 @@ def _get_sale_invoicing_group_key(self): partner.sale_invoicing_grouping_criteria_id or self.company_id.default_sale_invoicing_grouping_criteria_id ) - for field in criteria.field_ids: + for field in criteria.field_ids.sudo(): group_key.append(self[field.name]) return tuple(group_key) 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 index f4f1c536d08..59c6eb43ebb 100644 --- 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 @@ -74,6 +74,17 @@ def test_invoicing_grouping_partner_criteria(self): 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 + invoice_ids = ( + (self.order + self.order2) + .with_user(self.env.ref("base.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 From 9438fe6c376b231636bac4eadb7ce56bc7f45b31 Mon Sep 17 00:00:00 2001 From: ClementChaumienneC2C Date: Tue, 5 Jul 2022 11:44:19 +0000 Subject: [PATCH 15/31] Added translation using Weblate (French) --- .../i18n/fr.po | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 sale_order_invoicing_grouping_criteria/i18n/fr.po 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..a0fa8919c0d --- /dev/null +++ b/sale_order_invoicing_grouping_criteria/i18n/fr.po @@ -0,0 +1,128 @@ +# 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" +"Last-Translator: Automatically generated\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" + +#. 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 "" From 92ba795f559e488f8115bc41fb525e97bfc83c13 Mon Sep 17 00:00:00 2001 From: ClementChaumienneC2C Date: Tue, 5 Jul 2022 11:59:03 +0000 Subject: [PATCH 16/31] Translated using Weblate (French) Currently translated at 100.0% (21 of 21 strings) Translation: account-invoicing-15.0/account-invoicing-15.0-sale_order_invoicing_grouping_criteria Translate-URL: https://translation.odoo-community.org/projects/account-invoicing-15-0/account-invoicing-15-0-sale_order_invoicing_grouping_criteria/fr/ --- .../i18n/fr.po | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/i18n/fr.po b/sale_order_invoicing_grouping_criteria/i18n/fr.po index a0fa8919c0d..ecd0f3dbdb1 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/fr.po +++ b/sale_order_invoicing_grouping_criteria/i18n/fr.po @@ -6,54 +6,56 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\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 "" +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 "" +msgstr "Paramètres" #. module: sale_order_invoicing_grouping_criteria #: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner msgid "Contact" -msgstr "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 @@ -61,52 +63,57 @@ 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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +msgstr "Nom" #. module: sale_order_invoicing_grouping_criteria #: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria @@ -115,14 +122,14 @@ msgstr "" #: 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 "" +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 "" +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 "" +msgstr "Facturation Commandes de Vente" From a1b997b9b517b0b0779a6249264b9d7be62900da Mon Sep 17 00:00:00 2001 From: jabelchi Date: Tue, 9 Aug 2022 07:28:38 +0000 Subject: [PATCH 17/31] Translated using Weblate (Catalan) Currently translated at 100.0% (21 of 21 strings) Translation: account-invoicing-15.0/account-invoicing-15.0-sale_order_invoicing_grouping_criteria Translate-URL: https://translation.odoo-community.org/projects/account-invoicing-15-0/account-invoicing-15-0-sale_order_invoicing_grouping_criteria/ca/ --- .../i18n/ca.po | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/i18n/ca.po b/sale_order_invoicing_grouping_criteria/i18n/ca.po index 721c6b27740..a00728440b6 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/ca.po +++ b/sale_order_invoicing_grouping_criteria/i18n/ca.po @@ -6,49 +6,51 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2022-08-09 10:06+0000\n" +"Last-Translator: jabelchi \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.3.2\n" #. module: sale_order_invoicing_grouping_criteria #: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_company msgid "Companies" -msgstr "" +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 "" +msgstr "Ajustos" #. module: sale_order_invoicing_grouping_criteria #: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner msgid "Contact" -msgstr "" +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 "" +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 "" +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 "" +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 "" +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_res_company__display_name @@ -57,7 +59,7 @@ msgstr "" #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order__display_name msgid "Display Name" -msgstr "" +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 @@ -65,11 +67,13 @@ 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 "" +msgstr "Camps d'agrupació" #. module: sale_order_invoicing_grouping_criteria #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company__id @@ -78,23 +82,25 @@ msgstr "" #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order__id msgid "ID" -msgstr "" +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 "" +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 "" +msgstr "Criteri d'agrupació de facturació" #. module: sale_order_invoicing_grouping_criteria #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_company____last_update @@ -103,22 +109,22 @@ msgstr "" #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order____last_update msgid "Last Modified on" -msgstr "" +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 "" +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 "" +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 "" +msgstr "Nom" #. module: sale_order_invoicing_grouping_criteria #: model:ir.actions.act_window,name:sale_order_invoicing_grouping_criteria.action_sale_invoice_grouping_criteria @@ -127,14 +133,14 @@ msgstr "" #: 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 "" +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 "" +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 "" +msgstr "Facturació de comandes de venda" From cc84d4a4a92ccf31813f3d71e075aefeb3b834fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Tue, 13 Sep 2022 16:53:59 +0200 Subject: [PATCH 18/31] [FIX] sale_order_invoicing_grouping_criteria: use valid user in test (not demo data) --- sale_order_invoicing_grouping_criteria/__manifest__.py | 2 +- .../tests/test_sale_order_invoicing_group_criteria.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index 58c7ea1d26c..2db76aa13c3 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "15.0.1.0.1", + "version": "15.0.1.0.2", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", 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 index 59c6eb43ebb..51e4f8ebfbb 100644 --- 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 @@ -77,11 +77,11 @@ def test_invoicing_grouping_partner_criteria(self): 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 - invoice_ids = ( - (self.order + self.order2) - .with_user(self.env.ref("base.user_demo")) - ._create_invoices() - ) + 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) From c1330f6a20619bdcd0fb9084ec85f63cbb67843b Mon Sep 17 00:00:00 2001 From: Javier Iniesta Date: Fri, 9 Dec 2022 09:02:31 +0100 Subject: [PATCH 19/31] [MIG] sale_order_invoicing_grouping_criteria: Migration to 16.0 --- .../__manifest__.py | 2 +- .../readme/INSTALL.rst | 2 - ...est_sale_order_invoicing_group_criteria.py | 51 +++++++++++-------- 3 files changed, 32 insertions(+), 23 deletions(-) delete mode 100644 sale_order_invoicing_grouping_criteria/readme/INSTALL.rst diff --git a/sale_order_invoicing_grouping_criteria/__manifest__.py b/sale_order_invoicing_grouping_criteria/__manifest__.py index 2db76aa13c3..b59953464ba 100644 --- a/sale_order_invoicing_grouping_criteria/__manifest__.py +++ b/sale_order_invoicing_grouping_criteria/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Sales order invoicing grouping criteria", - "version": "15.0.1.0.2", + "version": "16.0.1.0.0", "category": "Sales Management", "license": "AGPL-3", "author": "Tecnativa, " "Odoo Community Association (OCA)", diff --git a/sale_order_invoicing_grouping_criteria/readme/INSTALL.rst b/sale_order_invoicing_grouping_criteria/readme/INSTALL.rst deleted file mode 100644 index 844353ede10..00000000000 --- a/sale_order_invoicing_grouping_criteria/readme/INSTALL.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module only works in an updated 13.0 version after the 4th of March of 2020, -specifically after the commit https://github.com/odoo/odoo/commit/6f036e758000. 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 index 51e4f8ebfbb..6b039b162ec 100644 --- 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 @@ -5,47 +5,58 @@ class TestSaleOrderInvoicingGroupingCriteria(TransactionCase): - def setUp(self): - super().setUp() - self.env = self.env(context=dict(self.env.context, tracking_disable=True)) - self.partner = self.env["res.partner"].create({"name": "Test partner"}) - self.partner2 = self.env["res.partner"].create({"name": "Other partner"}) - self.product = self.env["product.product"].create( + @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"} ) - self.GroupingCriteria = self.env["sale.invoicing.grouping.criteria"] - self.grouping_criteria = self.GroupingCriteria.create( + cls.GroupingCriteria = cls.env["sale.invoicing.grouping.criteria"] + cls.grouping_criteria = cls.GroupingCriteria.create( { "name": "Delivery Address", "field_ids": [ - (4, self.env.ref("sale.field_sale_order__partner_shipping_id").id) + (4, cls.env.ref("sale.field_sale_order__partner_shipping_id").id) ], } ) - self.order = self.env["sale.order"].create( + cls.order = cls.env["sale.order"].create( { - "partner_id": self.partner.id, - "partner_shipping_id": self.partner.id, - "partner_invoice_id": self.partner.id, - "pricelist_id": self.partner.property_product_pricelist.id, + "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": self.product.name, - "product_id": self.product.id, + "name": cls.product.name, + "product_id": cls.product.id, "price_unit": 20, "product_uom_qty": 1, - "product_uom": self.product.uom_id.id, + "product_uom": cls.product.uom_id.id, }, ) ], } ) - self.order.action_confirm() - self.order2 = self.order.copy() - self.order2.action_confirm() + 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() From 1bb7a73e222251c3948e9a36d38b3dda3db921df Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 2 Jun 2023 23:28:05 +0000 Subject: [PATCH 20/31] [UPD] Update sale_order_invoicing_grouping_criteria.pot --- .../i18n/sale_order_invoicing_grouping_criteria.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index dc5c0f31a71..17d4b1c07a1 100644 --- 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 @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From 24bf152daac55fade486d3fc47d8afffb09733d1 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 2 Jun 2023 23:32:24 +0000 Subject: [PATCH 21/31] [UPD] README.rst --- .../README.rst | 16 +++----- .../static/description/index.html | 40 ++++++++----------- 2 files changed, 22 insertions(+), 34 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst index 532ecabca05..ac0d82bb8be 100644 --- a/sale_order_invoicing_grouping_criteria/README.rst +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -14,13 +14,13 @@ Sales order invoicing grouping criteria :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/15.0/sale_order_invoicing_grouping_criteria + :target: https://github.com/OCA/account-invoicing/tree/16.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-15-0/account-invoicing-15-0-sale_order_invoicing_grouping_criteria + :target: https://translation.odoo-community.org/projects/account-invoicing-16-0/account-invoicing-16-0-sale_order_invoicing_grouping_criteria :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/95/15.0 + :target: https://runbot.odoo-community.org/runbot/95/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,12 +38,6 @@ them. .. contents:: :local: -Installation -============ - -This module only works in an updated 13.0 version after the 4th of March of 2020, -specifically after the commit https://github.com/odoo/odoo/commit/6f036e758000. - Configuration ============= @@ -89,7 +83,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -129,6 +123,6 @@ Current `maintainer `__: |maintainer-pedrobaeza| -This module is part of the `OCA/account-invoicing `_ project on GitHub. +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/static/description/index.html b/sale_order_invoicing_grouping_criteria/static/description/index.html index 8fea16bda90..add53dbd0d7 100644 --- a/sale_order_invoicing_grouping_criteria/static/description/index.html +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -367,7 +367,7 @@

Sales order invoicing grouping criteria

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

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

Default criteria for grouping (invoicing partner, company and used currency) @@ -377,25 +377,19 @@

Sales order invoicing grouping criteria

Table of contents

-
-

Installation

-

This module only works in an updated 13.0 version after the 4th of March of 2020, -specifically after the commit https://github.com/odoo/odoo/commit/6f036e758000.

-
-

Configuration

+

Configuration

For creating new grouping criteria:

  1. Go to Invoicing > Configuration > Management > Invoicing Grouping Criteria.
  2. @@ -424,7 +418,7 @@

    Configuration

-

Usage

+

Usage

  1. Go to Sales > Invoicing > Orders to Invoice.
  2. Select sales orders whose invoicing you want to do.
  3. @@ -435,23 +429,23 @@

    Usage

-

Bug Tracker

+

Bug Tracker

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

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose @@ -468,7 +462,7 @@

Maintainers

promote its widespread use.

Current maintainer:

pedrobaeza

-

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

+

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.

From 28e1ebe12d872cca18675f1dacc660668c82d724 Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 3 Jun 2023 03:16:17 +0000 Subject: [PATCH 22/31] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: account-invoicing-16.0/account-invoicing-16.0-sale_order_invoicing_grouping_criteria Translate-URL: https://translation.odoo-community.org/projects/account-invoicing-16-0/account-invoicing-16-0-sale_order_invoicing_grouping_criteria/ --- .../i18n/ca.po | 12 ------------ .../i18n/es.po | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/i18n/ca.po b/sale_order_invoicing_grouping_criteria/i18n/ca.po index a00728440b6..2c632bbe0b0 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/ca.po +++ b/sale_order_invoicing_grouping_criteria/i18n/ca.po @@ -53,11 +53,7 @@ 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_res_company__display_name -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__display_name -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__display_name #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__display_name -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order__display_name msgid "Display Name" msgstr "Nom a mostrar" @@ -76,11 +72,7 @@ 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_res_company__id -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings__id -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner__id #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria__id -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order__id msgid "ID" msgstr "ID" @@ -103,11 +95,7 @@ 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_res_company____last_update -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_config_settings____last_update -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_res_partner____last_update #: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_invoicing_grouping_criteria____last_update -#: model:ir.model.fields,field_description:sale_order_invoicing_grouping_criteria.field_sale_order____last_update msgid "Last Modified on" msgstr "Darrera modificació el" diff --git a/sale_order_invoicing_grouping_criteria/i18n/es.po b/sale_order_invoicing_grouping_criteria/i18n/es.po index 45afbb4c051..d0601dccba4 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/es.po +++ b/sale_order_invoicing_grouping_criteria/i18n/es.po @@ -60,8 +60,12 @@ 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." +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 @@ -77,12 +81,16 @@ msgstr "ID" #: 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." +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." +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 From 623111bb86bd859d4be66c32d6a18d011124a38b Mon Sep 17 00:00:00 2001 From: eccit-quim Date: Fri, 23 Jun 2023 11:12:15 +0000 Subject: [PATCH 23/31] Translated using Weblate (Catalan) Currently translated at 100.0% (21 of 21 strings) Translation: account-invoicing-16.0/account-invoicing-16.0-sale_order_invoicing_grouping_criteria Translate-URL: https://translation.odoo-community.org/projects/account-invoicing-16-0/account-invoicing-16-0-sale_order_invoicing_grouping_criteria/ca/ --- sale_order_invoicing_grouping_criteria/i18n/ca.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/i18n/ca.po b/sale_order_invoicing_grouping_criteria/i18n/ca.po index 2c632bbe0b0..b70aed6a966 100644 --- a/sale_order_invoicing_grouping_criteria/i18n/ca.po +++ b/sale_order_invoicing_grouping_criteria/i18n/ca.po @@ -6,15 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2022-08-09 10:06+0000\n" -"Last-Translator: jabelchi \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.3.2\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 @@ -24,7 +24,7 @@ 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 "Ajustos" +msgstr "Paràmetres de configuració" #. module: sale_order_invoicing_grouping_criteria #: model:ir.model,name:sale_order_invoicing_grouping_criteria.model_res_partner From 00f10202da51c329a7a8ff330bcca2ee1970cfa5 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 11:37:15 +0000 Subject: [PATCH 24/31] [UPD] README.rst --- .../README.rst | 15 ++++--- .../static/description/index.html | 44 ++++++++++--------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/sale_order_invoicing_grouping_criteria/README.rst b/sale_order_invoicing_grouping_criteria/README.rst index ac0d82bb8be..b64229dbd72 100644 --- a/sale_order_invoicing_grouping_criteria/README.rst +++ b/sale_order_invoicing_grouping_criteria/README.rst @@ -2,10 +2,13 @@ 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 @@ -19,11 +22,11 @@ Sales order invoicing grouping criteria .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/account-invoicing-16-0/account-invoicing-16-0-sale_order_invoicing_grouping_criteria :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/95/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-invoicing&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module allows to use custom criteria for grouping sales orders to be invoiced. @@ -82,7 +85,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/sale_order_invoicing_grouping_criteria/static/description/index.html b/sale_order_invoicing_grouping_criteria/static/description/index.html index add53dbd0d7..eb4c8c13860 100644 --- a/sale_order_invoicing_grouping_criteria/static/description/index.html +++ b/sale_order_invoicing_grouping_criteria/static/description/index.html @@ -1,20 +1,20 @@ - + - + Sales order invoicing grouping criteria