From 58b3ce6a19b61958d43f13371c7235b7f0613fe5 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Thu, 21 Mar 2024 13:48:05 +0100 Subject: [PATCH] refactor: get prices as dict --- erpnext/stock/get_item_details.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 12049f12dd1..bb6ef27d762 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -889,7 +889,7 @@ def insert_item_price(args): ) -def get_item_price(args, item_code, ignore_party=False): +def get_item_price(args, item_code, ignore_party=False) -> list[dict]: """ Get name, price_list_rate from Item Price based on conditions Check if the desired qty is within the increment of the packing list. @@ -927,7 +927,7 @@ def get_item_price(args, item_code, ignore_party=False): & (IfNull(ip.valid_upto, "2500-12-31") >= args["transaction_date"]) ) - return query.run() + return query.run(as_dict=True) def get_price_list_rate_for(args, item_code): @@ -953,7 +953,7 @@ def get_price_list_rate_for(args, item_code): price_list_rate = get_item_price(item_price_args, item_code) if price_list_rate: desired_qty = args.get("qty") - if desired_qty and check_packing_list(price_list_rate[0][0], desired_qty, item_code): + if desired_qty and check_packing_list(price_list_rate[0].name, desired_qty, item_code): item_price_data = price_list_rate else: for field in ["customer", "supplier"]: @@ -973,12 +973,12 @@ def get_price_list_rate_for(args, item_code): item_price_data = general_price_list_rate if item_price_data: - if item_price_data[0][2] == args.get("uom"): - return item_price_data[0][1] + if item_price_data[0].uom == args.get("uom"): + return item_price_data[0].price_list_rate elif not args.get("price_list_uom_dependant"): - return flt(item_price_data[0][1] * flt(args.get("conversion_factor", 1))) + return flt(item_price_data[0].price_list_rate * flt(args.get("conversion_factor", 1))) else: - return item_price_data[0][1] + return item_price_data[0].price_list_rate def check_packing_list(price_list_rate_name, desired_qty, item_code):