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)
|
share_doc_with_approver(self, self.leave_approver)
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
if self.status == "Open":
|
if self.status in ["Open", "Cancelled"]:
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
_("Only Leave Applications with status 'Approved' and 'Rejected' can be submitted")
|
_("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
|
WHERE
|
||||||
from_date <= %(end)s AND to_date >= %(start)s <= to_date
|
from_date <= %(end)s AND to_date >= %(start)s <= to_date
|
||||||
AND docstatus < 2
|
AND docstatus < 2
|
||||||
AND status != 'Rejected'
|
AND status in ('Approved', 'Open')
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if conditions:
|
if conditions:
|
||||||
@@ -1192,6 +1192,7 @@ def get_approved_leaves_for_period(employee, leave_type, from_date, to_date):
|
|||||||
from `tabLeave Application`
|
from `tabLeave Application`
|
||||||
where employee=%(employee)s
|
where employee=%(employee)s
|
||||||
and docstatus=1
|
and docstatus=1
|
||||||
|
and status='Approved'
|
||||||
and (from_date between %(from_date)s and %(to_date)s
|
and (from_date between %(from_date)s and %(to_date)s
|
||||||
or to_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))
|
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
|
where t2.name = t1.leave_type
|
||||||
and t2.is_lwp = 1
|
and t2.is_lwp = 1
|
||||||
and t1.docstatus = 1
|
and t1.docstatus = 1
|
||||||
|
and t1.status = 'Approved'
|
||||||
and t1.employee = %(employee)s
|
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
|
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
|
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"]
|
test_dependencies = ["Holiday List"]
|
||||||
|
|
||||||
|
|
||||||
class TestPayrollEntry(unittest.TestCase):
|
class TestPayrollEntry(FrappeTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
frappe.db.set_value(
|
frappe.db.set_value(
|
||||||
|
|||||||
@@ -478,6 +478,7 @@ class SalarySlip(TransactionBase):
|
|||||||
WHERE t2.name = t1.leave_type
|
WHERE t2.name = t1.leave_type
|
||||||
AND (t2.is_lwp = 1 or t2.is_ppl = 1)
|
AND (t2.is_lwp = 1 or t2.is_ppl = 1)
|
||||||
AND t1.docstatus = 1
|
AND t1.docstatus = 1
|
||||||
|
AND t1.status = 'Approved'
|
||||||
AND t1.employee = %(employee)s
|
AND t1.employee = %(employee)s
|
||||||
AND ifnull(t1.salary_slip, '') = ''
|
AND ifnull(t1.salary_slip, '') = ''
|
||||||
AND CASE
|
AND CASE
|
||||||
|
|||||||
Reference in New Issue
Block a user