Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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';
     }
 }
Esempio n. 4
0
 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;
         }
     }
 }
Esempio n. 6
0
 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'));
         }
     }
 }
Esempio n. 7
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');
     }
 }