/** * This will fetch all the default task details based on the search paramerters passed with pagination. * * @param string $sort * @param string $by * @param number $perPage * @param number $pageNo * @param JSON $searchData * @param string $call * @param string $dashboardcall * @param string $a * @param string $b * @param string $c * @param string $d * * @return array */ public function getGrid($sort, $by, $perPage, $pageNo, $searchData, $call, $dashboardcall, $a = '', $b = '', $c = '', $d = '') { $searchQuery = ''; $searchArray = array(); $data = array(); $having = ''; if ($searchData != '' && $searchData != 'undefined') { $searchValues = json_decode($searchData); foreach ($searchValues as $key => $val) { if ($key == 'actual_hrs') { $having = " " . $key . " like '%" . $val . "%' "; } else { $searchQuery .= " " . $key . " like '%" . $val . "%' AND "; } $searchArray[$key] = $val; } $searchQuery = rtrim($searchQuery, " AND"); } $objName = 'projecttasks'; $projectModel = new Timemanagement_Model_Projects(); $projectData = $projectModel->getSingleProjectData($a); $tableFields = array('task' => 'Name', 'actual_hrs' => 'Actual Hours', 'viewresources' => ''); $tablecontent = $this->getProjectTaskData($sort, $by, $pageNo, $perPage, $searchQuery, $a, $having); $dataTmp = array('sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'menuName' => 'Tasks', 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'call' => $call, 'dashboardcall' => $dashboardcall); return $dataTmp; }
/** * This will fetch all the default task details based on the search paramerters passed with pagination. * * @param string $sort * @param string $by * @param number $perPage * @param number $pageNo * @param JSON $searchData * @param string $call * @param string $dashboardcall * @param string $a * @param string $b * @param string $c * @param string $d * * @return array */ public function getGrid($sort, $by, $perPage, $pageNo, $searchData, $call, $dashboardcall, $a = '', $loginUserId = '', $tm_role = '', $d = '') { $searchQuery = $having = ''; $searchArray = array(); $data = array(); if ($searchData != '' && $searchData != 'undefined') { $searchValues = json_decode($searchData); foreach ($searchValues as $key => $val) { if ($key == 'tm_role') { $having = " tm_role ='" . $val . "' "; } else { if ($key == 'empname') { $searchQuery .= " e.userfullname like'%" . $val . "%' AND "; } else { $searchQuery .= " " . $key . " like '%" . $val . "%' AND "; } } $searchArray[$key] = $val; } $searchQuery = rtrim($searchQuery, " AND"); } $objName = 'projectresources'; $projectModel = new Timemanagement_Model_Projects(); $projectData = $projectModel->getSingleProjectData($a); $tableFields = array('empname' => 'Name', 'tm_role' => 'Role', 'viewtasks' => ''); $tablecontent = $this->getProjectResourcesGridData($sort, $by, $pageNo, $perPage, $searchQuery, $a, $loginUserId, $having); $dataTmp = array('sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'menuName' => 'Resources', 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'call' => $call, 'dashboardcall' => $dashboardcall, 'search_filters' => array('tm_role' => array('type' => 'select', 'filter_data' => array('' => 'All', 'Manager' => 'Manager', 'Employee' => 'Employee')))); return $dataTmp; }
public function viewAction() { $auth = Zend_Auth::getInstance(); $loginUserId = 0; if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; } $id = $this->getRequest()->getParam('id'); $callval = $this->getRequest()->getParam('call'); if ($callval == 'ajaxcall') { $this->_helper->layout->disableLayout(); } $objName = 'employeeprojects'; $projectModel = new Timemanagement_Model_Projects(); $projectTaskModel = new Timemanagement_Model_Projecttasks(); $projectResourcesModel = new Timemanagement_Model_Projectresources(); try { if (is_numeric($id) && $id > 0) { $data = $projectModel->getSingleProjectData($id); if (!empty($data) && $data != "norows") { $data_arr = array(); $call = $this->_getParam('call'); if ($call == 'ajaxcall') { $this->_helper->layout->disableLayout(); } $view = Zend_Layout::getMvcInstance()->getView(); $objname = $this->_getParam('objname'); $refresh = $this->_getParam('refresh'); $dashboardcall = $this->_getParam('dashboardcall'); //$data = array(); $searchQuery = ''; $searchArray = array(); $tablecontent = ''; if ($refresh == 'refresh') { $sort = 'DESC'; $by = 'modified'; $perPage = DASHBOARD_PERPAGE; $pageNo = 1; $searchData = ''; } else { $sort = $this->_getParam('sort') != '' ? $this->_getParam('sort') : 'DESC'; $by = $this->_getParam('by') != '' ? $this->_getParam('by') : 'tpe.modified'; $perPage = $this->_getParam('per_page', DASHBOARD_PERPAGE); $pageNo = $this->_getParam('page', 1); $searchData = $this->_getParam('searchData'); } $dataTmp = $projectTaskModel->getEmpTaskGrid($sort, $by, $perPage, $pageNo, $searchData, $call, $dashboardcall, $id, $loginUserId); $dataTmp['emptyRoles'] = ''; $dataTmp['objectname'] = 'employeeprojects'; $dataTmp['dataemptyFlag'] = ''; $dataTmp['menuName'] = 'Tasks'; $dataTmp['dashboardcall'] = 'Yes'; $dataTmp['projectId'] = $id; array_push($data_arr, $dataTmp); $this->view->data_arr = $data_arr; $this->view->controllername = $objName; $this->view->data = $data; $this->view->id = $id; $this->view->ermsg = ''; } else { $this->view->ermsg = 'norecord'; } } else { $this->view->ermsg = 'nodata'; } } catch (Exception $e) { $this->view->ermsg = 'nodata'; } }
public function getprojectbyclientidAction() { $id = $this->getRequest()->getParam('clientID'); $projectsModel = new Timemanagement_Model_Projects(); $projectsList = $projectsModel->getProjectListByClientID($id); $out = array_values($projectsList); $this->_helper->json(json_encode($out)); }
public function addresourcesAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; $loginuserRole = $auth->getStorage()->read()->emprole; $loginuserGroup = $auth->getStorage()->read()->group_id; $projectResourcesModel = new Timemanagement_Model_Projectresources(); if ($this->getRequest()->getPost()) { $type = $this->_getParam('type'); $projectId = $this->_getParam('projectId'); $projRes = $this->_getParam('projRes'); $projRes_arr = array(); if (isset($projRes) && $projRes != '') { $projRes = trim($projRes, ","); $projRes_arr = explode(",", $projRes); } foreach ($projRes_arr as $newres) { $projectResourceData = array('project_id' => trim($projectId), 'emp_id' => trim($newres), 'created_by' => $loginUserId, 'created' => gmdate("Y-m-d H:i:s"), 'is_active' => 1, 'modified_by' => $loginUserId, 'modified' => gmdate("Y-m-d H:i:s")); $result = $projectResourcesModel->SaveorUpdateProjectResourceData($projectResourceData, ''); } $projectResourcesData = $projectData = array(); try { if (is_numeric($projectId) && $projectId > 0) { $projectModel = new Timemanagement_Model_Projects(); $projectData = $projectModel->getSingleProjectData($projectId); $projectResourcesData = $projectResourcesModel->getProjectResourcesData($projectId); if ($projectResourcesData == 'norows') { $this->view->rowexist = "norows"; } else { if (!empty($projectResourcesData)) { $this->view->rowexist = "rows"; } } } } catch (Exception $e) { $this->view->ermsg = 'nodata'; } $this->view->projectData = $projectData; $this->view->projectResourcesData = $projectResourcesData; } } }
public function checkempforprojectsAction() { if ($this->getRequest()->getPost()) { $projectId = $this->_request->getParam('projectId'); $projectModel = new Timemanagement_Model_Projects(); $checkISAssigned = $projectModel->chkProjAssigned($projectId); if ($checkISAssigned > 0) { $this->_helper->json(array('exists' => 'yes')); } else { $this->_helper->json(array('exists' => 'no')); } } }
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'); } }