diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index c52d4fa28a..bd9d8edf37 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -410,33 +410,37 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.frm.doc.customer = this.default_customer; } - this.party_field.$input.autocomplete({ - autoFocus: true, - source: function (request, response) { - me.customer_data = me.get_customers(request.term) - response($.map(me.customer_data, function(data){ + this.party_field.awesomeplete = new Awesomplete(this.party_field.$input.get(0), { + minChars: 0, + maxItems: 99, + autoFirst: true, + list: [], + }); + + this.party_field.$input + .on('input', function(e) { + var customer_data = me.get_customers(e.target.value) || []; + me.party_field.awesomeplete.list = customer_data.map(function(data){ return {label: data.name, value: data.name, customer_group: data.customer_group, territory: data.territory} - })) - }, - change: function(event, ui){ - if(ui.item){ - me.frm.doc.customer = ui.item.label; - me.frm.doc.customer_name = ui.item.customer_name; - me.frm.doc.customer_group = ui.item.customer_group; - me.frm.doc.territory = ui.item.territory; - }else{ + }); + }) + .on('awesomplete-select', function(e) { + var item = me.party_field.awesomeplete.get_item(e.originalEvent.text.value); + console.log(item); + if(item) { + me.frm.doc.customer = item.label; + me.frm.doc.customer_name = item.customer_name; + me.frm.doc.customer_group = item.customer_group; + me.frm.doc.territory = item.territory; + } else { me.frm.doc.customer = me.party_field.$input.val(); } me.refresh(); - } - }).on("focus", function(){ - setTimeout(function() { - if(!me.party_field.$input.val()) { - me.party_field.$input.autocomplete( "search", " " ); - } - }, 500); - }); + }) + .on('focus', function(e) { + $(e.target).val('').trigger('input'); + }); }, get_customers: function(key){ @@ -570,7 +574,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ me.update_qty(item_code, qty) }) }, - + update_qty: function(item_code, qty) { var me = this; this.items = this.get_items(item_code); @@ -1012,13 +1016,13 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ frappe.throw(__("Select items to save the invoice")) } }, - + validate_mode_of_payments: function(){ if (this.frm.doc.payments.length === 0){ frappe.throw(__("Payment Mode is not configured. Please check, whether account has been set on Mode of Payments or on POS Profile.")) } }, - + validate_serial_no: function(){ var me = this; var item_code = serial_no = ''; diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 1f793d11e8..8844528f5f 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -88,13 +88,13 @@ frappe.ui.form.on("Item", { image: function(frm) { refresh_field("image_view"); }, - + is_fixed_asset: function(frm) { if (frm.doc.is_fixed_asset) { frm.set_value("is_stock_item", 0); } }, - + page_name: frappe.utils.warn_page_name_change, item_code: function(frm) { @@ -191,15 +191,15 @@ $.extend(erpnext.item, { frm.fields_dict.reorder_levels.grid.get_field("warehouse").get_query = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; - + var filters = { "is_group": 0 } - + if (d.parent_warehouse) { filters.extend({"parent_warehouse": d.warehouse_group}) } - + return { filters: filters } @@ -313,39 +313,38 @@ $.extend(erpnext.item, { $(field.input_area).addClass("ui-front"); - field.$input.autocomplete({ - minLength: 0, + var input = field.$input.get(0); + input.awesomplete = new Awesomplete(input, { minChars: 0, - autoFocus: true, - source: function(request, response) { + maxItems: 99, + autoFirst: true, + list: [], + }); + input.field = field; + + field.$input + .on('input', function(e) { + var term = e.target.value; frappe.call({ method:"frappe.client.get_list", args:{ doctype:"Item Attribute Value", filters: [ ["parent","=", i], - ["attribute_value", "like", request.term + "%"] + ["attribute_value", "like", term + "%"] ], fields: ["attribute_value"] }, callback: function(r) { if (r.message) { - response($.map(r.message, function(d) { return d.attribute_value; })); + e.target.awesomplete.list = r.message.map(function(d) { return d.attribute_value; }); } } }); - }, - select: function(event, ui) { - field.$input.val(ui.item.value); - field.$input.trigger("change"); - }, - }).on("focus", function(){ - setTimeout(function() { - if(!field.$input.val()) { - field.$input.autocomplete("search", ""); - } - }, 500); - }); + }) + .on('focus', function(e) { + $(e.target).val('').trigger('input'); + }) }); }, toggle_attributes: function(frm) {