From 3b04b030eb29d3a28c34a181968bf68fdbeb7f4c Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Wed, 17 May 2017 19:16:27 +0530 Subject: [PATCH 01/16] Fix cost center not getting pulled in DN and SINV (#8878) * Fixes for getting selling cost center instead of company's default cost center. * fix error in update_item --- .../doctype/sales_invoice/sales_invoice.py | 17 +++++++++-------- .../selling/doctype/sales_order/sales_order.py | 9 +++++++-- .../doctype/delivery_note/delivery_note.py | 3 ++- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 285722b1ad9..449a97522f9 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -330,7 +330,7 @@ class SalesInvoice(SellingController): frappe.throw(_("Debit To account must be a Receivable account")) self.party_account_currency = account.account_currency - + def clear_unallocated_mode_of_payments(self): self.set("payments", self.get("payments", {"amount": ["not in", [0, None, ""]]})) @@ -551,7 +551,7 @@ class SalesInvoice(SellingController): def make_gl_entries(self, gl_entries=None, repost_future_gle=True, from_repost=False): if not self.grand_total: return - + if not gl_entries: gl_entries = self.get_gl_entries() @@ -697,7 +697,7 @@ class SalesInvoice(SellingController): else payment_mode.amount }, payment_mode_account_currency) ) - + def make_gle_for_change_amount(self, gl_entries): if cint(self.is_pos) and self.change_amount: if self.account_for_change_amount: @@ -714,7 +714,7 @@ class SalesInvoice(SellingController): "against_voucher_type": self.doctype }, self.party_account_currency) ) - + gl_entries.append( self.get_gl_dict({ "account": self.account_for_change_amount, @@ -724,7 +724,7 @@ class SalesInvoice(SellingController): ) else: frappe.throw(_("Select change amount account"), title="Mandatory Field") - + def make_write_off_gl_entry(self, gl_entries): # write off entries, applicable if only pos if self.write_off_account and self.write_off_amount: @@ -808,7 +808,7 @@ def make_delivery_note(source_name, target_doc=None): def update_item(source_doc, target_doc, source_parent): target_doc.qty = flt(source_doc.qty) - flt(source_doc.delivered_qty) target_doc.stock_qty = target_doc.qty * flt(source_doc.conversion_factor) - + target_doc.base_amount = target_doc.qty * flt(source_doc.base_rate) target_doc.amount = target_doc.qty * flt(source_doc.rate) @@ -826,7 +826,8 @@ def make_delivery_note(source_name, target_doc=None): "parent": "against_sales_invoice", "serial_no": "serial_no", "sales_order": "against_sales_order", - "so_detail": "so_detail" + "so_detail": "so_detail", + "cost_center": "cost_center" }, "postprocess": update_item, "condition": lambda doc: doc.delivered_by_supplier!=1 @@ -855,4 +856,4 @@ def make_sales_return(source_name, target_doc=None): def set_account_for_mode_of_payment(self): for data in self.payments: if not data.account: - data.account = get_bank_cash_account(data.mode_of_payment, self.company).get("account") \ No newline at end of file + data.account = get_bank_cash_account(data.mode_of_payment, self.company).get("account") diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index f5bc7dbc04c..c55dc9fb3d8 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -175,7 +175,7 @@ class SalesOrder(SellingController): self.update_prevdoc_status('cancel') frappe.db.set(self, 'status', 'Cancelled') - + def update_project(self): project_list = [] if self.project: @@ -183,7 +183,7 @@ class SalesOrder(SellingController): project.flags.dont_sync_tasks = True project.update_sales_costing() project.save() - project_list.append(self.project) + project_list.append(self.project) def check_credit_limit(self): from erpnext.selling.doctype.customer.customer import check_credit_limit @@ -427,6 +427,11 @@ def make_delivery_note(source_name, target_doc=None): target.amount = (flt(source.qty) - flt(source.delivered_qty)) * flt(source.rate) target.qty = flt(source.qty) - flt(source.delivered_qty) + item = frappe.db.get_value("Item", target.item_code, ["item_group", "selling_cost_center"], as_dict=1) + target.cost_center = frappe.db.get_value("Project", source_parent.project, "cost_center") \ + or item.selling_cost_center \ + or frappe.db.get_value("Item Group", item.item_group, "default_cost_center") + target_doc = get_mapped_doc("Sales Order", source_name, { "Sales Order": { "doctype": "Delivery Note", diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index 1c730ffd08c..e7bf827ae20 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -398,7 +398,8 @@ def make_sales_invoice(source_name, target_doc=None): "parent": "delivery_note", "so_detail": "so_detail", "against_sales_order": "sales_order", - "serial_no": "serial_no" + "serial_no": "serial_no", + "cost_center": "cost_center" }, "postprocess": update_item, "filter": lambda d: abs(d.qty) - abs(invoiced_qty_map.get(d.name, 0))<=0 From cf7df5d10681f71e227728633bbc14581a380013 Mon Sep 17 00:00:00 2001 From: tundebabzy Date: Wed, 17 May 2017 14:47:04 +0100 Subject: [PATCH 02/16] fixes #8883 (#8885) --- erpnext/accounts/doctype/asset/asset.js | 2 +- erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/asset/asset.js b/erpnext/accounts/doctype/asset/asset.js index 664ed4da25d..a1b3dd3bbf4 100644 --- a/erpnext/accounts/doctype/asset/asset.js +++ b/erpnext/accounts/doctype/asset/asset.js @@ -45,7 +45,7 @@ frappe.ui.form.on('Asset', { erpnext.asset.scrap_asset(frm); }); - frm.add_custom_button("Sale Asset", function() { + frm.add_custom_button("Sell Asset", function() { erpnext.asset.make_sales_invoice(frm); }); diff --git a/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md b/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md index efbe95fb25d..e82ec927720 100644 --- a/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md +++ b/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md @@ -64,7 +64,7 @@ On submission of the invoice, the "Fixed Asset Account" will be debited and paya ## Sell an Asset -To sale an asset, open the asset record and create a Sales Invoice by clicking on "Sale Asset". On submission of the Sales Invoice, following entries will take place: +To sell an asset, open the asset record and create a Sales Invoice by clicking on "Sell Asset". On submission of the Sales Invoice, following entries will take place: - "Receivable Account" (Debtors) will be debited by the sales amount. - "Fixed Asset Account" will be credited by the purchase amount of asset. From c55b805b666fd82923940a55e1dfd5d2c7cc5d4e Mon Sep 17 00:00:00 2001 From: Ayush Shukla Date: Wed, 17 May 2017 19:18:26 +0530 Subject: [PATCH 03/16] [minor] process_payroll_create salary fixed, fixes frappe/erpnext#8853 (#8881) * [minor] process_payroll_create salary fixed * [minor] indentation fix --- erpnext/hr/doctype/process_payroll/process_payroll.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/hr/doctype/process_payroll/process_payroll.py b/erpnext/hr/doctype/process_payroll/process_payroll.py index 915985ca4fd..7ca94b86289 100644 --- a/erpnext/hr/doctype/process_payroll/process_payroll.py +++ b/erpnext/hr/doctype/process_payroll/process_payroll.py @@ -112,14 +112,14 @@ class ProcessPayroll(Document): def create_log(self, ss_list): - if not ss_list: + if not ss_list or len(ss_list) < 1: log = "

" + _("No employee for the above selected criteria OR salary slip already created") + "

" else: log = frappe.render_template("templates/includes/salary_slip_log.html", dict(ss_list=ss_list, keys=sorted(ss_list[0].keys()), title=_('Created Salary Slips'))) - return log + return log def get_sal_slip_list(self, ss_status, as_dict=False): """ From 76d965f340710fe628da2e20e2d716d76b05514c Mon Sep 17 00:00:00 2001 From: Ayush Shukla Date: Wed, 17 May 2017 19:18:47 +0530 Subject: [PATCH 04/16] [minor]-Changed receivable to payable (#8880) --- erpnext/buying/doctype/supplier/supplier.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json index a590f372ec1..746dd223e57 100644 --- a/erpnext/buying/doctype/supplier/supplier.json +++ b/erpnext/buying/doctype/supplier/supplier.json @@ -688,7 +688,7 @@ "collapsible": 0, "columns": 0, "depends_on": "", - "description": "Mention if non-standard receivable account", + "description": "Mention if non-standard payable account", "fieldname": "accounts", "fieldtype": "Table", "hidden": 0, @@ -850,7 +850,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-05-05 04:24:03.884380", + "modified": "2017-05-17 12:21:21.218428", "modified_by": "Administrator", "module": "Buying", "name": "Supplier", From 0952df29dce359242fcbc70b122b50bdd893a942 Mon Sep 17 00:00:00 2001 From: Felipe Orellana Date: Wed, 17 May 2017 09:50:01 -0400 Subject: [PATCH 05/16] Update product.py (#8877) Hi! If template_item_code is None on line 71-72 the query will return ALL "Item Price" records irrespective of item_code, potentially causing the wrong price list rate to be used. Noticed this behavior when fetching product price for a group of items without "variant_of" data. --- erpnext/shopping_cart/product.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/shopping_cart/product.py b/erpnext/shopping_cart/product.py index d7afc3bfba6..1999a4aa434 100644 --- a/erpnext/shopping_cart/product.py +++ b/erpnext/shopping_cart/product.py @@ -67,7 +67,7 @@ def get_price(item_code, template_item_code, price_list, qty=1): price = frappe.get_all("Item Price", fields=["price_list_rate", "currency"], filters={"price_list": price_list, "item_code": item_code}) - if not price: + if template_item_code and not price: price = frappe.get_all("Item Price", fields=["price_list_rate", "currency"], filters={"price_list": price_list, "item_code": template_item_code}) From 3d6567411de4cf08dde1c3d933b85cbac99ca8f2 Mon Sep 17 00:00:00 2001 From: Julian Robbins Date: Wed, 17 May 2017 15:06:15 +0100 Subject: [PATCH 06/16] Spelling improvmement (#8866) --- erpnext/docs/user/manual/en/selling/setup/sales-partner.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/docs/user/manual/en/selling/setup/sales-partner.md b/erpnext/docs/user/manual/en/selling/setup/sales-partner.md index 1174969af40..b8762056fb7 100644 --- a/erpnext/docs/user/manual/en/selling/setup/sales-partner.md +++ b/erpnext/docs/user/manual/en/selling/setup/sales-partner.md @@ -1,6 +1,6 @@ People who assist you in getting business are termed as Sales Partners. Sales Partners can be represented by different names in ERPNext. You can call them Channel Partner, Distributor, Dealer, Agent, Retailer, Implementation Partner, Reseller etc. -For each Sales Partner, you can define commission offer to them. When Sales Partner is selected in transactions, there commission is calculated over Net Total of Sales Order/Invoice or Delivery Note. +For each Sales Partner, you can define commission offer to them. When Sales Partner is selected in transactions, their commission is calculated over Net Total of Sales Order/Invoice or Delivery Note. You can track Sales Personwise commission in the report under Selling module. From f7a9023fda8aa51e3dd64718adb45b375512f4e3 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Wed, 17 May 2017 19:37:31 +0530 Subject: [PATCH 07/16] Show empty state when no students are found in student attendance tool (#8862) - fixes #8839 --- .../student_attendance_tool.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.js b/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.js index b092a3f2eee..6f8c6cd7da1 100644 --- a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.js +++ b/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.js @@ -47,7 +47,7 @@ frappe.ui.form.on('Student Attendance Tool', { frm.students_area = $('
') .appendTo(frm.fields_dict.students_html.wrapper); } - console.log(students); + students = students || []; frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students) } }); @@ -57,7 +57,11 @@ schools.StudentsEditor = Class.extend({ init: function(frm, wrapper, students) { this.wrapper = wrapper; this.frm = frm; - this.make(frm, students); + if(students.length > 0) { + this.make(frm, students); + } else { + this.show_empty_state(); + } }, make: function(frm, students) { var me = this; @@ -159,5 +163,13 @@ schools.StudentsEditor = Class.extend({ }); $(htmls.join("")).appendTo(me.wrapper); + }, + + show_empty_state: function() { + $(this.wrapper).html( + `
+ ${__("No Students in")} ${this.frm.doc.student_group} +
` + ); } }); \ No newline at end of file From f69ffeb0b46365098648bc110062deaee6751157 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 17 May 2017 19:40:40 +0530 Subject: [PATCH 08/16] [fix] if rate is greater than price_list_rate, set margin instead of discount. Fixes frappe/erpnext#6468 (#8856) --- erpnext/public/js/controllers/transaction.js | 21 +++++++++++++++++++- erpnext/selling/sales_common.js | 8 -------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 65395302920..44bf21da3ec 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -6,12 +6,31 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ this._super(); frappe.ui.form.on(this.frm.doctype + " Item", "rate", function(frm, cdt, cdn) { var item = frappe.get_doc(cdt, cdn); + var has_margin_field = frappe.meta.has_field(cdt, 'margin_type'); + frappe.model.round_floats_in(item, ["rate", "price_list_rate"]); if(item.price_list_rate) { - item.discount_percentage = flt((1 - item.rate / item.price_list_rate) * 100.0, precision("discount_percentage", item)); + if(item.rate > item.price_list_rate && has_margin_field) { + // if rate is greater than price_list_rate, set margin + // or set discount + item.discount_percentage = 0; + item.margin_type = 'Percentage'; + item.margin_rate_or_amount = flt(Math.abs(1 - item.rate / item.price_list_rate) * 100.0, + precision("discount_percentage", item)); + item.rate_with_margin = item.rate; + } else { + item.discount_percentage = flt((1 - item.rate / item.price_list_rate) * 100.0, + precision("discount_percentage", item)); + item.margin_type = ''; + item.margin_rate_or_amount = 0; + item.rate_with_margin = 0; + } } else { item.discount_percentage = 0.0; + item.margin_type = ''; + item.margin_rate_or_amount = 0; + item.rate_with_margin = 0; } cur_frm.cscript.set_gross_profit(item); diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index da9c771b05d..715434384be 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -337,14 +337,6 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }) }, - rate: function(doc, cdt, cdn){ - // if user changes the rate then set margin Rate or amount to 0 - item = locals[cdt][cdn]; - item.margin_type = ""; - item.margin_rate_or_amount = 0.0; - cur_frm.refresh_fields(); - }, - margin_rate_or_amount: function(doc, cdt, cdn) { // calculated the revised total margin and rate on margin rate changes item = locals[cdt][cdn]; From e4f80a6eaa57f6668bc649fb451143b42e8b0ad3 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 17 May 2017 19:41:39 +0530 Subject: [PATCH 09/16] Open lost opportunity again if quotation made against it (#8854) --- erpnext/controllers/status_updater.py | 2 +- .../crm/doctype/opportunity/opportunity.py | 21 ++++++++++++++----- .../selling/doctype/quotation/quotation.py | 4 +++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index 403430606f8..cede8f4d342 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -19,7 +19,7 @@ status_map = { ["Converted", "has_customer"], ], "Opportunity": [ - ["Quotation", "has_quotation"], + ["Quotation", "has_active_quotation"], ["Converted", "has_ordered_quotation"], ["Lost", "eval:self.status=='Lost'"], ["Lost", "has_lost_quotation"], diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py index 3c553a5da81..8a21e7c7461 100644 --- a/erpnext/crm/doctype/opportunity/opportunity.py +++ b/erpnext/crm/doctype/opportunity/opportunity.py @@ -84,20 +84,31 @@ class Opportunity(TransactionBase): def on_trash(self): self.delete_events() - def has_quotation(self): - return frappe.db.get_value("Quotation Item", {"prevdoc_docname": self.name, "docstatus": 1}) + def has_active_quotation(self): + return frappe.db.sql(""" + select q.name + from `tabQuotation` q, `tabQuotation Item` qi + where q.name = qi.parent and q.docstatus=1 and qi.prevdoc_docname =%s + and q.status not in ('Lost', 'Closed')""", self.name) def has_ordered_quotation(self): - return frappe.db.sql("""select q.name from `tabQuotation` q, `tabQuotation Item` qi - where q.name = qi.parent and q.docstatus=1 and qi.prevdoc_docname =%s and q.status = 'Ordered'""", self.name) + return frappe.db.sql(""" + select q.name + from `tabQuotation` q, `tabQuotation Item` qi + where q.name = qi.parent and q.docstatus=1 and qi.prevdoc_docname =%s + and q.status = 'Ordered'""", self.name) def has_lost_quotation(self): - return frappe.db.sql(""" + lost_quotation = frappe.db.sql(""" select q.name from `tabQuotation` q, `tabQuotation Item` qi where q.name = qi.parent and q.docstatus=1 and qi.prevdoc_docname =%s and q.status = 'Lost' """, self.name) + if lost_quotation: + if self.has_active_quotation(): + return False + return True def validate_cust_name(self): if self.customer: diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index b5b24f8c751..b102e1d699e 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -44,7 +44,9 @@ class Quotation(SellingController): def update_opportunity(self): for opportunity in list(set([d.prevdoc_docname for d in self.get("items")])): if opportunity: - frappe.get_doc("Opportunity", opportunity).set_status(update=True) + opp = frappe.get_doc("Opportunity", opportunity) + opp.status = None + opp.set_status(update=True) def declare_order_lost(self, arg): if not self.has_sales_order(): From 85bfc05efa7a65c122601319c56d8faf3c9c9a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Rold=C3=A1n?= Date: Wed, 17 May 2017 11:12:04 -0300 Subject: [PATCH 10/16] Fix missing translations (#8871) * Fix missing translations * Fix --- .../salary_register/salary_register.html | 4 +- erpnext/public/js/payment/pos_payment.html | 12 +++--- erpnext/public/js/pos/pos.html | 12 +++--- erpnext/public/js/pos/pos_item.html | 2 +- erpnext/public/js/pos/pos_selected_item.html | 10 ++--- erpnext/templates/generators/item_group.html | 6 +-- .../includes/navbar/navbar_items.html | 2 +- .../includes/projects/project_tasks.html | 2 +- .../includes/projects/project_timesheets.html | 2 +- erpnext/templates/pages/cart.html | 2 +- erpnext/templates/pages/task_info.html | 40 +++++++++---------- erpnext/templates/pages/timelog_info.html | 16 ++++---- 12 files changed, 55 insertions(+), 55 deletions(-) diff --git a/erpnext/hr/report/salary_register/salary_register.html b/erpnext/hr/report/salary_register/salary_register.html index 2a9cd3ebdb5..d7bf6a78bc7 100644 --- a/erpnext/hr/report/salary_register/salary_register.html +++ b/erpnext/hr/report/salary_register/salary_register.html @@ -2,7 +2,7 @@ {%= frappe.boot.letter_heads[filters.letter_head || frappe.defaults.get_default("letter_head")] %}

{%= __(report.report_name) %}

-
From {%= filters.date_range[0] %} to {%= filters.date_range[1] %}
+
{{ __("From") }} {%= filters.date_range[0] %} {{ __("to") }} {%= filters.date_range[1] %}

@@ -34,4 +34,4 @@ {% } %}
-

Printed On {%= dateutil.str_to_user(dateutil.get_datetime_as_string()) %}

+

{{ __("Printed On") }} {%= dateutil.str_to_user(dateutil.get_datetime_as_string()) %}

diff --git a/erpnext/public/js/payment/pos_payment.html b/erpnext/public/js/payment/pos_payment.html index 7700b243748..185d748aff9 100644 --- a/erpnext/public/js/payment/pos_payment.html +++ b/erpnext/public/js/payment/pos_payment.html @@ -1,20 +1,20 @@
-

Total Amount: {%= format_currency(grand_total, currency) %}

+

{{ __("Total Amount") }}: {%= format_currency(grand_total, currency) %}

-

Paid

+

{{ __("Paid") }}

-

Outstanding

{%= format_currency(outstanding_amount, currency) %}

+

{{ __("Outstanding") }}

{%= format_currency(outstanding_amount, currency) %}

-

Change +

{{ __("Change") }}

-

Write off +

{{ __("Write off") }}

@@ -33,7 +33,7 @@
{% } %}
- +
diff --git a/erpnext/public/js/pos/pos.html b/erpnext/public/js/pos/pos.html index e356d8768e0..181a41f2d5e 100644 --- a/erpnext/public/js/pos/pos.html +++ b/erpnext/public/js/pos/pos.html @@ -17,7 +17,7 @@
-

Tap items to add them here

+

{{ __("Tap items to add them here") }}

@@ -68,7 +68,7 @@
@@ -97,7 +97,7 @@
-

No Customers yet!

+

{{ __("No Customers yet!") }}

@@ -112,7 +112,7 @@
diff --git a/erpnext/public/js/pos/pos_item.html b/erpnext/public/js/pos/pos_item.html index b1d75ae96cc..816dc3ac2f4 100644 --- a/erpnext/public/js/pos/pos_item.html +++ b/erpnext/public/js/pos/pos_item.html @@ -1,7 +1,7 @@
diff --git a/erpnext/public/js/pos/pos_selected_item.html b/erpnext/public/js/pos/pos_selected_item.html index 65e4ef18b42..a4bc49dfba3 100644 --- a/erpnext/public/js/pos/pos_selected_item.html +++ b/erpnext/public/js/pos/pos_selected_item.html @@ -1,22 +1,22 @@
-
Quantity:
+
{{ __("Quantity") }}:
-
Price List Rate:
+
{{ __("Price List Rate") }}:
-
Discount:
+
{{ __("Discount") }}:
-
Price:
+
{{ __("Price") }}:
-
Amount:
+
{{ __("Amount") }}:
\ No newline at end of file diff --git a/erpnext/templates/generators/item_group.html b/erpnext/templates/generators/item_group.html index f0276447d5b..d710cb0739f 100644 --- a/erpnext/templates/generators/item_group.html +++ b/erpnext/templates/generators/item_group.html @@ -33,14 +33,14 @@
{% if frappe.form_dict.start|int > 0 %} - Prev + {{ __("Prev") }} {% endif %} {% if items|length > page_length %} - Next + {{ __("Next") }} {% endif %}
{% else %} -
No items listed.
+
{{ __("No items listed") }}.
{% endif %}
diff --git a/erpnext/templates/includes/navbar/navbar_items.html b/erpnext/templates/includes/navbar/navbar_items.html index 87dea8f175b..faf8adf22b7 100644 --- a/erpnext/templates/includes/navbar/navbar_items.html +++ b/erpnext/templates/includes/navbar/navbar_items.html @@ -4,7 +4,7 @@
{% if task.todo %} diff --git a/erpnext/templates/includes/projects/project_timesheets.html b/erpnext/templates/includes/projects/project_timesheets.html index fb44017fa8d..3a9aecd2514 100644 --- a/erpnext/templates/includes/projects/project_timesheets.html +++ b/erpnext/templates/includes/projects/project_timesheets.html @@ -5,7 +5,7 @@
{{ timesheet.info.name }}
- From {{ frappe.format_date(timesheet.from_time) }} to {{ frappe.format_date(timesheet.to_time) }} + {{ __("From") }} {{ frappe.format_date(timesheet.from_time) }} {{ __("to") }} {{ frappe.format_date(timesheet.to_time) }}
diff --git a/erpnext/templates/pages/cart.html b/erpnext/templates/pages/cart.html index 6cff5b13e23..fb0c05fcddb 100644 --- a/erpnext/templates/pages/cart.html +++ b/erpnext/templates/pages/cart.html @@ -60,7 +60,7 @@ {{doc.terms}}
{% endif %} diff --git a/erpnext/templates/pages/task_info.html b/erpnext/templates/pages/task_info.html index f386ce891ac..6cfac28da6a 100644 --- a/erpnext/templates/pages/task_info.html +++ b/erpnext/templates/pages/task_info.html @@ -19,9 +19,9 @@
+ {{ __("Update") }} - Cancel + {{ __("Cancel") }}
@@ -36,45 +36,45 @@
- +
- +
- +
- +
- +
- +
- +
@@ -83,22 +83,22 @@
-

Comments

+

{{ __("Comments") }}

{% for comment in comments %}

{{comment.sender_full_name}}: - {{comment.subject}} on {{comment.creation.strftime('%Y-%m-%d')}}

+ {{comment.subject}} {{ __("on") }} {{comment.creation.strftime('%Y-%m-%d')}}

{% endfor %}
- Add Comment + {{ __("Add Comment") }}