/** * This action is used to save/edit group details created by manager. * @return json Array of status and message. */ public function savemanagergroupAction() { $post_values = $this->getRequest()->getPost(); //echo "<pre>";print_r($post_values);echo "</pre>";exit; $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); } $finalarray = $deleted_emp_arr = $result = array(); $mgrIndex = 'MC'; $mgrratIndex = 'MR'; $empIndex = 'EC'; $empratIndex = 'ER'; $questionArr = $post_values['check']; $managercmntsArr = isset($post_values['mgrcmnt']) ? $post_values['mgrcmnt'] : array(); $managerratingsArr = isset($post_values['mgrrating']) ? $post_values['mgrrating'] : array(); $empratingsArr = isset($post_values['empratings']) ? $post_values['empratings'] : array(); $empcmntsArr = isset($post_values['empcmnt']) ? $post_values['empcmnt'] : array(); $empids = $post_values['existetd_mem_str']; $groupid = $post_values['groupid']; $group_name = $post_values['group_name']; $appraisal_id = $post_values['appraisal_id']; $manager_id = $post_values['manager_id']; $original_mem_str = $post_values['original_mem_str']; $action_flag = $post_values['action_flag']; $selected_emp_arr = explode(',', $empids); $result['flag'] = 'appraisalmanager'; $trDb = Zend_Db_Table::getDefaultAdapter(); $trDb->beginTransaction(); try { if ($group_name != '' && !empty($questionArr) && $empids != '') { $appraisalGroupModel = new Default_Model_Appraisalgroups(); $appraisalPrivMainModel = new Default_Model_Appraisalqsmain(); $CheckDuplicateName = $appraisalGroupModel->getDuplicateGroupName($appraisal_id, $group_name, $groupid != '' ? $groupid : ''); if (!empty($CheckDuplicateName)) { $duplicateGroupName = $CheckDuplicateName[0]['grpcnt']; } if ($duplicateGroupName > 0) { $result['result'] = 'error'; $result['msg'] = 'Group name already exists.'; } else { if (!empty($original_mem_str)) { $privilegesdata = array('manager_group_id' => null, 'manager_qs' => null, 'manager_qs_privileges' => null, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s")); $privielgeswhere = " pa_initialization_id = '" . $appraisal_id . "' and line_manager_1 = '" . $manager_id . "' and employee_id IN ({$original_mem_str}) and module_flag=1 and isactive= 1 "; $updateprivileges = $appraisalPrivMainModel->SaveorUpdatePrivilegeData($privilegesdata, $privielgeswhere); } if (!empty($questionArr)) { for ($i = 0; $i < sizeof($questionArr); $i++) { $managercomments = isset($managercmntsArr[$questionArr[$i]]) ? 1 : 0; $managerratings = isset($managerratingsArr[$questionArr[$i]]) ? 1 : 0; $empratings = isset($empratingsArr[$questionArr[$i]]) ? 1 : 0; $empcomments = isset($empcmntsArr[$questionArr[$i]]) ? 1 : 0; $commntsarry = array($mgrratIndex => $managerratings, $mgrIndex => $managercomments, $empratIndex => $empratings, $empIndex => $empcomments); $finalarray[$questionArr[$i]] = $commntsarry; } $questions = implode(',', $questionArr); $qsprivileges = json_encode($finalarray, true); $groupdata = array('pa_initialization_id' => $appraisal_id, 'group_name' => trim($group_name), 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s")); if ($groupid != '') { $where = array('id=?' => $groupid); $actionflag = 2; } else { $groupdata['createdby_role'] = $loginuserRole; $groupdata['createdby_group'] = $loginuserGroup; $groupdata['createdby'] = $loginUserId; $groupdata['createddate'] = gmdate("Y-m-d H:i:s"); $groupdata['isactive'] = 1; $where = ''; $actionflag = 1; } $Id = $appraisalGroupModel->SaveorUpdateAppraisalGroupsData($groupdata, $where); if ($Id != 'update') { $groupid = $Id; } $privilegesdata = array('manager_group_id' => $groupid, 'manager_qs' => $questions, 'manager_qs_privileges' => $qsprivileges, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s")); $privielgeswhere = " pa_initialization_id = '" . $appraisal_id . "' and line_manager_1 = '" . $manager_id . "' and employee_id IN ({$empids}) and module_flag=1 and isactive= 1 "; $updateprivileges = $appraisalPrivMainModel->SaveorUpdatePrivilegeData($privilegesdata, $privielgeswhere); //echo '<pre>';print_r($finalarray);echo "</pre>"; $trDb->commit(); $result['result'] = 'success'; $result['msg'] = "Group " . ($action_flag == 'edit' ? "updated" : "created") . " successfully"; } else { $result['result'] = 'error'; $result['msg'] = 'No questions to add'; } } } else { $result['result'] = 'error'; $result['msg'] = 'Something went wrong.'; } } catch (Exception $e) { $trDb->rollBack(); $result['result'] = 'error'; $result['msg'] = $e->getMessage(); } $this->_helper->json($result); }
public function savegroupedemployeesajaxAction() { $ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->addActionContext('savegroupedemployeesajax', 'json')->initContext(); $this->_helper->layout->disableLayout(); $appraisalinitmodel = new Default_Model_Appraisalinit(); $appraisalQsModel = new Default_Model_Appraisalquestions(); $appraisalGroupModel = new Default_Model_Appraisalgroups(); $appraisalPrivTempModel = new Default_Model_Appraisalqstemp(); $appraisalPrivMainModel = new Default_Model_Appraisalqsmain(); $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); } $finalarray = array(); $msgarray = array(); $deleted_emp_arr = array(); $mgrIndex = 'MC'; $mgrratIndex = 'MR'; $empIndex = 'EC'; $empratIndex = 'ER'; $questions = ''; $qsprivileges = ''; $errorflag = "true"; $result['result'] = ''; $result['msg'] = ''; $result['flag'] = "appraisal"; $duplicateGroupName = 0; $questionArr = $this->_request->getParam('check'); $managercmntsArr = $this->_request->getParam('mgrcmnt'); $managerratingsArr = $this->_request->getParam('mgrrating'); $empratingsArr = $this->_request->getParam('empratings'); $empcmntsArr = $this->_request->getParam('empcmnt'); $appraisalid = $this->_request->getParam('appraisalid'); $groupid = $this->_request->getParam('groupid'); $group_name = $this->_request->getParam('group_name'); $empids = $this->_request->getParam('existetd_mem_str'); $originalempids = $this->_request->getParam('original_mem_str'); $group_settings = $this->_request->getParam('group_settings'); if ($originalempids != '') { $orig_emp_arr = explode(',', $originalempids); } else { $orig_emp_arr = array(); } $selected_emp_arr = explode(',', $empids); $appraisaldata = $appraisalinitmodel->getConfigData($appraisalid); $initializestep = 0; $initializestep = isset($appraisaldata[0]['initialize_status']) ? $appraisaldata[0]['initialize_status'] : 0; if ($initializestep == 1) { $tablename = 'main_pa_questions_privileges'; } else { $tablename = 'main_pa_questions_privileges_temp'; } $trDb = Zend_Db_Table::getDefaultAdapter(); $trDb->beginTransaction(); try { if ($group_name != '' && !empty($questionArr) && $empids != '') { if ($groupid) { $CheckDuplicateName = $appraisalGroupModel->getDuplicateGroupName($appraisalid, $group_name, $groupid); } else { $CheckDuplicateName = $appraisalGroupModel->getDuplicateGroupName($appraisalid, $group_name, ''); } if (!empty($CheckDuplicateName)) { $duplicateGroupName = $CheckDuplicateName[0]['grpcnt']; } if ($duplicateGroupName > 0) { $result['result'] = 'error'; $result['msg'] = 'Group name already exists.'; } else { if (!empty($questionArr)) { for ($i = 0; $i < sizeof($questionArr); $i++) { if (isset($managercmntsArr[$questionArr[$i]])) { $managercomments = 1; } else { $managercomments = 0; } if (isset($managerratingsArr[$questionArr[$i]])) { $managerratings = 1; } else { $managerratings = 0; } if (isset($empratingsArr[$questionArr[$i]])) { $empratings = 1; } else { $empratings = 0; } if (isset($empcmntsArr[$questionArr[$i]])) { $empcomments = 1; } else { $empcomments = 0; } /*$finalstring = '{'."$mgrratIndex:1,$mgrIndex:$managercomments,$empratIndex:$empratings,$empIndex:$empcomments".'}'; $finalarray[$questionArr[$i]] = $finalstring; $finalstring = '';*/ $commntsarry = array($mgrratIndex => $managerratings, $mgrIndex => $managercomments, $empratIndex => $empratings, $empIndex => $empcomments); $finalarray[$questionArr[$i]] = $commntsarry; } $questions = implode(',', $questionArr); $qsprivileges = json_encode($finalarray, true); $groupdata = array('pa_initialization_id' => $appraisalid, 'group_name' => trim($group_name), 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s")); if ($groupid != '') { $where = array('id=?' => $groupid); $actionflag = 2; } else { $groupdata['createdby_role'] = $loginuserRole; $groupdata['createdby_group'] = $loginuserGroup; $groupdata['createdby'] = $loginUserId; $groupdata['createddate'] = gmdate("Y-m-d H:i:s"); $groupdata['isactive'] = 1; $where = ''; $actionflag = 1; } $Id = $appraisalGroupModel->SaveorUpdateAppraisalGroupsData($groupdata, $where); if ($Id != 'update') { $groupid = $Id; } /* Removing privileges for previously assigned employees*/ if (!empty($orig_emp_arr)) { $deleted_emp_arr = array_diff($orig_emp_arr, $selected_emp_arr); } if (!empty($deleted_emp_arr)) { foreach ($deleted_emp_arr as $val) { $removeprivileges = $appraisalQsModel->removegroupqsprivileges($tablename, $appraisalid, $val, $loginuserArr); } } /* END */ $privilegesdata = array('group_id' => $groupid, 'hr_qs' => $questions, 'hr_group_qs_privileges' => $qsprivileges, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s")); $privielgeswhere = " pa_initialization_id = '" . $appraisalid . "' and employee_id IN({$empids}) and module_flag=1 and isactive= 1 "; if ($initializestep == 1) { $updateprivileges = $appraisalPrivMainModel->SaveorUpdatePrivilegeData($privilegesdata, $privielgeswhere); } else { $updateprivileges = $appraisalPrivTempModel->SaveorUpdateData($privilegesdata, $privielgeswhere); } //$updateprivileges = $appraisalQsModel->updategroupqsprivileges($tablename,$groupid,$questions, $qsprivileges,$appraisalid,$empids,$loginuserArr); /* Update Group setings in initialization table */ if ($group_settings == 0) { $updatestatus = $appraisalinitmodel->updategroupsettings(2, $appraisalid); } $trDb->commit(); $result['result'] = 'success'; $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Employee added to group succesfully.")); } } } else { $result['result'] = 'error'; $result['msg'] = 'Something went wrong.'; } } catch (Exception $e) { $trDb->rollBack(); $result['result'] = 'error'; $result['msg'] = $e->getMessage(); } $this->_helper->json($result); }