mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
[FIX] mrp_multi_level: Consider timezone of the warehouse to generate mrp inventory records.
This commit is contained in:
@@ -186,6 +186,19 @@ class TestMrpMultiLevelCommon(SavepointCase):
|
||||
"mrp_qty_multiple": 5.0,
|
||||
}
|
||||
)
|
||||
# Another product:
|
||||
cls.product_tz = cls.product_obj.create(
|
||||
{
|
||||
"name": "Product Timezone",
|
||||
"type": "product",
|
||||
"list_price": 100.0,
|
||||
"route_ids": [(6, 0, [route_buy])],
|
||||
"seller_ids": [(0, 0, {"name": vendor1.id, "price": 20.0})],
|
||||
}
|
||||
)
|
||||
cls.product_mrp_area_obj.create(
|
||||
{"product_id": cls.product_tz.id, "mrp_area_id": cls.cases_area.id}
|
||||
)
|
||||
|
||||
# Create pickings for Scenario 1:
|
||||
dt_base = cls.calendar.plan_days(3 + 1, datetime.today())
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
|
||||
|
||||
from datetime import date, datetime
|
||||
|
||||
from odoo import fields
|
||||
|
||||
from .common import TestMrpMultiLevelCommon
|
||||
@@ -336,3 +338,40 @@ class TestMrpMultiLevel(TestMrpMultiLevelCommon):
|
||||
[("product_mrp_area_id.product_id", "=", self.av_22.id)]
|
||||
)
|
||||
self.assertTrue(av_22_supply)
|
||||
|
||||
def test_13_timezone_handling(self):
|
||||
self.calendar.tz = "Australia/Sydney" # Oct-Apr/Apr-Oct: UTC+11/UTC+10
|
||||
date_move = datetime(2090, 4, 19, 20, 00) # Apr 20 6/7 am in Sidney
|
||||
sidney_date = date(2090, 4, 20)
|
||||
self._create_picking_in(
|
||||
self.product_tz, 10.0, date_move, location=self.cases_loc
|
||||
)
|
||||
self.mrp_multi_level_wiz.create(
|
||||
{"mrp_area_ids": [(6, 0, self.cases_area.ids)]}
|
||||
).run_mrp_multi_level()
|
||||
inventory = self.mrp_inventory_obj.search(
|
||||
[
|
||||
("mrp_area_id", "=", self.cases_area.id),
|
||||
("product_id", "=", self.product_tz.id),
|
||||
]
|
||||
)
|
||||
self.assertEqual(len(inventory), 1)
|
||||
self.assertEqual(inventory.date, sidney_date)
|
||||
|
||||
def test_14_timezone_not_set(self):
|
||||
self.wh.calendar_id = False
|
||||
date_move = datetime(2090, 4, 19, 20, 00)
|
||||
self._create_picking_in(
|
||||
self.product_tz, 10.0, date_move, location=self.cases_loc
|
||||
)
|
||||
self.mrp_multi_level_wiz.create(
|
||||
{"mrp_area_ids": [(6, 0, self.cases_area.ids)]}
|
||||
).run_mrp_multi_level()
|
||||
inventory = self.mrp_inventory_obj.search(
|
||||
[
|
||||
("mrp_area_id", "=", self.cases_area.id),
|
||||
("product_id", "=", self.product_tz.id),
|
||||
]
|
||||
)
|
||||
self.assertEqual(len(inventory), 1)
|
||||
self.assertEqual(inventory.date, date_move.date())
|
||||
|
||||
Reference in New Issue
Block a user