Ejemplo n.º 1
0
 public function calculatebusinessdays($fromDate, $toDate)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $noOfDays = 0;
     $weekDay = '';
     $employeeDepartmentId = '';
     $employeeGroupId = '';
     $weekend1 = '';
     $weekend2 = '';
     $holidayDatesArr = array();
     //Calculating the no of days in b/w from date & to date with out taking weekend & holidays....
     $employeesmodel = new Default_Model_Employees();
     $leavemanagementmodel = new Default_Model_Leavemanagement();
     $holidaydatesmodel = new Default_Model_Holidaydates();
     $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
     if (!empty($loggedInEmployeeDetails)) {
         $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
         $employeeGroupId = $loggedInEmployeeDetails[0]['holiday_group'];
         if ($employeeDepartmentId != '' && $employeeDepartmentId != NULL) {
             $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($employeeDepartmentId);
         }
         if (!empty($weekendDetailsArr)) {
             if ($weekendDetailsArr[0]['is_skipholidays'] == 1 && isset($employeeGroupId) && $employeeGroupId != '') {
                 $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeGroupId);
                 if (!empty($holidayDateslistArr)) {
                     for ($i = 0; $i < sizeof($holidayDateslistArr); $i++) {
                         $holidayDatesArr[$i] = $holidayDateslistArr[$i]['holidaydate'];
                     }
                 }
             }
             $weekend1 = $weekendDetailsArr[0]['daystartname'];
             $weekend2 = $weekendDetailsArr[0]['dayendname'];
         }
         $fromdate_obj = new DateTime($fromDate);
         $weekDay = $fromdate_obj->format('l');
         while ($fromDate <= $toDate) {
             /*if(($weekDay != 'Saturday'||$weekDay != 'Sunday') && (!empty($holidayDates)) && (!in_array($fromDate,$holidayDates)))*/
             if (count($holidayDatesArr) > 0) {
                 if ($weekDay != $weekend1 && $weekDay != $weekend2 && !in_array($fromDate, $holidayDatesArr)) {
                     $noOfDays++;
                 }
             } else {
                 if ($weekDay != $weekend1 && $weekDay != $weekend2) {
                     $noOfDays++;
                 }
             }
             $fromdate_obj->add(new DateInterval('P1D'));
             //Increment from date by one day...
             $fromDate = $fromdate_obj->format('Y-m-d');
             $weekDay = $fromdate_obj->format('l');
         }
     }
     return $noOfDays;
 }
Ejemplo n.º 2
0
 public function calculatecalendardaysAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $noOfDays = 0;
     $weekDay = '';
     $result['message'] = '';
     $result['days'] = '';
     $result['from_date_view'] = '';
     $result['to_date_view'] = '';
     $result['result'] = '';
     $employeeDepartmentId = '';
     $employeeGroupId = '';
     $weekend1 = '';
     $weekend2 = '';
     $availableleaves = '';
     $holidayDatesArr = array();
     $fromDatejs = $this->_request->getParam('fromDate');
     $fromDate = sapp_Global::change_date($fromDatejs, 'database');
     $toDatejs = $this->_request->getParam('toDate');
     $toDate = sapp_Global::change_date($toDatejs, 'database');
     //Calculating the no of days in b/w from date & to date with out taking weekend & holidays....
     $from_obj = new DateTime($fromDatejs);
     $from_date = $from_obj->format('Y-m-d');
     $to_obj = new DateTime($toDatejs);
     $to_date = $to_obj->format('Y-m-d');
     if ($to_date >= $from_date) {
         $employeesmodel = new Default_Model_Employees();
         $leavemanagementmodel = new Default_Model_Leavemanagement();
         $holidaydatesmodel = new Default_Model_Holidaydates();
         $leaverequestmodel = new Default_Model_Leaverequest();
         $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
         $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId);
         if (!empty($getavailbaleleaves)) {
             $availableleaves = $getavailbaleleaves[0]['remainingleaves'];
         }
         if (!empty($loggedInEmployeeDetails)) {
             $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
             $employeeGroupId = $loggedInEmployeeDetails[0]['holiday_group'];
             if ($employeeDepartmentId != '' && $employeeDepartmentId != NULL) {
                 $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($employeeDepartmentId);
             }
             if (!empty($weekendDetailsArr)) {
                 if ($weekendDetailsArr[0]['is_skipholidays'] == 1 && isset($employeeGroupId) && $employeeGroupId != '') {
                     $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeGroupId);
                     if (!empty($holidayDateslistArr)) {
                         for ($i = 0; $i < sizeof($holidayDateslistArr); $i++) {
                             $holidayDatesArr[$i] = $holidayDateslistArr[$i]['holidaydate'];
                         }
                     }
                 }
                 $weekend1 = $weekendDetailsArr[0]['daystartname'];
                 $weekend2 = $weekendDetailsArr[0]['dayendname'];
             }
             $fromdate_obj = new DateTime($fromDate);
             $weekDay = $fromdate_obj->format('l');
             while ($fromDate <= $toDate) {
                 if (count($holidayDatesArr) > 0) {
                     if ($weekDay != $weekend1 && $weekDay != $weekend2 && !in_array($fromDate, $holidayDatesArr)) {
                         $noOfDays++;
                     }
                 } else {
                     if ($weekDay != $weekend1 && $weekDay != $weekend2) {
                         $noOfDays++;
                     }
                 }
                 $fromdate_obj->add(new DateInterval('P1D'));
                 //Increment from date by one day...
                 $fromDate = $fromdate_obj->format('Y-m-d');
                 $weekDay = $fromdate_obj->format('l');
             }
         }
         $result['result'] = 'success';
         $result['days'] = $noOfDays;
         $result['message'] = '';
         $result['loginUserId'] = $loginUserId;
         $result['availableleaves'] = $availableleaves;
     }
     $this->_helper->_json($result);
 }
Ejemplo n.º 3
0
 public function getWeekend($startday, $endday, $dept_id)
 {
     $wkend_dates_arr = array();
     $leavemanagementmodel = new Default_Model_Leavemanagement();
     $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($dept_id);
     if (!empty($weekendDetailsArr)) {
         $weekend_arr = array($weekendDetailsArr[0]['daystartname'], $weekendDetailsArr[0]['dayendname']);
         $wkend_dates_arr = array();
         while ($startday <= $endday) {
             $nday = new DateTime($startday);
             if (in_array($nday->format('l'), $weekend_arr)) {
                 $wkend_dates_arr[] = $startday;
             }
             $nday->add(new DateInterval('P1D'));
             $startday = $nday->format('Y-m-d');
         }
     }
     return $wkend_dates_arr;
 }