fix: Consider only Approved leave applications in LWP, Employee Benefit calculations
- do not allow submitting leave applications with 'Cancelled' status
This commit is contained in:
@@ -88,7 +88,7 @@ class LeaveApplication(Document):
|
||||
share_doc_with_approver(self, self.leave_approver)
|
||||
|
||||
def on_submit(self):
|
||||
if self.status == "Open":
|
||||
if self.status in ["Open", "Cancelled"]:
|
||||
frappe.throw(
|
||||
_("Only Leave Applications with status 'Approved' and 'Rejected' can be submitted")
|
||||
)
|
||||
@@ -1103,7 +1103,7 @@ def add_leaves(events, start, end, filter_conditions=None):
|
||||
WHERE
|
||||
from_date <= %(end)s AND to_date >= %(start)s <= to_date
|
||||
AND docstatus < 2
|
||||
AND status != 'Rejected'
|
||||
AND status in ('Approved', 'Open')
|
||||
"""
|
||||
|
||||
if conditions:
|
||||
@@ -1192,6 +1192,7 @@ def get_approved_leaves_for_period(employee, leave_type, from_date, to_date):
|
||||
from `tabLeave Application`
|
||||
where employee=%(employee)s
|
||||
and docstatus=1
|
||||
and status='Approved'
|
||||
and (from_date between %(from_date)s and %(to_date)s
|
||||
or to_date between %(from_date)s and %(to_date)s
|
||||
or (from_date < %(from_date)s and to_date > %(to_date)s))
|
||||
|
||||
@@ -216,6 +216,7 @@ def calculate_lwp(employee, start_date, holidays, working_days):
|
||||
where t2.name = t1.leave_type
|
||||
and t2.is_lwp = 1
|
||||
and t1.docstatus = 1
|
||||
and t1.status = 'Approved'
|
||||
and t1.employee = %(employee)s
|
||||
and CASE WHEN t2.include_holiday != 1 THEN %(dt)s not in ('{0}') and %(dt)s between from_date and to_date
|
||||
WHEN t2.include_holiday THEN %(dt)s between from_date and to_date
|
||||
|
||||
@@ -35,7 +35,7 @@ from erpnext.payroll.doctype.salary_structure.test_salary_structure import (
|
||||
test_dependencies = ["Holiday List"]
|
||||
|
||||
|
||||
class TestPayrollEntry(unittest.TestCase):
|
||||
class TestPayrollEntry(FrappeTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
frappe.db.set_value(
|
||||
|
||||
@@ -478,6 +478,7 @@ class SalarySlip(TransactionBase):
|
||||
WHERE t2.name = t1.leave_type
|
||||
AND (t2.is_lwp = 1 or t2.is_ppl = 1)
|
||||
AND t1.docstatus = 1
|
||||
AND t1.status = 'Approved'
|
||||
AND t1.employee = %(employee)s
|
||||
AND ifnull(t1.salary_slip, '') = ''
|
||||
AND CASE
|
||||
|
||||
Reference in New Issue
Block a user