예제 #1
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);
 }
예제 #2
0
 public function deleteAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $id = $this->_request->getParam('objid');
     $messages['message'] = '';
     $messages['msgtype'] = '';
     $actionflag = 3;
     if ($id) {
         $holidaydatesmodel = new Default_Model_Holidaydates();
         $menumodel = new Default_Model_Menu();
         $data = array('isactive' => 0, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         $where = array('id=?' => $id);
         $Id = $holidaydatesmodel->SaveorUpdateHolidayDates($data, $where);
         if ($Id == 'update') {
             $menuidArr = $menumodel->getMenuObjID('/holidaydates');
             $menuID = $menuidArr[0]['id'];
             $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $id);
             $messages['message'] = 'Holiday date deleted successfully.';
             $messages['msgtype'] = 'success';
         } else {
             $messages['message'] = 'Holiday date cannot be deleted.';
             $messages['msgtype'] = 'error';
         }
     } else {
         $messages['message'] = 'Holiday date cannot be deleted.';
         $messages['msgtype'] = 'error';
     }
     $this->_helper->json($messages);
 }
 public function viewAction()
 {
     $id = intval($this->getRequest()->getParam('id'));
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $objName = 'myholidaycalendar';
     $holidaydatesform = new Default_Form_holidaydates();
     $holidaydatesmodel = new Default_Model_Holidaydates();
     $holidaygroupsmodel = new Default_Model_Holidaygroups();
     $holidaydatesform->removeElement("submit");
     $data = $holidaydatesmodel->getsingleHolidayDatesData($id);
     $groupdataArr = $holidaygroupsmodel->getAllGroupData();
     if (sizeof($groupdataArr) > 0) {
         foreach ($groupdataArr as $groupdatares) {
             $holidaydatesform->groupid->addMultiOption($groupdatares['id'], utf8_encode($groupdatares['groupname']));
         }
     }
     $elements = $holidaydatesform->getElements();
     if (count($elements) > 0) {
         foreach ($elements as $key => $element) {
             if ($key != "Cancel" && $key != "Edit" && $key != "Delete" && $key != "Attachments") {
                 $element->setAttrib("disabled", "disabled");
             }
         }
     }
     if (!empty($data)) {
         $holidaydatesform->populate($data);
         $holidaydate = sapp_Global::change_date($data['holidaydate'], 'view');
         $holidaydatesform->holidaydate->setValue($holidaydate);
         $this->view->controllername = $objName;
         $this->view->id = $id;
         $this->view->form = $holidaydatesform;
         $this->view->ermsg = '';
     } else {
         $this->view->ermsg = 'nodata';
     }
 }
예제 #4
0
 public function viewpopupAction()
 {
     Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH . "/layouts/scripts/popup/");
     $id = $this->getRequest()->getParam('id');
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $objName = 'empholidays';
     $holidaydatesform = new Default_Form_holidaydates();
     $holidaydatesmodel = new Default_Model_Holidaydates();
     $holidaydatesform->removeElement("submit");
     $data = $holidaydatesmodel->getsingleHolidayDatesData($id);
     $elements = $holidaydatesform->getElements();
     if (count($elements) > 0) {
         foreach ($elements as $key => $element) {
             if ($key != "Cancel" && $key != "Edit" && $key != "Delete" && $key != "Attachments") {
                 $element->setAttrib("disabled", "disabled");
             }
         }
     }
     $holidaydatesform->populate($data);
     $holidaydate = sapp_Global::change_date($data['holidaydate'], 'view');
     $holidaydatesform->holidaydate->setValue($holidaydate);
     $this->view->controllername = $objName;
     $this->view->id = $id;
     $this->view->form = $holidaydatesform;
 }
예제 #5
0
 public function holidaysAction()
 {
     if (defined('EMPTABCONFIGS')) {
         $empOrganizationTabs = explode(",", EMPTABCONFIGS);
         if (in_array('emp_holidays', $empOrganizationTabs)) {
             $tabName = "holidays";
             $objName = 'empholidays';
             $employeeData = array();
             $empdata = array();
             $auth = Zend_Auth::getInstance();
             if ($auth->hasIdentity()) {
                 $loginUserId = $auth->getStorage()->read()->id;
             }
             $id = $loginUserId;
             $call = $this->_getParam('call');
             if ($call == 'ajaxcall') {
                 $this->_helper->layout->disableLayout();
                 $userID = $this->_getParam('unitId') != '' ? $this->_getParam('unitId') : $this->_getParam('userid');
             }
             if ($id == '') {
                 $id = $userID;
             }
             $Uid = $id ? $id : $userID;
             $employeeModal = new Default_Model_Employee();
             try {
                 $empdata = $employeeModal->getsingleEmployeeData($Uid);
                 if ($empdata == 'norows') {
                     $this->view->rowexist = "norows";
                     $this->view->empdata = "";
                 } else {
                     $this->view->rowexist = "rows";
                     if (!empty($empdata)) {
                         $holidaydatesmodel = new Default_Model_Holidaydates();
                         $usersModel = new Default_Model_Users();
                         $call = $this->_getParam('call');
                         $objname = $this->_getParam('objname');
                         $refresh = $this->_getParam('refresh');
                         $data = array();
                         $searchQuery = '';
                         $searchArray = array();
                         $tablecontent = '';
                         if ($refresh == 'refresh') {
                             $sort = 'DESC';
                             $by = 'h.modifieddate';
                             $perPage = 10;
                             $pageNo = 1;
                             $searchData = '';
                         } else {
                             $sort = $this->_getParam('sort') != '' ? $this->_getParam('sort') : 'DESC';
                             $by = $this->_getParam('by') != '' ? $this->_getParam('by') : 'h.modifieddate';
                             $perPage = $this->_getParam('per_page', 10);
                             $pageNo = $this->_getParam('page', 1);
                             $searchData = $this->_getParam('searchData');
                             $searchData = rtrim($searchData, ',');
                             /** search from grid - START **/
                             $searchData = $this->_getParam('searchData');
                             if ($searchData != '' && $searchData != 'undefined') {
                                 $searchValues = json_decode($searchData);
                                 foreach ($searchValues as $key => $val) {
                                     if ($key == 'holidaydate') {
                                         $searchQuery .= " " . $key . " like '%" . sapp_Global::change_date($val, 'database') . "%' AND ";
                                     } else {
                                         $searchQuery .= " " . $key . " like '%" . $val . "%' AND ";
                                     }
                                     $searchArray[$key] = $val;
                                 }
                                 $searchQuery = rtrim($searchQuery, " AND");
                             }
                             /** search from grid - END **/
                         }
                         $employeesModel = new Default_Model_Employees();
                         $empholidaydata = $employeesModel->getHolidayGroupForEmployee($id);
                         if (isset($empholidaydata[0]) && $empholidaydata[0]['holiday_group'] != '') {
                             $empGroupId = $empholidaydata[0]['holiday_group'];
                             $tableFields = array('action' => 'Action', 'holidayname' => 'Holiday', 'holidaydate' => 'Date', 'description' => 'Description');
                             $tablecontent = $holidaydatesmodel->getHolidayDatesData($sort, $by, $pageNo, $perPage, $searchQuery, $empGroupId);
                             $dataTmp = array('userid' => $Uid, 'sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getEmployeeAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'add' => 'add', 'menuName' => 'Employee Holidays', 'formgrid' => 'true', 'unitId' => $Uid, 'call' => $call, 'context' => 'mydetails', 'search_filters' => array('holidaydate' => array('type' => 'datepicker')));
                             array_push($data, $dataTmp);
                             $this->view->dataArray = $data;
                             $this->view->call = $call;
                         }
                         if ($Uid) {
                             if (!empty($empdata)) {
                                 $this->view->empdata = $empdata[0];
                             } else {
                                 $this->view->empdata = $empdata;
                             }
                         }
                         $this->view->id = $id;
                         $this->view->messages = $this->_helper->flashMessenger->getMessages();
                     }
                     $this->view->empdata = $empdata;
                 }
             } catch (Exception $e) {
                 $this->view->rowexist = "norows";
             }
         } else {
             $this->_redirect('error');
         }
     } else {
         $this->_redirect('error');
     }
 }
예제 #6
0
 public function saveholidays($hrWizardData)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $holidaydatesmodel = new Default_Model_Holidaydates();
     $msgarray = array();
     $errorflag = 'true';
     $groupnameId = $this->_request->getParam('groupname');
     $holidayname_arr = $this->_request->getParam('holidayname');
     $holidaydate_arr = $this->_request->getParam('holidaydate');
     if (!empty($holidayname_arr)) {
         $holidayArr = array_count_values($holidayname_arr);
         for ($i = 0; $i < sizeof($holidayname_arr); $i++) {
             if ($holidayname_arr[$i] == '') {
                 $msgarray['holiday_name'][$i] = 'Please enter holiday.';
                 $errorflag = 'false';
             } else {
                 if (!preg_match('/^[a-zA-Z0-9.\\- ?]+$/', $holidayname_arr[$i])) {
                     $msgarray['holiday_name'][$i] = 'Please enter valid holiday.';
                     $errorflag = 'false';
                 } else {
                     if ($i > 0 && $holidayArr[$holidayname_arr[$i]] > 1) {
                         $msgarray['holiday_name'][$i] = 'Please enter different holiday.';
                         $errorflag = 'false';
                     } else {
                         if ($groupnameId) {
                             $isduplicateholiday = $holidaydatesmodel->checkholidayname($holidayname_arr[$i], $groupnameId, '');
                             if (!empty($isduplicateholiday)) {
                                 if ($isduplicateholiday[0]['count'] > 0) {
                                     $msgarray['holiday_name'][$i] = 'Holiday already exist..';
                                     $msgarray['holiday_group'] = $groupnameId;
                                     $errorflag = 'false';
                                 }
                             }
                         }
                     }
                 }
             }
             if ($holidaydate_arr[$i] == '') {
                 $msgarray['date_error'][$i] = 'Please enter date.';
                 $errorflag = 'false';
             }
             if ($groupnameId == '') {
                 $msgarray['groupname'] = 'Please select holiday group.';
                 $errorflag = 'false';
             }
         }
         $msgarray['holidayerrorsize'] = sizeof($holidayname_arr);
     }
     if ($errorflag == 'true') {
         try {
             $actionflag = 1;
             $tableid = '';
             $where = '';
             $date = new Zend_Date();
             for ($i = 0; $i < sizeof($holidayname_arr); $i++) {
                 $data = array('groupid' => $groupnameId, 'holidayname' => trim($holidayname_arr[$i]), 'holidaydate' => sapp_Global::change_date($holidaydate_arr[$i], 'database'), 'holidayyear' => date('Y', strtotime(sapp_Global::change_date($holidaydate_arr[$i], 'database'))), 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                 $Id = $holidaydatesmodel->SaveorUpdateHolidayDates($data, $where);
                 $tableid = $Id;
                 $menuID = HOLIDAYDATES;
                 $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
             }
             $hrWizardModel = new Default_Model_Hrwizard();
             $hrWizardData = $hrWizardModel->getHrwizardData();
             $hrwizardarray = array('holidays' => 2, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             if ($hrWizardData['leavetypes'] == 2 && $hrWizardData['perf_appraisal'] == 2) {
                 $hrwizardarray['iscomplete'] = 2;
             }
             $hrWizardModel->SaveorUpdateHrWizardData($hrwizardarray, '');
             $this->_helper->getHelper("FlashMessenger")->addMessage("Holidays added successfully.");
             $this->_redirect('hrwizard/configureholidays');
         } catch (Exception $e) {
             $msgarray['category_id'] = "Something went wrong, please try again.";
             return $msgarray;
         }
     } else {
         return $msgarray;
     }
 }
예제 #7
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;
 }
예제 #8
0
 public function weekAction()
 {
     $usersModel = new Timemanagement_Model_Users();
     $storage = new Zend_Auth_Storage_Session();
     $now = new DateTime();
     $data = $storage->read();
     $selYrMon = $this->_getParam('selYrMon');
     $week = $this->_getParam('week') != '' ? $this->_getParam('week') : 1;
     $calWeek = $this->_getParam('calWeek');
     $timeFlag = $this->_getParam('flag');
     $selDay = $this->_getParam('day');
     if ($data->id == 1) {
         $this->_redirect('error');
     }
     $selYrMon = $selYrMon != '' ? $selYrMon : $now->format('Y-m');
     $yrMon = explode('-', $selYrMon);
     if ($timeFlag == 'time' && $selYrMon == $now->format('Y-m') && $calWeek == '') {
         $calWeek = strftime('%U', strtotime($selYrMon . '-' . $now->format('d')));
         $startCalWeek = strftime('%U', strtotime($selYrMon . '-01'));
         $week = $calWeek - $startCalWeek + 1;
     }
     $empDoj = $usersModel->getEmployeeDoj($data->id);
     $selYrMonArray = explode('-', $selYrMon);
     if ($selDay != '') {
         $calWeek = strftime('%U', strtotime($selYrMon . '-' . $selDay));
         $startCalWeek = strftime('%U', strtotime($selYrMon . '-01'));
         $week = $calWeek - $startCalWeek + 1;
     } else {
         if ($calWeek == '') {
             $calWeek = strftime('%U', strtotime($selYrMon . '-01'));
         }
     }
     $myTsModel = new Timemanagement_Model_MyTimesheet();
     if ($timeFlag == 'time') {
         $myTsWeekData = $myTsModel->getWeeklyTimesheetData($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     } else {
         $myTsWeekData = $myTsModel->getWeeklyTimesheetData($data->id, $selYrMonArray[0], $selYrMonArray[1], $week, 'view');
     }
     $empHolidaysWeekendsData = $usersModel->getEmployeeHolidaysNWeekends($data->id, $yrMon[0], $yrMon[1], $calWeek);
     $startDate = date("Y-m-d", strtotime("{$yrMon[0]}-W{$calWeek}-7"));
     $endDate = date("Y-m-d", strtotime('next saturday', strtotime($startDate)));
     $empLeavesData = $usersModel->getEmpLeaves($data->id, $startDate, $endDate, 'all');
     $weekNotes = $myTsModel->getWeekNotes($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     $weekDaysStatus = $myTsModel->getWeekDaysStatus($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     $weekDaysProjStatus = $myTsModel->getWeekDaysProjStatus($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     $noOfDaysMonth = date("t", mktime(0, 0, 0, $selYrMonArray[1], 1, $selYrMonArray[0]));
     $cronStartDay = "";
     $cronEndDay = "";
     $mon = $yrMon[1] + 1;
     $yr = $mon == 12 ? $selYrMonArray[0] + 1 : $selYrMonArray[0];
     if ($selDay != '') {
         $this->view->selDay = date("D", strtotime($selYrMon . '-' . $selDay));
     }
     $this->view->empDoj = $empDoj['date_of_joining'];
     $this->view->selYrMon = $selYrMon;
     $this->view->selWeek = $week;
     $this->view->myTsWeekData = $myTsWeekData;
     $this->view->weekNotesData = $weekNotes;
     $this->view->empHolidaysWeekends = $empHolidaysWeekendsData[0];
     $this->view->leavesData = $empLeavesData;
     $this->view->weekDaysStatus = $weekDaysStatus;
     $this->view->weekDaysProjStatus = $weekDaysProjStatus;
     $this->view->cronStartDay = $cronStartDay;
     $this->view->cronEndDay = $cronEndDay;
     //START code to show pending weeks for submit in current month
     $projmodel = new Timemanagement_Model_Projects();
     $prevweeks = $projmodel->getprevmonthweeks(date('Y-m'), date('d'));
     /*Leave request code starts*/
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $leaverequestform = new Default_Form_leaverequest();
     $leaverequestform->setAttrib('action', BASE_URL . 'leaverequest');
     $leaverequestmodel = new Default_Model_Leaverequest();
     $employeeleavetypemodel = new Default_Model_Employeeleavetypes();
     $leavemanagementmodel = new Default_Model_Leavemanagement();
     $usersmodel = new Default_Model_Users();
     $employeesmodel = new Default_Model_Employees();
     $weekdaysmodel = new Default_Model_Weekdays();
     $holidaydatesmodel = new Default_Model_Holidaydates();
     $msgarray = array();
     $dateofjoiningArr = array();
     $holidayDateslistArr = array();
     $rMngr = 'No';
     $availableleaves = '';
     $rep_mang_id = '';
     $employeeemail = '';
     $reportingManageremail = '';
     $week_startday = '';
     $week_endday = '';
     $ishalf_day = '';
     $userfullname = '';
     $reportingmanagerName = '';
     $businessunitid = '';
     $hremailgroup = '';
     /* Start
     		   Queries to fetch user details,reporting manager details and weekend details from users table and employees table
     		*/
     if ($loginUserId != '' && $loginUserId != NULL) {
         $loggedinEmpId = $usersmodel->getUserDetailsByID($loginUserId);
         $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
         if (!empty($loggedInEmployeeDetails)) {
             if ($loggedInEmployeeDetails[0]['date_of_joining'] != '') {
                 $date = new DateTime($loggedInEmployeeDetails[0]['date_of_joining']);
                 $datofjoiningtimestamp = $date->getTimestamp();
                 $dateofjoining = explode("-", $loggedInEmployeeDetails[0]['date_of_joining']);
                 $year = $dateofjoining[0];
                 $month = $dateofjoining[1];
                 $day = $dateofjoining[2];
                 $dateofjoiningArr = array('year' => $year, 'month' => $month, 'day' => $day, 'datetimestamp' => $datofjoiningtimestamp);
             }
             $reportingmanagerId = $loggedInEmployeeDetails[0]['reporting_manager'];
             $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
             $employeeEmploymentStatusId = $loggedInEmployeeDetails[0]['emp_status_id'];
             $employeeHolidayGroupId = $loggedInEmployeeDetails[0]['holiday_group'];
             $reportingManagerDetails = $usersmodel->getUserDetailsByID($reportingmanagerId);
             $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId);
             $employeeemail = $loggedinEmpId[0]['emailaddress'];
             $userfullname = $loggedinEmpId[0]['userfullname'];
             $businessunitid = $loggedInEmployeeDetails[0]['businessunit_id'];
             if (!empty($reportingManagerDetails)) {
                 $leaverequestform->rep_mang_id->setValue($reportingManagerDetails[0]['userfullname']);
                 $reportingManageremail = $reportingManagerDetails[0]['emailaddress'];
                 $reportingmanagerName = $reportingManagerDetails[0]['userfullname'];
                 $rep_mang_id = $reportingManagerDetails[0]['id'];
                 $rMngr = 'Yes';
             } else {
                 $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.';
             }
             if (!empty($weekendDatailsArr)) {
                 $week_startday = $weekendDatailsArr[0]['weekendstartday'];
                 $week_endday = $weekendDatailsArr[0]['weekendday'];
                 $ishalf_day = $weekendDatailsArr[0]['is_halfday'];
                 $isskip_holidays = $weekendDatailsArr[0]['is_skipholidays'];
             } else {
                 $msgarray['from_date'] = 'Leave management options are not configured yet.';
                 $msgarray['to_date'] = 'Leave management options are not configured yet.';
             }
             if ($employeeHolidayGroupId != '' && $employeeHolidayGroupId != NULL) {
                 $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeHolidayGroupId);
             }
             if (defined('LV_HR_' . $businessunitid)) {
                 $hremailgroup = 'hremailgroupexists';
             } else {
                 $hremailgroup = '';
             }
             /* Search Filters */
             $isReportingManagerFlag = 'false';
             $searchRepFlag = 'false';
             $searchMeFlag = 'true';
             $filter = $this->_request->getParam('filter');
             if (!empty($filter)) {
                 if (in_array(2, $filter)) {
                     $searchRepFlag = 'true';
                 }
                 if (in_array(1, $filter)) {
                     $searchMeFlag = 'true';
                 } else {
                     $searchMeFlag = 'false';
                 }
             }
             if ($searchMeFlag == 'true') {
                 $leaverequestdetails = $leaverequestmodel->getUserApprovedOrPendingLeavesData($loginUserId);
             }
             /* Start -For Checking if logged in user is reporting manager */
             $isReportingManager = $employeesmodel->CheckIfReportingManager($loginUserId);
             if (!empty($isReportingManager) && $isReportingManager[0]['count'] > 0) {
                 if ($searchRepFlag == 'true') {
                     $managerrequestdetails = $leaverequestmodel->getManagerApprovedOrPendingLeavesData($loginUserId);
                 }
                 $isReportingManagerFlag = 'true';
             }
             /* End */
             $this->view->userfullname = $userfullname;
             $this->view->loggedinEmpId = $loggedinEmpId;
             $this->view->weekendDatailsArr = $weekendDatailsArr;
             $this->view->reportingManagerDetails = $reportingManagerDetails;
             $this->view->rMngr = $rMngr;
             $this->view->hremailgroup = $hremailgroup;
             $this->view->dateofjoiningArr = $dateofjoiningArr;
             $this->view->leaverequestdetails = !empty($leaverequestdetails) ? $leaverequestdetails : array();
             $this->view->holidayDateslistArr = $holidayDateslistArr;
             $this->view->managerrequestdetails = !empty($managerrequestdetails) ? $managerrequestdetails : array();
             $this->view->isReportingManagerFlag = $isReportingManagerFlag;
             $this->view->searchRepFlag = $searchRepFlag;
             $this->view->searchMeFlag = $searchMeFlag;
         } else {
             $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.';
             $msgarray['from_date'] = 'Leave management options are not configured yet.';
             $msgarray['to_date'] = 'Leave management options are not configured yet.';
         }
     }
     /* End */
     /* 
      Start
      Query to fetch and build multioption for Leavetype dropdown
     */
     $leavetype = $employeeleavetypemodel->getactiveleavetype();
     if (!empty($leavetype)) {
         if (sizeof($leavetype) > 0) {
             foreach ($leavetype as $leavetyperes) {
                 $leaverequestform->leavetypeid->addMultiOption($leavetyperes['id'] . '!@#' . $leavetyperes['numberofdays'] . '!@#' . utf8_encode($leavetyperes['leavetype']), utf8_encode($leavetyperes['leavetype']));
             }
         }
     } else {
         $msgarray['leavetypeid'] = ' Leave types are not configured yet.';
     }
     $this->view->leavetype = $leavetype;
     /* End */
     /*
     START
     Query to get the number of available leaves for the employee 
     */
     $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId);
     if (!empty($getavailbaleleaves)) {
         $leaverequestform->no_of_days->setValue($getavailbaleleaves[0]['remainingleaves']);
         $availableleaves = $getavailbaleleaves[0]['remainingleaves'];
     } else {
         $msgarray['no_of_days'] = 'You have not been allotted leaves for this financial year. Please contact your HR.';
     }
     $this->view->getavailbaleleaves = $getavailbaleleaves;
     /* END */
     $this->view->form = $leaverequestform;
     $this->view->msgarray = $msgarray;
     $this->view->loginUserId = $loginUserId;
     $this->view->messages = $this->_helper->flashMessenger->getMessages();
     /*leave request code ends*/
     if ($timeFlag != '') {
         $this->_helper->viewRenderer('entertime');
     }
 }
 public function deleteAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $id = $this->_request->getParam('objid');
     $messages['message'] = '';
     $messages['msgtype'] = '';
     $actionflag = 3;
     if ($id) {
         $holidaygroupsmodel = new Default_Model_Holidaygroups();
         $holidayedatesmodel = new Default_Model_Holidaydates();
         $data = array('isactive' => 0, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         $where = array('id=?' => $id);
         $Id = $holidaygroupsmodel->SaveorUpdateGroupData($data, $where);
         /* deleteing dates of the group */
         $childdata = array('isactive' => 0);
         $childwhere = array('groupid=?' => $id);
         $holidayedatesmodel->SaveorUpdateHolidayDates($childdata, $childwhere);
         /* END */
         if ($Id == 'update') {
             $menuID = HOLIDAYGROUPS;
             $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $id);
             $messages['message'] = 'Holiday group deleted successfully.';
             $messages['msgtype'] = 'success';
         } else {
             $messages['message'] = 'Holiday group cannot be deleted.';
             $messages['msgtype'] = 'error';
         }
     } else {
         $messages['message'] = 'Holiday group cannot be deleted.';
         $messages['msgtype'] = 'error';
     }
     $this->_helper->json($messages);
 }
예제 #10
0
 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();
         }
     }
 }