purchase_customer_requisition: passing first test

This commit is contained in:
Marc Durepos 2025-01-15 17:38:00 -05:00
parent e767591739
commit f54ff1496f
3 changed files with 29 additions and 46 deletions

View file

@ -1,26 +1,28 @@
{ {
'name': 'Purchase Customer Requisition', "name": "Purchase Customer Requisition",
'version': '1.0', "version": "1.0",
'category': 'Purchase', "category": "Purchase",
'summary': 'Link customer requisition references to purchase orders', "summary": "Link customer requisition references to purchase orders",
'description': """ "description": """
This module allows to: This module allows to:
* Store customer-specific requisition references for suppliers * Store customer-specific requisition references for suppliers
* Automatically add these references to purchase order lines * Automatically add these references to purchase order lines
* Track customer requisition numbers across purchase orders * Track customer requisition numbers across purchase orders
""", """,
'license': 'LGPL-3', "license": "LGPL-3",
'depends': [ "depends": [
'purchase_stock', "sale",
'sale_purchase', "purchase",
'purchase_requisition' "stock",
"purchase_requisition_stock",
"purchase_requisition",
], ],
'data': [ "data": [
'security/ir.model.access.csv', "security/ir.model.access.csv",
'views/purchase_views.xml', "views/purchase_views.xml",
'views/purchase_requisition_views.xml', "views/purchase_requisition_views.xml",
], ],
'installable': True, "installable": True,
'application': False, "application": False,
'auto_install': False, "auto_install": False,
} }

View file

@ -62,7 +62,7 @@ class PurchaseOrderLine(models.Model):
line.requisition_id = requisition_lines.filtered( line.requisition_id = requisition_lines.filtered(
lambda req_line: req_line.requisition_id lambda req_line: req_line.requisition_id
== line.order_id.requisition_id == line.order_id.requisition_id
) ).requisition_id
if not line.requisition_id and requisition_lines: if not line.requisition_id and requisition_lines:
line.requisition_id = requisition_lines[0].requisition_id line.requisition_id = requisition_lines[0].requisition_id
else: else:

View file

@ -19,13 +19,12 @@ class TestPurchaseOrder(TransactionCase):
{ {
"name": "SuperProduct", "name": "SuperProduct",
"is_storable": True, "is_storable": True,
"route_ids": [(6, 0, (cls.mto_route + cls.buy_route).ids)], "route_ids": [Command.set((cls.mto_route + cls.buy_route).ids)],
"seller_ids": [ "seller_ids": [
( Command.create(
0,
0,
{ {
"partner_id": cls.supplier.id, "partner_id": cls.supplier.id,
"price": 1000,
}, },
) )
], ],
@ -36,36 +35,18 @@ class TestPurchaseOrder(TransactionCase):
{ {
"name": "SuperProduct2", "name": "SuperProduct2",
"is_storable": True, "is_storable": True,
"route_ids": [(6, 0, (cls.mto_route + cls.buy_route).ids)], "route_ids": [Command.set((cls.mto_route + cls.buy_route).ids)],
"seller_ids": [ "seller_ids": [
( Command.create(
0,
0,
{ {
"partner_id": cls.supplier.id, "partner_id": cls.supplier.id,
"price": 2000,
}, },
) )
], ],
} }
) )
cls.env["product.supplierinfo"].create(
[
{
"partner_id": cls.supplier.id,
"product_id": cls.product_1.id,
"product_tmpl_id": cls.product_1.product_tmpl_id.id,
"price": 2000,
},
{
"partner_id": cls.supplier.id,
"product_id": cls.product_2.id,
"product_tmpl_id": cls.product_1.product_tmpl_id.id,
"price": 3000,
},
]
)
cls.agreement_1 = cls.env["purchase.requisition"].create( cls.agreement_1 = cls.env["purchase.requisition"].create(
{ {
"name": "ATRACK 123", "name": "ATRACK 123",
@ -128,7 +109,7 @@ class TestPurchaseOrder(TransactionCase):
) )
sale_order.action_confirm() sale_order.action_confirm()
purchase_line = sale_order.order_line[0].purchase_line_ids self.assertTrue(sale_order._get_purchase_orders())
self.assertTrue(purchase_line) purchase_line = sale_order._get_purchase_orders()[0].order_line[0]
self.assertEqual(purchase_line.order_id.partner_id, self.supplier) self.assertEqual(purchase_line.order_id.partner_id, self.supplier)
self.assertEqual(purchase_line.requisition_id, self.agreement_1) self.assertEqual(purchase_line.requisition_id, self.agreement_1)