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)`y_~Hnd9AUX7h-H?jVuU|}My+C=TjH(jKz
zqMVr0re3S$H@t{zI95qa)+Crz*5Zj}Ao%4Z><+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
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
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
+
+
+
+
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.
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.
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.
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.
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.
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 Criteriair.actions.act_windowsale.invoicing.grouping.criteria
- formtree,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
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.
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 @@
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.
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.
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