mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-15 15:38:39 +00:00
test: cover all projected-qty components in Stock Projected Qty report
Add a test exercising the full projected_qty formula - actual + ordered + requested + planned minus reserved, reserved-for-production, reserved-for- subcontract and reserved-for-production-plan - and asserting each component is surfaced as its own column.
This commit is contained in:
@@ -31,6 +31,43 @@ class TestStockProjectedQty(ERPNextTestSuite):
|
||||
self.assertEqual(row["ordered_qty"], 5)
|
||||
self.assertEqual(row["projected_qty"], 15)
|
||||
|
||||
def test_projected_qty_includes_all_quantity_components(self):
|
||||
"""projected_qty = actual + ordered + requested + planned
|
||||
- reserved - reserved_for_production - reserved_for_subcontract - reserved_for_production_plan
|
||||
and every component is surfaced as its own column."""
|
||||
item = make_item().name
|
||||
make_stock_entry(item_code=item, qty=100, to_warehouse=WAREHOUSE, basic_rate=100)
|
||||
|
||||
bin_doc = frappe.get_doc("Bin", {"item_code": item, "warehouse": WAREHOUSE})
|
||||
bin_doc.update(
|
||||
{
|
||||
"actual_qty": 100,
|
||||
"ordered_qty": 50,
|
||||
"indented_qty": 30, # requested
|
||||
"planned_qty": 20,
|
||||
"reserved_qty": 10,
|
||||
"reserved_qty_for_production": 8,
|
||||
"reserved_qty_for_sub_contract": 6,
|
||||
"reserved_qty_for_production_plan": 4,
|
||||
}
|
||||
)
|
||||
bin_doc.set_projected_qty()
|
||||
bin_doc.db_update()
|
||||
|
||||
# 100 + 50 + 30 + 20 - 10 - 8 - 6 - 4
|
||||
self.assertEqual(bin_doc.projected_qty, 172)
|
||||
|
||||
row = self.run_report(item)[0]
|
||||
self.assertEqual(row["actual_qty"], 100)
|
||||
self.assertEqual(row["ordered_qty"], 50)
|
||||
self.assertEqual(row["indented_qty"], 30)
|
||||
self.assertEqual(row["planned_qty"], 20)
|
||||
self.assertEqual(row["reserved_qty"], 10)
|
||||
self.assertEqual(row["reserved_qty_for_production"], 8)
|
||||
self.assertEqual(row["reserved_qty_for_sub_contract"], 6)
|
||||
self.assertEqual(row["reserved_qty_for_production_plan"], 4)
|
||||
self.assertEqual(row["projected_qty"], 172)
|
||||
|
||||
def test_shortage_qty_from_reorder_level(self):
|
||||
item = make_item().name
|
||||
doc = frappe.get_doc("Item", item)
|
||||
|
||||
Reference in New Issue
Block a user