mirror of
https://github.com/ForgeFlow/stock-rma.git
synced 2025-01-21 12:57:49 +02:00
[14.0][ADD] rma_scrap
This commit is contained in:
committed by
JasminSForgeFlow
parent
14401983a8
commit
a98271f31a
172
rma_scrap/tests/test_rma_scrap.py
Normal file
172
rma_scrap/tests/test_rma_scrap.py
Normal file
@@ -0,0 +1,172 @@
|
||||
from odoo.tests import common
|
||||
|
||||
|
||||
class TestRmaScrap(common.SingleTransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestRmaScrap, cls).setUpClass()
|
||||
|
||||
cls.rma_obj = cls.env["rma.order"]
|
||||
cls.rma_line_obj = cls.env["rma.order.line"]
|
||||
cls.rma_op_obj = cls.env["rma.operation"]
|
||||
cls.rma_make_picking = cls.env["rma_make_picking.wizard"]
|
||||
cls.rma_make_scrap_wiz = cls.env["rma_make_scrap.wizard"]
|
||||
cls.product_obj = cls.env["product.product"]
|
||||
cls.partner_obj = cls.env["res.partner"]
|
||||
|
||||
cls.rma_route_cust = cls.env.ref("rma.route_rma_customer")
|
||||
cls.cust_loc = cls.env.ref("stock.stock_location_customers")
|
||||
|
||||
# Create customer
|
||||
cls.customer1 = cls.partner_obj.create({"name": "Customer 1"})
|
||||
|
||||
# Create products
|
||||
cls.product_1 = cls.product_obj.create(
|
||||
{"name": "Test Product 1", "type": "product", "list_price": 100.0}
|
||||
)
|
||||
cls.product_2 = cls.product_obj.create(
|
||||
{
|
||||
"name": "Test Product 2",
|
||||
"type": "product",
|
||||
"list_price": 150.0,
|
||||
"tracking": "lot",
|
||||
}
|
||||
)
|
||||
|
||||
cls.lot = cls.env["stock.production.lot"].create(
|
||||
{
|
||||
"name": "Lot for tests",
|
||||
"product_id": cls.product_2.id,
|
||||
"company_id": cls.env.ref("base.main_company").id,
|
||||
}
|
||||
)
|
||||
cls.wh = cls.env.ref("stock.warehouse0")
|
||||
cls.stock_rma_location = cls.wh.lot_rma_id
|
||||
cls.scrap_loc = cls.env["stock.location"].create(
|
||||
{
|
||||
"name": "WH Scrap Location",
|
||||
"location_id": cls.wh.view_location_id.id,
|
||||
"scrap_location": True,
|
||||
}
|
||||
)
|
||||
|
||||
# Create RMA group and operation:
|
||||
cls.rma_group = cls.rma_obj.create({"partner_id": cls.customer1.id})
|
||||
|
||||
cls.operation_1 = cls.rma_op_obj.create(
|
||||
{
|
||||
"code": "TEST1",
|
||||
"name": "Operation 1",
|
||||
"type": "customer",
|
||||
"receipt_policy": "ordered",
|
||||
"scrap_policy": "received",
|
||||
"scrap_location_id": cls.scrap_loc.id,
|
||||
"in_route_id": cls.rma_route_cust.id,
|
||||
"out_route_id": cls.rma_route_cust.id,
|
||||
}
|
||||
)
|
||||
cls.operation_2 = cls.rma_op_obj.create(
|
||||
{
|
||||
"code": "TEST2",
|
||||
"name": "Operation 2",
|
||||
"type": "customer",
|
||||
"receipt_policy": "ordered",
|
||||
"scrap_policy": "ordered",
|
||||
"scrap_location_id": cls.scrap_loc.id,
|
||||
"in_route_id": cls.rma_route_cust.id,
|
||||
"out_route_id": cls.rma_route_cust.id,
|
||||
}
|
||||
)
|
||||
|
||||
def test_01_rma_scrap_received(self):
|
||||
rma = self.rma_line_obj.create(
|
||||
{
|
||||
"partner_id": self.customer1.id,
|
||||
"product_id": self.product_1.id,
|
||||
"operation_id": self.operation_1.id,
|
||||
"uom_id": self.product_1.uom_id.id,
|
||||
"in_route_id": self.operation_1.in_route_id.id,
|
||||
"out_route_id": self.operation_1.out_route_id.id,
|
||||
"in_warehouse_id": self.operation_1.in_warehouse_id.id,
|
||||
"out_warehouse_id": self.operation_1.out_warehouse_id.id,
|
||||
"location_id": self.stock_rma_location.id,
|
||||
}
|
||||
)
|
||||
rma._onchange_operation_id()
|
||||
rma.action_rma_to_approve()
|
||||
wizard = self.rma_make_picking.with_context(
|
||||
{
|
||||
"active_ids": rma.id,
|
||||
"active_model": "rma.order.line",
|
||||
"picking_type": "incoming",
|
||||
"active_id": 1,
|
||||
}
|
||||
).create({})
|
||||
wizard._create_picking()
|
||||
rma._compute_qty_to_scrap()
|
||||
wizard = self.rma_make_scrap_wiz.with_context(
|
||||
{
|
||||
"active_ids": rma.id,
|
||||
"active_model": "rma.order.line",
|
||||
"item_ids": [
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"line_id": rma.id,
|
||||
"product_id": rma.product_id.id,
|
||||
"product_qty": rma.product_qty,
|
||||
"location_id": rma.location_id,
|
||||
"qty_to_scrap": rma.qty_to_scrap,
|
||||
"uom_id": rma.uom_id.id,
|
||||
},
|
||||
],
|
||||
}
|
||||
).create({})
|
||||
action = wizard.action_create_scrap()
|
||||
scrap = self.env["stock.scrap"].browse([action["res_id"]])
|
||||
self.assertEqual(scrap.location_id.id, self.stock_rma_location.id)
|
||||
self.assertEqual(scrap.move_id.id, False)
|
||||
scrap.action_validate()
|
||||
move = scrap.move_id
|
||||
self.assertEqual(move.product_id.id, self.product_1.id)
|
||||
|
||||
def test_02_rma_scrap_ordered(self):
|
||||
rma = self.rma_line_obj.create(
|
||||
{
|
||||
"partner_id": self.customer1.id,
|
||||
"product_id": self.product_1.id,
|
||||
"operation_id": self.operation_2.id,
|
||||
"uom_id": self.product_1.uom_id.id,
|
||||
"in_route_id": self.operation_2.in_route_id.id,
|
||||
"out_route_id": self.operation_2.out_route_id.id,
|
||||
"in_warehouse_id": self.operation_2.in_warehouse_id.id,
|
||||
"out_warehouse_id": self.operation_2.out_warehouse_id.id,
|
||||
"location_id": self.stock_rma_location.id,
|
||||
}
|
||||
)
|
||||
rma._onchange_operation_id()
|
||||
rma.action_rma_to_approve()
|
||||
rma._compute_qty_to_scrap()
|
||||
wizard = self.rma_make_scrap_wiz.with_context(
|
||||
{
|
||||
"active_ids": rma.id,
|
||||
"active_model": "rma.order.line",
|
||||
"item_ids": [
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"line_id": rma.id,
|
||||
"product_id": rma.product_id.id,
|
||||
"product_qty": rma.product_qty,
|
||||
"location_id": rma.location_id,
|
||||
"qty_to_scrap": rma.qty_to_scrap,
|
||||
"uom_id": rma.uom_id.id,
|
||||
},
|
||||
],
|
||||
}
|
||||
).create({})
|
||||
action = wizard.action_create_scrap()
|
||||
scrap = self.env["stock.scrap"].browse([action["res_id"]])
|
||||
self.assertEqual(scrap.location_id.id, self.stock_rma_location.id)
|
||||
self.assertEqual(scrap.move_id.id, False)
|
||||
self.assertTrue(scrap.action_validate())
|
||||
Reference in New Issue
Block a user