fix: test_work_order_with_non_stock_item

- Use the right price list and currency to avoid rate conversion (1000/62.9), since rates are reset correctly now
- Use RM rate based on Price List in BOM. Non stock item has no valuation
This commit is contained in:
marination
2022-05-20 01:02:56 +05:30
parent 9a513fda74
commit b827c3b3c9
3 changed files with 16 additions and 8 deletions

View File

@@ -76,10 +76,10 @@ def create_bom_update_log(
def get_boms_in_bottom_up_order(bom_no: Optional[str] = None) -> List:
"""
Eg: Main BOM
|- Sub BOM 1
|- Leaf BOM 1
|- Sub BOM 2
|- Leaf BOM 2
|- Sub BOM 1
|- Leaf BOM 1
|- Sub BOM 2
|- Leaf BOM 2
Result: [Leaf BOM 1, Leaf BOM 2, Sub BOM 1, Sub BOM 2, Main BOM]
"""
leaf_boms = []

View File

@@ -749,7 +749,6 @@ def make_bom(**args):
for item in args.raw_materials:
item_doc = frappe.get_doc("Item", item)
bom.append(
"items",
{

View File

@@ -414,7 +414,7 @@ class TestWorkOrder(FrappeTestCase):
"doctype": "Item Price",
"item_code": "_Test FG Non Stock Item",
"price_list_rate": 1000,
"price_list": "Standard Buying",
"price_list": "_Test Price List India",
}
).insert(ignore_permissions=True)
@@ -423,8 +423,17 @@ class TestWorkOrder(FrappeTestCase):
item_code="_Test FG Item", target="_Test Warehouse - _TC", qty=1, basic_rate=100
)
if not frappe.db.get_value("BOM", {"item": fg_item}):
make_bom(item=fg_item, rate=1000, raw_materials=["_Test FG Item", "_Test FG Non Stock Item"])
if not frappe.db.get_value("BOM", {"item": fg_item, "docstatus": 1}):
bom = make_bom(
item=fg_item,
rate=1000,
raw_materials=["_Test FG Item", "_Test FG Non Stock Item"],
do_not_save=True,
)
bom.rm_cost_as_per = "Price List" # non stock item won't have valuation rate
bom.buying_price_list = "_Test Price List India"
bom.currency = "INR"
bom.save()
wo = make_wo_order_test_record(production_item=fg_item)