[fix] Validate Expense Approver
This commit is contained in:
parent
d42326bf43
commit
0b74b6d98c
@ -80,7 +80,7 @@ cur_frm.cscript.refresh = function(doc,cdt,cdn){
|
|||||||
cur_frm.cscript.set_help(doc);
|
cur_frm.cscript.set_help(doc);
|
||||||
|
|
||||||
if(!doc.__islocal) {
|
if(!doc.__islocal) {
|
||||||
cur_frm.toggle_enable("exp_approver", (doc.owner==user && doc.approval_status=="Draft"));
|
cur_frm.toggle_enable("exp_approver", doc.approval_status=="Draft");
|
||||||
cur_frm.toggle_enable("approval_status", (doc.exp_approver==user && doc.docstatus==0));
|
cur_frm.toggle_enable("approval_status", (doc.exp_approver==user && doc.docstatus==0));
|
||||||
|
|
||||||
if(!doc.__islocal && user!=doc.exp_approver)
|
if(!doc.__islocal && user!=doc.exp_approver)
|
||||||
|
@ -4,13 +4,17 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
from frappe.utils import get_fullname
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from erpnext.hr.utils import set_employee_name
|
from erpnext.hr.utils import set_employee_name
|
||||||
|
|
||||||
|
class InvalidExpenseApproverError(frappe.ValidationError): pass
|
||||||
|
|
||||||
class ExpenseClaim(Document):
|
class ExpenseClaim(Document):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_fiscal_year()
|
self.validate_fiscal_year()
|
||||||
self.validate_exp_details()
|
self.validate_exp_details()
|
||||||
|
self.validate_expense_approver()
|
||||||
set_employee_name(self)
|
set_employee_name(self)
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
@ -24,3 +28,8 @@ class ExpenseClaim(Document):
|
|||||||
def validate_exp_details(self):
|
def validate_exp_details(self):
|
||||||
if not self.get('expense_voucher_details'):
|
if not self.get('expense_voucher_details'):
|
||||||
frappe.throw(_("Please add expense voucher details"))
|
frappe.throw(_("Please add expense voucher details"))
|
||||||
|
|
||||||
|
def validate_expense_approver(self):
|
||||||
|
if self.exp_approver and "Expense Approver" not in frappe.get_roles(self.exp_approver):
|
||||||
|
frappe.throw(_("{0} ({1}) must have role 'Expense Approver'")\
|
||||||
|
.format(get_fullname(self.exp_approver), self.exp_approver), InvalidExpenseApproverError)
|
||||||
|
@ -162,8 +162,8 @@ class LeaveApplication(Document):
|
|||||||
|
|
||||||
elif self.leave_approver and not frappe.db.sql("""select name from `tabUserRole`
|
elif self.leave_approver and not frappe.db.sql("""select name from `tabUserRole`
|
||||||
where parent=%s and role='Leave Approver'""", self.leave_approver):
|
where parent=%s and role='Leave Approver'""", self.leave_approver):
|
||||||
frappe.throw(_("{0} must have role 'Leave Approver'").format(get_fullname(self.leave_approver)),
|
frappe.throw(_("{0} ({1}) must have role 'Leave Approver'")\
|
||||||
InvalidLeaveApproverError)
|
.format(get_fullname(self.leave_approver), self.leave_approver), InvalidLeaveApproverError)
|
||||||
|
|
||||||
elif self.docstatus==1 and len(leave_approvers) and self.leave_approver != frappe.session.user:
|
elif self.docstatus==1 and len(leave_approvers) and self.leave_approver != frappe.session.user:
|
||||||
msgprint(_("Only the selected Leave Approver can submit this Leave Application"),
|
msgprint(_("Only the selected Leave Approver can submit this Leave Application"),
|
||||||
|
Loading…
Reference in New Issue
Block a user