mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
71 lines
2.9 KiB
Python
71 lines
2.9 KiB
Python
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo.tests.common import SavepointCase
|
|
|
|
|
|
class TestRestrictLot(SavepointCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.customer_loc = cls.env.ref("stock.stock_location_customers")
|
|
cls.warehouse = cls.env.ref("stock.warehouse0")
|
|
cls.panel_wood_prd = cls.env.ref("mrp.product_product_wood_panel")
|
|
manufacture_route = cls.env.ref("mrp.route_warehouse0_manufacture")
|
|
mto_route = cls.env.ref("stock.route_warehouse0_mto")
|
|
mto_route.write({"active": True})
|
|
# ensure full make to order and not mts or mto
|
|
mto_route.rule_ids.write({"procure_method": "make_to_order"})
|
|
cls.panel_wood_prd.write(
|
|
{"route_ids": [(4, manufacture_route.id, 0), (4, mto_route.id, 0)]}
|
|
)
|
|
cls.out_picking_type = cls.env.ref("stock.picking_type_out")
|
|
|
|
def test_manufacturing_lot(self):
|
|
lot = self.env["stock.production.lot"].create(
|
|
{
|
|
"name": "lot1",
|
|
"product_id": self.panel_wood_prd.id,
|
|
"company_id": self.warehouse.company_id.id,
|
|
}
|
|
)
|
|
|
|
group = self.env["procurement.group"].create({"name": "My test delivery"})
|
|
move = self.env["stock.move"].create(
|
|
{
|
|
"product_id": self.panel_wood_prd.id,
|
|
"location_id": self.warehouse.lot_stock_id.id,
|
|
"location_dest_id": self.customer_loc.id,
|
|
"product_uom_qty": 1,
|
|
"product_uom": self.panel_wood_prd.uom_id.id,
|
|
"name": "test",
|
|
"procure_method": "make_to_order",
|
|
"warehouse_id": self.warehouse.id,
|
|
"restrict_lot_id": lot.id,
|
|
"picking_type_id": self.out_picking_type.id,
|
|
"group_id": group.id,
|
|
}
|
|
)
|
|
move._action_confirm()
|
|
mo = move.move_orig_ids.production_id
|
|
self.assertEqual(mo.lot_producing_id.id, lot.id)
|
|
self.assertEqual(mo.name, lot.name)
|
|
group = self.env["procurement.group"].create({"name": "My test delivery 2"})
|
|
move = self.env["stock.move"].create(
|
|
{
|
|
"product_id": self.panel_wood_prd.id,
|
|
"location_id": self.warehouse.lot_stock_id.id,
|
|
"location_dest_id": self.customer_loc.id,
|
|
"product_uom_qty": 1,
|
|
"product_uom": self.panel_wood_prd.uom_id.id,
|
|
"name": "test",
|
|
"procure_method": "make_to_order",
|
|
"warehouse_id": self.warehouse.id,
|
|
"restrict_lot_id": lot.id,
|
|
"picking_type_id": self.out_picking_type.id,
|
|
"group_id": group.id,
|
|
}
|
|
)
|
|
move._action_confirm()
|
|
mo = move.move_orig_ids.production_id
|
|
self.assertEqual(mo.name, "%s-%s" % (lot.name, 1))
|