mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-03 20:29:09 +00:00
[wip] inventory tool
This commit is contained in:
@@ -1,11 +1,5 @@
|
||||
<div class="padding">
|
||||
<div class="row" style="margin-bottom: 15px;">
|
||||
<div class="col-sm-8"></div>
|
||||
<div class="col-sm-4 sort-selector-area">
|
||||
</div>
|
||||
</div>
|
||||
<div class="result list-group">
|
||||
|
||||
</div>
|
||||
<div class="more hidden" style="padding-top: 15px;">
|
||||
<a class="btn btn-default btn-xs btn-more">More</a>
|
||||
|
||||
@@ -7,7 +7,7 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
single_column: true
|
||||
});
|
||||
|
||||
var warehouse_field = page.add_field({
|
||||
page.warehouse_field = page.add_field({
|
||||
fieldname: 'wareshouse',
|
||||
label: __('Warehouse'),
|
||||
fieldtype:'Link',
|
||||
@@ -18,7 +18,7 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
}
|
||||
});
|
||||
|
||||
var item_field = page.add_field({
|
||||
page.item_field = page.add_field({
|
||||
fieldname: 'item_code',
|
||||
label: __('Item'),
|
||||
fieldtype:'Link',
|
||||
@@ -30,8 +30,8 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
});
|
||||
|
||||
page.start = 0;
|
||||
page.sort_by = 'actual_qty';
|
||||
page.sort_order = 'desc';
|
||||
page.sort_by = 'projected_qty';
|
||||
page.sort_order = 'asc';
|
||||
|
||||
page.content = $(frappe.render_template('stock_balance')).appendTo(page.main);
|
||||
page.result = page.content.find('.result');
|
||||
@@ -42,8 +42,19 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
refresh();
|
||||
});
|
||||
|
||||
// move
|
||||
page.content.on('click', '.btn-move', function() {
|
||||
erpnext.inventory.move_item($(this).attr('data-item'), $(this).attr('data-warehouse'),
|
||||
null, $(this).attr('data-actual_qty'), function() { refresh(); });
|
||||
});
|
||||
|
||||
page.content.on('click', '.btn-add', function() {
|
||||
erpnext.inventory.move_item($(this).attr('data-item'), null, $(this).attr('data-warehouse'),
|
||||
$(this).attr('data-actual_qty'), function() { refresh(); });
|
||||
});
|
||||
|
||||
page.sort_selector = new frappe.ui.SortSelector({
|
||||
parent: page.content.find('.sort-selector-area'),
|
||||
parent: page.wrapper.find('.page-form'),
|
||||
args: {
|
||||
sort_by: 'projected_qty',
|
||||
sort_order: 'asc',
|
||||
@@ -60,11 +71,13 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
page.start = 0;
|
||||
refresh();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
page.sort_selector.wrapper.css({'margin-right': '15px', 'margin-top': '4px'});
|
||||
|
||||
var refresh = function() {
|
||||
var item_code = item_field.get_value();
|
||||
var warehouse = warehouse_field.get_value();
|
||||
var item_code = page.item_field.get_value();
|
||||
var warehouse = page.warehouse_field.get_value();
|
||||
frappe.call({
|
||||
method: 'erpnext.stock.page.stock_balance.stock_balance.get_data',
|
||||
args: {
|
||||
@@ -86,7 +99,7 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
page.result.empty();
|
||||
}
|
||||
|
||||
var context = erpnext.get_item_dashboard_data(data, page.max_count);
|
||||
var context = erpnext.get_item_dashboard_data(data, page.max_count, true);
|
||||
page.max_count = context.max_count;
|
||||
|
||||
// show more button
|
||||
@@ -105,4 +118,21 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
|
||||
refresh();
|
||||
|
||||
// item click
|
||||
var setup_click = function(doctype) {
|
||||
page.result.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);
|
||||
refresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
setup_click('Item');
|
||||
setup_click('Warehouse');
|
||||
|
||||
}
|
||||
@@ -6,9 +6,9 @@ import frappe
|
||||
def get_data(item_code=None, warehouse=None, start=0, sort_by='actual_qty', sort_order='desc'):
|
||||
filters = {}
|
||||
if item_code:
|
||||
filters = {'item_code': item_code }
|
||||
filters['item_code'] = item_code
|
||||
if warehouse:
|
||||
filters = {'warehouse': warehouse }
|
||||
filters['warehouse'] = warehouse
|
||||
return frappe.get_list("Bin", filters=filters, fields=['item_code', 'warehouse',
|
||||
'projected_qty', 'reserved_qty', 'reserved_qty_for_production', 'actual_qty'],
|
||||
order_by='{0} {1}'.format(sort_by, sort_order), start=start, page_length = 21)
|
||||
Reference in New Issue
Block a user