mirror of
https://gitlab.com/datalifeit/trytond-stock_product_category_location
synced 2023-12-14 04:33:11 +01:00
Check categories are not mixed amoung warehouses.
This commit refs #21470
This commit is contained in:
parent
2133a3ca94
commit
9a7f2e9227
2 changed files with 41 additions and 1 deletions
10
location.py
10
location.py
|
@ -122,3 +122,13 @@ class Location(metaclass=PoolMeta):
|
|||
return super().view_attributes() + [
|
||||
('//page[@id="categories"]', 'states', {
|
||||
'invisible': ~Eval('type').in_(['warehouse', 'storage'])})]
|
||||
|
||||
@classmethod
|
||||
def copy(cls, records, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
else:
|
||||
default = default.copy()
|
||||
default.setdefault('categories', None)
|
||||
default.setdefault('wh_categories', None)
|
||||
return super().copy(records, default=default)
|
||||
|
|
|
@ -71,7 +71,7 @@ class StockProductCategoryLocationTestCase(ModuleTestCase):
|
|||
child_cat, = Category.create([{'name': 'CAT2', 'parent': new_cat.id}])
|
||||
cat_loc_rec = {
|
||||
'category': new_cat.id,
|
||||
'warehouse': storage.parent.id,
|
||||
'warehouse': storage.warehouse.id,
|
||||
'location': storage.id
|
||||
}
|
||||
CatLoc.create([cat_loc_rec])
|
||||
|
@ -86,6 +86,36 @@ class StockProductCategoryLocationTestCase(ModuleTestCase):
|
|||
|
||||
self.assertEqual(child_cat.get_default_location(), storage_new)
|
||||
|
||||
@with_transaction()
|
||||
def test_warehouse_isolation(self):
|
||||
"""Add the category default location for a warehouse"""
|
||||
pool = Pool()
|
||||
Location = pool.get('stock.location')
|
||||
Category = pool.get('product.category')
|
||||
CatLoc = pool.get('stock.product.category.location')
|
||||
|
||||
storage, = Location.search([('code', '=', 'STO')])
|
||||
storage_new, = Location.create([{
|
||||
'code': 'STO2',
|
||||
'name': 'Storage 2',
|
||||
'type': 'storage',
|
||||
'parent': storage.id
|
||||
}])
|
||||
new_cat, = Category.create([{'name': 'CAT1'}])
|
||||
cat_loc_rec = {
|
||||
'category': new_cat.id,
|
||||
'warehouse': storage.warehouse.id,
|
||||
'location': storage.id
|
||||
}
|
||||
CatLoc.create([cat_loc_rec])
|
||||
|
||||
self.assertEqual(new_cat.get_default_location(), storage)
|
||||
|
||||
# create new warehouse
|
||||
new_wh, = Location.copy([storage.warehouse])
|
||||
|
||||
self.assertEqual(new_cat.get_default_location(warehouse=new_wh), None)
|
||||
|
||||
|
||||
def suite():
|
||||
suite = trytond.tests.test_tryton.suite()
|
||||
|
|
Loading…
Reference in a new issue