From 5cd9745f60803aec279c80223deac0f3fb339540 Mon Sep 17 00:00:00 2001 From: BernatPForgeFlow Date: Fri, 25 Nov 2022 16:43:35 +0100 Subject: [PATCH 01/17] [13.0][ADD] purchase_stock_tier_validation: Exclude RFQs pending to validate when procuring --- purchase_stock_tier_validation/__init__.py | 3 + .../__manifest__.py | 15 + .../models/__init__.py | 3 + .../models/stock_rule.py | 15 + .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 5 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 468 ++++++++++++++++++ .../tests/__init__.py | 1 + .../test_purchase_stock_tier_validation.py | 107 ++++ 10 files changed, 618 insertions(+) create mode 100644 purchase_stock_tier_validation/__init__.py create mode 100644 purchase_stock_tier_validation/__manifest__.py create mode 100644 purchase_stock_tier_validation/models/__init__.py create mode 100644 purchase_stock_tier_validation/models/stock_rule.py create mode 100644 purchase_stock_tier_validation/readme/CONTRIBUTORS.rst create mode 100644 purchase_stock_tier_validation/readme/DESCRIPTION.rst create mode 100644 purchase_stock_tier_validation/static/description/icon.png create mode 100644 purchase_stock_tier_validation/static/description/index.html create mode 100644 purchase_stock_tier_validation/tests/__init__.py create mode 100644 purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py diff --git a/purchase_stock_tier_validation/__init__.py b/purchase_stock_tier_validation/__init__.py new file mode 100644 index 000000000..31660d6a9 --- /dev/null +++ b/purchase_stock_tier_validation/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models diff --git a/purchase_stock_tier_validation/__manifest__.py b/purchase_stock_tier_validation/__manifest__.py new file mode 100644 index 000000000..618523010 --- /dev/null +++ b/purchase_stock_tier_validation/__manifest__.py @@ -0,0 +1,15 @@ +# Copyright 2022 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Purchase Stock Tier Validation", + "summary": "Exclude RFQs pending to validate when procuring", + "version": "13.0.1.0.0", + "category": "Purchase Management", + "website": "https://github.com/OCA/purchase-workflow", + "author": "ForgeFlow, Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "auto_install": True, + "depends": ["purchase_stock", "purchase_tier_validation"], +} diff --git a/purchase_stock_tier_validation/models/__init__.py b/purchase_stock_tier_validation/models/__init__.py new file mode 100644 index 000000000..31a15d1e4 --- /dev/null +++ b/purchase_stock_tier_validation/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import stock_rule diff --git a/purchase_stock_tier_validation/models/stock_rule.py b/purchase_stock_tier_validation/models/stock_rule.py new file mode 100644 index 000000000..b1e85e35d --- /dev/null +++ b/purchase_stock_tier_validation/models/stock_rule.py @@ -0,0 +1,15 @@ +# Copyright 2022 ForgeFlow S.L. (https://www.forgeflow.com) +# Part of ForgeFlow. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class StockRule(models.Model): + _inherit = "stock.rule" + + def _make_po_get_domain(self, company_id, values, partner): + domain = super()._make_po_get_domain( + company_id=company_id, values=values, partner=partner + ) + domain += (("review_ids", "=", False),) + return domain diff --git a/purchase_stock_tier_validation/readme/CONTRIBUTORS.rst b/purchase_stock_tier_validation/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..06a041ec2 --- /dev/null +++ b/purchase_stock_tier_validation/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Bernat Puig Font diff --git a/purchase_stock_tier_validation/readme/DESCRIPTION.rst b/purchase_stock_tier_validation/readme/DESCRIPTION.rst new file mode 100644 index 000000000..e42436201 --- /dev/null +++ b/purchase_stock_tier_validation/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module excludes RFQs pending to validate or validated when procuring a product. + +If a RFQ, at some point, is requested to validate, it converts it immediately in something unmodifiable. +Then, taking this into account, if we procure a product with the same supplier as one open RFQ, it should +check if that is under validation or already validated and discard it on any of both cases. diff --git a/purchase_stock_tier_validation/static/description/icon.png b/purchase_stock_tier_validation/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/purchase_stock_tier_validation/static/description/index.html b/purchase_stock_tier_validation/static/description/index.html new file mode 100644 index 000000000..ebe8c104b --- /dev/null +++ b/purchase_stock_tier_validation/static/description/index.html @@ -0,0 +1,468 @@ + + + + + + +Purchase Request Tier Validation + + + +
+

Purchase Request Tier Validation

+ + +

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

+

This module extends the functionality of Purchase Requests to support a tier validation process.

+

Table of contents

+ +
+

Installation

+

This module depends on base_tier_validation. You can find it at +OCA/server-ux

+
+
+

Configuration

+

A default tier is created allowing Purchase Request Manager to approve Purchase +Requests.

+

In addition, you may want to add more tiers, so:

+
    +
  1. Go to Settings > Technical > Tier Validations > Tier Definition.
  2. +
  3. Create as many tiers as you want for Purchase Order model.
  4. +
+
+
+

Usage

+

To use this module, you need to:

+
    +
  1. Create a Purchase Request triggering at least one “Tier Definition”.
  2. +
  3. Click on Request Validation button.
  4. +
  5. Under the tab Reviews have a look to pending reviews and their statuses.
  6. +
  7. Once all reviews are validated button to Confirm will be shown.
  8. +
+

Additional features:

+
    +
  • You can filter the Purchase Request requesting your review through the filter Needs my +Review.
  • +
  • User with rights to confirm the Purchase Request (validate all tiers that would +be generated) can directly do the operation, this is, there is no need for +her/him to request a validation.
  • +
+
+
+

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

+
    +
  • ForgeFlow
  • +
+
+ +
+

Other credits

+
+

Images

+
    +
  • Enric Tobella (logo)
  • +
+
+
+
+

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/purchase-workflow project on GitHub.

+

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

+
+
+
+ + diff --git a/purchase_stock_tier_validation/tests/__init__.py b/purchase_stock_tier_validation/tests/__init__.py new file mode 100644 index 000000000..e5ea27266 --- /dev/null +++ b/purchase_stock_tier_validation/tests/__init__.py @@ -0,0 +1 @@ +from . import test_purchase_stock_tier_validation diff --git a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py new file mode 100644 index 000000000..18a49f591 --- /dev/null +++ b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py @@ -0,0 +1,107 @@ +# Copyright 2017-2020 ForgeFlow S.L. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl-3.0). + +from odoo import fields +from odoo.tests import common + + +class TestPurchaseStockTierValidation(common.TransactionCase): + def setUp(self): + super(TestPurchaseStockTierValidation, self).setUp() + # Get purchase order model + self.po_model = self.env.ref("purchase.model_purchase_order") + + # Create users + group_ids = self.env.ref("base.group_system").ids + self.test_user_1 = self.env["res.users"].create( + { + "name": "John", + "login": "test1", + "groups_id": [(6, 0, group_ids)], + "email": "test@examlple.com", + } + ) + + # Create tier definitions: + self.tier_def_obj = self.env["tier.definition"] + self.tier_def_obj.create( + { + "model_id": self.po_model.id, + "review_type": "individual", + "reviewer_id": self.test_user_1.id, + } + ) + + # Common models + self.test_partner = self.env["res.partner"].create({"name": "Partner for test"}) + self.stock_loc = self.browse_ref("stock.stock_location_stock") + self.warehouse = self.browse_ref("stock.warehouse0") + + # Create product + route_buy = self.env.ref("purchase_stock.route_warehouse0_buy").id + self.test_product = self.env["product.product"].create( + { + "name": "Test Scrap Component 1", + "type": "product", + "route_ids": [(6, 0, [route_buy])], + "seller_ids": [(0, 0, {"name": self.test_partner.id, "price": 20.0})], + } + ) + + def test_procurement_in_new_rfq(self): + """ + Procure a product with the same supplier as one open RFQ under validation + and check if it includes the procurement in that RFQ or in a new one. + """ + po = self.env["purchase.order"].create( + { + "partner_id": self.test_partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": "PO-Product", + "product_id": self.test_product.id, + "date_planned": fields.Datetime.now(), + "product_qty": 10, + "product_uom": self.test_product.uom_id.id, + "price_unit": 1000, + }, + ) + ], + } + ) + rfq_test_partner_before = self.env["purchase.order"].search( + [("partner_id", "=", self.test_partner.id)] + ) + self.assertEqual(len(po.mapped("order_line")), 1) + po.request_validation() + po.with_user(self.test_user_1).validate_tier() + group = self.env["procurement.group"].create( + {"name": "Test", "move_type": "direct"} + ) + values = { + "company_id": self.warehouse.company_id, + "group_id": group, + "date_planned": "2018-11-13 12:12:59", + "warehouse_id": self.warehouse, + } + procurements = [ + self.env["procurement.group"].Procurement( + self.test_product, + 1, + self.env.ref("uom.product_uom_unit"), + self.stock_loc, + "test", + "TEST", + self.warehouse.company_id, + values, + ) + ] + group.run(procurements) + self.assertEqual(len(po.mapped("order_line")), 1) + rfq_test_partner_after = self.env["purchase.order"].search( + [("partner_id", "=", self.test_partner.id)] + ) + self.assertEqual(len(rfq_test_partner_after), len(rfq_test_partner_before) + 1) From 2de907cc258d559a88ad5aa96241b08f55752333 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 18 Apr 2023 11:01:44 +0000 Subject: [PATCH 02/17] [UPD] Update purchase_stock_tier_validation.pot --- .../i18n/purchase_stock_tier_validation.pot | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot diff --git a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot new file mode 100644 index 000000000..9d735ba88 --- /dev/null +++ b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot @@ -0,0 +1,19 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_stock_tier_validation +# +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: purchase_stock_tier_validation +#: model:ir.model,name:purchase_stock_tier_validation.model_stock_rule +msgid "Stock Rule" +msgstr "" From 048072f7e8ec860942940bdf6df49097fc0fba00 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 18 Apr 2023 11:11:14 +0000 Subject: [PATCH 03/17] [UPD] README.rst --- purchase_stock_tier_validation/README.rst | 77 ++++++++++++++++ .../static/description/index.html | 88 +++++-------------- 2 files changed, 98 insertions(+), 67 deletions(-) create mode 100644 purchase_stock_tier_validation/README.rst diff --git a/purchase_stock_tier_validation/README.rst b/purchase_stock_tier_validation/README.rst new file mode 100644 index 000000000..8836aa135 --- /dev/null +++ b/purchase_stock_tier_validation/README.rst @@ -0,0 +1,77 @@ +============================== +Purchase Stock Tier Validation +============================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/13.0/purchase_stock_tier_validation + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-13-0/purchase-workflow-13-0-purchase_stock_tier_validation + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/142/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module excludes RFQs pending to validate or validated when procuring a product. + +If a RFQ, at some point, is requested to validate, it converts it immediately in something unmodifiable. +Then, taking this into account, if we procure a product with the same supplier as one open RFQ, it should +check if that is under validation or already validated and discard it on any of both cases. + +**Table of contents** + +.. contents:: + :local: + +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 +~~~~~~~ + +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* Bernat Puig Font + +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/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_stock_tier_validation/static/description/index.html b/purchase_stock_tier_validation/static/description/index.html index ebe8c104b..a47d30398 100644 --- a/purchase_stock_tier_validation/static/description/index.html +++ b/purchase_stock_tier_validation/static/description/index.html @@ -4,7 +4,7 @@ -Purchase Request Tier Validation +Purchase Stock Tier Validation -
-

Purchase Request Tier Validation

+
+

Purchase Stock Tier Validation

-

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

-

This module extends the functionality of Purchase Requests to support a tier validation process.

+

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

+

This module excludes RFQs pending to validate or validated when procuring a product.

+

If a RFQ, at some point, is requested to validate, it converts it immediately in something unmodifiable. +Then, taking this into account, if we procure a product with the same supplier as one open RFQ, it should +check if that is under validation or already validated and discard it on any of both cases.

Table of contents

-
-

Installation

-

This module depends on base_tier_validation. You can find it at -OCA/server-ux

-
-
-

Configuration

-

A default tier is created allowing Purchase Request Manager to approve Purchase -Requests.

-

In addition, you may want to add more tiers, so:

-
    -
  1. Go to Settings > Technical > Tier Validations > Tier Definition.
  2. -
  3. Create as many tiers as you want for Purchase Order model.
  4. -
-
-
-

Usage

-

To use this module, you need to:

-
    -
  1. Create a Purchase Request triggering at least one “Tier Definition”.
  2. -
  3. Click on Request Validation button.
  4. -
  5. Under the tab Reviews have a look to pending reviews and their statuses.
  6. -
  7. Once all reviews are validated button to Confirm will be shown.
  8. -
-

Additional features:

-
    -
  • You can filter the Purchase Request requesting your review through the filter Needs my -Review.
  • -
  • User with rights to confirm the Purchase Request (validate all tiers that would -be generated) can directly do the operation, this is, there is no need for -her/him to request a validation.
-

Bug Tracker

+

Bug Tracker

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

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • ForgeFlow
-
-

Other credits

-
-

Images

-
    -
  • Enric Tobella (logo)
  • -
-
-
-

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/purchase-workflow project on GitHub.

+

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

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

From 84c700162f1936157d6646d205ed609b2f75f363 Mon Sep 17 00:00:00 2001 From: bosd Date: Wed, 19 Apr 2023 09:16:58 +0200 Subject: [PATCH 04/17] [IMP] purchase_stock_tier_validation: pre-commit execution --- .../tests/test_purchase_stock_tier_validation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py index 18a49f591..94b4b3bf4 100644 --- a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py +++ b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py @@ -50,8 +50,8 @@ def setUp(self): def test_procurement_in_new_rfq(self): """ - Procure a product with the same supplier as one open RFQ under validation - and check if it includes the procurement in that RFQ or in a new one. + Procure a product with the same supplier as one open RFQ under validation + and check if it includes the procurement in that RFQ or in a new one. """ po = self.env["purchase.order"].create( { From 8d151f7f5816d331d187f1cd3efb509a798595fa Mon Sep 17 00:00:00 2001 From: bosd Date: Wed, 19 Apr 2023 09:16:58 +0200 Subject: [PATCH 05/17] [MIG] purchase_stock_tier_validation: Migration to 14.0 --- purchase_stock_tier_validation/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purchase_stock_tier_validation/__manifest__.py b/purchase_stock_tier_validation/__manifest__.py index 618523010..54cc74155 100644 --- a/purchase_stock_tier_validation/__manifest__.py +++ b/purchase_stock_tier_validation/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase Stock Tier Validation", "summary": "Exclude RFQs pending to validate when procuring", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "category": "Purchase Management", "website": "https://github.com/OCA/purchase-workflow", "author": "ForgeFlow, Odoo Community Association (OCA)", From 4e7b98517b86274fe2842fa8185937b38e876934 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 20 Apr 2023 15:57:55 +0000 Subject: [PATCH 06/17] [UPD] Update purchase_stock_tier_validation.pot --- .../i18n/purchase_stock_tier_validation.pot | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot index 9d735ba88..5691c5c88 100644 --- a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot +++ b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.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,6 +13,21 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: purchase_stock_tier_validation +#: model:ir.model.fields,field_description:purchase_stock_tier_validation.field_stock_rule__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_stock_tier_validation +#: model:ir.model.fields,field_description:purchase_stock_tier_validation.field_stock_rule__id +msgid "ID" +msgstr "" + +#. module: purchase_stock_tier_validation +#: model:ir.model.fields,field_description:purchase_stock_tier_validation.field_stock_rule____last_update +msgid "Last Modified on" +msgstr "" + #. module: purchase_stock_tier_validation #: model:ir.model,name:purchase_stock_tier_validation.model_stock_rule msgid "Stock Rule" From 7dd6b0710a77e983f49a46d6f70ea75564d4df38 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 20 Apr 2023 16:08:35 +0000 Subject: [PATCH 07/17] [UPD] README.rst --- purchase_stock_tier_validation/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/purchase_stock_tier_validation/README.rst b/purchase_stock_tier_validation/README.rst index 8836aa135..3d3a968ae 100644 --- a/purchase_stock_tier_validation/README.rst +++ b/purchase_stock_tier_validation/README.rst @@ -14,13 +14,13 @@ Purchase Stock Tier Validation :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/purchase-workflow/tree/13.0/purchase_stock_tier_validation + :target: https://github.com/OCA/purchase-workflow/tree/14.0/purchase_stock_tier_validation :alt: OCA/purchase-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/purchase-workflow-13-0/purchase-workflow-13-0-purchase_stock_tier_validation + :target: https://translation.odoo-community.org/projects/purchase-workflow-14-0/purchase-workflow-14-0-purchase_stock_tier_validation :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/13.0 + :target: https://runbot.odoo-community.org/runbot/142/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -42,7 +42,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. @@ -72,6 +72,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/purchase-workflow `_ project on GitHub. +This module is part of the `OCA/purchase-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_stock_tier_validation/static/description/index.html b/purchase_stock_tier_validation/static/description/index.html index a47d30398..f26b858a8 100644 --- a/purchase_stock_tier_validation/static/description/index.html +++ b/purchase_stock_tier_validation/static/description/index.html @@ -367,7 +367,7 @@

Purchase Stock Tier Validation

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

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

+

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

This module excludes RFQs pending to validate or validated when procuring a product.

If a RFQ, at some point, is requested to validate, it converts it immediately in something unmodifiable. Then, taking this into account, if we procure a product with the same supplier as one open RFQ, it should @@ -389,7 +389,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.

@@ -413,7 +413,7 @@

Maintainers

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/purchase-workflow project on GitHub.

+

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

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

From e7363f136af3a76e55a4236590f46f6b2dc609cd Mon Sep 17 00:00:00 2001 From: bosd Date: Thu, 20 Apr 2023 18:12:58 +0200 Subject: [PATCH 08/17] [MIG] purchase_stock_tier_validation: Migration to 15.0 --- purchase_stock_tier_validation/__manifest__.py | 3 ++- .../tests/test_purchase_stock_tier_validation.py | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/purchase_stock_tier_validation/__manifest__.py b/purchase_stock_tier_validation/__manifest__.py index 54cc74155..63d468a9a 100644 --- a/purchase_stock_tier_validation/__manifest__.py +++ b/purchase_stock_tier_validation/__manifest__.py @@ -3,10 +3,11 @@ { "name": "Purchase Stock Tier Validation", "summary": "Exclude RFQs pending to validate when procuring", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "category": "Purchase Management", "website": "https://github.com/OCA/purchase-workflow", "author": "ForgeFlow, Odoo Community Association (OCA)", + "maintainers": ["bosd"], "license": "AGPL-3", "application": False, "installable": True, diff --git a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py index 94b4b3bf4..5d7c272e5 100644 --- a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py +++ b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py @@ -9,7 +9,9 @@ class TestPurchaseStockTierValidation(common.TransactionCase): def setUp(self): super(TestPurchaseStockTierValidation, self).setUp() # Get purchase order model - self.po_model = self.env.ref("purchase.model_purchase_order") + self.po_model = self.env.ref("purchase.model_purchase_order").with_context( + tracking_disable=True, no_reset_password=True + ) # Create users group_ids = self.env.ref("base.group_system").ids @@ -78,13 +80,14 @@ def test_procurement_in_new_rfq(self): self.assertEqual(len(po.mapped("order_line")), 1) po.request_validation() po.with_user(self.test_user_1).validate_tier() + date_planned = fields.Datetime.now() group = self.env["procurement.group"].create( {"name": "Test", "move_type": "direct"} ) values = { "company_id": self.warehouse.company_id, "group_id": group, - "date_planned": "2018-11-13 12:12:59", + "date_planned": date_planned, "warehouse_id": self.warehouse, } procurements = [ From 957febd2beee19bc1a2c63a1230a0bf6c01e371f Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 28 Apr 2023 08:17:14 +0000 Subject: [PATCH 09/17] [UPD] Update purchase_stock_tier_validation.pot --- .../i18n/purchase_stock_tier_validation.pot | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot index 5691c5c88..c6d11cd66 100644 --- a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot +++ b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,21 +13,6 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: purchase_stock_tier_validation -#: model:ir.model.fields,field_description:purchase_stock_tier_validation.field_stock_rule__display_name -msgid "Display Name" -msgstr "" - -#. module: purchase_stock_tier_validation -#: model:ir.model.fields,field_description:purchase_stock_tier_validation.field_stock_rule__id -msgid "ID" -msgstr "" - -#. module: purchase_stock_tier_validation -#: model:ir.model.fields,field_description:purchase_stock_tier_validation.field_stock_rule____last_update -msgid "Last Modified on" -msgstr "" - #. module: purchase_stock_tier_validation #: model:ir.model,name:purchase_stock_tier_validation.model_stock_rule msgid "Stock Rule" From dbae8d29fe4e81b9a8564ad7a90ab2e0fe7b8abe Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 28 Apr 2023 08:25:47 +0000 Subject: [PATCH 10/17] [UPD] README.rst --- purchase_stock_tier_validation/README.rst | 18 +++++++++++++----- .../static/description/index.html | 8 +++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/purchase_stock_tier_validation/README.rst b/purchase_stock_tier_validation/README.rst index 3d3a968ae..41543c496 100644 --- a/purchase_stock_tier_validation/README.rst +++ b/purchase_stock_tier_validation/README.rst @@ -14,13 +14,13 @@ Purchase Stock Tier Validation :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/purchase-workflow/tree/14.0/purchase_stock_tier_validation + :target: https://github.com/OCA/purchase-workflow/tree/15.0/purchase_stock_tier_validation :alt: OCA/purchase-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/purchase-workflow-14-0/purchase-workflow-14-0-purchase_stock_tier_validation + :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_stock_tier_validation :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/14.0 + :target: https://runbot.odoo-community.org/runbot/142/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -42,7 +42,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. @@ -72,6 +72,14 @@ 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/purchase-workflow `_ project on GitHub. +.. |maintainer-bosd| image:: https://github.com/bosd.png?size=40px + :target: https://github.com/bosd + :alt: bosd + +Current `maintainer `__: + +|maintainer-bosd| + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_stock_tier_validation/static/description/index.html b/purchase_stock_tier_validation/static/description/index.html index f26b858a8..6c9591552 100644 --- a/purchase_stock_tier_validation/static/description/index.html +++ b/purchase_stock_tier_validation/static/description/index.html @@ -367,7 +367,7 @@

Purchase Stock Tier Validation

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

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

+

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

This module excludes RFQs pending to validate or validated when procuring a product.

If a RFQ, at some point, is requested to validate, it converts it immediately in something unmodifiable. Then, taking this into account, if we procure a product with the same supplier as one open RFQ, it should @@ -389,7 +389,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.

@@ -413,7 +413,9 @@

Maintainers

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/purchase-workflow project on GitHub.

+

Current maintainer:

+

bosd

+

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

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

From 7d559d8d61654686ec7fcddcba9ba86fbac73991 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 15:46:12 +0000 Subject: [PATCH 11/17] [UPD] README.rst --- purchase_stock_tier_validation/README.rst | 15 ++++---- .../static/description/index.html | 36 ++++++++++--------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/purchase_stock_tier_validation/README.rst b/purchase_stock_tier_validation/README.rst index 41543c496..52d65c79f 100644 --- a/purchase_stock_tier_validation/README.rst +++ b/purchase_stock_tier_validation/README.rst @@ -2,10 +2,13 @@ Purchase Stock Tier Validation ============================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:23ccb212b145cffad08152b00899af7656991f07e35565cf7ad749b8c65c10ed + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Purchase Stock Tier Validation .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_stock_tier_validation :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/15.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/purchase-workflow&target_branch=15.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module excludes RFQs pending to validate or validated when procuring a product. @@ -41,7 +44,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/purchase_stock_tier_validation/static/description/index.html b/purchase_stock_tier_validation/static/description/index.html index 6c9591552..ae6e7dfcf 100644 --- a/purchase_stock_tier_validation/static/description/index.html +++ b/purchase_stock_tier_validation/static/description/index.html @@ -1,20 +1,20 @@ - + - + Purchase Stock Tier Validation -
-

Purchase Stock Tier Validation

+
+ + +Odoo Community Association + +
+

Purchase Stock Tier Validation

-

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runboat

This module excludes RFQs pending to validate or validated when procuring a product.

If a RFQ, at some point, is requested to validate, it converts it immediately in something unmodifiable. Then, taking this into account, if we procure a product with the same supplier as one open RFQ, it should @@ -387,40 +392,43 @@

Purchase Stock Tier Validation

-

Bug Tracker

+

Bug Tracker

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

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • ForgeFlow
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

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

Current maintainer:

bosd

-

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

+

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

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

+
From 68b987d4674eeb6cec86663f16f98858db4eb83f Mon Sep 17 00:00:00 2001 From: CristianoMafraJunior Date: Wed, 22 Apr 2026 16:13:24 -0300 Subject: [PATCH 13/17] [MIG] purchase_stock_tier_validation: Migration to 16.0 --- purchase_stock_tier_validation/__manifest__.py | 2 +- .../tests/test_purchase_stock_tier_validation.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/purchase_stock_tier_validation/__manifest__.py b/purchase_stock_tier_validation/__manifest__.py index 63d468a9a..3a3732982 100644 --- a/purchase_stock_tier_validation/__manifest__.py +++ b/purchase_stock_tier_validation/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase Stock Tier Validation", "summary": "Exclude RFQs pending to validate when procuring", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "category": "Purchase Management", "website": "https://github.com/OCA/purchase-workflow", "author": "ForgeFlow, Odoo Community Association (OCA)", diff --git a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py index 5d7c272e5..a7b057b7c 100644 --- a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py +++ b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py @@ -46,7 +46,9 @@ def setUp(self): "name": "Test Scrap Component 1", "type": "product", "route_ids": [(6, 0, [route_buy])], - "seller_ids": [(0, 0, {"name": self.test_partner.id, "price": 20.0})], + "seller_ids": [ + (0, 0, {"partner_id": self.test_partner.id, "price": 20.0}) + ], } ) From 3cb21957b68addf0232b44b1f7374a0c03864aa4 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 24 Apr 2026 14:35:59 +0000 Subject: [PATCH 14/17] [UPD] Update purchase_stock_tier_validation.pot --- .../i18n/purchase_stock_tier_validation.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot index c6d11cd66..baa18edff 100644 --- a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot +++ b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From 50356aff36cea0099d1eac99e2472aaaecf35a40 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 24 Apr 2026 14:44:00 +0000 Subject: [PATCH 15/17] [BOT] post-merge updates --- purchase_stock_tier_validation/README.rst | 2 +- purchase_stock_tier_validation/static/description/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/purchase_stock_tier_validation/README.rst b/purchase_stock_tier_validation/README.rst index f527e91c6..180b10fbf 100644 --- a/purchase_stock_tier_validation/README.rst +++ b/purchase_stock_tier_validation/README.rst @@ -11,7 +11,7 @@ Purchase Stock Tier Validation !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:23ccb212b145cffad08152b00899af7656991f07e35565cf7ad749b8c65c10ed + !! source digest: sha256:21ba44ff5c82b58992691619d03e625b0e479d8cd4643b1c6701d6508e48df93 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/purchase_stock_tier_validation/static/description/index.html b/purchase_stock_tier_validation/static/description/index.html index c584b0ccd..203382d5e 100644 --- a/purchase_stock_tier_validation/static/description/index.html +++ b/purchase_stock_tier_validation/static/description/index.html @@ -372,7 +372,7 @@

Purchase Stock Tier Validation

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:23ccb212b145cffad08152b00899af7656991f07e35565cf7ad749b8c65c10ed +!! source digest: sha256:21ba44ff5c82b58992691619d03e625b0e479d8cd4643b1c6701d6508e48df93 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runboat

This module excludes RFQs pending to validate or validated when procuring a product.

From 7baf0fd1e1c9a7dd92093dccb250a1b0cd051ca9 Mon Sep 17 00:00:00 2001 From: Giordano Date: Tue, 6 Oct 2026 09:12:59 +0200 Subject: [PATCH 16/17] [MIG] purchase_stock_tier_validation: Migration to 19.0 Module last existed at 16.0 in OCA/purchase-workflow and was never carried forward through the 17.0 migration. Relocated alongside its sibling *_tier_validation modules, now living in OCA/tier-validation. _make_po_get_domain (purchase_stock's StockRule hook) and the review_ids field from base_tier_validation are both unchanged in 19.0, so the module logic still applies as-is. Changes: - version bumped to 19.0.1.0.0 - website/links point at OCA/tier-validation (new home) - README regenerated from readme/*.md fragments - pyproject.toml added (whool build backend) - tests modernized: BaseCommon + new_test_user, tagged post_install/-at_install - tests fixed for 19.0 core changes: procurement.group no longer exists (Procurement and run() moved to stock.rule), purchase.order.line.product_uom renamed product_uom_id Assisted-by: Claude Sonnet 5.5 Assisted-by: Claude:claude-sonnet-5-5 --- purchase_stock_tier_validation/README.rst | 43 +- .../__manifest__.py | 4 +- .../i18n/purchase_stock_tier_validation.pot | 2 +- purchase_stock_tier_validation/pyproject.toml | 3 + .../readme/CONTRIBUTORS.md | 2 + .../readme/CONTRIBUTORS.rst | 1 - .../{DESCRIPTION.rst => DESCRIPTION.md} | 0 .../static/description/index.html | 434 ------------------ .../tests/__init__.py | 2 + .../test_purchase_stock_tier_validation.py | 59 ++- 10 files changed, 57 insertions(+), 493 deletions(-) create mode 100644 purchase_stock_tier_validation/pyproject.toml create mode 100644 purchase_stock_tier_validation/readme/CONTRIBUTORS.md delete mode 100644 purchase_stock_tier_validation/readme/CONTRIBUTORS.rst rename purchase_stock_tier_validation/readme/{DESCRIPTION.rst => DESCRIPTION.md} (100%) delete mode 100644 purchase_stock_tier_validation/static/description/index.html diff --git a/purchase_stock_tier_validation/README.rst b/purchase_stock_tier_validation/README.rst index 180b10fbf..bce052b27 100644 --- a/purchase_stock_tier_validation/README.rst +++ b/purchase_stock_tier_validation/README.rst @@ -6,12 +6,12 @@ Purchase Stock Tier Validation ============================== -.. +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:21ba44ff5c82b58992691619d03e625b0e479d8cd4643b1c6701d6508e48df93 + !! source digest: sha256:regenerate_with_oca_gen_addon_readme !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -20,14 +20,14 @@ Purchase Stock Tier Validation .. |badge2| image:: https://img.shields.io/badge/license-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%2Fpurchase--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_stock_tier_validation - :alt: OCA/purchase-workflow +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ftier--validation-lightgray.png?logo=github + :target: https://github.com/OCA/tier-validation/tree/19.0/purchase_stock_tier_validation + :alt: OCA/tier-validation .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_stock_tier_validation + :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-purchase_stock_tier_validation :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/tier-validation&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,13 +43,19 @@ check if that is under validation or already validated and discard it on any of .. contents:: :local: +Installation +============ + +This module depends on ``purchase_tier_validation``. You can find it in +this same repository, `OCA/tier-validation `__. + Bug Tracker =========== -Bugs are tracked on `GitHub Issues `_. +Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -57,17 +63,18 @@ Credits ======= Authors -~~~~~~~ +------- * ForgeFlow Contributors -~~~~~~~~~~~~ +------------ -* Bernat Puig Font +- Bernat Puig Font +- Giordano Loiaconi (migrate to v19) Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -79,14 +86,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. -.. |maintainer-bosd| image:: https://github.com/bosd.png?size=40px - :target: https://github.com/bosd - :alt: bosd - -Current `maintainer `__: - -|maintainer-bosd| - -This module is part of the `OCA/purchase-workflow `_ project on GitHub. +This module is part of the `OCA/tier-validation `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_stock_tier_validation/__manifest__.py b/purchase_stock_tier_validation/__manifest__.py index 3a3732982..3f179173c 100644 --- a/purchase_stock_tier_validation/__manifest__.py +++ b/purchase_stock_tier_validation/__manifest__.py @@ -3,9 +3,9 @@ { "name": "Purchase Stock Tier Validation", "summary": "Exclude RFQs pending to validate when procuring", - "version": "16.0.1.0.0", + "version": "19.0.1.0.0", "category": "Purchase Management", - "website": "https://github.com/OCA/purchase-workflow", + "website": "https://github.com/OCA/tier-validation", "author": "ForgeFlow, Odoo Community Association (OCA)", "maintainers": ["bosd"], "license": "AGPL-3", diff --git a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot index baa18edff..ec79216e3 100644 --- a/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot +++ b/purchase_stock_tier_validation/i18n/purchase_stock_tier_validation.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/purchase_stock_tier_validation/pyproject.toml b/purchase_stock_tier_validation/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/purchase_stock_tier_validation/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/purchase_stock_tier_validation/readme/CONTRIBUTORS.md b/purchase_stock_tier_validation/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..6479789e9 --- /dev/null +++ b/purchase_stock_tier_validation/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Bernat Puig Font \<\> +- Giordano Loiaconi \<\> (migrate to v19) diff --git a/purchase_stock_tier_validation/readme/CONTRIBUTORS.rst b/purchase_stock_tier_validation/readme/CONTRIBUTORS.rst deleted file mode 100644 index 06a041ec2..000000000 --- a/purchase_stock_tier_validation/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* Bernat Puig Font diff --git a/purchase_stock_tier_validation/readme/DESCRIPTION.rst b/purchase_stock_tier_validation/readme/DESCRIPTION.md similarity index 100% rename from purchase_stock_tier_validation/readme/DESCRIPTION.rst rename to purchase_stock_tier_validation/readme/DESCRIPTION.md diff --git a/purchase_stock_tier_validation/static/description/index.html b/purchase_stock_tier_validation/static/description/index.html deleted file mode 100644 index 203382d5e..000000000 --- a/purchase_stock_tier_validation/static/description/index.html +++ /dev/null @@ -1,434 +0,0 @@ - - - - - -README.rst - - - -
- - - -Odoo Community Association - -
-

Purchase Stock Tier Validation

- -

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runboat

-

This module excludes RFQs pending to validate or validated when procuring a product.

-

If a RFQ, at some point, is requested to validate, it converts it immediately in something unmodifiable. -Then, taking this into account, if we procure a product with the same supplier as one open RFQ, it should -check if that is under validation or already validated and discard it on any of both cases.

-

Table of contents

- -
-

Bug Tracker

-

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

-

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

-
-
-

Credits

-
-

Authors

-
    -
  • ForgeFlow
  • -
-
-
-

Contributors

- -
-
-

Maintainers

-

This module is maintained by the OCA.

- -Odoo Community Association - -

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

-

Current maintainer:

-

bosd

-

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

-

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

-
-
-
-
- - diff --git a/purchase_stock_tier_validation/tests/__init__.py b/purchase_stock_tier_validation/tests/__init__.py index e5ea27266..4d66f02ea 100644 --- a/purchase_stock_tier_validation/tests/__init__.py +++ b/purchase_stock_tier_validation/tests/__init__.py @@ -1 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import test_purchase_stock_tier_validation diff --git a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py index a7b057b7c..7b032a5aa 100644 --- a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py +++ b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py @@ -2,52 +2,49 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl-3.0). from odoo import fields -from odoo.tests import common +from odoo.tests import new_test_user, tagged +from odoo.addons.base.tests.common import BaseCommon -class TestPurchaseStockTierValidation(common.TransactionCase): - def setUp(self): - super(TestPurchaseStockTierValidation, self).setUp() + +@tagged("-at_install", "post_install") +class TestPurchaseStockTierValidation(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() # Get purchase order model - self.po_model = self.env.ref("purchase.model_purchase_order").with_context( - tracking_disable=True, no_reset_password=True - ) + cls.po_model = cls.env.ref("purchase.model_purchase_order") # Create users - group_ids = self.env.ref("base.group_system").ids - self.test_user_1 = self.env["res.users"].create( - { - "name": "John", - "login": "test1", - "groups_id": [(6, 0, group_ids)], - "email": "test@examlple.com", - } + cls.test_user_1 = new_test_user( + cls.env, name="John", login="test1", groups="base.group_system" ) # Create tier definitions: - self.tier_def_obj = self.env["tier.definition"] - self.tier_def_obj.create( + cls.tier_def_obj = cls.env["tier.definition"] + cls.tier_def_obj.create( { - "model_id": self.po_model.id, + "model_id": cls.po_model.id, "review_type": "individual", - "reviewer_id": self.test_user_1.id, + "reviewer_id": cls.test_user_1.id, } ) # Common models - self.test_partner = self.env["res.partner"].create({"name": "Partner for test"}) - self.stock_loc = self.browse_ref("stock.stock_location_stock") - self.warehouse = self.browse_ref("stock.warehouse0") + cls.test_partner = cls.env["res.partner"].create({"name": "Partner for test"}) + cls.stock_loc = cls.env.ref("stock.stock_location_stock") + cls.warehouse = cls.env.ref("stock.warehouse0") # Create product - route_buy = self.env.ref("purchase_stock.route_warehouse0_buy").id - self.test_product = self.env["product.product"].create( + route_buy = cls.env.ref("purchase_stock.route_warehouse0_buy").id + cls.test_product = cls.env["product.product"].create( { "name": "Test Scrap Component 1", - "type": "product", + "type": "consu", + "is_storable": True, "route_ids": [(6, 0, [route_buy])], "seller_ids": [ - (0, 0, {"partner_id": self.test_partner.id, "price": 20.0}) + (0, 0, {"partner_id": cls.test_partner.id, "price": 20.0}) ], } ) @@ -69,7 +66,7 @@ def test_procurement_in_new_rfq(self): "product_id": self.test_product.id, "date_planned": fields.Datetime.now(), "product_qty": 10, - "product_uom": self.test_product.uom_id.id, + "product_uom_id": self.test_product.uom_id.id, "price_unit": 1000, }, ) @@ -83,17 +80,13 @@ def test_procurement_in_new_rfq(self): po.request_validation() po.with_user(self.test_user_1).validate_tier() date_planned = fields.Datetime.now() - group = self.env["procurement.group"].create( - {"name": "Test", "move_type": "direct"} - ) values = { "company_id": self.warehouse.company_id, - "group_id": group, "date_planned": date_planned, "warehouse_id": self.warehouse, } procurements = [ - self.env["procurement.group"].Procurement( + self.env["stock.rule"].Procurement( self.test_product, 1, self.env.ref("uom.product_uom_unit"), @@ -104,7 +97,7 @@ def test_procurement_in_new_rfq(self): values, ) ] - group.run(procurements) + self.env["stock.rule"].run(procurements) self.assertEqual(len(po.mapped("order_line")), 1) rfq_test_partner_after = self.env["purchase.order"].search( [("partner_id", "=", self.test_partner.id)] From 2a904f6cf06947e9a1226c684f76d059c37d03fd Mon Sep 17 00:00:00 2001 From: Giordano Date: Wed, 21 Oct 2026 00:11:09 +0200 Subject: [PATCH 17/17] [IMP] purchase_stock_tier_validation: tests use the BaseCommon partner and Command Review feedback: reuse the res.partner provided by BaseCommon instead of creating one, and use Command.set/Command.create instead of raw tuples. Assisted-by: Claude Sonnet 5.5 --- .../test_purchase_stock_tier_validation.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py index 7b032a5aa..609b042de 100644 --- a/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py +++ b/purchase_stock_tier_validation/tests/test_purchase_stock_tier_validation.py @@ -1,7 +1,7 @@ # Copyright 2017-2020 ForgeFlow S.L. # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl-3.0). -from odoo import fields +from odoo import Command, fields from odoo.tests import new_test_user, tagged from odoo.addons.base.tests.common import BaseCommon @@ -31,7 +31,6 @@ def setUpClass(cls): ) # Common models - cls.test_partner = cls.env["res.partner"].create({"name": "Partner for test"}) cls.stock_loc = cls.env.ref("stock.stock_location_stock") cls.warehouse = cls.env.ref("stock.warehouse0") @@ -42,9 +41,9 @@ def setUpClass(cls): "name": "Test Scrap Component 1", "type": "consu", "is_storable": True, - "route_ids": [(6, 0, [route_buy])], + "route_ids": [Command.set([route_buy])], "seller_ids": [ - (0, 0, {"partner_id": cls.test_partner.id, "price": 20.0}) + Command.create({"partner_id": cls.partner.id, "price": 20.0}) ], } ) @@ -56,11 +55,9 @@ def test_procurement_in_new_rfq(self): """ po = self.env["purchase.order"].create( { - "partner_id": self.test_partner.id, + "partner_id": self.partner.id, "order_line": [ - ( - 0, - 0, + Command.create( { "name": "PO-Product", "product_id": self.test_product.id, @@ -74,7 +71,7 @@ def test_procurement_in_new_rfq(self): } ) rfq_test_partner_before = self.env["purchase.order"].search( - [("partner_id", "=", self.test_partner.id)] + [("partner_id", "=", self.partner.id)] ) self.assertEqual(len(po.mapped("order_line")), 1) po.request_validation() @@ -100,6 +97,6 @@ def test_procurement_in_new_rfq(self): self.env["stock.rule"].run(procurements) self.assertEqual(len(po.mapped("order_line")), 1) rfq_test_partner_after = self.env["purchase.order"].search( - [("partner_id", "=", self.test_partner.id)] + [("partner_id", "=", self.partner.id)] ) self.assertEqual(len(rfq_test_partner_after), len(rfq_test_partner_before) + 1)