Exemplo n.º 1
0
    public static function manager_questions_privileges($questionarray, $appraisalid, $checkArr, $initializationdata)
    {
        ?>
	<div class="cofig_title" style="margin-left: 0px;">Configure Appraisal Parameters for All Employees</div>
	<ul class="tabs_all_button"  style="margin-left: 0px;">
		<li class="active divider" id="alldiv" onclick="showhideqsdiv(1)" >All</li>
		<li id="selecteddiv" onclick="showhideqsdiv(2)">Selected</li>
	</ul>      
	<?php 
        if (isset($initializationdata['poppermission']) && $initializationdata['poppermission'] == 'yes') {
            ?>
	<div class="addnewqs" onclick="addmanagerqspopup(1,'<?php 
            echo $appraisalid;
            ?>
');">
		 + Add New Question
	</div>   
	<?php 
            sapp_PerformanceHelper::manager_question_div(1);
        }
        ?>
	<div id="hiddenquestiondiv" style="display:none;" class="qstnscrldiv">
		<div class="total-form-controller" id="childqsdiv">		
			<table width="100%" border="0" cellspacing="0" cellpadding="0" style="clear: both; margin-top: 0px; width: 100%;" id="questiontable" class="requisition-table employee_appraisal-table">
				<tr>
					<th class="question_field">Questions</th>
					<th class="field_width">
						<div class="comments_div_fiel">Manager Comments</div>
						<div class="comments_div_fiel">Manager Ratings</div>
						<div class="comments_div_fiel">Employee Comments</div>
						<div class="comments_div_fiel">Employee Ratings</div>
					</th>
				</tr>
			</table>
		</div>
	</div>
     
	<div id="questiondiv" class="qstnscrldiv">
		<div class="total-form-controller_" id="parentqsdiv">		
			<table width="100%" border="0" cellspacing="0" cellpadding="0" style="clear: both; margin-top: 0px; width: 100%;" class="requisition-table employee_appraisal-table">
				<tr>
					<th class="check_field"><input type="checkbox" class ="selectallcls" name="selectall" value="selectall" id="selectall">Check All</th>
					<th class="question_field">Questions</th>
					<th class="field_width">
						<div class="comments_div_fiel"> <input type="checkbox" class ="mgrcmntcls" name="mgrcmnt" value="" id="mgrcmnt">Manager Comments</div>
						<div class="comments_div_fiel"><input type="checkbox" class ="mgrratingcls" name="mgrrating" value="" id="mgrrating">Manager Ratings</div>					
						<div class="comments_div_fiel" style="width:45%;"> <input type="checkbox" class ="empcmntcls" name="empcmnt" value="" id="empcmnt">Employee Comments</div>
						<div class="comments_div_fiel"><input type="checkbox" class ="empratingcls" name="empratings" value="" id="empratings" >Employee Ratings</div>
					</th>
				</tr>
				<?php 
        foreach ($questionarray as $key => $question) {
            $check = '';
            $mgrcheck = '';
            $mgrrate = '';
            $empratcheck = '';
            $empcmntcheck = '';
            if (!empty($checkArr)) {
                if (array_key_exists($question['id'], $checkArr)) {
                    $check = 'checked';
                    $checkid = $checkArr[$question['id']];
                    for ($i = 0; $i < sizeof($checkid); $i++) {
                        if ($checkid['MC'] == 1) {
                            $mgrcheck = 'checked';
                        }
                        if ($checkid['MR'] == 1) {
                            $mgrrate = 'checked';
                        }
                        if ($checkid['ER'] == 1) {
                            $empratcheck = 'checked';
                        }
                        if ($checkid['EC'] == 1) {
                            $empcmntcheck = 'checked';
                        }
                    }
                }
            } else {
                $check = 'checked';
                $mgrcheck = 'checked';
                $mgrrate = 'checked';
                $empratcheck = 'checked';
                $empcmntcheck = 'checked';
            }
            ?>
					<tr id="questiontr_<?php 
            echo $question['id'];
            ?>
">
						<td class="check_field"><input type="checkbox" class ="checkallcls" ques_id ="<?php 
            echo $question['id'];
            ?>
" id="check_<?php 
            echo $question['id'];
            ?>
" name="check[]" value="<?php 
            echo $question['id'];
            ?>
" <?php 
            echo $check;
            ?>
 onclick="checkmgrchildtd(this)"></td>
						<td class="question_field" id="queshtml_<?php 
            echo $question['id'];
            ?>
">
							<div>
								<span class="appri_ques"><?php 
            echo $question['question'];
            ?>
</span>
								<span class="appri_desc"><?php 
            echo $question['description'];
            ?>
</span>
							</div>
						</td>
						<td class="field_width">
							<div class="comments_div_fiel"><input type="checkbox" class ="mgrcmntcls qprivileges_<?php 
            echo $question['id'];
            ?>
" ques_id ="<?php 
            echo $question['id'];
            ?>
" id="mgrcmnt_<?php 
            echo $question['id'];
            ?>
" name="mgrcmnt[<?php 
            echo $question['id'];
            ?>
]" value="1"  <?php 
            echo $mgrcheck;
            ?>
 onclick="checkparenttd(this)">Manager Comments</div>
							<div class="comments_div_fiel"><input type="checkbox" class ="mgrratingcls qprivileges_<?php 
            echo $question['id'];
            ?>
" ques_id ="<?php 
            echo $question['id'];
            ?>
" id="mgrrating_<?php 
            echo $question['id'];
            ?>
" name="mgrrating[<?php 
            echo $question['id'];
            ?>
]" value="1" <?php 
            echo $mgrrate;
            ?>
 onclick="checkparenttd(this)" >Manager Ratings</div>							
							<div class="comments_div_fiel" style="width:45%;"> <input type="checkbox" class ="empcmntcls qprivileges_<?php 
            echo $question['id'];
            ?>
" ques_id ="<?php 
            echo $question['id'];
            ?>
" id="empcmnt_<?php 
            echo $question['id'];
            ?>
" name="empcmnt[<?php 
            echo $question['id'];
            ?>
]" value="1"  <?php 
            echo $empcmntcheck;
            ?>
 onclick="checkmgrparenttd(this)">Employee Comments</div>
							<div class="comments_div_fiel"> <input type="checkbox" class ="empratingcls qprivileges_<?php 
            echo $question['id'];
            ?>
" ques_id ="<?php 
            echo $question['id'];
            ?>
" id="empratings_<?php 
            echo $question['id'];
            ?>
" name="empratings[<?php 
            echo $question['id'];
            ?>
]" value="1"  <?php 
            echo $empratcheck;
            ?>
 onclick="checkmgrparenttd(this)">Employee Ratings</div>
						</td>
						<?php 
            sapp_PerformanceHelper::check_manager_selected_Qs($check, $empratcheck, $empcmntcheck, $question['id']);
            ?>
					</tr>
				<?php 
        }
        ?>
		 
			</table>
			<input type="hidden" id="appraisalid" name="appraisalid" value="<?php 
        echo $appraisalid;
        ?>
">
			<input type="hidden" id="initializeflag" name="initializeflag" value="">
			<input type="hidden" id="initializestep" name="initializestep" value="<?php 
        echo $initializationdata['initialize_status'];
        ?>
">
			<input type="hidden" id="questioncount" name="questioncount" value="<?php 
        echo sizeof($questionarray);
        ?>
">
		</div>
	</div>		
	<script type="text/javascript">
		$(document).ready(function()
		{
			$('#questiondiv').alternateScroll({ 'horizontal-bar-class': 'styled-h-bar'});
			$('#hiddenquestiondiv').alternateScroll({ 'horizontal-bar-class': 'styled-h-bar'});
			
			$('#selectall').click(function(event) {  
				$('.checkallcls').prop('checked',$(this).prop('checked'));
				if(this.checked) { 
					$('.checkallcls').each(function() { 
						var id = $(this).attr('ques_id'); 
						appendmgrcheckboxtext(id);                
					});
				}else
				{
					//$('.mgrcmntcls').prop('checked',false);
					//$('.empcmntcls').prop('checked',false);
					//$('.mgrratingcls').prop('checked',false);
					//$('.empratingcls').prop('checked',false);
					$("tr[id^=hiddentr_]").remove();
					appendheighttodiv(2);
				}          
			});

			$('#mgrcmnt').click(function(event) {  //on click 
				
					if(this.checked) { 
						$('.checkallcls').each(function() { 
							var id = $(this).attr('ques_id'); 
							if(this.checked)
							{
								$("#mgrcmnt_"+id).prop('checked', true);
							}							
							appendcheckboxtext(id);                
						});
					}else
					{
						$('.mgrcmntcls').prop('checked',$(this).prop('checked'));					
						$("tr[id^=hiddentr_]").remove();
						appendheighttodiv(1);
					}
			});

			$('#mgrrating').click(function(event) {  //on click 
				
					if(this.checked) { 
						$('.checkallcls').each(function() { 
							var id = $(this).attr('ques_id'); 
							if(this.checked)
							{
								$("#mgrrating_"+id).prop('checked', true);
							}							
							appendcheckboxtext(id);                
						});
					}else
					{
						$('.mgrratingcls').prop('checked',$(this).prop('checked'));
						$("tr[id^=hiddentr_]").remove();
						appendheighttodiv(1);
					}
			});			
			
			$('#empcmnt').click(function(event) {  //on click 
				
					if(this.checked) { 
						$('.checkallcls').each(function() { 
							var id = $(this).attr('ques_id'); 
							if(this.checked)
							{
								$("#empcmnt_"+id).prop('checked', true);
							}								
							appendmgrcheckboxtext(id);                
						});
					}else
					{
						$('.empcmntcls').prop('checked',$(this).prop('checked'));
						$("tr[id^=hiddentr_]").remove();
						appendheighttodiv(2);
					}
			});
			$('#empratings').click(function(event) {  //on click
				
					if(this.checked) { 
						$('.checkallcls').each(function() { 
							var id = $(this).attr('ques_id'); 
							if(this.checked)
							{
								$("#empratings_"+id).prop('checked', true);
							}									
							appendmgrcheckboxtext(id); 
						});
					}else
					{
						$('.empratingcls').prop('checked',$(this).prop('checked'));					
						$("tr[id^=hiddentr_]").remove();
						appendheighttodiv(2);
					} 
			 
			});
			
			$('.checkallcls').click(function(event) {  //on click
				if(!$(this).prop('checked'))
				{
					// $('.empratingcls').prop('checked',$(this).prop('checked'));
					// $('.empratingcls').prop('checked',$(this).prop('checked'));
					// $('.empratingcls').prop('checked',$(this).prop('checked'));
				} 
			 
			});
			<?php 
        if (empty($checkArr)) {
            ?>
				$('#selectall').prop('checked',true);
				$('#mgrcmnt').prop('checked',true);
				$('#mgrrating').prop('checked',true);
				$('#empcmnt').prop('checked',true);
				$('#empratings').prop('checked',true);
			<?php 
        }
        ?>

			checkparentclass();
		});

	</script>
<?php 
    }
Exemplo n.º 2
0
 public function checkffduedate()
 {
     $ffinitModel = new Default_Model_Feedforwardinit();
     $ffEmpRatModel = new Default_Model_Feedforwardemployeeratings();
     $ffDataArr = $ffinitModel->getFFbyBUDept('', 'yes');
     $ffIdArr = array();
     $ffIdList = '';
     $current_day = new DateTime('now');
     $current_day->sub(new DateInterval('P1D'));
     if (!empty($ffDataArr)) {
         foreach ($ffDataArr as $ffval) {
             if ($ffval['status'] == 1) {
                 if ($ffval['ff_due_date']) {
                     $due_date = new DateTime($ffval['ff_due_date']);
                 } else {
                     $due_date = '';
                 }
                 $interval = $current_day->diff($due_date);
                 $interval->format('%d');
                 $interval = $interval->days;
                 if ($interval <= 2) {
                     array_push($ffIdArr, $ffval['id']);
                 }
             }
         }
     }
     if (!empty($ffIdArr)) {
         $ffIdList = implode(',', $ffIdArr);
     }
     if ($ffIdList != '') {
         $ffEmpsStatusData = $ffEmpRatModel->getEmpsFFStatus($ffIdList, 'cron');
         if (!empty($ffEmpsStatusData)) {
             $empIdArr = array();
             foreach ($ffEmpsStatusData as $empval) {
                 array_push($empIdArr, $empval['emailaddress']);
             }
             $optionArr = array('subject' => 'Manager Feedforward submission pending', 'header' => 'Feedforward', 'toemail' => SUPERADMIN_EMAIL, 'toname' => 'Super Admin', 'bcc' => $empIdArr, '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;'>Mangaer feedforward is pending.</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> ", 'cron' => 'yes');
             sapp_PerformanceHelper::saveCronMail($optionArr);
         }
     }
 }
 public function addAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $businessunit_id = $auth->getStorage()->read()->businessunit_id;
         $department_id = $auth->getStorage()->read()->department_id;
     }
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $errorMsg = '';
     $empSummaryModel = new Default_Model_Employee();
     $empData = $empSummaryModel->getEmp_from_summary($loginUserId);
     $appImpleData = sapp_PerformanceHelper::check_per_implmentation($businessunit_id, $department_id);
     //echo "<pre>";print_r($appImpleData);echo "</pre>";
     $appInitModel = new Default_Model_Appraisalinit();
     $appraisalInitForm = new Default_Form_Appraisalinit();
     if (count($appImpleData) > 0) {
         $this->view->imple_data = $appImpleData;
         $checkActiveApp = $appInitModel->checkAppraisalExists($businessunit_id, $department_id);
         if (count($checkActiveApp) == 0) {
             $appraisalInitForm->businessunit_name->setValue($empData['businessunit_name']);
             if ($appImpleData['performance_app_flag'] == 0) {
                 $appraisalInitForm->department_name->setValue($empData['department_name']);
             } else {
                 $appraisalInitForm->removeElement("department_name");
             }
             $appraisalInitForm->businessunit_id->setValue($empData['businessunit_id']);
             $appraisalInitForm->department_id->setValue($empData['department_id']);
             $appraisalInitForm->appraisal_mode->setValue($appImpleData['appraisal_mode']);
             $employmentstatusModel = new Default_Model_Employmentstatus();
             $employmentStatusData = $employmentstatusModel->getempstatusActivelist();
             if (!empty($employmentStatusData)) {
                 foreach ($employmentStatusData as $employmentStatusres) {
                     $appraisalInitForm->eligibility->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
                 }
             } else {
                 $msgarray['eligibility'] = 'Employment status is not configured yet.';
             }
         } else {
             $errorMsg = 'Appraisal process is already initialized.';
         }
     } else {
         $errorMsg = 'Appraisal process is not yet configured.';
     }
     $msgarray = array();
     $appraisalInitForm->setAttrib('action', DOMAIN . 'appraisalinit/add');
     $this->view->form = $appraisalInitForm;
     $this->view->msgarray = $msgarray;
     $this->view->ermsg = $errorMsg;
     if ($this->getRequest()->getPost()) {
         $result = $this->save($appraisalInitForm);
         $this->view->msgarray = $result;
     }
     $this->render('form');
 }
 /**
  * 
  * Edit function to prepopulate the data.
  * 
  */
 public function editAction($id = '')
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
         $businessUnit = $auth->getStorage()->read()->businessunit_id;
         $department = $auth->getStorage()->read()->department_id;
     }
     $appInitModel = new Default_Model_Appraisalinit();
     $msgarray = array();
     $buOptions = '';
     $deptOptions = '';
     if ($id == '') {
         $id = $this->getRequest()->getParam('id');
     }
     if ($loginuserRole != SUPERADMINROLE && $loginuserGroup != MANAGEMENT_GROUP) {
         $callval = $this->getRequest()->getParam('call');
         if ($callval == 'ajaxcall') {
             $this->_helper->layout->disableLayout();
         }
         $appraisalratingsform = new Default_Form_Appraisalratings();
         $appraisalratingsmodel = new Default_Model_Appraisalratings();
         $performanceappflag = '';
         $appraisalratingsform->submit->setLabel('Update');
         $res = $appraisalratingsmodel->checkAccessAddratings($businessUnit, $department);
         foreach ($res as $result) {
             $appraisal_rating = $result['appraisal_ratings'];
         }
         $appraisal_rating = $appraisal_rating == 1 ? 5 : 10;
         try {
             if ($id) {
                 if (is_numeric($id) && $id > 0) {
                     $data = $appraisalratingsmodel->getAppraisalRatingsbyInitId($id);
                     if (!empty($data)) {
                         //$data = $data[0];
                         //echo "<pre>"; print_r($data);echo "</pre>";
                         // $appraisal_rating = 1;
                         $appInitdata = $appInitModel->getConfigData($data[0]['pa_initialization_id']);
                         $appraisalratingsform->setAttrib('action', DOMAIN . 'appraisalratings/edit/id/' . $id);
                         /* Fetch business unit and department name*/
                         $appImpleData = sapp_PerformanceHelper::check_per_implmentation($businessUnit, $department);
                         $performanceappflag = $appImpleData['performance_app_flag'];
                         $optionsArray = $this->buildoptions($businessUnit, $department, $performanceappflag);
                         $buOptions = $optionsArray['buoptions'];
                         $deptOptions = isset($optionsArray['deptoptions']) ? $optionsArray['deptoptions'] : '';
                         /* End */
                         $this->view->performanceappflag = $performanceappflag;
                         $this->view->buOptions = $buOptions;
                         $this->view->deptOptions = $deptOptions;
                         $this->view->data = $data;
                         $this->view->checkActiveApp = $appInitdata[0];
                         $this->view->appraisal_rating = $appraisal_rating;
                     } else {
                         $this->view->ermsg = 'norecord';
                     }
                 } else {
                     $this->view->ermsg = 'norecord';
                 }
             } else {
                 $this->view->ermsg = 'nodata';
             }
         } catch (Exception $e) {
             $this->view->ermsg = 'nodata';
         }
         $this->view->form = $appraisalratingsform;
         if ($this->getRequest()->getPost()) {
             $result = $this->save($appraisalratingsform);
             $this->view->msgarray = $result;
         }
         $this->render('form');
     } else {
         $buOptions = '';
         $deptOptions = '';
         $businessUnitId = '';
         $department = '';
         $deptArr = array();
         $flag = 2;
         $appraisaldataArr = $appInitModel->getAppDataById($id);
         if (!empty($appraisaldataArr)) {
             $businessUnitId = $appraisaldataArr['businessunit_id'];
             $departmentId = $appraisaldataArr['department_id'] != 'null' ? $appraisaldataArr['department_id'] : '';
             $appImpleData = sapp_PerformanceHelper::check_per_implmentation($businessUnitId, $departmentId);
             $performanceappflag = $appImpleData['performance_app_flag'];
             $optionsArray = $this->buildoptions($businessUnitId, $departmentId, $performanceappflag);
             $buOptions = $optionsArray['buoptions'];
             $deptOptions = isset($optionsArray['deptoptions']) ? $optionsArray['deptoptions'] : '';
         }
         if ($this->getRequest()->getPost()) {
             $result = $this->save($appraisalratingsform);
             $this->view->msgarray = $result;
         }
         $this->view->appraislaid = $id;
         $this->view->performanceappflag = $performanceappflag;
         $this->view->businessUnitId = $businessUnitId;
         $this->view->departmentId = $departmentId;
         $this->view->buOptions = $buOptions;
         $this->view->deptOptions = $deptOptions;
         $this->view->flag = $flag;
         $this->render('managementform');
     }
 }
 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 employeeAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $businessunit_id = $auth->getStorage()->read()->businessunit_id;
         $department_id = $auth->getStorage()->read()->department_id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $errorMsg = '';
     $msgarray = array();
     $bunitdataArr = array();
     $flag = '';
     $appInitModel = new Default_Model_Appraisalinit();
     $app_status_array = array(1 => APP_PENDING_EMP, 2 => APP_PENDING_L1, 3 => APP_PENDING_L2, 4 => APP_PENDING_L3, 5 => APP_PENDING_L4, 6 => APP_PENDING_L5, 7 => APP_COMPLETED);
     if ($loginuserRole != SUPERADMINROLE && $loginuserGroup != MANAGEMENT_GROUP) {
         $appImpleData = sapp_PerformanceHelper::check_per_implmentation($businessunit_id, $department_id);
         if (count($appImpleData) > 0) {
             $this->view->imple_data = $appImpleData;
             $checkActiveApp = $appInitModel->checkAppraisalExists($businessunit_id, $department_id, $appImpleData['performance_app_flag']);
             if (count($checkActiveApp) > 0) {
                 $checkActiveApp = $checkActiveApp[0];
                 if ($checkActiveApp['enable_step'] == 2 && $checkActiveApp['status'] == 1) {
                     $this->view->checkActiveApp = $checkActiveApp;
                     $flag = 1;
                 } else {
                     if ($checkActiveApp['enable_step'] == 1) {
                         $errorMsg = 'Appraisal process is enabled to managers.';
                     }
                     if ($checkActiveApp['status'] == 2) {
                         $errorMsg = 'Appraisal process is closed.';
                     }
                 }
             } else {
                 $errorMsg = 'Active Appraisal process is not there.';
             }
         } else {
             $errorMsg = 'Appraisal process is not yet configured.';
         }
     } else {
         $bunitModel = new Default_Model_Businessunits();
         $buids = '';
         $bunitdataArr = array();
         $activeAppraisalManagerArr = $appInitModel->getAppraisalForMgrEmp(2);
         if (!empty($activeAppraisalManagerArr)) {
             foreach ($activeAppraisalManagerArr as $mgrArr) {
                 $buids .= $mgrArr['businessunit_id'] . ',';
             }
             $buids = rtrim($buids, ',');
             if ($buids != '') {
                 $bustr = implode(',', array_unique(explode(',', $buids)));
                 $bunitdataArr = $bunitModel->getBusinessUnits($bustr);
             }
         }
         $this->view->bunitdataarr = $bunitdataArr;
         $flag = 2;
     }
     $this->view->app_status_array = $app_status_array;
     $this->view->msgarray = $msgarray;
     $this->view->ermsg = $errorMsg;
     $this->view->flag = $flag;
 }
Exemplo n.º 7
0
    public function performancesteps($perfArray)
    {
        $request = Zend_Controller_Front::getInstance();
        $controllerName = $request->getRequest()->getControllerName();
        $actionName = $request->getRequest()->getActionName();
        $step1_link = "";
        $step2_link = '';
        $step3_link = '';
        if ($perfArray['appraisalid'] != '') {
            if ($perfArray['context'] == 'edit') {
                $step1_link = BASE_URL . "appraisalinit/edit/id/" . $perfArray['appraisalid'];
                $step2_link = BASE_URL . "appraisalinit/confmanagers/i/" . sapp_Global::_encrypt($perfArray['appraisalid']);
                if ($perfArray['step2status'] == 'Completed') {
                    $step3_link = BASE_URL . "appraisalinit/assigngroups/i/" . sapp_Global::_encrypt($perfArray['appraisalid']);
                }
            } else {
                $step1_link = BASE_URL . "appraisalinit/view/id/" . $perfArray['appraisalid'];
                $step2_link = BASE_URL . "appraisalinit/viewconfmanagers/i/" . sapp_Global::_encrypt($perfArray['appraisalid']);
                if ($perfArray['step2status'] == 'Completed') {
                    $step3_link = BASE_URL . "appraisalinit/viewassigngroups/i/" . sapp_Global::_encrypt($perfArray['appraisalid']);
                }
            }
        }
        ?>
<script type="text/javascript" src="<?php 
        echo MEDIA_PATH;
        ?>
js/pa.js"></script>
<div class="per_steps">
        <ul class="toggle_ul">
            <li id="initstep_1" class="step_1 incomplete"  ><div class="step_round">Step<span class="num_txt">1</span></div>
            	<div class="left_tab_content">
                	<div class="completed_icon"></div>
                	<h3 class="tab_title">Initialization</h3>
                    <span class="tab_txt">Initialize appraisal for a department or a business unit and enable to managers or employees</span>
                    <?php 
        if ($perfArray['step1status'] == 'Completed') {
            ?>
                    	<div class="status_txt complete_status"><?php 
            echo $perfArray['step1status'];
            ?>
</div>
                    <?php 
        } else {
            ?>
                    	<div class="status_txt in_progress"><?php 
            echo $perfArray['step1status'];
            ?>
</div>	
                    <?php 
        }
        ?>
                </div>
            
            </li>

            <li id="initstep_2" class="step_2 incomplete"><div class="step_round">Step<span class="num_txt">2</span></div>
          		 <div class="left_tab_content">
                 	<div class="completed_icon"></div>
                	<h3 class="tab_title">Configure Line Managers</h3>
                    <span class="tab_txt">Configure line managers by using the existing organization hierarchy or by assigning line managers to employees manually </span>
                    <?php 
        if ($perfArray['step2status'] == 'Completed') {
            ?>
                    	<div class="status_txt complete_status"><?php 
            echo $perfArray['step2status'];
            ?>
</div>
                    <?php 
        } else {
            ?>
                    	<div class="status_txt in_progress"><?php 
            echo $perfArray['step2status'];
            ?>
</div>	
                    <?php 
        }
        ?>
	
                </div>
            </li>
            <li id="initstep_3" class="step_3 incomplete"><div class="step_round">Step<span class="num_txt">3</span></div>
           		<div class="left_tab_content">
                	<div class="completed_icon"></div>
                	<h3 class="tab_title">Configure Appraisal Parameters</h3>
                    <span class="tab_txt">Set the appraisal parameters for all the employees or for an employee group for a department or a business unit</span>
                    <?php 
        if ($perfArray['step3status'] == 'Completed') {
            ?>
                    	<div class="status_txt complete_status"><?php 
            echo $perfArray['step3status'];
            ?>
</div>
                    <?php 
        } else {
            ?>
                    	<div class="status_txt in_progress"><?php 
            echo $perfArray['step3status'];
            ?>
</div>	
                    <?php 
        }
        ?>
                </div>
            </li>

        </ul>
        <input type="hidden" id="ratingsflag" value="<?php 
        echo $perfArray['ratingsflag'] == 'false' ? 2 : 1;
        ?>
" >
		<?php 
        if (isset($perfArray['appraisalid']) && $perfArray['appraisalid'] != '') {
            if ($actionName != 'view' && $actionName != 'edit') {
                ?>
	        <div class="appdetails">
	        			<?php 
                sapp_PerformanceHelper::displayappdetails($perfArray['appraisalid']);
                ?>
	        </div>
        <?php 
            }
        }
        ?>
        <?php 
        if (isset($perfArray['ratingsflag']) && $perfArray['ratingsflag'] == 'false') {
            ?>
        		<div class='ml-alert-1-error' style="clear: both;position: relative;top: 17px;width: 92%;">
						<div class='style-1-icon error'></div>
							Ratings not added for the appraisal. <a target ="_blank" href="<?php 
            echo BASE_URL . 'appraisalratings/add';
            ?>
" style="color:#A31414;text-decoration: none;font-weight: bold;">Click here</a> to configure ratings.
				</div>
        <?php 
        }
        ?>
        
    <script type="text/javascript" >
        $(document).ready(function(){
        	<?php 
        if ($step1_link != '') {
            ?>
	            $('#initstep_1').click(function(){
	            	$.blockUI({ width:'50px',message: $("#spinner").html() });
	                window.location = '<?php 
            echo $step1_link;
            ?>
';
	            });
            <?php 
        }
        ?>
            <?php 
        if ($step2_link != '') {
            ?>
                $('#initstep_2').click(function(){
                	$.blockUI({ width:'50px',message: $("#spinner").html() });
                    window.location = '<?php 
            echo $step2_link;
            ?>
';
                });
            <?php 
        }
        if ($step3_link != '') {
            ?>
                $('#initstep_3').click(function(){
                	$.blockUI({ width:'50px',message: $("#spinner").html() });
                    window.location = '<?php 
            echo $step3_link;
            ?>
';
                });
            <?php 
        }
        ?>

			<?php 
        if ($perfArray['step1status'] == 'Completed') {
            ?>
						$("#initstep_1").removeClass('incomplete').addClass('complete');
			<?php 
        }
        ?>

			<?php 
        if ($perfArray['step2status'] == 'Completed') {
            ?>
						$("#initstep_2").removeClass('incomplete').addClass('complete');
			<?php 
        }
        ?>

			<?php 
        if ($perfArray['step3status'] == 'Completed') {
            ?>
						$("#initstep_3").removeClass('incomplete').addClass('complete');
			<?php 
        }
        ?>
			var currentpage = '<?php 
        echo $perfArray['currentpage'];
        ?>
';
			$("#"+currentpage).addClass('active');


			<?php 
        if ($perfArray['currentpage'] != 'initstep_1') {
            ?>
				<?php 
            if ($perfArray['context'] == 'edit') {
                ?>
					  $(".breadcrumbs").append('<span class="arrows">&rsaquo;</span> <span>Edit</span>');	
				<?php 
            } else {
                ?>
					  $(".breadcrumbs").append('<span class="arrows">&rsaquo;</span> <span>View</span>');
			   <?php 
            }
            ?>
		  	
            <?php 
        }
        ?>

            <?php 
        if ($perfArray['appraisalid'] == '') {
            ?>
			            // $('#initstep_1').click(function(){
							// jAlert("Configure appraisal details.");
			            // });
			            
			            $('#initstep_2').click(function(){
			            	jAlert("Complete step 1 to configure step 2.");
			            });

						$('#initstep_3').click(function(){
							jAlert("Complete step 2 to configure step 3.");
			            });
            		
            <?php 
        }
        ?>
        });
    </script>
<?php 
    }
 public function save($feedforwardInitForm)
 {
     $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;
     }
     $feedforwardInitModel = new Default_Model_Feedforwardinit();
     $msgarray = array();
     $check_array = array();
     $appraisal_id = '';
     $id = $this->_request->getParam('id');
     $appraisal_mode = $this->_request->getParam('appraisal_mode');
     $ff_due_date = sapp_Global::change_date($this->_request->getParam('ff_due_date'), 'database');
     $employee_name_view = $this->_request->getParam('employee_name_view');
     $enable_to = $this->_request->getParam('enable_to');
     $initialize_status = $this->_request->getParam('initialize_status');
     $status = $this->_request->getParam('status');
     $x_init_status = $this->_request->getParam('x_init_status');
     $check = $this->_request->getParam('check');
     $empcmnt = $this->_request->getParam('empcmnt');
     if ($empcmnt) {
         $empcmnt_keys = array_keys($empcmnt);
     } else {
         $empcmnt_keys = array();
     }
     if (sizeof($check) > 0) {
         foreach ($check as $qid) {
             if (in_array($qid, $empcmnt_keys)) {
                 $check_array[$qid] = array('EC' => 1, 'ER' => 1);
             } else {
                 $check_array[$qid] = array('EC' => 0, 'ER' => 1);
             }
         }
     }
     if (!empty($enable_to)) {
         if (in_array(1, $enable_to)) {
             $enable_to = 1;
         } else {
             $enable_to = 0;
         }
     }
     if ($x_init_status != 1) {
         if ($feedforwardInitForm->isValid($this->_request->getPost())) {
             try {
                 $data = array('ff_due_date' => $ff_due_date, 'employee_name_view' => $employee_name_view, 'enable_to' => $enable_to, 'status' => $status, 'initialize_status' => $initialize_status, 'questions' => $check != '' ? implode(',', $check) : NULL, 'qs_privileges' => count($check_array) > 0 ? json_encode($check_array, true) : NULL, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 if ($id != '') {
                     $where = array('id=?' => $id);
                     $actionflag = 2;
                     $appraisal_id = $this->_request->getParam('appraisal_id');
                 } else {
                     $appraisalinitmodel = new Default_Model_Appraisalinit();
                     $appData = $appraisalinitmodel->getappdata_forview($appraisal_mode);
                     $data['pa_configured_id'] = $appData['id'];
                     $data['businessunit_id'] = $appData['businessunit_id'];
                     $data['department_id'] = $appData['department_id'];
                     $data['ff_mode'] = $appData['appraisal_mode'];
                     $data['ff_period'] = $appData['appraisal_period'];
                     $data['ff_from_year'] = $appData['from_year'];
                     $data['ff_to_year'] = $appData['to_year'];
                     $data['appraisal_id'] = $appraisal_mode;
                     $data['createdby_role'] = $loginuserRole;
                     $data['createdby_group'] = $loginuserGroup;
                     $data['createdby'] = $loginUserId;
                     $data['createddate'] = gmdate("Y-m-d H:i:s");
                     $data['isactive'] = 1;
                     $where = '';
                     $actionflag = 1;
                     $appraisal_id = $appraisal_mode;
                 }
                 $Id = $feedforwardInitModel->SaveorUpdateFeedforwardInitData($data, $where);
                 if ($Id == 'update') {
                     $tableid = $id;
                     $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization updated successfully."));
                 } else {
                     $tableid = $Id;
                     $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization added successfully."));
                 }
                 if ($initialize_status == 1) {
                     sapp_PerformanceHelper::update_QsParmas_Allemps($data['questions'], '');
                     $this->ffinitialize($appraisal_id, $tableid, $enable_to, $check);
                 }
                 $this->_redirect('feedforwardinit');
             } catch (Exception $e) {
                 $msgarray['appraisal_mode'] = "Something went wrong, please try again.";
                 return $msgarray;
             }
         } else {
             $messages = $feedforwardInitForm->getMessages();
             foreach ($messages as $key => $val) {
                 foreach ($val as $key2 => $val2) {
                     $msgarray[$key] = $val2;
                     break;
                 }
             }
             $msgarray['check_array'] = $check_array;
             return $msgarray;
         }
     } else {
         $data = array('status' => $status, 'ff_due_date' => $ff_due_date);
         $where = array('id=?' => $id);
         $Id = $feedforwardInitModel->SaveorUpdateFeedforwardInitData($data, $where);
         if ($status == 2) {
             if ($Id == 'update') {
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization closed successfully."));
                 $this->_redirect('feedforwardinit');
             }
         } else {
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization updated successfully."));
             $this->_redirect('feedforwardinit');
         }
     }
 }
Exemplo n.º 9
0
 public function checkffduedate()
 {
     $ffinitModel = new Default_Model_Feedforwardinit();
     $ffEmpRatModel = new Default_Model_Feedforwardemployeeratings();
     $ffDataArr = $ffinitModel->getFFbyBUDept('', 'yes');
     $current_day = new DateTime('now');
     $current_day->sub(new DateInterval('P1D'));
     if (!empty($ffDataArr)) {
         foreach ($ffDataArr as $ffval) {
             if ($ffval['status'] == 1) {
                 if ($ffval['ff_due_date']) {
                     $due_date = new DateTime($ffval['ff_due_date']);
                 } else {
                     $due_date = '';
                 }
                 $ffEmpsStatusData = $ffEmpRatModel->getEmpsFFStatus($ffval['id'], 'cron');
                 if (!empty($ffEmpsStatusData)) {
                     foreach ($ffEmpsStatusData as $empval) {
                         if ($empval['ff_status'] != APP_COMPLETED) {
                             $interval = $current_day->diff($due_date);
                             $interval->format('%d');
                             $interval = $interval->days;
                             if ($interval <= 1) {
                                 $optionArr = array('subject' => 'Feed Forward Pending', 'header' => 'Feed Forward', 'toemail' => $empval['userfullname'], 'toname' => $empval['emailaddress'], 'message' => 'Dear ' . $empval['userfullname'] . ', feed forward is pending.', 'cron' => 'yes');
                                 sapp_PerformanceHelper::saveCronMail($optionArr);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 10
0
 public function initialize($appraisalid, $initflag)
 {
     $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;
     }
     $appraisalQsModel = new Default_Model_Appraisalquestions();
     $appraisalQsTmpModel = new Default_Model_Appraisalqstemp();
     $app_init_model = new Default_Model_Appraisalinit();
     $appraisalPrivTempModel = new Default_Model_Appraisalqstemp();
     $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     $app_manager_model = new Default_Model_Appraisalmanager();
     $usersmodel = new Default_Model_Users();
     $departmentsmodel = new Default_Model_Departments();
     $announcementsModel = new Default_Model_Announcements();
     $deptids = '';
     $questions = '';
     $title = 'Performance Appraisal';
     $description = 'Performance appraisal initialized';
     $trDb = Zend_Db_Table::getDefaultAdapter();
     $trDb->beginTransaction();
     try {
         $data = $app_init_model->getConfigData($appraisalid);
         $appraisaldata = $data[0];
         $qsdataArr = $appraisalPrivTempModel->getAppraisalQuestions($appraisalid);
         if (!empty($qsdataArr)) {
             foreach ($qsdataArr as $qs) {
                 $questions .= $qs['hr_qs'] . ',';
             }
             $questions = rtrim($questions, ',');
         }
         $questions = implode(',', array_keys(array_flip(explode(',', $questions))));
         $initdata = array('initialize_status' => 2, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         $initwhere = array('id=?' => $appraisalid);
         if ($initflag == 1) {
             $initdata['initialize_status'] = 1;
             $insertQstable = $appraisalQsModel->insertQsData($appraisalid, $loginuserArr);
             $updateTmptable = $appraisalPrivTempModel->updateQsTempData($appraisalid, $loginuserArr);
             $con = $app_init_model->SaveorUpdateAppraisalInitData($initdata, $initwhere);
             if ($appraisaldata['enable_step'] == 2) {
                 /**
                  * Start 
                  * Inserting or Updating employee ratings table when enabled to employees
                  * If record exists then updating else inserting
                  */
                 $employeeidArr = $appraisalPrivMainModel->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
                          */
                     }
                 }
             }
             /*
              *   Logs Storing
              */
             if ($con == 'update') {
                 $actionflag = 2;
             } else {
                 $actionflag = 1;
             }
             $tableid = '';
             $menuID = INITIALIZE_APPRAISAL;
             $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
             /*
              *  Logs storing ends
              */
             /**
              * Sending mails to HR,Super Admin,Management,(managers OR employees) based on enable step.
              */
             $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 = $appraisaldata['enable_step'] == 1 ? 'to managers' : 'to employees';
                 $empmgrArr = array();
                 if ($appraisaldata['enable_step'] == 1) {
                     $getLine1ManagerId = $appraisalPrivMainModel->getLine1ManagerIdMain($appraisalid);
                     foreach ($getLine1ManagerId as $mgr) {
                         array_push($empmgrArr, $mgr['emailaddress']);
                     }
                 } else {
                     $empIdArr = array();
                     $empIdList = '';
                     $employeeidArr = $appraisalPrivMainModel->getemployeeIDs($appraisalid);
                     //fetching Employee Ids
                     if (!empty($employeeidArr)) {
                         foreach ($employeeidArr as $emp) {
                             array_push($empIdArr, $emp['employee_id']);
                         }
                         $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
                 $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);
             }
             if ($appraisaldata['enable_step'] == 2) {
                 $appImpleData = sapp_PerformanceHelper::check_per_implmentation($appraisaldata['businessunit_id'], $appraisaldata['department_id']);
             }
             sapp_PerformanceHelper::update_QsParmas_Allemps($questions, $appraisaldata['category_id']);
         } else {
             $app_init_model->SaveorUpdateAppraisalInitData($initdata, $initwhere);
         }
         $trDb->commit();
         if ($initflag == 1) {
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => 'Appraisal initialized successfully'));
         } else {
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => 'Appraisal configurations are saved to be initialized later'));
         }
         return 'success';
     } catch (Exception $e) {
         $trDb->rollBack();
         return 'error';
     }
 }
 public function initialize($appraisalid, $initflag)
 {
     $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);
     }
     $appraisalQsModel = new Default_Model_Appraisalquestions();
     $appraisalQsTmpModel = new Default_Model_Appraisalqstemp();
     $app_init_model = new Default_Model_Appraisalinit();
     $appraisalPrivTempModel = new Default_Model_Appraisalqstemp();
     $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     $usersmodel = new Default_Model_Users();
     $departmentsmodel = new Default_Model_Departments();
     $announcementsModel = new Default_Model_Announcements();
     $deptids = '';
     $questions = '';
     $title = 'Performance Appraisal';
     $description = 'Performance appraisal initialized';
     $trDb = Zend_Db_Table::getDefaultAdapter();
     $trDb->beginTransaction();
     try {
         $data = $app_init_model->getConfigData($appraisalid);
         $appraisaldata = $data[0];
         $qsdataArr = $appraisalPrivTempModel->getAppraisalQuestions($appraisalid);
         if (!empty($qsdataArr)) {
             foreach ($qsdataArr as $qs) {
                 $questions .= $qs['hr_qs'] . ',';
             }
             $questions = rtrim($questions, ',');
         }
         $questions = implode(',', array_keys(array_flip(explode(',', $questions))));
         $initdata = array('initialize_status' => 2, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         $initwhere = array('id=?' => $appraisalid);
         if ($initflag == 1) {
             $initdata['initialize_status'] = 1;
             $insertQstable = $appraisalQsModel->insertQsData($appraisalid, $loginuserArr);
             $updateTmptable = $appraisalPrivTempModel->updateQsTempData($appraisalid, $loginuserArr);
             $app_init_model->SaveorUpdateAppraisalInitData($initdata, $initwhere);
             /**
              * Sending mails to managers OR employees based on enable step.
              */
             if ($appraisaldata['enable_step'] == 1) {
                 /**
                  * Start 
                  * Sending Mails to Managers if enabled to managers
                  */
                 $getLine1ManagerId = $appraisalPrivMainModel->getLine1ManagerIdMain($appraisalid);
                 if (!empty($getLine1ManagerId)) {
                     foreach ($getLine1ManagerId as $val) {
                         $options['subject'] = APPLICATION_NAME . ': Appraisal process initiated';
                         $options['header'] = 'Performance Appraisal';
                         $options['toEmail'] = $val['emailaddress'];
                         $options['toName'] = $val['userfullname'];
                         $options['message'] = 'Dear ' . $val['userfullname'] . ', Appraisal process initiated';
                         $options['cron'] = 'yes';
                         //  sapp_Global::_sendEmail($options);
                     }
                 }
                 /**
                  * Mail to performance appraisal group
                  */
                 if (defined('PER_APPRAISAL_' . $appraisaldata['businessunit_id']) && $appraisaldata['businessunit_id'] != '') {
                     $options['subject'] = APPLICATION_NAME . ': Appraisal process initiated to managers.';
                     $options['header'] = 'Performance Appraisal';
                     $options['toEmail'] = constant('PER_APPRAISAL_' . $appraisaldata['businessunit_id']);
                     $options['toName'] = 'Performance Appraisal';
                     $options['message'] = 'Appraisal process initiated to managers.';
                     $options['cron'] = 'yes';
                     // sapp_Global::_sendEmail($options);
                 }
                 /**
                  * End
                  */
             } else {
                 /**
                  * Start 
                  * Inserting or Updating employee ratings table when enabled to employees
                  * If record exists then updating else inserting
                  */
                 $employeeidArr = $appraisalPrivMainModel->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
                          */
                         /** Start
                          * Sending Mails to employees
                          */
                         $employeeDetailsArr = $usersmodel->getUserDetailsByID($emp['employee_id'], '');
                         if (!empty($employeeDetailsArr)) {
                             $options['subject'] = APPLICATION_NAME . ': Appraisal process initiated';
                             $options['header'] = 'Performance Appraisal';
                             $options['toEmail'] = $employeeDetailsArr[0]['emailaddress'];
                             $options['toName'] = $employeeDetailsArr[0]['userfullname'];
                             $options['message'] = 'Dear ' . $employeeDetailsArr[0]['userfullname'] . ', Appraisal process initiated';
                             $options['cron'] = 'yes';
                             // sapp_Global::_sendEmail($options);
                         }
                         /**
                          * End
                          */
                     }
                 }
                 /**
                  * Mail to performance appraisal group
                  */
                 if (defined('PER_APPRAISAL_' . $appraisaldata['businessunit_id']) && $appraisaldata['businessunit_id'] != '') {
                     $options['subject'] = APPLICATION_NAME . ': Appraisal process initiated to employees.';
                     $options['header'] = 'Performance Appraisal';
                     $options['toEmail'] = constant('PER_APPRAISAL_' . $appraisaldata['businessunit_id']);
                     $options['toName'] = 'Performance Appraisal';
                     $options['message'] = 'Appraisal process initiated to employees.';
                     $options['cron'] = 'yes';
                     //  sapp_Global::_sendEmail($options);
                 }
                 /**
                  * End
                  */
             }
             /**
              * End Sending Mails and updating emp ratings table
              */
             if ($appraisaldata['enable_step'] == 2) {
                 $appImpleData = sapp_PerformanceHelper::check_per_implmentation($appraisaldata['businessunit_id'], $appraisaldata['department_id']);
                 /** Start
                  * Announecements
                  */
                 if ($appImpleData['performance_app_flag'] == 1) {
                     $deptArr = $departmentsmodel->getAllDeptsForUnit($appraisaldata['businessunit_id']);
                     if (!empty($deptArr)) {
                         foreach ($deptArr as $dept) {
                             $deptids .= $dept['id'] . ',';
                         }
                         $deptids = rtrim($deptids, ',');
                     }
                 } else {
                     $deptids = $appraisaldata['department_id'];
                 }
                 /*	$announcement_arr = array(
                                               'businessunit_id' => $appraisaldata['businessunit_id']!=''?$appraisaldata['businessunit_id']:NULL,
                                               'department_id' => $deptids!=''?$deptids:NULL,
                                               'title' => $title,
                                               'description' => $description,
                                               'attachments' => NULL,
                                               'status' => 2,
                                               'isactive' => 1,
                 			'createdby' => $loginUserId,
                 						'createdby_role'=>$loginuserRole,
                 			'createdby_group'=>$loginuserGroup,
                                               'modifiedby' => $loginUserId,
                 						'modifiedby_role'=>$loginuserRole,
                 			'modifiedby_group'=>$loginuserGroup,
                 			'createddate'=>gmdate("Y-m-d H:i:s"),
                                               'modifieddate'=>gmdate("Y-m-d H:i:s")
                                   			);
                                   			
                                   	$Id = $announcementsModel->SaveorUpdateAnnouncementsData($announcement_arr, '');		*/
                 /**
                  * End
                  */
             }
             sapp_PerformanceHelper::update_QsParmas_Allemps($questions, $appraisaldata['category_id']);
         } else {
             $app_init_model->SaveorUpdateAppraisalInitData($initdata, $initwhere);
         }
         $trDb->commit();
         if ($initflag == 1) {
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => 'Appraisal initialized successfully'));
         } else {
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => 'Appraisal configurations are saved to be initialized later'));
         }
         return 'success';
     } catch (Exception $e) {
         $trDb->rollBack();
         return 'error';
     }
 }
 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;
     // }
     $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 {
                 // $menumodel = new Default_Model_Menu();
                 // $actionflag = '';
                 // $tableid  = '';
                 $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, '');
                 $trDb->commit();
                 $result['status'] = 'success';
                 $result['msg'] = "Submitted successfully";
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization Submitted successfully. "));
                 /*
                                     $menuidArr = $menumodel->getMenuObjID('/appraisalmanager');
                 					$menuID = $menuidArr[0]['id'];
                 					$result = sapp_Global::logManager($menuID,$actionflag,$loginUserId,$tableid);
                 					/** Start
                 * Sending Mails to employees
                 */
                 /* $app_manager_model = new Default_Model_Appraisalmanager();
                 	       $employeeDetailsArr = $app_manager_model->getUserDetailsByID($businessUnit,'');
                 			
                 			 
                 			// 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
                  */
             } catch (Exception $e) {
                 $trDb->rollBack();
                 $result['status'] = 'error';
                 $result['msg'] = $e->getMessage();
             }
         }
     }
     $this->_helper->json($result);
 }