Skip to content

Commit

Permalink
fix: test_work_order_with_non_stock_item
Browse files Browse the repository at this point in the history
- 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
  • Loading branch information
marination committed May 20, 2022
1 parent 9a513fd commit b827c3b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 = []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -749,7 +749,6 @@ def make_bom(**args):

for item in args.raw_materials:
item_doc = frappe.get_doc("Item", item)

bom.append(
"items",
{
Expand Down
15 changes: 12 additions & 3 deletions erpnext/manufacturing/doctype/work_order/test_work_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ def test_work_order_with_non_stock_item(self):
"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)

Expand All @@ -423,8 +423,17 @@ def test_work_order_with_non_stock_item(self):
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)

Expand Down

0 comments on commit b827c3b

Please sign in to comment.