mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-01 11:19:09 +00:00
refactor: item-wise purchase history (query to script report) -- formatter
This commit is contained in:
@@ -57,11 +57,7 @@ frappe.query_reports["Item-wise Purchase History"] = {
|
|||||||
value = default_formatter(value, row, column, data);
|
value = default_formatter(value, row, column, data);
|
||||||
let format_fields = ["received_qty", "billed_amt"];
|
let format_fields = ["received_qty", "billed_amt"];
|
||||||
|
|
||||||
if (
|
if (in_list(format_fields, column.fieldname) && data && data[column.fieldname] > 0) {
|
||||||
in_list(format_fields, column.fieldname) &&
|
|
||||||
data &&
|
|
||||||
data[column.fieldname] > 0
|
|
||||||
) {
|
|
||||||
value = "<span style='color:green;'>" + value + "</span>";
|
value = "<span style='color:green;'>" + value + "</span>";
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
|
|||||||
@@ -177,25 +177,19 @@ def get_data(filters):
|
|||||||
"billed_amt": flt(record.get("billed_amt")),
|
"billed_amt": flt(record.get("billed_amt")),
|
||||||
"company": record.get("company"),
|
"company": record.get("company"),
|
||||||
}
|
}
|
||||||
row["currency"] = frappe.get_cached_value(
|
row["currency"] = frappe.get_cached_value("Company", row["company"], "default_currency")
|
||||||
"Company", row["company"], "default_currency"
|
|
||||||
)
|
|
||||||
data.append(row)
|
data.append(row)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
def get_supplier_details():
|
def get_supplier_details():
|
||||||
details = frappe.get_all(
|
details = frappe.get_all("Supplier", fields=["name", "supplier_name", "supplier_group"])
|
||||||
"Supplier", fields=["name", "supplier_name", "supplier_group"]
|
|
||||||
)
|
|
||||||
supplier_details = {}
|
supplier_details = {}
|
||||||
for d in details:
|
for d in details:
|
||||||
supplier_details.setdefault(
|
supplier_details.setdefault(
|
||||||
d.name,
|
d.name,
|
||||||
frappe._dict(
|
frappe._dict({"supplier_name": d.supplier_name, "supplier_group": d.supplier_group}),
|
||||||
{"supplier_name": d.supplier_name, "supplier_group": d.supplier_group}
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
return supplier_details
|
return supplier_details
|
||||||
|
|
||||||
@@ -204,9 +198,7 @@ def get_item_details():
|
|||||||
details = frappe.db.get_all("Item", fields=["name", "item_name", "item_group"])
|
details = frappe.db.get_all("Item", fields=["name", "item_name", "item_group"])
|
||||||
item_details = {}
|
item_details = {}
|
||||||
for d in details:
|
for d in details:
|
||||||
item_details.setdefault(
|
item_details.setdefault(d.name, frappe._dict({"item_name": d.item_name, "item_group": d.item_group}))
|
||||||
d.name, frappe._dict({"item_name": d.item_name, "item_group": d.item_group})
|
|
||||||
)
|
|
||||||
return item_details
|
return item_details
|
||||||
|
|
||||||
|
|
||||||
@@ -265,15 +257,11 @@ def get_chart_data(data):
|
|||||||
if item_key not in item_wise_purchase_map:
|
if item_key not in item_wise_purchase_map:
|
||||||
item_wise_purchase_map[item_key] = 0
|
item_wise_purchase_map[item_key] = 0
|
||||||
|
|
||||||
item_wise_purchase_map[item_key] = flt(item_wise_purchase_map[item_key]) + flt(
|
item_wise_purchase_map[item_key] = flt(item_wise_purchase_map[item_key]) + flt(row.get("amount"))
|
||||||
row.get("amount")
|
|
||||||
)
|
|
||||||
|
|
||||||
item_wise_purchase_map = {
|
item_wise_purchase_map = {
|
||||||
item: value
|
item: value
|
||||||
for item, value in (
|
for item, value in (sorted(item_wise_purchase_map.items(), key=lambda i: i[1], reverse=True))
|
||||||
sorted(item_wise_purchase_map.items(), key=lambda i: i[1], reverse=True)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for key in item_wise_purchase_map:
|
for key in item_wise_purchase_map:
|
||||||
@@ -283,9 +271,7 @@ def get_chart_data(data):
|
|||||||
return {
|
return {
|
||||||
"data": {
|
"data": {
|
||||||
"labels": labels[:30], # show max of 30 items in chart
|
"labels": labels[:30], # show max of 30 items in chart
|
||||||
"datasets": [
|
"datasets": [{"name": _("Total Purchase Amount"), "values": datapoints[:30]}],
|
||||||
{"name": _("Total Purchase Amount"), "values": datapoints[:30]}
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
"type": "bar",
|
"type": "bar",
|
||||||
"fieldtype": "Currency",
|
"fieldtype": "Currency",
|
||||||
|
|||||||
Reference in New Issue
Block a user