refactor: get prices as dict

This commit is contained in:
barredterra
2024-03-21 13:48:05 +01:00
parent 64f686d943
commit 58b3ce6a19

View File

@@ -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 Get name, price_list_rate from Item Price based on conditions
Check if the desired qty is within the increment of the packing list. 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"]) & (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): 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) price_list_rate = get_item_price(item_price_args, item_code)
if price_list_rate: if price_list_rate:
desired_qty = args.get("qty") 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 item_price_data = price_list_rate
else: else:
for field in ["customer", "supplier"]: 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 item_price_data = general_price_list_rate
if item_price_data: if item_price_data:
if item_price_data[0][2] == args.get("uom"): if item_price_data[0].uom == args.get("uom"):
return item_price_data[0][1] return item_price_data[0].price_list_rate
elif not args.get("price_list_uom_dependant"): 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: 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): def check_packing_list(price_list_rate_name, desired_qty, item_code):