diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js index adcb4cf6b5e..eabb47647c5 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.js +++ b/erpnext/hr/doctype/expense_claim/expense_claim.js @@ -27,23 +27,23 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){ for(var i = 0; i 0: - if self.doc.approval_status == 'Draft': - msgprint("Sanctioned amount can be added by Approver person only for submitted Expense Claim") - raise Exception - elif self.doc.approval_status == 'Submitted' and session['user'] != self.doc.exp_approver: - msgprint("Sanctioned amount can be added only by expense voucher Approver") - raise Exception def validate_fiscal_year(self): fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year) @@ -123,7 +111,6 @@ class DocType: raise Exception def validate(self): - self.validate_curr_exp() self.validate_fiscal_year() def on_update(self): @@ -141,17 +128,7 @@ class DocType: if not self.doc.exp_approver: msgprint("Please select Expense Claim approver") raise Exception - - def validate_approver(self): - app_lst = self.get_approver_lst() - if self.doc.exp_approver and self.doc.exp_approver not in app_lst: - msgprint("Approver "+self.doc.exp_approver+" is not authorized to approve this expense voucher. Please select another approver") - valid_app = 'No' - else: - valid_app = 'Yes' - ret = {'app_lst':("\n" + "\n".join(app_lst)), 'valid_approver':valid_app} - return ret - + def on_submit(self): self.validate_exp_details() set(self.doc, 'approval_status', 'Submitted') diff --git a/erpnext/patches/july_2012/bin_permission.py b/erpnext/patches/july_2012/bin_permission.py new file mode 100644 index 00000000000..e1d0ea6f953 --- /dev/null +++ b/erpnext/patches/july_2012/bin_permission.py @@ -0,0 +1,3 @@ +def execute(): + import webnotes + webnotes.conn.sql("update `tabDocPerm` set permlevel = 0 where parent = 'Bin'") \ No newline at end of file diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py index e560973889f..14d56a0e93c 100644 --- a/erpnext/patches/patch_list.py +++ b/erpnext/patches/patch_list.py @@ -525,4 +525,8 @@ patch_list = [ 'patch_module': 'patches.july_2012', 'patch_file': 'blog_guest_permission', }, -] + { + 'patch_module': 'patches.july_2012', + 'patch_file': 'bin_permission', + }, +] \ No newline at end of file diff --git a/erpnext/stock/doctype/bin/bin.txt b/erpnext/stock/doctype/bin/bin.txt index 7956e67af30..158dbde2f23 100644 --- a/erpnext/stock/doctype/bin/bin.txt +++ b/erpnext/stock/doctype/bin/bin.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2012-03-27 14:36:27', + 'creation': '2012-05-15 12:15:04', 'docstatus': 0, - 'modified': '2012-03-27 14:36:27', + 'modified': '2012-07-31 17:23:42', 'modified_by': u'Administrator', 'owner': u'Administrator' }, @@ -26,7 +26,7 @@ 'section_style': u'Simple', 'server_code_error': u' ', 'show_in_menu': 0, - 'version': 115 + 'version': 1 }, # These values are common for all DocField @@ -36,7 +36,7 @@ 'parent': u'Bin', 'parentfield': u'fields', 'parenttype': u'DocType', - 'permlevel': 1 + 'permlevel': 0 }, # These values are common for all DocPerm @@ -46,6 +46,7 @@ 'parent': u'Bin', 'parentfield': u'permissions', 'parenttype': u'DocType', + 'permlevel': 0, 'read': 1 }, @@ -58,28 +59,24 @@ # DocPerm { 'doctype': u'DocPerm', - 'permlevel': 1, 'role': u'Sales Manager' }, # DocPerm { 'doctype': u'DocPerm', - 'permlevel': 1, 'role': u'Sales User' }, # DocPerm { 'doctype': u'DocPerm', - 'permlevel': 1, 'role': u'Purchase Manager' }, # DocPerm { 'doctype': u'DocPerm', - 'permlevel': 1, 'role': u'Purchase User' }, @@ -89,7 +86,6 @@ 'cancel': 0, 'create': 0, 'doctype': u'DocPerm', - 'permlevel': 1, 'role': u'Material User', 'submit': 0, 'write': 0 @@ -101,7 +97,6 @@ 'cancel': 0, 'create': 0, 'doctype': u'DocPerm', - 'permlevel': 0, 'role': u'Material Manager', 'submit': 0, 'write': 0 @@ -162,7 +157,7 @@ 'doctype': u'DocField', 'fieldname': u'actual_qty', 'fieldtype': u'Currency', - 'in_filter': 0, + 'in_filter': 1, 'label': u'Actual Quantity', 'oldfieldname': u'actual_qty', 'oldfieldtype': u'Currency', diff --git a/erpnext/stock/doctype/stock_ledger/stock_ledger.py b/erpnext/stock/doctype/stock_ledger/stock_ledger.py index 9935e468c52..8b51b5cc0fb 100644 --- a/erpnext/stock/doctype/stock_ledger/stock_ledger.py +++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py @@ -83,13 +83,17 @@ class DocType: for d in getlist(obj.doclist, fname): is_stock_item = get_value('Item', d.item_code, 'is_stock_item') ar_required = get_value('Item', d.item_code, 'has_serial_no') - if cstr(d.serial_no).strip(): + + # [bug fix] need to strip serial nos of all spaces and new lines for validation + serial_no = cstr(d.serial_no).strip() + + if serial_no: if is_stock_item != 'Yes': msgprint("Serial No is not required for non-stock item: %s" % d.item_code, raise_exception=1) elif ar_required != 'Yes': msgprint("If serial no required, please select 'Yes' in 'Has Serial No' in Item :" + d.item_code + \ ', otherwise please remove serial no', raise_exception=1) - elif ar_required == 'Yes' and not d.serial_no: + elif ar_required == 'Yes' and not serial_no: msgprint("Serial no is mandatory for item: "+ d.item_code, raise_exception = 1) # validate rejected serial nos diff --git a/erpnext/stock/search_criteria/stock_level/stock_level.js b/erpnext/stock/search_criteria/stock_level/stock_level.js index f456d0b8894..4fb744ddb97 100644 --- a/erpnext/stock/search_criteria/stock_level/stock_level.js +++ b/erpnext/stock/search_criteria/stock_level/stock_level.js @@ -15,6 +15,8 @@ // along with this program. If not, see . report.customize_filters = function() { - this.add_filter({fieldname:'item_name', label:'Item Name', fieldtype:'Data', options:'', parent:'Item', in_first_page : 1}); - this.add_filter({fieldname:'description', label:'Description', fieldtype:'Small Text', options: '', parent:'Item', in_first_page : 1}); + this.add_filter({fieldname:'item_name', label:'Item Name', fieldtype:'Data', options:'', parent:'Item', in_first_page : 0}); + this.add_filter({fieldname:'description', label:'Description', fieldtype:'Small Text', options: '', parent:'Item', in_first_page : 0}); + this.add_filter({fieldname:'item_group', label:'Item Group', fieldtype:'link', options: 'Item Group', parent:'Item', in_first_page : 1}); + this.add_filter({fieldname:'brand', label:'Brand', fieldtype:'link', options: 'Brand', parent:'Item', in_first_page : 1}); } \ No newline at end of file