brotherton-erpnext/erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js
2022-04-04 13:59:51 +05:30

121 lines
3.2 KiB
JavaScript

frappe.pages['warehouse-capacity-summary'].on_page_load = function(wrapper) {
var page = frappe.ui.make_app_page({
parent: wrapper,
title: 'Warehouse Capacity Summary',
single_column: true
});
page.set_secondary_action('Refresh', () => page.capacity_dashboard.refresh(), 'refresh');
page.start = 0;
page.company_field = page.add_field({
fieldname: 'company',
label: __('Company'),
fieldtype: 'Link',
options: 'Company',
reqd: 1,
default: frappe.defaults.get_default("company"),
change: function() {
page.capacity_dashboard.start = 0;
page.capacity_dashboard.refresh();
}
});
page.warehouse_field = page.add_field({
fieldname: 'warehouse',
label: __('Warehouse'),
fieldtype: 'Link',
options: 'Warehouse',
change: function() {
page.capacity_dashboard.start = 0;
page.capacity_dashboard.refresh();
}
});
page.item_field = page.add_field({
fieldname: 'item_code',
label: __('Item'),
fieldtype: 'Link',
options: 'Item',
change: function() {
page.capacity_dashboard.start = 0;
page.capacity_dashboard.refresh();
}
});
page.parent_warehouse_field = page.add_field({
fieldname: 'parent_warehouse',
label: __('Parent Warehouse'),
fieldtype: 'Link',
options: 'Warehouse',
get_query: function() {
return {
filters: {
"is_group": 1
}
};
},
change: function() {
page.capacity_dashboard.start = 0;
page.capacity_dashboard.refresh();
}
});
page.sort_selector = new frappe.ui.SortSelector({
parent: page.wrapper.find('.page-form'),
args: {
sort_by: 'stock_capacity',
sort_order: 'desc',
options: [
{fieldname: 'stock_capacity', label: __('Capacity (Stock UOM)')},
{fieldname: 'percent_occupied', label: __('% Occupied')},
{fieldname: 'actual_qty', label: __('Balance Qty (Stock)')}
]
},
change: function(sort_by, sort_order) {
page.capacity_dashboard.sort_by = sort_by;
page.capacity_dashboard.sort_order = sort_order;
page.capacity_dashboard.start = 0;
page.capacity_dashboard.refresh();
}
});
frappe.require('item-dashboard.bundle.js', function() {
$(frappe.render_template('warehouse_capacity_summary_header')).appendTo(page.main);
page.capacity_dashboard = new erpnext.stock.ItemDashboard({
page_name: "warehouse-capacity-summary",
page_length: 10,
parent: page.main,
sort_by: 'stock_capacity',
sort_order: 'desc',
method: 'erpnext.stock.dashboard.warehouse_capacity_dashboard.get_data',
template: 'warehouse_capacity_summary'
});
page.capacity_dashboard.before_refresh = function() {
this.item_code = page.item_field.get_value();
this.warehouse = page.warehouse_field.get_value();
this.parent_warehouse = page.parent_warehouse_field.get_value();
this.company = page.company_field.get_value();
};
page.capacity_dashboard.refresh();
let setup_click = function(doctype) {
page.main.on('click', 'a[data-type="'+ doctype.toLowerCase() +'"]', function() {
var name = $(this).attr('data-name');
var field = page[doctype.toLowerCase() + '_field'];
if (field.get_value()===name) {
frappe.set_route('Form', doctype, name);
} else {
field.set_input(name);
page.capacity_dashboard.refresh();
}
});
};
setup_click('Item');
setup_click('Warehouse');
});
};