diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index c62088d79c8..6f958f51ffa 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -15,6 +15,7 @@ def get_pos_data(): doc = frappe.new_doc('Sales Invoice') doc.is_pos = 1; pos_profile = get_pos_profile(doc.company) or {} + if not doc.company: doc.company = pos_profile.get('company') doc.update_stock = pos_profile.get('update_stock') if pos_profile.get('name'): diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index de85621a640..8eb2efd9ebf 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -106,11 +106,15 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ me.get_data_from_server(function(){ me.load_data(false); me.make_customer(); - me.make_item_list(); + me.make_item_list(true); me.set_missing_values(); }) }); + this.page.add_menu_item(__("Sync Offline Invoices"), function(){ + me.sync_sales_invoice() + }); + this.page.add_menu_item(__("POS Profile"), function() { frappe.set_route('List', 'POS Profile'); }); @@ -278,7 +282,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ make: function() { this.make_search(); this.make_customer(); - this.make_item_list(); + this.make_item_list(true); this.make_discount_field() }, @@ -299,7 +303,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.search.$input.on("keyup", function() { setTimeout(function() { me.items = me.get_items(); - me.make_item_list(); + me.make_item_list(false); }, 1000); }); @@ -381,7 +385,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ } }, - make_item_list: function() { + make_item_list: function(index_search) { var me = this; if(!this.price_list) { msgprint(__("Price List not found or disabled")); @@ -395,7 +399,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ if (this.items) { $.each(this.items, function(index, obj) { - if(index < 16){ + if(!index_search || index < 16){ $(frappe.render_template("pos_item", { item_code: obj.name, item_price: format_currency(obj.price_list_rate, obj.currency), diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index 7c9e1e63d72..85166a65d74 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -348,6 +348,7 @@ cur_frm.fields_dict['production_order'].get_query = function(doc) { } cur_frm.cscript.purpose = function(doc, cdt, cdn) { + cur_frm.fields_dict.items.grid.refresh(); cur_frm.cscript.toggle_related_fields(doc); } diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 1e3bd8a2090..e5dd7350e3e 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -328,10 +328,11 @@ def get_pos_profile_item_details(company, args, pos_profile=None): @frappe.whitelist() def get_pos_profile(company): + condition = "and company = '%s'"%(company) if company else '' pos_profile = frappe.db.sql("""select * from `tabPOS Profile` where user = %s - and company = %s""", (frappe.session['user'], company), as_dict=1) + {cond}""".format(cond=condition), (frappe.session['user']), as_dict=1) - if not pos_profile: + if not pos_profile and company: pos_profile = frappe.db.sql("""select * from `tabPOS Profile` where ifnull(user,'') = '' and company = %s""", company, as_dict=1)