From ced6ef3345fa43b046169f9789bc4066a1fe5a1b Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Thu, 26 Nov 2020 10:50:18 +0100 Subject: [PATCH 01/11] Add stock_picking_group_by_partner_by_carrier_by_date --- .../README.rst | 86 ++++ .../__init__.py | 1 + .../__manifest__.py | 19 + .../models/__init__.py | 1 + .../models/stock_move.py | 34 ++ .../readme/CONTRIBUTORS.rst | 4 + .../readme/DESCRIPTION.rst | 1 + .../readme/USAGE.rst | 1 + .../static/description/index.html | 432 ++++++++++++++++++ .../tests/__init__.py | 1 + .../tests/test_grouping_by_date.py | 87 ++++ 11 files changed, 667 insertions(+) create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/README.rst create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/__init__.py create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/readme/DESCRIPTION.rst create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/readme/USAGE.rst create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/tests/__init__.py create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py diff --git a/stock_picking_group_by_partner_by_carrier_by_date/README.rst b/stock_picking_group_by_partner_by_carrier_by_date/README.rst new file mode 100644 index 000000000000..2d2aeda99c47 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/README.rst @@ -0,0 +1,86 @@ +============================================================== +Stock Picking: group by partner and carrier and scheduled date +============================================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |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%2Fstock--logistics--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/stock-logistics-workflow/tree/13.0/stock_picking_group_by_partner_by_carrier_by_date + :alt: OCA/stock-logistics-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/stock-logistics-workflow-13-0/stock-logistics-workflow-13-0-stock_picking_group_by_partner_by_carrier_by_date + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/154/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Group delivery orders by partner, carrier and scheduled date. + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +See `stock_picking_group_by_partner_by_carrier` configuration. + +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 +~~~~~~~ + +* Camptocamp + +Contributors +~~~~~~~~~~~~ + +* Simone Orsi + +* Camptocamp: + * Joël Grand-Guillaume + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/stock-logistics-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/stock_picking_group_by_partner_by_carrier_by_date/__init__.py b/stock_picking_group_by_partner_by_carrier_by_date/__init__.py new file mode 100644 index 000000000000..0650744f6bc6 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py new file mode 100644 index 000000000000..0973098a35f1 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2020 Camptocamp +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Stock Picking: group by partner and carrier and scheduled date", + "Summary": """Delivery orders will be matched by date too. + """, + "version": "13.0.1.0.0", + "development_status": "Alpha", + "author": "Camptocamp, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/stock-logistics-workflow", + "category": "Warehouse Management", + # TODO: consider splitting the hook for `_assign_picking` defined in + # `stock_picking_group_by_partner_by_carrier` + # to avoid depending on `stock_picking_group_by_partner_by_carrier`. + "depends": ["stock_picking_group_by_partner_by_carrier"], + "installable": True, + "license": "AGPL-3", +} diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py b/stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py new file mode 100644 index 000000000000..6bda2d2428e0 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py @@ -0,0 +1 @@ +from . import stock_move diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py new file mode 100644 index 000000000000..179b84907405 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py @@ -0,0 +1,34 @@ +# Copyright 2020 Camptocamp (https://www.camptocamp.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import models + + +class StockMove(models.Model): + _inherit = "stock.move" + + def _domain_search_picking_for_assignation(self): + domain = super()._domain_search_picking_for_assignation() + cutoff_domain = self._domain_search_picking_for_assignation_cutoff() + domain.extend(cutoff_domain) + return domain + + def _skip_search_picking_for_assignation_cutoff(self): + return ( + # TODO: consider making this configurable on the picking type + self.picking_type_id.code != "outgoing" + or not self.picking_type_id.group_pickings + or self.group_id.sale_id.picking_policy == "one" + ) + + def _domain_search_picking_for_assignation_cutoff(self): + domain = [] + if self._skip_search_picking_for_assignation_cutoff(): + return domain + date_planned = self.date_expected + date_planned_end = date_planned.replace(hour=23, minute=59, second=59) + domain = [ + ("scheduled_date", "<=", date_planned_end), + ("scheduled_date", ">=", date_planned), + ] + return domain diff --git a/stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst b/stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..d9a36a8a178b --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* Simone Orsi + +* Camptocamp: + * Joël Grand-Guillaume diff --git a/stock_picking_group_by_partner_by_carrier_by_date/readme/DESCRIPTION.rst b/stock_picking_group_by_partner_by_carrier_by_date/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..0d00d2f1dfcf --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Group delivery orders by partner, carrier and scheduled date. diff --git a/stock_picking_group_by_partner_by_carrier_by_date/readme/USAGE.rst b/stock_picking_group_by_partner_by_carrier_by_date/readme/USAGE.rst new file mode 100644 index 000000000000..46e9e00b03cf --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/readme/USAGE.rst @@ -0,0 +1 @@ +See `stock_picking_group_by_partner_by_carrier` configuration. diff --git a/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html b/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html new file mode 100644 index 000000000000..429d6a0559c4 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html @@ -0,0 +1,432 @@ + + + + + + +Stock Picking: group by partner and carrier and scheduled date + + + +
+

Stock Picking: group by partner and carrier and scheduled date

+ + +

Alpha License: AGPL-3 OCA/stock-logistics-workflow Translate me on Weblate Try me on Runbot

+

Group delivery orders by partner, carrier and scheduled date.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Usage

+

See stock_picking_group_by_partner_by_carrier configuration.

+
+
+

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

+
    +
  • Camptocamp
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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

+

This module is part of the OCA/stock-logistics-workflow project on GitHub.

+

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

+
+
+
+ + diff --git a/stock_picking_group_by_partner_by_carrier_by_date/tests/__init__.py b/stock_picking_group_by_partner_by_carrier_by_date/tests/__init__.py new file mode 100644 index 000000000000..d5ba83e8f9a9 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/tests/__init__.py @@ -0,0 +1 @@ +from . import test_grouping_by_date diff --git a/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py b/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py new file mode 100644 index 000000000000..3c562ce68a4e --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py @@ -0,0 +1,87 @@ +# Copyright 2020 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from freezegun import freeze_time + +from odoo.tests import SavepointCase, tagged + + +class TestGroupByDateBase(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.partner = cls.env.ref("base.res_partner_12") + cls.product = cls.env.ref("product.product_product_9") + cls.warehouse = cls.env.ref("stock.warehouse0") + cls.warehouse.out_type_id.group_pickings = True + + def _create_order(self, partner=None): + order = self.env["sale.order"].create( + { + "partner_id": partner.id, + "partner_shipping_id": partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": self.product.name, + "product_id": self.product.id, + "product_uom_qty": 1, + "product_uom": self.product.uom_id.id, + "price_unit": self.product.list_price, + }, + ) + ], + } + ) + return order + + +@tagged("post_install", "-at_install") +class TestGroupByDate(TestGroupByDateBase): + def _create_orders_and_pickings(self): + order1 = self._create_order(partner=self.partner) + order1.action_confirm() + picking1 = order1.picking_ids + order2 = self._create_order(partner=self.partner) + order2.action_confirm() + picking2 = order2.picking_ids + return picking1, picking2 + + def test_group_by_date(self): + # Schedule orders for tomorrow + with freeze_time("2020-11-27 12:00:00"): + p1, p2 = self._create_orders_and_pickings() + self.assertEqual(p1, p2) + + # Same day, inside time window + with freeze_time("2020-11-27 11:00:00"): + p3, p4 = self._create_orders_and_pickings() + self.assertEqual(p3, p4) + self.assertEqual(p3, p1) + + # Same day, out of time window + with freeze_time("2020-11-27 18:00:00"): + p5, p6 = self._create_orders_and_pickings() + self.assertEqual(p5, p6) + self.assertNotEqual(p5, p1) + + # Delay 1st picking date + p1.scheduled_date = "2020-11-27 18:30:00" + with freeze_time("2020-11-27 18:00:00"): + p5, p6 = self._create_orders_and_pickings() + self.assertEqual(p5, p6) + self.assertEqual(p5, p1) + + # Previous day + with freeze_time("2020-11-26 08:00:00"): + p7, p8 = self._create_orders_and_pickings() + self.assertEqual(p7, p8) + self.assertNotEqual(p7, p1) + + # Day after + with freeze_time("2020-11-28 14:00:00"): + p9, p10 = self._create_orders_and_pickings() + self.assertEqual(p9, p10) + self.assertNotEqual(p9, p1) From b2fead96952dcb5eb05051da943e9b8f14b908f1 Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Fri, 27 Nov 2020 12:12:20 +0100 Subject: [PATCH 02/11] s_picking_group_by_partner_by_carrier_by_date: rely on picking type flag --- .../__manifest__.py | 1 + ...ng_group_by_partner_by_carrier_by_date.pot | 34 ++++++++++++++++++ .../models/__init__.py | 1 + .../models/stock_move.py | 13 ++++--- .../models/stock_picking_type.py | 10 ++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../tests/test_grouping_by_date.py | 1 + .../views/stock_picking_type.xml | 12 +++++++ 8 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.pot create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/models/stock_picking_type.py create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/static/description/icon.png create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/views/stock_picking_type.xml diff --git a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py index 0973098a35f1..2905c8ca7d46 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py @@ -14,6 +14,7 @@ # `stock_picking_group_by_partner_by_carrier` # to avoid depending on `stock_picking_group_by_partner_by_carrier`. "depends": ["stock_picking_group_by_partner_by_carrier"], + "data": ["views/stock_picking_type.xml"], "installable": True, "license": "AGPL-3", } diff --git a/stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.pot b/stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.pot new file mode 100644 index 000000000000..29e6d44fc74c --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.pot @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_picking_group_by_partner_by_carrier_by_date +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.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: stock_picking_group_by_partner_by_carrier_by_date +#: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_picking_type__group_pickings_by_date +msgid "Group pickings by date" +msgstr "" + +#. module: stock_picking_group_by_partner_by_carrier_by_date +#: model:ir.model.fields,help:stock_picking_group_by_partner_by_carrier_by_date.field_stock_picking_type__group_pickings_by_date +msgid "If `Group pickings` is enabled they will be grouped by date too." +msgstr "" + +#. module: stock_picking_group_by_partner_by_carrier_by_date +#: model:ir.model,name:stock_picking_group_by_partner_by_carrier_by_date.model_stock_picking_type +msgid "Picking Type" +msgstr "" + +#. module: stock_picking_group_by_partner_by_carrier_by_date +#: model:ir.model,name:stock_picking_group_by_partner_by_carrier_by_date.model_stock_move +msgid "Stock Move" +msgstr "" diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py b/stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py index 6bda2d2428e0..90f60bebb8fa 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/__init__.py @@ -1 +1,2 @@ from . import stock_move +from . import stock_picking_type diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py index 179b84907405..1b477d78e778 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py @@ -9,21 +9,20 @@ class StockMove(models.Model): def _domain_search_picking_for_assignation(self): domain = super()._domain_search_picking_for_assignation() - cutoff_domain = self._domain_search_picking_for_assignation_cutoff() - domain.extend(cutoff_domain) + by_date_domain = self._domain_search_picking_for_assignation_by_date() + domain.extend(by_date_domain) return domain - def _skip_search_picking_for_assignation_cutoff(self): + def _skip_search_picking_for_assignation_by_date(self): return ( - # TODO: consider making this configurable on the picking type - self.picking_type_id.code != "outgoing" + not self.picking_type_id.group_pickings_by_date or not self.picking_type_id.group_pickings or self.group_id.sale_id.picking_policy == "one" ) - def _domain_search_picking_for_assignation_cutoff(self): + def _domain_search_picking_for_assignation_by_date(self): domain = [] - if self._skip_search_picking_for_assignation_cutoff(): + if self._skip_search_picking_for_assignation_by_date(): return domain date_planned = self.date_expected date_planned_end = date_planned.replace(hour=23, minute=59, second=59) diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_picking_type.py b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_picking_type.py new file mode 100644 index 000000000000..ce04aaa3ac5a --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_picking_type.py @@ -0,0 +1,10 @@ +from odoo import fields, models + + +class StockPickingType(models.Model): + _inherit = "stock.picking.type" + + group_pickings_by_date = fields.Boolean( + "Group pickings by date", + help="If `Group pickings` is enabled they will be grouped by date too.", + ) diff --git a/stock_picking_group_by_partner_by_carrier_by_date/static/description/icon.png b/stock_picking_group_by_partner_by_carrier_by_date/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py b/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py index 3c562ce68a4e..333bd374757d 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py @@ -14,6 +14,7 @@ def setUpClass(cls): cls.product = cls.env.ref("product.product_product_9") cls.warehouse = cls.env.ref("stock.warehouse0") cls.warehouse.out_type_id.group_pickings = True + cls.warehouse.out_type_id.group_pickings_by_date = True def _create_order(self, partner=None): order = self.env["sale.order"].create( diff --git a/stock_picking_group_by_partner_by_carrier_by_date/views/stock_picking_type.xml b/stock_picking_group_by_partner_by_carrier_by_date/views/stock_picking_type.xml new file mode 100644 index 000000000000..9609af6c5ed2 --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/views/stock_picking_type.xml @@ -0,0 +1,12 @@ + + + + stock.picking.type + + + + + + + + From 6ac0bef5ba04bc880378d127624e0f74359baeb1 Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Tue, 8 Dec 2020 14:59:43 +0100 Subject: [PATCH 03/11] stock_picking_group_by_* rebase on stock_move_assign_picking_hook --- .../models/stock_move.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py index 1b477d78e778..7e87b72cd7ca 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py @@ -7,22 +7,22 @@ class StockMove(models.Model): _inherit = "stock.move" - def _domain_search_picking_for_assignation(self): - domain = super()._domain_search_picking_for_assignation() - by_date_domain = self._domain_search_picking_for_assignation_by_date() + def _assign_picking_group_domain(self): + domain = super()._assign_picking_group_domain() + by_date_domain = self._assign_picking_group_domain_by_date() domain.extend(by_date_domain) return domain - def _skip_search_picking_for_assignation_by_date(self): + def _skip_assign_picking_group_domain_by_date(self): return ( not self.picking_type_id.group_pickings_by_date or not self.picking_type_id.group_pickings or self.group_id.sale_id.picking_policy == "one" ) - def _domain_search_picking_for_assignation_by_date(self): + def _assign_picking_group_domain_by_date(self): domain = [] - if self._skip_search_picking_for_assignation_by_date(): + if self._skip_assign_picking_group_domain_by_date(): return domain date_planned = self.date_expected date_planned_end = date_planned.replace(hour=23, minute=59, second=59) From 2eabbfebe5a7b55348361091c5c43485f659e213 Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Wed, 9 Dec 2020 09:28:14 +0100 Subject: [PATCH 04/11] s_picking_group_by_partner_by_carrier: add merge wizard --- .../__manifest__.py | 2 +- .../models/stock_move.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py index 2905c8ca7d46..3a7f048e309c 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py @@ -5,7 +5,7 @@ "name": "Stock Picking: group by partner and carrier and scheduled date", "Summary": """Delivery orders will be matched by date too. """, - "version": "13.0.1.0.0", + "version": "13.0.1.1.0", "development_status": "Alpha", "author": "Camptocamp, Odoo Community Association (OCA)", "website": "https://github.com/OCA/stock-logistics-workflow", diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py index 7e87b72cd7ca..7762fe484722 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py @@ -18,6 +18,7 @@ def _skip_assign_picking_group_domain_by_date(self): not self.picking_type_id.group_pickings_by_date or not self.picking_type_id.group_pickings or self.group_id.sale_id.picking_policy == "one" + or self.env.context.get("picking_manual_merge") ) def _assign_picking_group_domain_by_date(self): From 9282593297580acbea89a0fdabf54685985b331e Mon Sep 17 00:00:00 2001 From: Tran Thanh Phuc Date: Sat, 27 Feb 2021 22:56:47 +0700 Subject: [PATCH 05/11] [MIG] stock_picking_group_by_partner_by_carrier_by_date: Migration to 14.0 --- .../README.rst | 19 +++++++++++++----- .../__manifest__.py | 2 +- ...ng_group_by_partner_by_carrier_by_date.pot | 20 ++++++++++++++++++- .../models/stock_move.py | 2 +- .../readme/CONTRIBUTORS.rst | 2 ++ .../readme/CREDITS.rst | 3 +++ .../static/description/index.html | 19 +++++++++++++----- .../tests/test_grouping_by_date.py | 5 +++++ 8 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 stock_picking_group_by_partner_by_carrier_by_date/readme/CREDITS.rst diff --git a/stock_picking_group_by_partner_by_carrier_by_date/README.rst b/stock_picking_group_by_partner_by_carrier_by_date/README.rst index 2d2aeda99c47..fda5a5dcfcf6 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/README.rst +++ b/stock_picking_group_by_partner_by_carrier_by_date/README.rst @@ -14,13 +14,13 @@ Stock Picking: group by partner and carrier and scheduled date :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/stock-logistics-workflow/tree/13.0/stock_picking_group_by_partner_by_carrier_by_date + :target: https://github.com/OCA/stock-logistics-workflow/tree/14.0/stock_picking_group_by_partner_by_carrier_by_date :alt: OCA/stock-logistics-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/stock-logistics-workflow-13-0/stock-logistics-workflow-13-0-stock_picking_group_by_partner_by_carrier_by_date + :target: https://translation.odoo-community.org/projects/stock-logistics-workflow-14-0/stock-logistics-workflow-14-0-stock_picking_group_by_partner_by_carrier_by_date :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/154/13.0 + :target: https://runbot.odoo-community.org/runbot/154/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -48,7 +48,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. @@ -68,6 +68,15 @@ Contributors * Camptocamp: * Joël Grand-Guillaume +* Phuc Tran Thanh + +Other credits +~~~~~~~~~~~~~ + +The development of this module has been financially supported by: + +* Camptocamp + Maintainers ~~~~~~~~~~~ @@ -81,6 +90,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/stock-logistics-workflow `_ project on GitHub. +This module is part of the `OCA/stock-logistics-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py index 3a7f048e309c..3eb585c916f1 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py @@ -5,7 +5,7 @@ "name": "Stock Picking: group by partner and carrier and scheduled date", "Summary": """Delivery orders will be matched by date too. """, - "version": "13.0.1.1.0", + "version": "14.0.1.0.0", "development_status": "Alpha", "author": "Camptocamp, Odoo Community Association (OCA)", "website": "https://github.com/OCA/stock-logistics-workflow", diff --git a/stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.pot b/stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.pot index 29e6d44fc74c..6f7f715ca938 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.pot +++ b/stock_picking_group_by_partner_by_carrier_by_date/i18n/stock_picking_group_by_partner_by_carrier_by_date.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" @@ -13,16 +13,34 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: stock_picking_group_by_partner_by_carrier_by_date +#: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_move__display_name +#: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_picking_type__display_name +msgid "Display Name" +msgstr "" + #. module: stock_picking_group_by_partner_by_carrier_by_date #: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_picking_type__group_pickings_by_date msgid "Group pickings by date" msgstr "" +#. module: stock_picking_group_by_partner_by_carrier_by_date +#: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_move__id +#: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_picking_type__id +msgid "ID" +msgstr "" + #. module: stock_picking_group_by_partner_by_carrier_by_date #: model:ir.model.fields,help:stock_picking_group_by_partner_by_carrier_by_date.field_stock_picking_type__group_pickings_by_date msgid "If `Group pickings` is enabled they will be grouped by date too." msgstr "" +#. module: stock_picking_group_by_partner_by_carrier_by_date +#: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_move____last_update +#: model:ir.model.fields,field_description:stock_picking_group_by_partner_by_carrier_by_date.field_stock_picking_type____last_update +msgid "Last Modified on" +msgstr "" + #. module: stock_picking_group_by_partner_by_carrier_by_date #: model:ir.model,name:stock_picking_group_by_partner_by_carrier_by_date.model_stock_picking_type msgid "Picking Type" diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py index 7762fe484722..d86a34110a4d 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py @@ -25,7 +25,7 @@ def _assign_picking_group_domain_by_date(self): domain = [] if self._skip_assign_picking_group_domain_by_date(): return domain - date_planned = self.date_expected + date_planned = self.date date_planned_end = date_planned.replace(hour=23, minute=59, second=59) domain = [ ("scheduled_date", "<=", date_planned_end), diff --git a/stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst b/stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst index d9a36a8a178b..d1988c6f2bc6 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst +++ b/stock_picking_group_by_partner_by_carrier_by_date/readme/CONTRIBUTORS.rst @@ -2,3 +2,5 @@ * Camptocamp: * Joël Grand-Guillaume + +* Phuc Tran Thanh diff --git a/stock_picking_group_by_partner_by_carrier_by_date/readme/CREDITS.rst b/stock_picking_group_by_partner_by_carrier_by_date/readme/CREDITS.rst new file mode 100644 index 000000000000..f5cc070c78ea --- /dev/null +++ b/stock_picking_group_by_partner_by_carrier_by_date/readme/CREDITS.rst @@ -0,0 +1,3 @@ +The development of this module has been financially supported by: + +* Camptocamp diff --git a/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html b/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html index 429d6a0559c4..f277fbe6e710 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html +++ b/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html @@ -367,7 +367,7 @@

Stock Picking: group by partner and carrier and scheduled date !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Alpha License: AGPL-3 OCA/stock-logistics-workflow Translate me on Weblate Try me on Runbot

+

Alpha License: AGPL-3 OCA/stock-logistics-workflow Translate me on Weblate Try me on Runbot

Group delivery orders by partner, carrier and scheduled date.

Important

@@ -383,7 +383,8 @@

Stock Picking: group by partner and carrier and scheduled date
  • Credits
  • @@ -397,7 +398,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.

    @@ -414,16 +415,24 @@

    Contributors

  • Simone Orsi <simahawk@gmail.com>
  • Camptocamp: * Joël Grand-Guillaume <joel.grandguillaume@camptocamp.com>
  • +
  • Phuc Tran Thanh <phuc@trobz.com>
  • + +
    +
    +

    Other credits

    +

    The development of this module has been financially supported by:

    +
      +
    • Camptocamp
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association

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

    -

    This module is part of the OCA/stock-logistics-workflow project on GitHub.

    +

    This module is part of the OCA/stock-logistics-workflow project on GitHub.

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

    diff --git a/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py b/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py index 333bd374757d..6898f257544a 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/tests/test_grouping_by_date.py @@ -68,6 +68,11 @@ def test_group_by_date(self): self.assertEqual(p5, p6) self.assertNotEqual(p5, p1) + # We need to cancel these pickings to avoid + # the impact on the next test case (Delay 1st picking date) + p5.action_cancel() + p6.action_cancel() + # Delay 1st picking date p1.scheduled_date = "2020-11-27 18:30:00" with freeze_time("2020-11-27 18:00:00"): From a3393cb5a713a7f02b6919fd2e7a0e309eb8c7ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Alix?= Date: Wed, 22 Sep 2021 16:48:11 +0200 Subject: [PATCH 06/11] [FIX] s_by_carrier_by_date: group same day different time --- .../README.rst | 15 ++++--- .../__manifest__.py | 2 +- .../models/stock_move.py | 2 +- .../static/description/index.html | 42 ++++++++++--------- .../tests/test_grouping_by_date.py | 13 ++---- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/stock_picking_group_by_partner_by_carrier_by_date/README.rst b/stock_picking_group_by_partner_by_carrier_by_date/README.rst index fda5a5dcfcf6..0f7c61faeacd 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/README.rst +++ b/stock_picking_group_by_partner_by_carrier_by_date/README.rst @@ -2,10 +2,13 @@ Stock Picking: group by partner and carrier and scheduled date ============================================================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:e7d5f6ba0f1be8142c5264c2e025237d0fb31fe003eb1e337311fc7ec587c361 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Stock Picking: group by partner and carrier and scheduled date .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/stock-logistics-workflow-14-0/stock-logistics-workflow-14-0-stock_picking_group_by_partner_by_carrier_by_date :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/154/14.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/stock-logistics-workflow&target_branch=14.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| Group delivery orders by partner, carrier and scheduled date. @@ -47,7 +50,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/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py index 3eb585c916f1..3b5be60b83a2 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/__manifest__.py @@ -5,7 +5,7 @@ "name": "Stock Picking: group by partner and carrier and scheduled date", "Summary": """Delivery orders will be matched by date too. """, - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "development_status": "Alpha", "author": "Camptocamp, Odoo Community Association (OCA)", "website": "https://github.com/OCA/stock-logistics-workflow", diff --git a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py index d86a34110a4d..f310ffd7bc6c 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py +++ b/stock_picking_group_by_partner_by_carrier_by_date/models/stock_move.py @@ -25,7 +25,7 @@ def _assign_picking_group_domain_by_date(self): domain = [] if self._skip_assign_picking_group_domain_by_date(): return domain - date_planned = self.date + date_planned = self.date.replace(hour=0, minute=0, second=0) date_planned_end = date_planned.replace(hour=23, minute=59, second=59) domain = [ ("scheduled_date", "<=", date_planned_end), diff --git a/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html b/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html index f277fbe6e710..661bba1d36e6 100644 --- a/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html +++ b/stock_picking_group_by_partner_by_carrier_by_date/static/description/index.html @@ -1,20 +1,20 @@ - + - + Stock Picking: group by partner and carrier and scheduled date