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: def get_boms_in_bottom_up_order(bom_no: Optional[str] = None) -> List:
""" """
Eg: Main BOM Eg: Main BOM
|- Sub BOM 1 |- Sub BOM 1
|- Leaf BOM 1 |- Leaf BOM 1
|- Sub BOM 2 |- Sub BOM 2
|- Leaf BOM 2 |- Leaf BOM 2
Result: [Leaf BOM 1, Leaf BOM 2, Sub BOM 1, Sub BOM 2, Main BOM] Result: [Leaf BOM 1, Leaf BOM 2, Sub BOM 1, Sub BOM 2, Main BOM]
""" """
leaf_boms = [] leaf_boms = []

View File

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

View File

@@ -414,7 +414,7 @@ class TestWorkOrder(FrappeTestCase):
"doctype": "Item Price", "doctype": "Item Price",
"item_code": "_Test FG Non Stock Item", "item_code": "_Test FG Non Stock Item",
"price_list_rate": 1000, "price_list_rate": 1000,
"price_list": "Standard Buying", "price_list": "_Test Price List India",
} }
).insert(ignore_permissions=True) ).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 item_code="_Test FG Item", target="_Test Warehouse - _TC", qty=1, basic_rate=100
) )
if not frappe.db.get_value("BOM", {"item": fg_item}): if not frappe.db.get_value("BOM", {"item": fg_item, "docstatus": 1}):
make_bom(item=fg_item, rate=1000, raw_materials=["_Test FG Item", "_Test FG Non Stock Item"]) 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) wo = make_wo_order_test_record(production_item=fg_item)