feat: Custom Dashboard 'Warehouse wise Stock Value' with Chart Source
This commit is contained in:
parent
021acd0a01
commit
10bd2417ff
0
erpnext/stock/dashboard_chart_source/__init__.py
Normal file
0
erpnext/stock/dashboard_chart_source/__init__.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
frappe.provide('frappe.dashboards.chart_sources');
|
||||||
|
|
||||||
|
frappe.dashboards.chart_sources["Warehouse wise Stock Value"] = {
|
||||||
|
method: "erpnext.stock.dashboard_chart_source.warehouse_wise_stock_value.warehouse_wise_stock_value.get",
|
||||||
|
filters: [
|
||||||
|
{
|
||||||
|
fieldname: "company",
|
||||||
|
label: __("Company"),
|
||||||
|
fieldtype: "Link",
|
||||||
|
options: "Company",
|
||||||
|
default: frappe.defaults.get_user_default("Company")
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"creation": "2020-05-14 14:27:44.108017",
|
||||||
|
"docstatus": 0,
|
||||||
|
"doctype": "Dashboard Chart Source",
|
||||||
|
"idx": 0,
|
||||||
|
"modified": "2020-05-14 14:27:44.108017",
|
||||||
|
"modified_by": "Administrator",
|
||||||
|
"module": "Stock",
|
||||||
|
"name": "Warehouse wise Stock Value",
|
||||||
|
"owner": "Administrator",
|
||||||
|
"source_name": "Warehouse wise Stock Value ",
|
||||||
|
"timeseries": 0
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
|
# License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
import frappe, json
|
||||||
|
from frappe import _
|
||||||
|
from frappe.utils.dashboard import cache_source
|
||||||
|
from erpnext.stock.utils import get_stock_value_from_bin
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
@cache_source
|
||||||
|
def get(chart_name = None, chart = None, no_cache = None, filters = None, from_date = None,
|
||||||
|
to_date = None, timespan = None, time_interval = None):
|
||||||
|
labels, datapoints = [], []
|
||||||
|
filters = frappe.parse_json(filters)
|
||||||
|
|
||||||
|
warehouse_filters = [['is_group', '=', 0]]
|
||||||
|
if filters and filters.get("company"):
|
||||||
|
warehouse_filters.append(['company', '=', filters.get("company")])
|
||||||
|
|
||||||
|
warehouses = frappe.get_list("Warehouse", fields=['name'], filters=warehouse_filters, order_by='name')
|
||||||
|
|
||||||
|
for wh in warehouses:
|
||||||
|
balance = get_stock_value_from_bin(warehouse=wh.name)
|
||||||
|
wh["balance"] = balance[0][0]
|
||||||
|
|
||||||
|
warehouses = [x for x in warehouses if not (x.get('balance') == None)]
|
||||||
|
sorted_warehouse_map = sorted(warehouses, key = lambda i: i['balance'],reverse=True)
|
||||||
|
|
||||||
|
if len(sorted_warehouse_map) > 10:
|
||||||
|
sorted_warehouse_map = sorted_warehouse_map[:10]
|
||||||
|
|
||||||
|
for warehouse in sorted_warehouse_map:
|
||||||
|
labels.append(_(warehouse.get("name")))
|
||||||
|
datapoints.append(warehouse.get("balance"))
|
||||||
|
|
||||||
|
return{
|
||||||
|
"labels": labels,
|
||||||
|
"datasets": [{
|
||||||
|
"name": _("Stock Value"),
|
||||||
|
"values": datapoints
|
||||||
|
}],
|
||||||
|
"type": "bar"
|
||||||
|
}
|
@ -246,8 +246,6 @@ def get_chart_data(data, filters):
|
|||||||
labels.append(row[0])
|
labels.append(row[0])
|
||||||
datapoints.append(row[6])
|
datapoints.append(row[6])
|
||||||
|
|
||||||
print(labels)
|
|
||||||
print(datapoints)
|
|
||||||
return {
|
return {
|
||||||
"data" : {
|
"data" : {
|
||||||
"labels": labels,
|
"labels": labels,
|
||||||
|
Loading…
Reference in New Issue
Block a user