Skip to content

Commit

Permalink
perf: Get bin details only for stock items
Browse files Browse the repository at this point in the history
  • Loading branch information
nabinhait committed Mar 13, 2024
1 parent c15b2d5 commit 6ff9e6e
Showing 1 changed file with 20 additions and 16 deletions.
36 changes: 20 additions & 16 deletions erpnext/stock/get_item_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,22 +104,8 @@ def get_item_details(args, doc=None, for_validate=False, overwrite_warehouse=Tru
if args.customer and cint(args.is_pos):
out.update(get_pos_profile_item_details(args.company, args, update_data=True))

if (
args.get("doctype") == "Material Request"
and args.get("material_request_type") == "Material Transfer"
):
out.update(get_bin_details(args.item_code, args.get("from_warehouse")))

elif out.get("warehouse"):
if doc and doc.get("doctype") == "Purchase Order":
# calculate company_total_stock only for po
bin_details = get_bin_details(
args.item_code, out.warehouse, args.company, include_child_warehouses=True
)
else:
bin_details = get_bin_details(args.item_code, out.warehouse, include_child_warehouses=True)

out.update(bin_details)
if item.is_stock_item:
update_bin_details(args, out, doc)

# update args with out, if key or value not exists
for key, value in out.items():
Expand Down Expand Up @@ -202,6 +188,24 @@ def set_valuation_rate(out, args):
out.update(get_valuation_rate(args.item_code, args.company, out.get("warehouse")))


def update_bin_details(args, out, doc):
if (
args.get("doctype") == "Material Request"
and args.get("material_request_type") == "Material Transfer"
):
out.update(get_bin_details(args.item_code, args.get("from_warehouse")))

elif out.get("warehouse"):
company = args.company if (doc and doc.get("doctype") == "Purchase Order") else None

# calculate company_total_stock only for po
bin_details = get_bin_details(
args.item_code, out.warehouse, company, include_child_warehouses=True
)

out.update(bin_details)


def process_args(args):
if isinstance(args, str):
args = json.loads(args)
Expand Down

0 comments on commit 6ff9e6e

Please sign in to comment.