diff --git a/.docker_files/main/__manifest__.py b/.docker_files/main/__manifest__.py index f28cd0e3..d6e3179c 100644 --- a/.docker_files/main/__manifest__.py +++ b/.docker_files/main/__manifest__.py @@ -70,7 +70,6 @@ "project_time_range", "project_timesheet_analytic_update", "project_type", - "stock_location_production", "project_wip", "project_wip_material", "timesheet_task_project_no_change", diff --git a/Dockerfile b/Dockerfile index 29851345..aca0f8ec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -72,7 +72,6 @@ COPY project_timesheet_analytic_update /mnt/extra-addons/project_timesheet_anal COPY project_type /mnt/extra-addons/project_type COPY project_wip /mnt/extra-addons/project_wip COPY project_wip_material /mnt/extra-addons/project_wip_material -COPY stock_location_production /mnt/extra-addons/stock_location_production COPY timesheet_task_project_no_change /mnt/extra-addons/timesheet_task_project_no_change diff --git a/project_material/__manifest__.py b/project_material/__manifest__.py index 01cb9680..e5322917 100644 --- a/project_material/__manifest__.py +++ b/project_material/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Project Material", - "version": "14.0.1.2.1", + "version": "14.0.1.3.0", "author": "Numigi", "maintainer": "Numigi", "website": "https://bit.ly/numigi-com", @@ -12,7 +12,6 @@ "summary": "Consume material on projects", "depends": [ "project_task_date_planned", - "stock_location_production", "stock_account", "purchase_stock", ], diff --git a/project_material/i18n/fr.po b/project_material/i18n/fr.po index b1e62497..8f938176 100644 --- a/project_material/i18n/fr.po +++ b/project_material/i18n/fr.po @@ -477,3 +477,10 @@ msgid "" msgstr "" "Vous ne pouvez pas modifier l'article ou la tâche sur la ligne de matériel " "{line} car elle est liée à un (des) mouvement(s) de stock au statut terminé." + + +#. module: project_material +#: code:addons/project_material/models/stock_warehouse.py:73 +#, python-format +msgid "You need to have a property_stock_production for product.template. Please contact your administrator or manager." +msgstr "Vous devez définir une property_stock_production pour product.template. Veuillez contacter votre administrateur ou manager." diff --git a/project_material/models/stock_warehouse.py b/project_material/models/stock_warehouse.py index 4b97ba03..ae9bcf34 100644 --- a/project_material/models/stock_warehouse.py +++ b/project_material/models/stock_warehouse.py @@ -13,11 +13,6 @@ class Warehouse(models.Model): _inherit = "stock.warehouse" - def _get_default_consumption_location_id(self): - return self.env.ref( - "stock_location_production.location_production", raise_if_not_found=False - ).id - consu_steps = fields.Selection( [(ONE_STEP_KEY, ONE_STEP_DESCRIPTION)], default=ONE_STEP_KEY ) @@ -28,27 +23,47 @@ def _has_one_step_consumption(self): consu_location_id = fields.Many2one( "stock.location", "Consumption Location", - domain=[("usage", "=", "production")], + domain="[('usage', '=', 'production'), ('company_id', '=', company_id)]", + compute='_compute_consu_location_id', ondelete="restrict", - default=_get_default_consumption_location_id, + store=True, + check_company=True, ) consu_type_id = fields.Many2one( - "stock.picking.type", "Consumption Picking Type", ondelete="restrict" + "stock.picking.type", + "Consumption Picking Type", + ondelete="restrict", + check_company=True, ) consu_return_type_id = fields.Many2one( - "stock.picking.type", "Consumption Return Picking Type", ondelete="restrict" + "stock.picking.type", + "Consumption Return Picking Type", + ondelete="restrict", + check_company=True, ) consu_route_id = fields.Many2one( - "stock.location.route", "Consumption Route", ondelete="restrict" + "stock.location.route", + "Consumption Route", + ondelete="restrict", + domain="[('company_id', '=', company_id)]", + check_company=True, ) consu_mto_pull_id = fields.Many2one( - "stock.rule", "Consumption MTO Pull", ondelete="restrict" + "stock.rule", "Consumption MTO Pull", ondelete="restrict", ) + @api.depends('company_id') + def _compute_consu_location_id(self): + for record in self: + Proprerty = self.env["ir.property"].with_company(record.company_id) + record.consu_location_id = Proprerty._get( + "property_stock_production", "product.template" + ).id + @api.model def create(self, vals): """When creating a new warehouse, create the consumption route. @@ -83,7 +98,6 @@ def _create_or_update_consumption_picking_types(self): def _create_consumption_picking_types(self): vals = self._get_consumption_picking_type_create_values() self.consu_type_id = self.env["stock.picking.type"].create(vals) - vals = self._get_consumption_return_picking_type_create_values() self.consu_return_type_id = self.env["stock.picking.type"].create(vals) @@ -181,6 +195,7 @@ def _get_consumption_return_sequence_values(self): } def _create_or_update_consumption_route(self): + self = self.with_company(self.company_id) if self.consu_route_id: self._update_consumption_route() else: @@ -302,16 +317,23 @@ def _has_two_steps_consumption(self): consu_prep_location_id = fields.Many2one( "stock.location", "Preparation Picking Location", - domain=[("usage", "=", "internal")], + domain="[('usage', '=', 'internal'), ('company_id', '=', company_id)]", ondelete="restrict", + check_company=True, ) consu_prep_type_id = fields.Many2one( - "stock.picking.type", "Preparation Picking Type", ondelete="restrict" + "stock.picking.type", + "Preparation Picking Type", + ondelete="restrict", + check_company=True, ) consu_prep_return_type_id = fields.Many2one( - "stock.picking.type", "Preparation Return Picking Type", ondelete="restrict" + "stock.picking.type", + "Preparation Return Picking Type", + ondelete="restrict", + check_company=True, ) def _create_consumption_route(self): diff --git a/project_material/tests/test_consumption_route.py b/project_material/tests/test_consumption_route.py index e6ce73dd..7c87e7b6 100644 --- a/project_material/tests/test_consumption_route.py +++ b/project_material/tests/test_consumption_route.py @@ -21,9 +21,13 @@ def setUpClass(cls): class TestConsumptionStep(ConsumptionRouteCase): def test_default_consumption_location(self): - assert self.new_warehouse.consu_location_id == self.env.ref( - "stock_location_production.location_production" + consu_location_id = ( + self.env["ir.property"] + .with_company(self.new_company.id) + ._get("property_stock_production", "product.template") ) + self.assertTrue(consu_location_id.exists()) + assert self.new_warehouse.consu_location_id.id == consu_location_id.id def test_main_warehouse_has_consumption_route(self): assert self.main_warehouse.consu_route_id diff --git a/stock_location_production/README.rst b/stock_location_production/README.rst deleted file mode 100644 index 202d327b..00000000 --- a/stock_location_production/README.rst +++ /dev/null @@ -1,7 +0,0 @@ -Stock Picking Split Quantity -============================ -This module adds a Production Stock Location data. - -Contributors ------------- -* Numigi (tm) and all its contributors (https://bit.ly/numigiens) diff --git a/stock_location_production/__init__.py b/stock_location_production/__init__.py deleted file mode 100644 index 0ab5e8ea..00000000 --- a/stock_location_production/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# © 2023 Numigi (tm) and all its contributors (https://bit.ly/numigiens) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/stock_location_production/__manifest__.py b/stock_location_production/__manifest__.py deleted file mode 100644 index 26466bd5..00000000 --- a/stock_location_production/__manifest__.py +++ /dev/null @@ -1,18 +0,0 @@ -# © 2023 Numigi (tm) and all its contributors (https://bit.ly/numigiens) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -{ - "name": "Stock Location Production", - "version": "1.0.0", - "author": "Numigi", - "maintainer": "Numigi", - "website": "https://bit.ly/numigi-com", - "license": "AGPL-3", - "category": "Stock", - "depends": ["stock"], - "summary": """ - Add a Production Stock Location data. - """, - "data": ["data/stock_data.xml"], - "installable": True, -} diff --git a/stock_location_production/data/stock_data.xml b/stock_location_production/data/stock_data.xml deleted file mode 100644 index 157b1f05..00000000 --- a/stock_location_production/data/stock_data.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Production - - production - - - - \ No newline at end of file diff --git a/stock_location_production/static/description/icon.png b/stock_location_production/static/description/icon.png deleted file mode 100644 index e69de29b..00000000