diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py index 12e715eb8e..80504d09c8 100755 --- a/hr/doctype/leave_application/leave_application.py +++ b/hr/doctype/leave_application/leave_application.py @@ -124,13 +124,15 @@ class DocType(DocListController): if not is_lwp(self.doc.leave_type): self.doc.leave_balance = get_leave_balance(self.doc.employee, self.doc.leave_type, self.doc.fiscal_year)["leave_balance"] - # Allowing user to add leavs which will result in negative balance. This is needed for Sick Leave and other common exceptional cases. - #System will check and warn but continue with saving the application. - #This may needs to be changed if other ERPNext customer may not want this behaviour. + if self.doc.leave_balance - self.doc.total_leave_days < 0: - msgprint("There is not enough leave balance for Leave Type: %s" % \ - (self.doc.leave_type,)) - # , raise_exception=1) + + # check if this leave type allow the remaining balance to be in negative. If yes then warn the user and continue to save else warn the user and don't save. + if webnotes.conn.get_value("Leave Type", self.doc.leave_type,"allow_negative"): + msgprint("There is not enough leave balance for Leave Type - new: %s" %(self.doc.leave_type,)) + # warn the user but don't save the form. + else: + msgprint("There is not enough leave balance for Leave Type - new: %s" %(self.doc.leave_type,), raise_exception=1) def validate_leave_overlap(self): if not self.doc.name: