From 8c9c9cfc5fd0938a97b117a8aebfb031cebd6b95 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 27 Dec 2016 12:31:35 +0530 Subject: [PATCH 1/5] When a new company is made, cash account should be automatically set for Mode of Payment --- erpnext/accounts/page/pos/pos.js | 2 +- erpnext/setup/doctype/company/company.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index a4078bdca6..c0f82bc526 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -593,7 +593,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.remove_item = [] $.each(this.frm.doc["items"] || [], function(i, d) { - if(d.serial_no){ + if(d.serial_no && field == 'qty'){ me.validate_serial_no_qty(d, item_code, field, value) } diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 7f506d5440..94a01010fb 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -78,6 +78,8 @@ class Company(Document): if not frappe.local.flags.ignore_chart_of_accounts: self.set_default_accounts() + if self.default_cash_account: + self.mode_of_payment() if self.default_currency: frappe.db.set_value("Currency", self.default_currency, "enabled", 1) @@ -162,6 +164,16 @@ class Company(Document): if account: self.db_set(fieldname, account) + def mode_of_payment(self): + cash = frappe.db.get_value('Mode of Payment', {'type': 'Cash'}, 'name') + if cash: + mode_of_payment = frappe.get_doc('Mode of Payment', cash) + mode_of_payment.append('accounts', { + 'company': self.name, + 'default_account': self.default_cash_account + }) + mode_of_payment.save(ignore_permissions=True) + def create_default_cost_center(self): cc_list = [ { From fe7a5b305f7cd1f15a3da5de25f2a7cbbe4f79ed Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 27 Dec 2016 14:15:52 +0530 Subject: [PATCH 2/5] create customer from POS --- erpnext/accounts/doctype/sales_invoice/pos.py | 1 + erpnext/accounts/page/pos/pos.js | 64 +++++++++++++++---- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index 3619e989d8..f5721e884d 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -41,6 +41,7 @@ def get_pos_data(): 'pos_profile': pos_profile, 'meta': { 'invoice': frappe.get_meta('Sales Invoice'), + 'customer': frappe.get_meta('Customer'), 'items': frappe.get_meta('Sales Invoice Item'), 'taxes': frappe.get_meta('Sales Taxes and Charges') } diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index c0f82bc526..cae2d996a1 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -325,6 +325,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ $.each(this.meta, function(i, data){ frappe.meta.sync(data) + locals["DocType"][data.name] = data; }) this.print_template_data = frappe.render_template("print_template", @@ -412,21 +413,26 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ autoFocus: true, source: function (request, response) { me.customer_data = me.get_customers(request.term) + me.add_customer(); + response($.map(me.customer_data, function(data){ - return {label: data.name, value: data.name, - customer_group: data.customer_group, territory: data.territory} + return {label: data.name, customer_name: data.name, customer_group: data.customer_group, + territory: data.territory, onclick: data.onclick} })) }, - 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{ - me.frm.doc.customer = me.party_field.$input.val(); + select: function(event, ui){ + if(ui.item.onclick) { + ui.item.value = "" + ui.item.onclick(me); + }else if(ui.item) { + me.update_customer_data(ui.item) } me.refresh(); + }, + change: function(event, ui) { + if(!ui.item) { + me.frm.doc.customer = $(this).val(); + } } }).on("focus", function(){ setTimeout(function() { @@ -434,7 +440,43 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ me.party_field.$input.autocomplete( "search", " " ); } }, 500); - }); + }).autocomplete(this.party_field).data('ui-autocomplete')._renderItem = function(ul, d){ + var html = "" + __(d.label) + ""; + return $('
  • ') + .data('item.autocomplete', d) + .html('

    ' + html + '

    ') + .appendTo(ul); + } + }, + + add_customer: function() { + var me = this; + if(this.connection_status) { + this.customer_data.push({ + name: "" + + " " + + __("Create a new Customer") + + "", + onclick: me.new_customer + }); + } + }, + + new_customer: function(obj) { + var me = obj; + frappe.ui.form.quick_entry('Customer', function(doc){ + me.customers.push(doc) + me.party_field.$input.val(doc.name); + me.update_customer_data(doc) + }) + }, + + update_customer_data: function(doc) { + var me = this; + this.frm.doc.customer = doc.label || doc.name; + this.frm.doc.customer_name = doc.customer_name; + this.frm.doc.customer_group = doc.customer_group; + this.frm.doc.territory = doc.territory; }, get_customers: function(key){ From aa9b8603b9ffb60d46b7b193e58fb63a7bd47909 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 27 Dec 2016 17:30:45 +0530 Subject: [PATCH 3/5] added paid amount in print format --- .../print_format/point_of_sale/point_of_sale.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/print_format/point_of_sale/point_of_sale.json b/erpnext/accounts/print_format/point_of_sale/point_of_sale.json index 773f7fc8e3..367ce07e28 100644 --- a/erpnext/accounts/print_format/point_of_sale/point_of_sale.json +++ b/erpnext/accounts/print_format/point_of_sale/point_of_sale.json @@ -1,4 +1,5 @@ { + "align_labels_left": 0, "creation": "2016-05-05 17:16:18.564460", "custom_format": 1, "disabled": 0, @@ -6,13 +7,16 @@ "docstatus": 0, "doctype": "Print Format", "font": "Default", - "html": "\n\n

    \n\t{{ company }}
    \n\t{{ __(\"POS No : \") }}{{offline_pos_name}}
    \n

    \n

    \n\t{{ __(\"Date\") }}: {{ dateutil.global_date_format(posting_date) }}
    \n

    \n\n
    \n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t{% for item in items %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% endfor %}\n\t\n
    {{ __(\"Item\") }}{{ __(\"Qty\") }}{{ __(\"Amount\") }}
    \n\t\t\t\t{{ item.item_name }}\n\t\t\t{{ format_number(item.qty, precision(\"difference\")) }}
    @ {{ format_currency(item.rate, currency) }}
    {{ format_currency(item.amount, currency) }}
    \n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% for row in taxes %}\n\t\t{% if not row.included_in_print_rate %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% endif %}\n\t\t{% endfor %}\n\t\t{% if discount_amount %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% endif %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n
    \n\t\t\t\t{{ __(\"Net Total\") }}\n\t\t\t\n\t\t\t\t{{ format_currency(total, currency) }}\n\t\t\t
    \n\t\t\t\t{{ row.description }}\n\t\t\t\n\t\t\t\t{{ format_currency(row.tax_amount, currency) }}\n\t\t\t
    \n\t\t\t\t{{ __(\"Discount\") }}\n\t\t\t\n\t\t\t\t{{ format_currency(discount_amount, currency) }}\n\t\t\t
    \n\t\t\t\t{{ __(\"Grand Total\") }}\n\t\t\t\n\t\t\t\t{{ format_currency(grand_total, currency) }}\n\t\t\t
    \n\n\n
    \n

    {{ __(\"Thank you, please visit again.\") }}

    ", + "html": "\n\n

    \n\t{{ company }}
    \n\t{{ __(\"POS No : \") }}{{offline_pos_name}}
    \n

    \n

    \n\t{{ __(\"Date\") }}: {{ dateutil.global_date_format(posting_date) }}
    \n

    \n\n
    \n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t{% for item in items %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% endfor %}\n\t\n
    {{ __(\"Item\") }}{{ __(\"Qty\") }}{{ __(\"Amount\") }}
    \n\t\t\t\t{{ item.item_name }}\n\t\t\t{{ format_number(item.qty, precision(\"difference\")) }}
    @ {{ format_currency(item.rate, currency) }}
    {{ format_currency(item.amount, currency) }}
    \n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% for row in taxes %}\n\t\t{% if not row.included_in_print_rate %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% endif %}\n\t\t{% endfor %}\n\t\t{% if discount_amount %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{% endif %}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n
    \n\t\t\t\t{{ __(\"Net Total\") }}\n\t\t\t\n\t\t\t\t{{ format_currency(total, currency) }}\n\t\t\t
    \n\t\t\t\t{{ row.description }}\n\t\t\t\n\t\t\t\t{{ format_currency(row.tax_amount, currency) }}\n\t\t\t
    \n\t\t\t\t{{ __(\"Discount\") }}\n\t\t\t\n\t\t\t\t{{ format_currency(discount_amount, currency) }}\n\t\t\t
    \n\t\t\t\t{{ __(\"Grand Total\") }}\n\t\t\t\n\t\t\t\t{{ format_currency(grand_total, currency) }}\n\t\t\t
    \n\t\t\t\t{{ __(\"Paid Amount\") }}\n\t\t\t\n\t\t\t\t{{ format_currency(paid_amount, currency) }}\n\t\t\t
    \n\n\n
    \n

    {{ __(\"Thank you, please visit again.\") }}

    ", "idx": 0, - "modified": "2016-09-05 08:28:42.308782", + "line_breaks": 0, + "modified": "2016-12-27 17:22:17.391673", "modified_by": "Administrator", + "module": "Accounts", "name": "Point of Sale", "owner": "Administrator", "print_format_builder": 0, "print_format_type": "Js", + "show_section_headings": 0, "standard": "Yes" } \ No newline at end of file From 249bc6167f2f395df6522914b699b81483517376 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 27 Dec 2016 18:15:36 +0530 Subject: [PATCH 4/5] fix company issue --- erpnext/setup/doctype/company/company.py | 2 +- erpnext/setup/doctype/company/test_company.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 94a01010fb..32ad8ebe1b 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -166,7 +166,7 @@ class Company(Document): def mode_of_payment(self): cash = frappe.db.get_value('Mode of Payment', {'type': 'Cash'}, 'name') - if cash: + if cash and not frappe.db.get_value('Mode of Payment Account', {'company': self.name}): mode_of_payment = frappe.get_doc('Mode of Payment', cash) mode_of_payment.append('accounts', { 'company': self.name, diff --git a/erpnext/setup/doctype/company/test_company.py b/erpnext/setup/doctype/company/test_company.py index 43cb4d3c42..d2e7d23d92 100644 --- a/erpnext/setup/doctype/company/test_company.py +++ b/erpnext/setup/doctype/company/test_company.py @@ -40,9 +40,10 @@ class TestCompany(unittest.TestCase): acc = frappe.get_doc("Account", account) for prop, val in acc_property.items(): self.assertEqual(acc.get(prop), val) - + + self.delete_mode_of_payment("COA from Existing Company") frappe.delete_doc("Company", "COA from Existing Company") - + def test_coa_based_on_country_template(self): countries = ["India", "Brazil", "United Arab Emirates", "Canada", "Germany", "France", "Guatemala", "Indonesia", "Mexico", "Nicaragua", "Netherlands", "Singapore"] @@ -78,4 +79,9 @@ class TestCompany(unittest.TestCase): self.assertTrue(frappe.get_all("Account", filters)) finally: - frappe.delete_doc("Company", template) \ No newline at end of file + self.delete_mode_of_payment(template) + frappe.delete_doc("Company", template) + + def delete_mode_of_payment(self, company): + frappe.db.sql(""" delete from `tabMode of Payment Account` + where company =%s """, (company)) From bef185c404324328871d513b883b17b26d5a1558 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 28 Dec 2016 15:16:49 +0530 Subject: [PATCH 5/5] restrict user to edit the rate in the POS --- .../doctype/pos_profile/pos_profile.json | 121 ++++++++---------- erpnext/accounts/page/pos/pos.js | 1 + erpnext/public/js/pos/pos_bill_item.html | 8 +- 3 files changed, 64 insertions(+), 66 deletions(-) diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.json b/erpnext/accounts/doctype/pos_profile/pos_profile.json index cef56af747..a25dd5198d 100644 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.json +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.json @@ -22,7 +22,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, - "in_standard_filter": 1, "label": "Applicable for User", "length": 0, "no_copy": 0, @@ -52,7 +51,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, - "in_standard_filter": 0, "label": "Series", "length": 0, "no_copy": 1, @@ -84,7 +82,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Update Stock", "length": 0, "no_copy": 0, @@ -112,7 +109,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Warehouse", "length": 0, "no_copy": 0, @@ -142,7 +138,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Campaign", "length": 0, "no_copy": 0, @@ -159,34 +154,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "ignore_pricing_rule", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Ignore Pricing Rule", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, { "allow_on_submit": 0, "bold": 0, @@ -199,7 +166,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -226,7 +192,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Customer", "length": 0, "no_copy": 0, @@ -256,7 +221,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, - "in_standard_filter": 1, "label": "Company", "length": 0, "no_copy": 0, @@ -286,7 +250,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Currency", "length": 0, "no_copy": 0, @@ -304,6 +267,33 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "ignore_pricing_rule", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Ignore Pricing Rule", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -316,7 +306,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Allow Delete", "length": 0, "no_copy": 0, @@ -332,6 +321,33 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "allow_user_to_edit_rate", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Allow user to edit Rate", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -344,7 +360,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -371,7 +386,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Sales Invoice Payment", "length": 0, "no_copy": 0, @@ -400,7 +414,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -427,7 +440,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Item Groups", "length": 0, "no_copy": 0, @@ -456,7 +468,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -483,7 +494,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Customer Groups", "length": 0, "no_copy": 0, @@ -512,7 +522,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -540,7 +549,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Print Format", "length": 0, "no_copy": 0, @@ -569,7 +577,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Letter Head", "length": 0, "no_copy": 0, @@ -599,7 +606,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Print Heading", "length": 0, "no_copy": 0, @@ -629,7 +635,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Terms and Conditions", "length": 0, "no_copy": 0, @@ -659,7 +664,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "oldfieldtype": "Column Break", @@ -687,7 +691,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, - "in_standard_filter": 0, "label": "Territory", "length": 0, "no_copy": 0, @@ -717,7 +720,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Price List", "length": 0, "no_copy": 0, @@ -747,7 +749,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Apply Discount", "length": 0, "no_copy": 0, @@ -777,7 +778,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Apply Discount On", "length": 0, "no_copy": 0, @@ -806,7 +806,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -834,7 +833,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Write Off Account", "length": 0, "no_copy": 0, @@ -863,7 +861,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Write Off Cost Center", "length": 0, "no_copy": 0, @@ -892,7 +889,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Account for Change Amount", "length": 0, "no_copy": 0, @@ -921,7 +917,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Taxes and Charges", "length": 0, "no_copy": 0, @@ -951,7 +946,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -978,7 +972,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Income Account", "length": 0, "no_copy": 0, @@ -1009,7 +1002,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Expense Account", "length": 0, "no_copy": 0, @@ -1037,7 +1029,6 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "in_standard_filter": 0, "label": "Cost Center", "length": 0, "no_copy": 0, @@ -1067,8 +1058,8 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-12-12 17:02:22.323006", - "modified_by": "Administrator", + "modified": "2016-12-28 15:14:59.411457", + "modified_by": "rohit@erpnext.com", "module": "Accounts", "name": "POS Profile", "owner": "Administrator", diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index cae2d996a1..55f66534b1 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -806,6 +806,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ actual_qty: me.actual_qty_dict[d.item_code] || 0, projected_qty: d.projected_qty, rate: format_number(d.rate, me.frm.doc.currency), + enabled: me.pos_profile_data["allow_user_to_edit_rate"] ? true: false, amount: format_currency(d.amount, me.frm.doc.currency) })).appendTo($items); }); diff --git a/erpnext/public/js/pos/pos_bill_item.html b/erpnext/public/js/pos/pos_bill_item.html index a6ef2d636a..d8833bb835 100644 --- a/erpnext/public/js/pos/pos_bill_item.html +++ b/erpnext/public/js/pos/pos_bill_item.html @@ -17,7 +17,13 @@
    -
    +
    + {% if(enabled) { %} + + {% } else { %} +
    {%= format_currency(rate) %}
    + {% } %} +

    {%= amount %}