Merge pull request #40589 from barredterra/get_prices_as_dict

refactor: get prices as dict
This commit is contained in:
Deepesh Garg
2024-03-25 17:18:31 +05:30
committed by GitHub

View File

@@ -891,7 +891,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.
@@ -929,7 +929,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):
@@ -955,7 +955,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"]:
@@ -975,12 +975,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):