Example #1
0
 public function getdepartmentsAction()
 {
     $ajaxContext = $this->_helper->getHelper('AjaxContext');
     $ajaxContext->addActionContext('getdepartments', 'html')->initContext();
     $businessunit_id = $this->_request->getParam('business_id');
     $con = $this->_request->getParam('con');
     $employeeform = new Default_Form_employee();
     $leavemanagementform = new Default_Form_leavemanagement();
     $flag = '';
     $departmentsmodel = new Default_Model_Departments();
     $appraisalconfigmodel = new Default_Model_Appraisalconfig();
     if ($con == 'leavemanagement') {
         $leavemanagementmodel = new Default_Model_Leavemanagement();
         $departmentidsArr = $leavemanagementmodel->getActiveDepartmentIds();
         $depatrmentidstr = '';
         $newarr = array();
         if (!empty($departmentidsArr)) {
             $where = '';
             for ($i = 0; $i < sizeof($departmentidsArr); $i++) {
                 $newarr1[] = array_push($newarr, $departmentidsArr[$i]['deptid']);
             }
             $depatrmentidstr = implode(",", $newarr);
             foreach ($newarr as $deparr) {
                 $where .= " id!= {$deparr} AND ";
             }
             $where = trim($where, " AND");
             $querystring = "Select d.id,d.deptname from main_departments as d where d.unitid={$businessunit_id} and d.isactive=1 and {$where}  ";
             $querystring .= "  order by d.deptname";
             $uniquedepartmentids = $departmentsmodel->getUniqueDepartments($querystring);
             if (empty($uniquedepartmentids)) {
                 $flag = 'true';
             }
             $this->view->uniquedepartmentids = $uniquedepartmentids;
         } else {
             $departmentlistArr = $departmentsmodel->getDepartmentList($businessunit_id);
             if (empty($departmentlistArr)) {
                 $flag = 'true';
             }
             $this->view->departmentlistArr = $departmentlistArr;
         }
     } else {
         if ($con == 'appraisal_config') {
             $departmentlistArr = $appraisalconfigmodel->getExistDepartments($businessunit_id);
             $dept_arr = array();
             foreach ($departmentlistArr as $dept) {
                 $deptid = $dept['department_id'];
                 array_push($dept_arr, $deptid);
             }
             $dept_arr = array_filter($dept_arr);
             $dept_arr = array_unique($dept_arr);
             $dept_list = implode(',', $dept_arr);
             $departmentlistArr = $appraisalconfigmodel->getDepartments($businessunit_id, $dept_list);
             if (empty($departmentlistArr)) {
                 $flag = 'true';
             }
             $this->view->departmentlistArr = $departmentlistArr;
         } else {
             $departmentlistArr = $departmentsmodel->getDepartmentList($businessunit_id);
             if (empty($departmentlistArr)) {
                 $flag = 'true';
             }
             $this->view->departmentlistArr = $departmentlistArr;
         }
     }
     $this->view->employeeform = $employeeform;
     $this->view->leavemanagementform = $leavemanagementform;
     $this->view->flag = $flag;
     if ($con != '') {
         $this->view->con = $con;
     }
 }
 public function submitmanagerAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
         $loginuserFullname = $auth->getStorage()->read()->userfullname;
         $loginuserEmail = $auth->getStorage()->read()->emailaddress;
         $loginUserEmpId = $auth->getStorage()->read()->employeeId;
     }
     $post_values = $this->getRequest()->getPost();
     $result = array('status' => 'fail', 'msg' => 'Something went wrong, please try again.');
     $questions = '';
     if (count($post_values) > 0) {
         $appraisal_id = $post_values['appraisal_id'];
         $manager_id = $post_values['manager_id'];
         if ($appraisal_id != '' && $manager_id != '') {
             $appraisal_id = sapp_Global::_decrypt($appraisal_id);
             $manager_id = sapp_Global::_decrypt($manager_id);
             $trDb = Zend_Db_Table::getDefaultAdapter();
             $trDb->beginTransaction();
             try {
                 $app_init_model = new Default_Model_Appraisalinit();
                 $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
                 $qsdataArr = $appraisalPrivMainModel->getAppraisalQuestionsMain($appraisal_id);
                 if (!empty($qsdataArr)) {
                     foreach ($qsdataArr as $qs) {
                         if (!empty($qs['manager_qs'])) {
                             $questions .= $qs['manager_qs'] . ',';
                         }
                     }
                     $questions = rtrim($questions, ',');
                 }
                 $questions = implode(',', array_keys(array_flip(explode(',', $questions))));
                 $submit_manager = $app_init_model->submitmanager($appraisal_id, $manager_id);
                 sapp_PerformanceHelper::update_QsParmas_Allemps($questions, '');
                 /*
                  *   Logs Storing
                  */
                 $actionflag = '';
                 $tableid = '';
                 $menuID = APPRAISAL_MANAGER;
                 $actionflag = 1;
                 sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
                 /*
                  *  Logs storing ends
                  */
                 //to get initialization details using appraisal Id for Business Unit,Department,To Year
                 $appraisalratingsmodel = new Default_Model_Appraisalratings();
                 $appraisal_details = $appraisalratingsmodel->getappdata($appraisal_id);
                 if (!empty($appraisal_details)) {
                     $bunit = $appraisal_details['unitname'];
                     $dept = $appraisal_details['deptname'];
                     $to_year = $appraisal_details['to_year'];
                 }
                 /** Start
                  * Sending Mails to employees
                  */
                 $appraisalconfigmodel = new Default_Model_Appraisalconfig();
                 $app_manager_model = new Default_Model_Appraisalmanager();
                 $getBunit_dept = $app_manager_model->getBunitDept($appraisal_id);
                 if (!empty($getBunit_dept)) {
                     $unitID = $getBunit_dept['businessunit_id'];
                     $deptID = $getBunit_dept['department_id'];
                 }
                 $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($unitID, $deptID);
                 $dept_str = $dept == '' ? " " : "and <b>{$dept}</b> department";
                 $emp_id_str = $loginuserRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
                 $empArr = array();
                 if (!empty($employeeDetailsArr)) {
                     $empArrList = '';
                     foreach ($employeeDetailsArr as $emp) {
                         array_push($empArr, $emp['emailaddress']);
                     }
                 }
                 // Sending mail to HR
                 $options['subject'] = APPLICATION_NAME . ': Manager Appraisal Submitted.';
                 $options['header'] = 'Performance Appraisal : Manager Appraisal ' . $to_year;
                 $options['toEmail'] = $loginuserEmail;
                 $options['bcc'] = $empArr;
                 $options['toEmail'] = $loginuserEmail;
                 $options['toName'] = $loginuserFullname;
                 $options['message'] = "<div style='padding: 0; text-align: left; font-size:14px; font-family:Arial, Helvetica, sans-serif;'>\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span style='color:#3b3b3b;'>Hi,</span><br />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 0 0;color:#3b3b3b;'> " . $loginuserFullname . $emp_id_str . " has submitted the Manager appraisal form for the year <b>{$to_year}</b> for <b>{$bunit}</b> business unit {$dept_str} </div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 10px 0;'>Please <a href=" . BASE_URL . " target='_blank' style='color:#b3512f;'>click here</a> to login  to your <b>" . APPLICATION_NAME . "</b> account and check the details.</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div> ";
                 $mail_id = sapp_Global::_sendEmail($options);
                 /**
                  * End
                  */
                 $trDb->commit();
                 $result['status'] = 'success';
                 $result['msg'] = "Submitted successfully";
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization Submitted successfully. "));
             } catch (Exception $e) {
                 $trDb->rollBack();
                 $result['status'] = 'error';
                 $result['msg'] = $e->getMessage();
             }
         }
     }
     $this->_helper->json($result);
 }
 public function deleteAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $id = $this->_request->getParam('objid');
     $messages['message'] = '';
     $messages['msgtype'] = '';
     $count = 0;
     $actionflag = 3;
     if ($id) {
         $model = new Default_Model_Appraisalconfig();
         $init_cnt = $model->check_delete($id);
         if ($init_cnt == 0) {
             $data = array('isactive' => 0, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId);
             $where = array('id=?' => $id);
             $Id = $model->SaveorUpdateAppraisalConfigData($data, $where);
             if ($Id == 'update') {
                 $result = sapp_Global::logManager(APPRAISAL_SETTINGS, $actionflag, $loginUserId, $id);
                 $messages['message'] = 'Appraisal setting deleted successfully.';
                 $messages['msgtype'] = 'success';
             } else {
                 $messages['message'] = 'Appraisal setting cannot be deleted.';
                 $messages['msgtype'] = 'error';
             }
         } else {
             $messages['message'] = 'An active appraisal process exists for the selected appraisal setting. Appraisal Setting cannot be deleted.';
             $messages['msgtype'] = 'error';
         }
     } else {
         $messages['message'] = 'Appraisal setting cannot be deleted.';
         $messages['msgtype'] = 'error';
     }
     $this->_helper->json($messages);
 }
 public function getbunitimplementationAction()
 {
     $ajaxContext = $this->_helper->getHelper('AjaxContext');
     $ajaxContext->addActionContext('getbunitimplementation', 'json')->initContext();
     $businessunitsmodel = new Default_Model_Businessunits();
     $appraisalconfigmodel = new Default_Model_Appraisalconfig();
     $bunitid = $this->_request->getParam('bunitid');
     $result = array();
     if ($bunitid != '') {
         $pendingRequestdata = $appraisalconfigmodel->getPendingAppraisalConfigData($bunitid);
         if (!empty($pendingRequestdata)) {
             $result['count'] = $pendingRequestdata[0]['count'];
         }
         $implementationdata = $businessunitsmodel->getSingleUnitData($bunitid);
         if (!empty($implementationdata)) {
             $result['result'] = $implementationdata['service_desk_flag'];
         }
     }
     $this->_helper->_json($result);
 }
 public function save($appraisalratingsform)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginRole = $auth->getStorage()->read()->emprole;
         $loginGroup = $auth->getStorage()->read()->group_id;
         $businessUnit = $auth->getStorage()->read()->businessunit_id;
         $department = $auth->getStorage()->read()->department_id;
     }
     $appraisalratingsmodel = new Default_Model_Appraisalratings();
     $app_init_model = new Default_Model_Appraisalinit();
     if ($loginRole != SUPERADMINROLE && $loginGroup != MANAGEMENT_GROUP) {
         $businessUnit = $businessUnit;
         $department = $department;
     } else {
         $businessUnit = $this->_request->getParam('businessunit');
         $department = $this->_request->getParam('departmentid');
     }
     //$res = $appraisalratingsmodel->checkAccessAddratings($businessUnit,$department);
     $res = $app_init_model->check_per_implmentation($businessUnit, $department);
     $implementation = $res['performance_app_flag'];
     $rating_type = $res['appraisal_ratings'];
     $configured_id = $res['id'];
     $msgarray = array();
     $resultArr = array();
     $errorflag = "true";
     $id = $this->_request->getParam('id');
     $appraisalid = $this->_request->getParam('appraisalid');
     // $update_id = $this->_request->getParam('update_id');
     $appraisal_ratings = $rating_type == 1 ? 5 : 10;
     $db = Zend_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     $actionflag = '';
     try {
         if ($id != '') {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . ($i + 1));
                 $update_id = $this->_request->getParam('update_id_' . ($i + 1));
                 /* for Update record  */
                 $where = array('id=?' => $update_id);
                 $actionflag = 2;
                 $menumodel = new Default_Model_Menu();
                 $tableid = '';
                 $data = array('rating_text' => $rating_text, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 //$where = 'isactive=1';
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         } else {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . $i);
                 $menumodel = new Default_Model_Menu();
                 $tableid = '';
                 $data = array('pa_configured_id' => $configured_id, 'pa_initialization_id' => $appraisalid, 'rating_type' => $rating_type, 'rating_value' => $i + 1, 'rating_text' => $rating_text, 'createdby_role' => $loginRole, 'createdby_group' => $loginGroup, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                 $where = '';
                 $actionflag = 1;
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         }
         if ($Id == 'update') {
             $tableid = $id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings updated successfully."));
         } else {
             $tableid = $Id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings added successfully."));
         }
         $menuidArr = $menumodel->getMenuObjID('/appraisalratings');
         $menuID = $menuidArr[0]['id'];
         $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
         /** Start
          * Sending Mails to employees
          */
         $appraisalconfigmodel = new Default_Model_Appraisalconfig();
         if ($implementation == 0) {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, $department);
         } else {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, '');
         }
         $msg_add_update = $Id == 'update' ? "updated" : "added";
         //Sending mail to Super admin
         $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Ratings ' . ucfirst($msg_add_update);
         $options['header'] = 'Performance Appraisal Configuration';
         $options['toEmail'] = SUPERADMIN_EMAIL;
         $options['toName'] = 'Super Admin';
         $options['message'] = 'Dear Super Admin, performance appraisal configuration ' . $msg_add_update;
         // $mail_id =  sapp_Global::_sendEmail($options);
         // Sending mail to others
         if (!empty($employeeDetailsArr)) {
             foreach ($employeeDetailsArr as $emp) {
                 $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Settings Added.';
                 $options['header'] = 'Performance Appraisal Configuration';
                 $options['toEmail'] = $emp['emailaddress'];
                 $options['toName'] = $emp['userfullname'];
                 $options['message'] = 'Dear ' . $emp['userfullname'] . ', performance appraisal configuration ' . $msg_add_update;
                 //  $mail_id =  sapp_Global::_sendEmail($options);
             }
         }
         /**
          * End
          */
         $db->commit();
         $this->_redirect('appraisalratings');
         //throw new Exception("Some error message");
     } catch (Exception $e) {
         $db->rollBack();
         echo $e->getMessage();
         echo $e->getTraceAsString();
         return $msgarray;
     }
 }
 public function ffinitialize($appInitId, $tableid, $enable_to, $check)
 {
     if ($tableid) {
         $auth = Zend_Auth::getInstance();
         if ($auth->hasIdentity()) {
             $loginUserId = $auth->getStorage()->read()->id;
             $loginuserRole = $auth->getStorage()->read()->emprole;
             $loginuserGroup = $auth->getStorage()->read()->group_id;
             $loginUserEmpId = $auth->getStorage()->read()->employeeId;
             $loginUserfullname = $auth->getStorage()->read()->userfullname;
         }
         $ffEmpRatingsModel = new Default_Model_Feedforwardemployeeratings();
         $feedforwardInitModel = new Default_Model_Feedforwardinit();
         $appraisalEmpsData = $feedforwardInitModel->getEmpsFromAppEmpRat($appInitId);
         $appEmpIDs = array();
         if (sizeof($appraisalEmpsData) > 0) {
             foreach ($appraisalEmpsData as $appE) {
                 $appEmpIDs[] = $appE['employee_id'];
                 $where = '';
                 $data = array('ff_initialization_id' => $tableid, 'question_ids' => $check != '' ? implode(',', $check) : NULL, 'manager_id' => $appE['line_manager_1'], 'employee_id' => $appE['employee_id'], 'ff_status' => 1, 'createdby' => $loginUserId, 'createdby_role' => $loginuserRole, 'createdby_group' => $loginuserGroup, 'createddate' => gmdate("Y-m-d H:i:s"));
                 $ffEmpRatingsModel->SaveorUpdateFFEmpRatingsData($data, $where);
             }
         }
         if (sizeof($appEmpIDs) > 0 && $enable_to == 1) {
             $appEmpIDsCsv = implode(',', $appEmpIDs);
             $allEmpsData = $feedforwardInitModel->getEmpsFromSummary($appEmpIDsCsv);
             if (sizeof($allEmpsData) > 0) {
                 foreach ($allEmpsData as $allE) {
                     $where1 = '';
                     $data1 = array('ff_initialization_id' => $tableid, 'question_ids' => $check != '' ? implode(',', $check) : NULL, 'manager_id' => $allE['reporting_manager'], 'employee_id' => $allE['user_id'], 'ff_status' => 1, 'createdby' => $loginUserId, 'createdby_role' => $loginuserRole, 'createdby_group' => $loginuserGroup, 'createddate' => gmdate("Y-m-d H:i:s"));
                     $ffEmpRatingsModel->SaveorUpdateFFEmpRatingsData($data1, $where1);
                 }
             }
         }
         $actionflag = 1;
         $tableid = '';
         $menuID = INITIALIZE_FEEDFORWARD;
         $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
         /** Start
          * Sending Mails to Super Admin,Management,HR
          */
         $appraisalratingsmodel = new Default_Model_Appraisalratings();
         $appraisalconfigmodel = new Default_Model_Appraisalconfig();
         //to get initialization details using appraisal Id for Business Unit,Department,To Year
         $appraisal_details = $appraisalratingsmodel->getappdata($appInitId);
         if (!empty($appraisal_details)) {
             $businessUnit = $appraisal_details['businessunit_id'];
             $department = $appraisal_details['deptid'];
             $bunit = $appraisal_details['unitname'];
             $dept = $appraisal_details['deptname'];
             $to_year = $appraisal_details['to_year'];
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, $department);
             if ($enable_to == 1) {
                 $empforFF = $feedforwardInitModel->getEmpIdforFF($businessUnit, $department);
             } else {
                 $empforFF = $feedforwardInitModel->getAppemployeeIDs($appInitId);
             }
             $ffEmpArr = array();
             $ffEmpList = '';
             if (!empty($empforFF)) {
                 foreach ($empforFF as $emp) {
                     array_push($ffEmpArr, $emp['employeeId']);
                 }
                 $ffEmpList = implode(',', $ffEmpArr);
             }
             $ffEmpEmailArr = array();
             $ffemployeeDetailsArr = $feedforwardInitModel->getUserDetailsByIds($ffEmpList);
             if (!empty($ffemployeeDetailsArr)) {
                 foreach ($ffemployeeDetailsArr as $empFF) {
                     array_push($ffEmpEmailArr, $empFF['emailaddress']);
                 }
             }
             $dept_str = $dept == '' ? " " : "and department <b>{$dept}</b> ";
             $emp_id_str = $loginuserRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
             //Preparing Employee array for Bcc
             $empArr = array();
             $total_emp_arr = array();
             if (!empty($employeeDetailsArr)) {
                 $empArrList = '';
                 foreach ($employeeDetailsArr as $emp) {
                     array_push($empArr, $emp['emailaddress']);
                 }
             }
             $total_emp_arr = array_merge($empArr, $ffEmpEmailArr);
             //Sending mail to Super admin,HR,Management
             $options['subject'] = APPLICATION_NAME . ': Feedforward Initialization';
             $options['header'] = 'Feedforward Initialization : ' . $to_year;
             $options['toEmail'] = SUPERADMIN_EMAIL;
             $options['toName'] = 'Super Admin';
             $options['bcc'] = $total_emp_arr;
             $options['message'] = "<div style='padding: 0; text-align: left; font-size:14px; font-family:Arial, Helvetica, sans-serif;'>\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<span style='color:#3b3b3b;'>Hi,</span><br />\n\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 0 0;color:#3b3b3b;'>Feedforward process have been initialized for the year <b>{$to_year}</b> for business unit <b>{$bunit}</b>  {$dept_str} by " . $loginUserfullname . $emp_id_str . ". </div>\n\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 10px 0;'>Please <a href=" . BASE_URL . " target='_blank' style='color:#b3512f;'>click here</a> to login  to your <b>" . APPLICATION_NAME . "</b> account and check the details.</div>\n\t\t\t\t\t\t\t\t\t\t</div> ";
             //'Dear Super Admin, performance appraisal Initialized '.$mail_str;
             $mail_id = sapp_Global::_sendEmail($options);
         }
     }
 }
 public function initializeemployeeratings($appraisalid, $initialize_Arr)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
         $loginuserArr = array('loginuserid' => $loginUserId, 'loginuserrole' => $loginuserRole, 'loginusergroup' => $loginuserGroup);
         $loginUserEmpId = $auth->getStorage()->read()->employeeId;
         $loginUserfullname = $auth->getStorage()->read()->userfullname;
     }
     $appraisalinitmodel = new Default_Model_Appraisalinit();
     $appraisalqsmodel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     //$appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $app_manager_model = new Default_Model_Appraisalmanager();
     $usersmodel = new Default_Model_Users();
     $departmentsmodel = new Default_Model_Departments();
     $announcementsModel = new Default_Model_Announcements();
     $deptids = '';
     $title = 'Performance Appraisal';
     $description = 'Performance appraisal initialized';
     $result = array();
     $id = '';
     if ($appraisalid) {
         $trDb = Zend_Db_Table::getDefaultAdapter();
         $trDb->beginTransaction();
         try {
             /** Start
              * Updating initialization table
              */
             //$data = $appraisalinitmodel->getConfigData($appraisalid);
             //$appraisaldata = $data[0];
             if (!empty($initialize_Arr)) {
                 $init_Arr = array('enable_step' => $initialize_Arr['enable_step'], 'managers_due_date' => sapp_Global::change_date($initialize_Arr['managers_due_date'], 'database'), 'employees_due_date' => sapp_Global::change_date($initialize_Arr['employees_due_date'], 'database'), 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 $where = array('id=?' => $appraisalid);
                 $Id = $appraisalinitmodel->SaveorUpdateAppraisalInitData($init_Arr, $where);
             }
             if ($initialize_Arr['enable_step'] == 2) {
                 /**
                  * Start 
                  * Inserting or Updating employee ratings table when enabled to employees
                  * If record exists then updating else inserting
                  */
                 $employeeidArr = $appraisalqsmodel->getemployeeIDs($appraisalid);
                 if (!empty($employeeidArr)) {
                     foreach ($employeeidArr as $emp) {
                         $emprating_Arr = array('pa_initialization_id' => $appraisalid, 'employee_id' => $emp['employee_id'], 'line_manager_1' => $emp['line_manager_1'] != '' ? $emp['line_manager_1'] : NULL, 'line_manager_2' => $emp['line_manager_2'] != '' ? $emp['line_manager_2'] : NULL, 'line_manager_3' => $emp['line_manager_3'] != '' ? $emp['line_manager_3'] : NULL, 'line_manager_4' => $emp['line_manager_4'] != '' ? $emp['line_manager_4'] : NULL, 'line_manager_5' => $emp['line_manager_5'] != '' ? $emp['line_manager_5'] : NULL, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                         $employeeexistArr = $appraisalempratingsmodel->checkEmployeeExists($appraisalid, $emp['employee_id']);
                         if ($employeeexistArr[0]['empcount'] > 0) {
                             $qwhere = " employee_id = '" . $emp['employee_id'] . "' and pa_initialization_id='" . $appraisalid . "' and isactive=1";
                         } else {
                             $emprating_Arr['createdby'] = $loginUserId;
                             $emprating_Arr['createdby_role'] = $loginuserRole;
                             $emprating_Arr['createdby_group'] = $loginuserGroup;
                             $emprating_Arr['createddate'] = gmdate("Y-m-d H:i:s");
                             $qwhere = '';
                         }
                         $appraisalempratingsmodel->SaveorUpdateAppraisalSkillsData($emprating_Arr, $qwhere);
                         /**
                          * End
                          */
                     }
                 }
             }
             //enable_step=2 scenario
             /**
             					End
             */
             //Logs storing
             $actionflag = 1;
             $tableid = '';
             $menuID = INITIALIZE_APPRAISAL;
             sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
             /**
              * Sending mails to managers OR employees based on enable step.
              */
             $app_manager_model = new Default_Model_Appraisalmanager();
             $appraisalratingsmodel = new Default_Model_Appraisalratings();
             //to get initialization details using appraisal Id for Business Unit,Department,To Year
             $appraisal_details = $appraisalratingsmodel->getappdata($appraisalid);
             if (!empty($appraisal_details)) {
                 $businessUnit = $appraisal_details['businessunit_id'];
                 $department = $appraisal_details['deptid'];
                 $bunit = $appraisal_details['unitname'];
                 $dept = $appraisal_details['deptname'];
                 $to_year = $appraisal_details['to_year'];
                 $appraisalconfigmodel = new Default_Model_Appraisalconfig();
                 if ($department != '') {
                     $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, $department);
                 } else {
                     $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, '');
                 }
                 $dept_str = $dept == '' ? " " : "and department <b>{$dept}</b> ";
                 $emp_id_str = $loginuserRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
                 //Preparing Employee array for Bcc
                 $empArr = array();
                 if (!empty($employeeDetailsArr)) {
                     $empArrList = '';
                     foreach ($employeeDetailsArr as $emp) {
                         array_push($empArr, $emp['emailaddress']);
                     }
                 }
                 $mail_str = $initialize_Arr['enable_step'] == 1 ? 'to managers' : 'to employees';
                 $empmgrArr = array();
                 if ($initialize_Arr['enable_step'] == 1) {
                     $getLine1ManagerId = $appraisalqsmodel->getLine1ManagerIdMain($appraisalid);
                     foreach ($getLine1ManagerId as $mgr) {
                         array_push($empmgrArr, $mgr['emailaddress']);
                     }
                 } else {
                     $empIdArr = array();
                     $empIdList = '';
                     $employeeidArr = $appraisalqsmodel->getemployeeIDs($appraisalid);
                     //fetching Employee Ids
                     if (!empty($employeeidArr)) {
                         foreach ($employeeidArr as $emp) {
                             array_push($empIdArr, $emp['employee_id']);
                             array_push($empIdArr, $emp['line_manager_1']);
                         }
                         $empIdList = implode(',', $empIdArr);
                         //Preparing Employee Id List
                         $empDetailsArr = $app_manager_model->getUserDetailsByEmpID($empIdList);
                         //Fetching employee details
                         if (!empty($empDetailsArr)) {
                             foreach ($empDetailsArr as $emp) {
                                 array_push($empmgrArr, $emp['emailaddress']);
                                 //preparing Bcc array
                             }
                         }
                     }
                 }
                 $totalArr = array_merge($empArr, $empmgrArr);
                 //Sending mail to Super admin,HR,Management
                 $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Initialization';
                 $options['header'] = 'Performance Appraisal Initialization : ' . $to_year;
                 $options['toEmail'] = SUPERADMIN_EMAIL;
                 $options['toName'] = 'Super Admin';
                 $options['bcc'] = $totalArr;
                 $options['message'] = "<div style='padding: 0; text-align: left; font-size:14px; font-family:Arial, Helvetica, sans-serif;'>\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span style='color:#3b3b3b;'>Hi,</span><br />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 0 0;color:#3b3b3b;'>Performance appraisal has been initialized {$mail_str} for the year <b>{$to_year}</b> for business unit <b>{$bunit}</b>  {$dept_str} by " . $loginUserfullname . $emp_id_str . " </div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 10px 0;'>Please <a href=" . BASE_URL . " target='_blank' style='color:#b3512f;'>click here</a> to login  to your <b>" . APPLICATION_NAME . "</b> account to check the details.</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div> ";
                 $mail_id = sapp_Global::_sendEmail($options);
             }
             $trDb->commit();
             $result['msg'] = 'Appraisal process updated successfully';
             $result['result'] = 'success';
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Appraisal process updated successfully"));
         } catch (Exception $e) {
             $trDb->rollBack();
             $result['msg'] = $e->getMessage();
             $result['result'] = 'error';
         }
     }
     return $result;
 }
 public function save($appraisalratingsform)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginRole = $auth->getStorage()->read()->emprole;
         $loginGroup = $auth->getStorage()->read()->group_id;
         $businessUnit = $auth->getStorage()->read()->businessunit_id;
         $department = $auth->getStorage()->read()->department_id;
         $loginUserfullname = $auth->getStorage()->read()->userfullname;
         $loginUserEmpId = $auth->getStorage()->read()->employeeId;
     }
     $appraisalratingsmodel = new Default_Model_Appraisalratings();
     $app_init_model = new Default_Model_Appraisalinit();
     if ($loginRole != SUPERADMINROLE && $loginGroup != MANAGEMENT_GROUP) {
         $businessUnit = $businessUnit;
         $department = $department;
     } else {
         $businessUnit = $this->_request->getParam('businessunit');
         $department = $this->_request->getParam('departmentid');
     }
     $res = $app_init_model->checkAppraisalExists($businessUnit, $department);
     $implementation = isset($res[0]['performance_app_flag']) ? $res[0]['performance_app_flag'] : NULL;
     $rating_type = !empty($res[0]['appraisal_ratings']) ? $res[0]['appraisal_ratings'] : NULL;
     $configured_id = 0;
     $msgarray = array();
     $resultArr = array();
     $errorflag = "true";
     $id = $this->_request->getParam('id');
     $dept_id = $this->_request->getParam('departmentid');
     $implementation = is_numeric($dept_id) && $dept_id > 0 ? 0 : 1;
     $appraisal_ratings = $this->_request->getParam('appraisal_rating');
     $appraisalid = $this->_request->getParam('appraisalid');
     $db = Zend_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     $actionflag = '';
     try {
         if ($id != '') {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . ($i + 1));
                 $update_id = $this->_request->getParam('update_id_' . ($i + 1));
                 /* for Update record  */
                 $where = array('id=?' => $update_id);
                 $actionflag = 2;
                 $tableid = '';
                 $data = array('rating_text' => $rating_text, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         } else {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . $i);
                 $tableid = '';
                 $data = array('pa_configured_id' => $configured_id, 'pa_initialization_id' => $appraisalid, 'rating_type' => $rating_type, 'rating_value' => $i + 1, 'rating_text' => $rating_text, 'createdby_role' => $loginRole, 'createdby_group' => $loginGroup, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                 $where = '';
                 $actionflag = 1;
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         }
         if ($Id == 'update') {
             $tableid = $id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings updated successfully."));
         } else {
             $tableid = $Id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings added successfully."));
         }
         /*
          *   Logs Storing
          */
         $menuID = APPRAISALRATINGS;
         $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
         /*
          *  Logs storing ends
          */
         //to get initialization details using appraisal Id for Business Unit,Department,To Year
         $appraisal_details = $appraisalratingsmodel->getappdata($appraisalid);
         if (!empty($appraisal_details)) {
             $bunit = $appraisal_details['unitname'];
             $dept = $appraisal_details['deptname'];
             $to_year = $appraisal_details['to_year'];
         }
         /** Start
          * Sending Mails to employees
          */
         $appraisalconfigmodel = new Default_Model_Appraisalconfig();
         if ($implementation == 0) {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, $department);
         } else {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, '');
         }
         $msg_add_update = $Id == 'update' ? "updated" : "configured";
         $dept_str = $dept == '' ? " " : "and department <b>{$dept}</b> ";
         $emp_id_str = $loginRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
         //Preparing Employee array for Bcc
         $empArr = array();
         if (!empty($employeeDetailsArr)) {
             $empArrList = '';
             foreach ($employeeDetailsArr as $emp) {
                 array_push($empArr, $emp['emailaddress']);
             }
         }
         //echo "<pre>";print_r($empArr);die();
         $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Ratings ' . ucfirst($msg_add_update);
         $options['header'] = 'Performance Appraisal : Ratings';
         $options['bcc'] = $empArr;
         $options['toEmail'] = SUPERADMIN_EMAIL;
         $options['toName'] = 'Super Admin';
         $options['message'] = "<div style='padding: 0; text-align: left; font-size:14px; font-family:Arial, Helvetica, sans-serif;'>\t\t\t\t\n\t\t\t<span style='color:#3b3b3b;'>Hi,</span><br />\n\t\t\t<div style='padding:20px 0 0 0;color:#3b3b3b;'>Performance appraisal ratings have been {$msg_add_update} for the year <b>{$to_year}</b> for business unit <b>{$bunit}</b> {$dept_str} by " . $loginUserfullname . $emp_id_str . " </div>\n\t\t\t<div style='padding:20px 0 10px 0;'>Please <a href=" . BASE_URL . " target='_blank' style='color:#b3512f;'>click here</a> to login  to your <b>" . APPLICATION_NAME . "</b> account.</div>\n\t\t\t</div> ";
         $mail_id = sapp_Global::_sendEmail($options);
         /**
          * End mails sending
          */
         $db->commit();
         $this->_redirect('appraisalratings');
     } catch (Exception $e) {
         $db->rollBack();
         echo $e->getMessage();
         echo $e->getTraceAsString();
         return $msgarray;
     }
 }