diff --git a/erpnext/__version__.py b/erpnext/__version__.py index 1f6e8304fff..4d1f63eb394 100644 --- a/erpnext/__version__.py +++ b/erpnext/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = '5.0.17' +__version__ = '5.0.18' diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js index c39550b6957..cd9d9d0f7e2 100644 --- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js +++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js @@ -2,6 +2,10 @@ // License: GNU General Public License v3. See license.txt frappe.ui.form.on("Bank Reconciliation", { + refresh: function(frm) { + frm.disable_save(); + }, + update_clearance_date: function(frm) { return frappe.call({ method: "update_details", @@ -33,5 +37,4 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { cur_frm.set_value("from_date", frappe.datetime.month_start()); cur_frm.set_value("to_date", frappe.datetime.month_end()); -} - +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py index fa178fea631..7dd021e8380 100644 --- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py +++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py @@ -25,7 +25,8 @@ class BankReconciliation(Document): where t2.parent = t1.name and t2.account = %s and t1.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1 - and ifnull(t1.is_opening, 'No') = 'No' %s""" % + and ifnull(t1.is_opening, 'No') = 'No' %s + order by t1.posting_date""" % ('%s', '%s', '%s', condition), (self.bank_account, self.from_date, self.to_date), as_dict=1) self.set('journal_entries', []) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 1f296e5fa72..efbd1e9cd90 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe -from frappe.utils import cstr, flt, fmt_money, formatdate, getdate, cint +from frappe.utils import cstr, flt, fmt_money, formatdate, getdate from frappe import msgprint, _, scrub from erpnext.setup.utils import get_company_currency from erpnext.controllers.accounts_controller import AccountsController @@ -428,12 +428,11 @@ class JournalEntry(AccountsController): def validate_expense_claim(self): for d in self.accounts: if d.against_expense_claim: - sanctioned_amount, reimbursed_amount = frappe.db.get_value("Expense Claim", d.against_expense_claim, - ("total_sanctioned_amount", "total_amount_reimbursed")) - pending_amount = cint(sanctioned_amount) - cint(reimbursed_amount) + sanctioned_amount, reimbursed_amount = frappe.db.get_value("Expense Claim", + d.against_expense_claim, ("total_sanctioned_amount", "total_amount_reimbursed")) + pending_amount = flt(sanctioned_amount) - flt(reimbursed_amount) if d.debit > pending_amount: - frappe.throw(_("Row No {0}: Amount cannot be greater than Pending Amount against Expense Claim {1}. \ - Pending Amount is {2}".format(d.idx, d.against_expense_claim, pending_amount))) + frappe.throw(_("Row No {0}: Amount cannot be greater than Pending Amount against Expense Claim {1}. Pending Amount is {2}".format(d.idx, d.against_expense_claim, pending_amount))) def validate_credit_debit_note(self): if self.stock_entry: diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js index 71df6cf0c2d..1355ea49651 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js @@ -44,6 +44,10 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext } }); }, + + refresh: function() { + this.frm.disable_save(); + }, party: function() { var me = this diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.js b/erpnext/accounts/doctype/payment_tool/payment_tool.js index cff0bd2f22b..6eefdb936c3 100644 --- a/erpnext/accounts/doctype/payment_tool/payment_tool.js +++ b/erpnext/accounts/doctype/payment_tool/payment_tool.js @@ -32,6 +32,7 @@ frappe.ui.form.on("Payment Tool", "onload", function(frm) { }); frappe.ui.form.on("Payment Tool", "refresh", function(frm) { + frm.disable_save(); frappe.ui.form.trigger("Payment Tool", "party_type"); }); diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.json b/erpnext/accounts/doctype/payment_tool/payment_tool.json index 909f9c49901..15cdb98948a 100644 --- a/erpnext/accounts/doctype/payment_tool/payment_tool.json +++ b/erpnext/accounts/doctype/payment_tool/payment_tool.json @@ -312,7 +312,7 @@ "is_submittable": 0, "issingle": 1, "istable": 0, - "modified": "2015-02-21 03:59:08.154966", + "modified": "2015-06-05 11:17:33.843334", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Tool", diff --git a/erpnext/accounts/page/pos/pos_page.html b/erpnext/accounts/page/pos/pos_page.html index 98cce009ad4..5a4c538f17b 100644 --- a/erpnext/accounts/page/pos/pos_page.html +++ b/erpnext/accounts/page/pos/pos_page.html @@ -9,7 +9,7 @@

- - {%= __("Make new POS Setting") %} + + {%= __("Make new POS Profile") %}

diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index dd7def8bd62..716cc3d4f62 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -14,7 +14,7 @@ def execute(filters=None): source = gross_profit_data.grouped_data if filters.get("group_by") != "Invoice" else gross_profit_data.data group_wise_columns = frappe._dict({ - "invoice": ["parent", "posting_date", "posting_time", "item_code", "item_name", "brand", "description", \ + "invoice": ["parent", "customer", "posting_date", "posting_time", "item_code", "item_name", "brand", "description", \ "warehouse", "qty", "base_rate", "buying_rate", "base_amount", "buying_amount", "gross_profit", "gross_profit_percent", "project"], "item_code": ["item_code", "item_name", "brand", "description", "warehouse", "qty", "base_rate", diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 73afe899f53..dd46af32019 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -5,7 +5,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd. and Contributors" app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations" app_icon = "icon-th" app_color = "#e74c3c" -app_version = "5.0.17" +app_version = "5.0.18" error_report_email = "support@erpnext.com" diff --git a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js index 8ab893a7ed3..3720f2f6361 100644 --- a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js +++ b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js @@ -24,4 +24,8 @@ cur_frm.cscript.to_date = function(doc, cdt, cdn) { cur_frm.cscript.allocation_type = function (doc, cdt, cdn){ doc.no_of_days = ''; refresh_field('no_of_days'); -} \ No newline at end of file +} + +frappe.ui.form.on("Leave Control Panel", "refresh", function(frm) { + frm.disable_save(); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json index 2eb4eb6d576..dead10b93cb 100644 --- a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json +++ b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json @@ -94,11 +94,11 @@ } ], "hide_heading": 0, - "hide_toolbar": 0, + "hide_toolbar": 1, "icon": "icon-cog", "idx": 1, "issingle": 1, - "modified": "2015-02-05 05:11:40.791976", + "modified": "2015-06-05 11:38:19.994852", "modified_by": "Administrator", "module": "HR", "name": "Leave Control Panel", @@ -110,7 +110,7 @@ "read": 1, "report": 0, "role": "HR User", - "share": 1, + "share": 0, "submit": 0, "write": 1 } diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.js b/erpnext/hr/doctype/salary_manager/salary_manager.js index 834f5d45145..240547c679a 100644 --- a/erpnext/hr/doctype/salary_manager/salary_manager.js +++ b/erpnext/hr/doctype/salary_manager/salary_manager.js @@ -43,3 +43,8 @@ cur_frm.cscript.make_jv = function(doc, dt, dn) { frappe.set_route("Form", doc.doctype, doc.name); }); } + + +frappe.ui.form.on("Salary Manager", "refresh", function(frm) { + frm.disable_save(); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.json b/erpnext/hr/doctype/salary_manager/salary_manager.json index 21560a47c23..93ee138a048 100644 --- a/erpnext/hr/doctype/salary_manager/salary_manager.json +++ b/erpnext/hr/doctype/salary_manager/salary_manager.json @@ -150,10 +150,11 @@ "permlevel": 0 } ], + "hide_toolbar": 1, "icon": "icon-cog", "idx": 1, "issingle": 1, - "modified": "2015-02-25 07:21:04.778082", + "modified": "2015-06-05 11:33:00.152362", "modified_by": "Administrator", "module": "HR", "name": "Salary Manager", diff --git a/erpnext/hr/doctype/upload_attendance/upload_attendance.js b/erpnext/hr/doctype/upload_attendance/upload_attendance.js index c0c8490c245..47ffec096b8 100644 --- a/erpnext/hr/doctype/upload_attendance/upload_attendance.js +++ b/erpnext/hr/doctype/upload_attendance/upload_attendance.js @@ -12,6 +12,7 @@ erpnext.hr.AttendanceControlPanel = frappe.ui.form.Controller.extend({ }, refresh: function() { + this.frm.disable_save(); this.show_upload(); }, diff --git a/erpnext/hr/doctype/upload_attendance/upload_attendance.json b/erpnext/hr/doctype/upload_attendance/upload_attendance.json index 195879d7c04..ab18f5d0a1e 100644 --- a/erpnext/hr/doctype/upload_attendance/upload_attendance.json +++ b/erpnext/hr/doctype/upload_attendance/upload_attendance.json @@ -1,4 +1,5 @@ { + "allow_copy": 1, "creation": "2013-01-25 11:34:53", "docstatus": 0, "doctype": "DocType", @@ -53,11 +54,13 @@ "permlevel": 0 } ], + "hide_heading": 0, + "hide_toolbar": 1, "icon": "icon-upload-alt", "idx": 1, "issingle": 1, "max_attachments": 1, - "modified": "2015-02-05 05:11:48.540845", + "modified": "2015-06-05 11:37:04.348120", "modified_by": "Administrator", "module": "HR", "name": "Upload Attendance", @@ -65,25 +68,25 @@ "permissions": [ { "create": 1, - "email": 1, + "email": 0, "permlevel": 0, - "print": 1, + "print": 0, "read": 1, "report": 0, "role": "HR User", - "share": 1, + "share": 0, "submit": 0, "write": 1 }, { "create": 1, - "email": 1, + "email": 0, "permlevel": 0, - "print": 1, + "print": 0, "read": 1, "report": 0, "role": "HR Manager", - "share": 1, + "share": 0, "submit": 0, "write": 1 } diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.json b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.json index f2c7cc7e142..e0ac26c6699 100644 --- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.json +++ b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.json @@ -1,4 +1,5 @@ { + "allow_copy": 1, "creation": "2013-01-21 12:03:47", "default_print_format": "Standard", "docstatus": 0, @@ -154,11 +155,12 @@ "permlevel": 0 } ], + "hide_toolbar": 1, "icon": "icon-calendar", "idx": 1, "in_create": 1, "issingle": 1, - "modified": "2015-02-05 05:11:43.010625", + "modified": "2015-06-05 11:44:31.629114", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Planning Tool", diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 729221a35c7..2104f7bcf82 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -163,3 +163,5 @@ execute:frappe.db.sql_list("delete from `tabDocPerm` where parent='Issue' and mo erpnext.patches.v5_0.update_item_and_description_again erpnext.patches.v5_0.repost_gle_for_jv_with_multiple_party erpnext.patches.v5_0.portal_fixes +erpnext.patches.v5_0.reset_values_in_tools +execute:frappe.delete_doc("Page", "users") \ No newline at end of file diff --git a/erpnext/patches/v5_0/reset_values_in_tools.py b/erpnext/patches/v5_0/reset_values_in_tools.py new file mode 100644 index 00000000000..2825e4fc649 --- /dev/null +++ b/erpnext/patches/v5_0/reset_values_in_tools.py @@ -0,0 +1,11 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import frappe + +def execute(): + for dt in ["Payment Tool", "Bank Reconciliation", "Payment Reconciliation", "Leave Control Panel", + "Salary Manager", "Upload Attenadance", "Production Planning Tool", "BOM Replace Tool"]: + frappe.db.sql("delete from `tabSingles` where doctype=%s", dt) + \ No newline at end of file diff --git a/erpnext/projects/doctype/time_log/time_log.py b/erpnext/projects/doctype/time_log/time_log.py index f7b501d4519..a0fa23b64a7 100644 --- a/erpnext/projects/doctype/time_log/time_log.py +++ b/erpnext/projects/doctype/time_log/time_log.py @@ -195,8 +195,6 @@ class TimeLog(Document): if self.for_manufacturing: if not self.production_order: frappe.throw(_("Production Order is Mandatory")) - if not self.operation: - frappe.throw(_("Operation is Mandatory")) if not self.completed_qty: self.completed_qty = 0 diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py index 33778c97991..02ff714bdaf 100644 --- a/erpnext/stock/doctype/item/test_item.py +++ b/erpnext/stock/doctype/item/test_item.py @@ -90,7 +90,7 @@ class TestItem(unittest.TestCase): "income_account": "Sales - _TC", "expense_account": "_Test Account Cost for Goods Sold - _TC", "cost_center": "_Test Cost Center 2 - _TC", - "qty": 0.0, + "qty": 1.0, "price_list_rate": 100.0, "base_price_list_rate": 0.0, "discount_percentage": 0.0, diff --git a/erpnext/templates/form_grid/includes/visible_cols.html b/erpnext/templates/form_grid/includes/visible_cols.html index 285c1254b69..e9be40ceb2a 100644 --- a/erpnext/templates/form_grid/includes/visible_cols.html +++ b/erpnext/templates/form_grid/includes/visible_cols.html @@ -1,6 +1,6 @@ {% $.each(visible_columns || [], function(i, df) { %} {% var val = doc.get_formatted(df.fieldname); - if(val) { %} + if((df.fieldname !== "description") && val) { %}
{%= __(df.label) %}: diff --git a/erpnext/templates/form_grid/item_grid.html b/erpnext/templates/form_grid/item_grid.html index 9905f99480f..8ea3e7d72af 100644 --- a/erpnext/templates/form_grid/item_grid.html +++ b/erpnext/templates/form_grid/item_grid.html @@ -47,6 +47,12 @@ {% if(doc.item_name != doc.item_code) { %}
{%= doc.item_name %}{% } %} + + {% if((doc.description != doc.item_code != doc.item_name) && + in_list($.map(visible_columns, function(x, i) {return x.fieldname}), "description")) { %} +
+ Description: + {%= doc.get_formatted("description") %}{% } %} {% include "templates/form_grid/includes/visible_cols.html" %}
diff --git a/setup.py b/setup.py index 96539e8ed00..d4a9356fae0 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -version = "5.0.17" +version = "5.0.18" with open("requirements.txt", "r") as f: install_requires = f.readlines()