public function checkweekdaysdatacron($hidstartweek_date, $hidendweek_date, $hidemp, $emp_dept_id, $employeeGroupId, $empJoiningDate) { $messages = array(); if ($hidemp != '' && $hidstartweek_date != '' && $hidendweek_date != '') { //To get days in the week/month $weekDatesArray = sapp_Global::createDateRangeArray($hidstartweek_date, $hidendweek_date); //echo //End $submittedtsdates = $holDates = $weekendDates = $leaveDates = array(); $startdateObj = DateTime::createFromFormat("Y-m-d", $hidstartweek_date); $loopDate = $hidstartweek_date; $cal_weekArray = array(); $yearCalWeekArray = array(); while (strtotime($loopDate) <= strtotime($hidendweek_date)) { $calWeekVal = strftime('%U', strtotime($loopDate)); $dateYearVal = strftime('%Y', strtotime($loopDate)); if (!in_array($calWeekVal, $cal_weekArray)) { $cal_weekArray[] = $calWeekVal; $yearCalWeekArray[$calWeekVal][] = $dateYearVal; } if (!in_array($dateYearVal, $yearCalWeekArray[$calWeekVal])) { $yearCalWeekArray[$calWeekVal][] = $dateYearVal; } $loopDate = date("Y-m-d", strtotime("+1 day", strtotime($loopDate))); } $startDateYear = $startdateObj->format("Y"); /*submitted and approved status dates in a date range*/ //To get dates of timesheet filled by user of the given duration $tsStatus_model = new Timemanagement_Model_Timesheetstatus(); $resultData = $tsStatus_model->getEachDayTsDateCron($hidemp, $cal_weekArray, $yearCalWeekArray); $ts_filled_dates = array(); if (!empty($resultData)) { foreach ($resultData as $resData) { $ts_week_dates = $resData['ts_week_dates']; $ts_weekArray = explode('$', $ts_week_dates); if (count($ts_weekArray) > 0) { foreach ($ts_weekArray as $ts_day) { $ts_day_Array = explode('#', $ts_day); if (in_array($ts_day_Array[0], $weekDatesArray)) { if ($ts_day_Array[1] == 'submitted' || $ts_day_Array[1] == 'approved') { $submittedtsdates[] = $ts_day_Array[0]; //$ts_day_Array[0] is ts status date } } } } } $submittedtsdates = array_unique($submittedtsdates); } /*End*/ //To get Holidays for the given duration $holidayDatesArr = array(); if (isset($employeeGroupId) && $employeeGroupId != '') { $holidaydatesmodel = new Default_Model_Holidaydates(); $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeGroupId); if (!empty($holidayDateslistArr)) { for ($i = 0; $i < sizeof($holidayDateslistArr); $i++) { $holidayDatesArr[$i] = $holidayDateslistArr[$i]['holidaydate']; } } } //End //To get Leaves applied by user for the given duration $empLeaves = $this->getEmpLeaves($hidemp, $hidstartweek_date, $hidendweek_date); if (!empty($empLeaves)) { $empleaveDatesArray = array(); foreach ($empLeaves as $empLeaveRow) { if ($empLeaveRow['leaveday'] == 1) { $leaveDatesArray = sapp_Global::createDateRangeArray($empLeaveRow['from_date'], $empLeaveRow['to_date']); } $empleaveDatesArray = array_merge($empleaveDatesArray, $leaveDatesArray); } } //End //To get default not working days(saturday and sunday) if ($emp_dept_id != '' && $emp_dept_id != NULL) { $weekendDetailsArr = $this->getWeekend($hidstartweek_date, $hidendweek_date, $emp_dept_id); } //End if (isset($holidayDatesArr) && count($holidayDatesArr) > 0) { foreach ($holidayDatesArr as $holidayDate) { if (in_array($holidayDate, $weekDatesArray)) { $holDates[] = $holidayDate; } } } if (isset($empleaveDatesArray) && count($empleaveDatesArray) > 0) { foreach ($empleaveDatesArray as $empleaveDate) { if (in_array($empleaveDate, $weekDatesArray)) { $leaveDates[] = $empleaveDate; } } } if (isset($weekendDetailsArr) && count($weekendDetailsArr) > 0) { foreach ($weekendDetailsArr as $weekendDate) { if (in_array($weekendDate, $weekDatesArray)) { $weekendDates[] = $weekendDate; } } } $totalDaysArray = array(); $totalDaysArray = array_merge($submittedtsdates, $holDates, $leaveDates, $weekendDates); $emptyDataDatesArray = array(); $emptyDataDatesArray = array_diff($weekDatesArray, $totalDaysArray); if (count($emptyDataDatesArray) > 0) { $newemptyDataDatesArray = array(); foreach ($emptyDataDatesArray as $edate) { if ($edate >= $empJoiningDate) { $newemptyDataDatesArray[] = $edate; } } return $newemptyDataDatesArray; } else { return array(); } } }