Merge pull request #6675 from KanchanChauhan/holiday-in-lwp-salaryslip

include_holiday being taken into consideration while calculating lwp
This commit is contained in:
Nabin Hait 2016-10-24 11:19:43 +05:30 committed by GitHub
commit 6ef8ede280

View File

@ -280,24 +280,26 @@ class SalarySlip(TransactionBase):
holidays = [cstr(i) for i in holidays] holidays = [cstr(i) for i in holidays]
return holidays return holidays
def calculate_lwp(self, holidays, working_days): def calculate_lwp(self, holidays, working_days):
lwp = 0 lwp = 0
holidays = "','".join(holidays)
for d in range(working_days): for d in range(working_days):
dt = add_days(cstr(getdate(self.start_date)), d) dt = add_days(cstr(getdate(self.start_date)), d)
if dt not in holidays: leave = frappe.db.sql("""
leave = frappe.db.sql(""" select t1.name, t1.half_day
select t1.name, t1.half_day from `tabLeave Application` t1, `tabLeave Type` t2
from `tabLeave Application` t1, `tabLeave Type` t2 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.employee = %(employee)s
and t1.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 %s between from_date and to_date WHEN t2.include_holiday THEN %(dt)s between from_date and to_date
""", (self.employee, dt)) END
if leave: """.format(holidays), {"employee": self.employee, "dt": dt})
lwp = cint(leave[0][1]) and (lwp + 0.5) or (lwp + 1) if leave:
return lwp lwp = cint(leave[0][1]) and (lwp + 0.5) or (lwp + 1)
return lwp
def check_existing(self): def check_existing(self):
if not self.salary_slip_based_on_timesheet: if not self.salary_slip_based_on_timesheet: