Merge pull request #35525 from s-aga-r/FIX-STOCK-RESERVATION-TEST-CASE
fix(test): `test_stock_reservation_against_sales_order`
This commit is contained in:
commit
ebf03a51f3
@ -1890,11 +1890,11 @@ class TestSalesOrder(FrappeTestCase):
|
|||||||
)
|
)
|
||||||
from erpnext.stock.doctype.stock_reservation_entry.test_stock_reservation_entry import (
|
from erpnext.stock.doctype.stock_reservation_entry.test_stock_reservation_entry import (
|
||||||
create_items,
|
create_items,
|
||||||
create_material_receipts,
|
create_material_receipt,
|
||||||
)
|
)
|
||||||
|
|
||||||
items_details, warehouse = create_items(), "_Test Warehouse - _TC"
|
items_details, warehouse = create_items(), "_Test Warehouse - _TC"
|
||||||
create_material_receipts(items_details, warehouse, qty=10)
|
se = create_material_receipt(items_details, warehouse, qty=10)
|
||||||
|
|
||||||
item_list = []
|
item_list = []
|
||||||
for item_code, properties in items_details.items():
|
for item_code, properties in items_details.items():
|
||||||
@ -1932,8 +1932,10 @@ class TestSalesOrder(FrappeTestCase):
|
|||||||
self.assertEqual(item.stock_reserved_qty, sre_details[0].reserved_qty)
|
self.assertEqual(item.stock_reserved_qty, sre_details[0].reserved_qty)
|
||||||
self.assertEqual(sre_details[0].status, "Partially Reserved")
|
self.assertEqual(sre_details[0].status, "Partially Reserved")
|
||||||
|
|
||||||
|
se.cancel()
|
||||||
|
|
||||||
# Test - 3: Stock should be fully Reserved if the Available Qty to Reserve is greater than the Un-reserved Qty.
|
# Test - 3: Stock should be fully Reserved if the Available Qty to Reserve is greater than the Un-reserved Qty.
|
||||||
create_material_receipts(items_details, warehouse, qty=100)
|
create_material_receipt(items_details, warehouse, qty=110)
|
||||||
so.create_stock_reservation_entries()
|
so.create_stock_reservation_entries()
|
||||||
so.load_from_db()
|
so.load_from_db()
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import frappe
|
|||||||
from frappe.tests.utils import FrappeTestCase, change_settings
|
from frappe.tests.utils import FrappeTestCase, change_settings
|
||||||
|
|
||||||
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
|
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
|
||||||
|
from erpnext.stock.doctype.stock_entry.stock_entry import StockEntry
|
||||||
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
|
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
|
||||||
from erpnext.stock.utils import get_stock_balance
|
from erpnext.stock.utils import get_stock_balance
|
||||||
|
|
||||||
@ -12,7 +13,7 @@ from erpnext.stock.utils import get_stock_balance
|
|||||||
class TestStockReservationEntry(FrappeTestCase):
|
class TestStockReservationEntry(FrappeTestCase):
|
||||||
def setUp(self) -> None:
|
def setUp(self) -> None:
|
||||||
self.items = create_items()
|
self.items = create_items()
|
||||||
create_material_receipts(self.items)
|
create_material_receipt(self.items)
|
||||||
|
|
||||||
def tearDown(self) -> None:
|
def tearDown(self) -> None:
|
||||||
return super().tearDown()
|
return super().tearDown()
|
||||||
@ -269,19 +270,36 @@ def create_items() -> dict:
|
|||||||
return items
|
return items
|
||||||
|
|
||||||
|
|
||||||
def create_material_receipts(
|
def create_material_receipt(
|
||||||
items: dict, warehouse: str = "_Test Warehouse - _TC", qty: float = 100
|
items: dict, warehouse: str = "_Test Warehouse - _TC", qty: float = 100
|
||||||
) -> None:
|
) -> StockEntry:
|
||||||
|
se = frappe.new_doc("Stock Entry")
|
||||||
|
se.purpose = "Material Receipt"
|
||||||
|
se.company = "_Test Company"
|
||||||
|
cost_center = frappe.get_value("Company", se.company, "cost_center")
|
||||||
|
expense_account = frappe.get_value("Company", se.company, "stock_adjustment_account")
|
||||||
|
|
||||||
for item in items.values():
|
for item in items.values():
|
||||||
if item.is_stock_item:
|
se.append(
|
||||||
make_stock_entry(
|
"items",
|
||||||
item_code=item.item_code,
|
{
|
||||||
qty=qty,
|
"item_code": item.item_code,
|
||||||
to_warehouse=warehouse,
|
"t_warehouse": warehouse,
|
||||||
rate=item.valuation_rate,
|
"qty": qty,
|
||||||
purpose="Material Receipt",
|
"basic_rate": item.valuation_rate or 100,
|
||||||
|
"conversion_factor": 1.0,
|
||||||
|
"transfer_qty": qty,
|
||||||
|
"cost_center": cost_center,
|
||||||
|
"expense_account": expense_account,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
se.set_stock_entry_type()
|
||||||
|
se.insert()
|
||||||
|
se.submit()
|
||||||
|
|
||||||
|
return se
|
||||||
|
|
||||||
|
|
||||||
def cancel_all_stock_reservation_entries() -> None:
|
def cancel_all_stock_reservation_entries() -> None:
|
||||||
sre_list = frappe.db.get_all("Stock Reservation Entry", filters={"docstatus": 1}, pluck="name")
|
sre_list = frappe.db.get_all("Stock Reservation Entry", filters={"docstatus": 1}, pluck="name")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user