public function viewAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $leaverequestmodel = new Default_Model_Leaverequest();
     $id = $this->getRequest()->getParam('id');
     try {
         $useridArr = $leaverequestmodel->getUserID($id);
         if (!empty($useridArr)) {
             $user_id = $useridArr[0]['user_id'];
             if ($user_id == $loginUserId) {
                 $callval = $this->getRequest()->getParam('call');
                 if ($callval == 'ajaxcall') {
                     $this->_helper->layout->disableLayout();
                 }
                 $objName = 'pendingleaves';
                 $leaverequestform = new Default_Form_leaverequest();
                 $leaverequestform->removeElement("submit");
                 $elements = $leaverequestform->getElements();
                 if (count($elements) > 0) {
                     foreach ($elements as $key => $element) {
                         if ($key != "Cancel" && $key != "Edit" && $key != "Delete" && $key != "Attachments") {
                             $element->setAttrib("disabled", "disabled");
                         }
                     }
                 }
                 $data = $leaverequestmodel->getsinglePendingLeavesData($id);
                 $data = $data[0];
                 $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId);
                 if (!empty($data) && $data['leavestatus'] == 'Approved') {
                     $employeeleavetypemodel = new Default_Model_Employeeleavetypes();
                     $usersmodel = new Default_Model_Users();
                     $employeeleavetypeArr = $employeeleavetypemodel->getsingleEmployeeLeavetypeData($data['leavetypeid']);
                     if ($employeeleavetypeArr != 'norows') {
                         $leaverequestform->leavetypeid->addMultiOption($employeeleavetypeArr[0]['id'], utf8_encode($employeeleavetypeArr[0]['leavetype']));
                     }
                     if ($data['leaveday'] == 1) {
                         $leaverequestform->leaveday->addMultiOption($data['leaveday'], 'Full Day');
                     } else {
                         $leaverequestform->leaveday->addMultiOption($data['leaveday'], 'Half Day');
                     }
                     $repmngrnameArr = $usersmodel->getUserDetailsByID($data['rep_mang_id'], 'all');
                     $leaverequestform->populate($data);
                     $from_date = sapp_Global::change_date($data["from_date"], 'view');
                     $to_date = sapp_Global::change_date($data["to_date"], 'view');
                     $appliedon = sapp_Global::change_date($data["createddate"], 'view');
                     $leaverequestform->from_date->setValue($from_date);
                     $leaverequestform->to_date->setValue($to_date);
                     $leaverequestform->createddate->setValue($appliedon);
                     $leaverequestform->appliedleavesdaycount->setValue($data['appliedleavescount']);
                     $leaverequestform->comments->setValue($data['approver_comments']);
                     if (!empty($repmngrnameArr)) {
                         $leaverequestform->rep_mang_id->setValue($repmngrnameArr[0]['userfullname']);
                     } else {
                         $leaverequestform->rep_mang_id->setValue('');
                     }
                     /*	if(!empty($getavailbaleleaves))
                     		 {
                     			$leaverequestform->no_of_days->setValue($getavailbaleleaves[0]['remainingleaves']);
                     		 }  */
                     $this->view->controllername = $objName;
                     $this->view->id = $id;
                     $this->view->form = $leaverequestform;
                     $this->view->data = $data;
                     $leaverequestform->setDefault('leavetypeid', $data['leavetypeid']);
                     $leaverequestform->setDefault('leaveday', $data['leaveday']);
                     $this->view->reportingmanagerStatus = !empty($repmngrnameArr) ? $repmngrnameArr[0]['isactive'] : '';
                 } else {
                     $this->view->rowexist = "rows";
                 }
             } else {
                 $this->view->rowexist = "rows";
             }
         } else {
             $this->view->rowexist = "norows";
         }
     } catch (Exception $e) {
         $this->view->rowexist = "norows";
     }
 }
 public function viewAction()
 {
     $id = intval($this->getRequest()->getParam('id'));
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $objName = 'pendingleaves';
     $reportingmanagerStatus = '';
     $leaverequestform = new Default_Form_leaverequest();
     $leaverequestform->removeElement("submit");
     $elements = $leaverequestform->getElements();
     if (count($elements) > 0) {
         foreach ($elements as $key => $element) {
             if ($key != "Cancel" && $key != "Edit" && $key != "Delete" && $key != "Attachments") {
                 $element->setAttrib("disabled", "disabled");
             }
         }
     }
     $leaverequestmodel = new Default_Model_Leaverequest();
     if (is_int($id) && $id != 0) {
         try {
             if ($id) {
                 $data = $leaverequestmodel->getLeaveRequestDetails($id);
                 if (!empty($data)) {
                     $data = $data[0];
                     $employeeleavetypemodel = new Default_Model_Employeeleavetypes();
                     $usersmodel = new Default_Model_Users();
                     $employeeleavetypeArr = $employeeleavetypemodel->getsingleEmployeeLeavetypeData($data['leavetypeid']);
                     if ($employeeleavetypeArr != 'norows') {
                         $leaverequestform->leavetypeid->addMultiOption($employeeleavetypeArr[0]['id'], utf8_encode($employeeleavetypeArr[0]['leavetype']));
                     }
                     if ($data['leaveday'] == 1) {
                         $leaverequestform->leaveday->addMultiOption($data['leaveday'], 'Full Day');
                     } else {
                         $leaverequestform->leaveday->addMultiOption($data['leaveday'], 'Half Day');
                     }
                     $repmngrnameArr = $usersmodel->getUserDetailsByID($data['rep_mang_id'], 'all');
                     $leaverequestform->populate($data);
                     $from_date = sapp_Global::change_date($data["from_date"], 'view');
                     $to_date = sapp_Global::change_date($data["to_date"], 'view');
                     $appliedon = sapp_Global::change_date($data["createddate"], 'view');
                     $leaverequestform->from_date->setValue($from_date);
                     $leaverequestform->to_date->setValue($to_date);
                     $leaverequestform->createddate->setValue($appliedon);
                     $leaverequestform->appliedleavesdaycount->setValue($data['appliedleavescount']);
                     if (!empty($repmngrnameArr)) {
                         $reportingmanagerStatus = $repmngrnameArr[0]['isactive'];
                         $leaverequestform->rep_mang_id->setValue($repmngrnameArr[0]['userfullname']);
                     }
                     $leaverequestform->setDefault('leavetypeid', $data['leavetypeid']);
                     $leaverequestform->setDefault('leaveday', $data['leaveday']);
                     $this->view->controllername = $objName;
                     $this->view->id = $id;
                     $this->view->form = $leaverequestform;
                     $this->view->reportingmanagerStatus = $reportingmanagerStatus;
                 } else {
                     $this->view->rowexist = "rows";
                 }
             } else {
                 $this->view->rowexist = "rows";
             }
         } catch (Exception $e) {
             $this->view->rowexist = "norows";
         }
     } else {
         $this->view->rowexist = "norows";
     }
 }
 public function deleteAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $id = $this->_request->getParam('objid');
     $messages['message'] = '';
     $messages['msgtype'] = '';
     $messages['flagtype'] = '';
     $actionflag = 3;
     if ($id) {
         $employeeleavetypesmodel = new Default_Model_Employeeleavetypes();
         $data = array('isactive' => 0, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         $where = array('id=?' => $id);
         $leave_data = $employeeleavetypesmodel->getsingleEmployeeLeavetypeData($id);
         $Id = $employeeleavetypesmodel->SaveorUpdateEmployeeLeaveTypeData($data, $where);
         if ($Id == 'update') {
             sapp_Global::send_configuration_mail("Leave Type", $leave_data[0]['leavetype']);
             $menuID = EMPLOYEELEAVETYPES;
             $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $id);
             $messages['message'] = 'Leave type deleted successfully.';
             $messages['msgtype'] = 'success';
         } else {
             $messages['message'] = 'Leave type cannot be deleted.';
             $messages['msgtype'] = 'error';
         }
     } else {
         $messages['message'] = 'Leave type cannot be deleted.';
         $messages['msgtype'] = 'error';
     }
     $this->_helper->json($messages);
 }
    public function save($managerleaverequestform, $appliedleavescount, $employeeemail, $employeeid, $userfullname, $from_date, $to_date, $reason, $businessunitid, $leavetypeid)
    {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            $loginUserId = $auth->getStorage()->read()->id;
        }
        if ($managerleaverequestform->isValid($this->_request->getPost())) {
            $id = $this->_request->getParam('id');
            $managerstatus = $this->_request->getParam('managerstatus');
            $comments = $this->_request->getParam('comments');
            $date = new Zend_Date();
            $leaverequestmodel = new Default_Model_Leaverequest();
            $employeeleavetypesmodel = new Default_Model_Employeeleavetypes();
            $actionflag = '';
            $tableid = '';
            $status = '';
            $messagestr = '';
            $leavetypetext = '';
            $leavetypeArr = $employeeleavetypesmodel->getLeavetypeDataByID($leavetypeid);
            if ($managerstatus == 1 && !empty($leavetypeArr)) {
                if ($leavetypeArr[0]['leavepredeductable'] == 1) {
                    $updateemployeeleave = $leaverequestmodel->updateemployeeleaves($appliedleavescount, $employeeid);
                }
                $status = 2;
                $messagestr = "Leave request approved.";
                $leavetypetext = $leavetypeArr[0]['leavetype'];
            } else {
                if ($managerstatus == 2) {
                    $status = 3;
                    $messagestr = "Leave request rejected.";
                }
            }
            if ($managerstatus == 1 || $managerstatus == 2) {
                $data = array('leavestatus' => $status, 'approver_comments' => $comments, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                if ($id != '') {
                    $where = array('id=?' => $id);
                    $actionflag = 2;
                } else {
                    $data['createdby'] = $loginUserId;
                    $data['createddate'] = gmdate("Y-m-d H:i:s");
                    $data['isactive'] = 1;
                    $where = '';
                    $actionflag = 1;
                }
                $Id = $leaverequestmodel->SaveorUpdateLeaveRequest($data, $where);
                if ($Id == 'update') {
                    $tableid = $id;
                    $this->_helper->getHelper("FlashMessenger")->addMessage($messagestr);
                } else {
                    $tableid = $Id;
                    $this->_helper->getHelper("FlashMessenger")->addMessage($messagestr);
                }
                /** MAILING CODE **/
                if ($to_date == '' || $to_date == NULL) {
                    $to_date = $from_date;
                }
                /* Mail to Employee */
                $options['header'] = 'Leave Request';
                $options['toEmail'] = $employeeemail;
                $options['toName'] = $userfullname;
                if ($messagestr == 'Leave request approved.') {
                    $options['subject'] = 'Leave request approved';
                    $options['message'] = '<div>Hi,</div><div>The below leave(s) has been approved.</div>';
                } else {
                    $options['subject'] = 'Leave request rejected';
                    $options['message'] = '<div>Hi,</div><div>The below leave(s) has been rejected. </div>';
                }
                $options['message'] .= '<div>
                <table width="100%" cellspacing="0" cellpadding="15" border="0" style="border:3px solid #BBBBBB; font-size:16px; font-family:Arial, Helvetica, sans-serif; margin:30px 0 30px 0;" bgcolor="#ffffff">
                      <tbody><tr>
                        <td width="28%" style="border-right:2px solid #BBBBBB;">Employee Name</td>
                        <td width="72%">' . $userfullname . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
                        <td>' . $appliedleavescount . '</td>
                      </tr>
                      <tr>
                        <td style="border-right:2px solid #BBBBBB;">From</td>
                        <td>' . $from_date . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">To</td>
                        <td>' . $to_date . '</td>
            	     </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">Reason for Leave</td>
                        <td>' . $reason . '</td>
                  </tr>
                </tbody></table>

            </div>
            <div style="padding:20px 0 10px 0;">Please <a href="' . BASE_URL . '/index/popup" target="_blank" style="color:#b3512f;">click here</a> to login and check the leave details.</div>';
                $result = sapp_Global::_sendEmail($options);
                /* END */
                /* Mail to HR */
                if (defined('LV_HR_' . $businessunitid) && $businessunitid != '') {
                    $options['header'] = 'Leave Request';
                    $options['toEmail'] = constant('LV_HR_' . $businessunitid);
                    $options['toName'] = 'Leave Management';
                    if ($messagestr == 'Leave request approved.') {
                        $options['subject'] = 'Leave request approved';
                        $options['message'] = '<div>Hi,</div><div>The below leave(s) has been approved.</div>';
                    } else {
                        $options['subject'] = 'Leave request rejected	';
                        $options['message'] = '<div>Hi,</div><div>The below leave(s) has been rejected.</div>';
                    }
                    $options['message'] .= '<div>
                <table width="100%" cellspacing="0" cellpadding="15" border="0" style="border:3px solid #BBBBBB; font-size:16px; font-family:Arial, Helvetica, sans-serif; margin:30px 0 30px 0;" bgcolor="#ffffff">
                      <tbody>
	                      <tr>
	                        <td width="28%" style="border-right:2px solid #BBBBBB;">Employee Name</td>
	                        <td width="72%">' . $userfullname . '</td>
	                      </tr>
	                      <tr bgcolor="#e9f6fc">
	                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
	                        <td>' . $appliedleavescount . '</td>
	                      </tr>
	                      <tr>
	                        <td style="border-right:2px solid #BBBBBB;">From</td>
	                        <td>' . $from_date . '</td>
	                      </tr>
	                      <tr bgcolor="#e9f6fc">
	                        <td style="border-right:2px solid #BBBBBB;">To</td>
	                        <td>' . $to_date . '</td>
     	            	  </tr>
		    	          <tr>
	    	                 <td style="border-right:2px solid #BBBBBB;">Leave Type</td>
	                        <td>' . ucfirst($leavetypetext) . '</td>
	                  	  </tr>
	                      <tr bgcolor="#e9f6fc">
	                        <td style="border-right:2px solid #BBBBBB;">Reason for Leave</td>
	                        <td>' . $reason . '</td>
	                      </tr>
                		</tbody>
                </table>

            </div>
            <div style="padding:20px 0 10px 0;">Please <a href="' . BASE_URL . '/index/popup" target="_blank" style="color:#b3512f;">click here</a> to login and check the leave details.</div>';
                    $result = sapp_Global::_sendEmail($options);
                }
                /* END */
            }
            $menuID = MANAGEREMPLOYEEVACATIONS;
            $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
            $this->_redirect('manageremployeevacations');
        } else {
            $messages = $managerleaverequestform->getMessages();
            foreach ($messages as $key => $val) {
                foreach ($val as $key2 => $val2) {
                    $msgarray[$key] = $val2;
                    break;
                }
            }
            return $msgarray;
        }
    }
예제 #5
0
 public function saveLeaveTypes($hrWizardData)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $employeeLeaveTypesModel = new Default_Model_Employeeleavetypes();
     $msgarray = array();
     $errorflag = 'true';
     $service_desk_id = $this->_request->getParam('category_id');
     $leaveTypeArr = $this->_request->getParam('leavetype');
     $numberOfDaysArr = $this->_request->getParam('numberofdays');
     if (!empty($leaveTypeArr)) {
         $leaveArr = array_count_values($leaveTypeArr);
         for ($i = 0; $i < sizeof($leaveTypeArr); $i++) {
             if ($leaveTypeArr[$i] == '') {
                 $msgarray['leave_type'][$i] = 'Please enter request type.';
                 $errorflag = 'false';
             } else {
                 if (!preg_match('/^[a-zA-Z0-9.\\- ]+$/', $leaveTypeArr[$i])) {
                     $msgarray['leave_type'][$i] = 'Please enter valid request type.';
                     $errorflag = 'false';
                 } else {
                     if ($i > 0 && $leaveArr[$leaveTypeArr[$i]] > 1) {
                         $msgarray['leave_type'][$i] = 'Please enter different leave type.';
                         $errorflag = 'false';
                     } else {
                         $duplicateLeaveType = $employeeLeaveTypesModel->checkDuplicateLeaveType($leaveTypeArr[$i]);
                         if (!empty($duplicateLeaveType)) {
                             if ($duplicateLeaveType[0]['count'] > 0) {
                                 $msgarray['leave_type'][$i] = 'Leave type already exists.';
                                 $errorflag = 'false';
                             }
                         }
                     }
                 }
             }
             if ($numberOfDaysArr[$i] == '') {
                 $msgarray['leave_type'][$i] = 'Please enter number of days.';
                 $errorflag = 'false';
             } else {
                 if (!preg_match('/^[0-9]+$/', $numberOfDaysArr[$i])) {
                     $msgarray['leave_type'][$i] = 'Please enter only number.';
                     $errorflag = 'false';
                 }
             }
         }
         $msgarray['leavetypesize'] = sizeof($leaveTypeArr);
     }
     if ($errorflag == 'true') {
         try {
             $actionflag = 1;
             $tableid = '';
             $where = '';
             for ($i = 0; $i < sizeof($leaveTypeArr); $i++) {
                 if (strlen(trim($leaveTypeArr[$i])) > 3) {
                     $leaveCode = strtoupper(substr(trim($leaveTypeArr[$i]), 0, 4));
                 } else {
                     $leaveCode = strtoupper(trim($leaveTypeArr[$i]));
                 }
                 $data = array('leavetype' => $leaveTypeArr[$i], 'numberofdays' => $numberOfDaysArr[$i], 'leavecode' => $leaveCode, 'leavepreallocated' => 1, 'leavepredeductable' => 1, 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                 $Id = $employeeLeaveTypesModel->SaveorUpdateEmployeeLeaveTypeData($data, $where);
                 $tableid = $Id;
                 $menuID = EMPLOYEELEAVETYPES;
                 $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
             }
             $hrWizardModel = new Default_Model_Hrwizard();
             $hrwizardarray = array('leavetypes' => 2, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             if ($hrWizardData['holidays'] == 2 && $hrWizardData['perf_appraisal'] == 2) {
                 $hrwizardarray['iscomplete'] = 2;
             }
             $hrWizardModel->SaveorUpdateHrWizardData($hrwizardarray, '');
             $this->_helper->getHelper("FlashMessenger")->addMessage("Leave Types added successfully.");
             $this->_redirect('hrwizard/configureleavetypes');
         } catch (Exception $e) {
             $msgarray['category_id'] = "Something went wrong, please try again.";
             return $msgarray;
         }
     } else {
         return $msgarray;
     }
 }
 public function save($managerleaverequestform, $appliedleavescount, $employeeemail, $employeeid, $userfullname, $from_date, $to_date, $reason, $businessunitid, $leavetypeid)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     if ($managerleaverequestform->isValid($this->_request->getPost())) {
         $id = $this->_request->getParam('id');
         $managerstatus = $this->_request->getParam('managerstatus');
         $managercomments = $this->_request->getParam('approvalcomments');
         $date = new Zend_Date();
         $leaverequestmodel = new Default_Model_Leaverequest();
         $employeeleavetypesmodel = new Default_Model_Employeeleavetypes();
         $menumodel = new Default_Model_Menu();
         $actionflag = '';
         $tableid = '';
         $status = '';
         $messagestr = '';
         $leavetypetext = '';
         if ($managerstatus == 1) {
             $updateemployeeleave = $leaverequestmodel->updateemployeeleaves($appliedleavescount, $employeeid);
             $status = 2;
             $messagestr = "Leave request approved.";
         } else {
             if ($managerstatus == 2) {
                 $status = 3;
                 $messagestr = "Leave request rejected.";
             }
         }
         if ($managerstatus == 1 || $managerstatus == 2) {
             $data = array('approvalcomments' => $managercomments, 'leavestatus' => $status, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             if ($id != '') {
                 $where = array('id=?' => $id);
                 $actionflag = 2;
             } else {
                 $data['approvalcomments'] = $managercomments;
                 $data['createdby'] = $loginUserId;
                 $data['createddate'] = gmdate("Y-m-d H:i:s");
                 $data['isactive'] = 1;
                 $where = '';
                 $actionflag = 1;
             }
             $Id = $leaverequestmodel->SaveorUpdateLeaveRequest($data, $where);
             if ($Id == 'update') {
                 $tableid = $id;
                 $this->_helper->getHelper("FlashMessenger")->addMessage($messagestr);
             } else {
                 $tableid = $Id;
                 $this->_helper->getHelper("FlashMessenger")->addMessage($messagestr);
             }
             /** MAILING CODE * */
             if ($to_date == '' || $to_date == NULL) {
                 $to_date = $from_date;
             }
             $leavetypeArr = $employeeleavetypesmodel->getLeavetypeDataByID($leavetypeid);
             if (!empty($leavetypeArr)) {
                 $leavetypetext = $leavetypeArr[0]['leavetype'];
             }
             /* Mail to Employee */
             $view = $this->getHelper('ViewRenderer')->view;
             $base_URL = 'http://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getBaseUrl();
             if ($messagestr == 'Leave request approved.') {
                 //$options['subject'] = 'Leave request approved';
                 $mailpurpose = "The below leave(s) has been approved.";
             } else {
                 //$options['subject'] = 'Leave request rejected';
                 $mailpurpose = "The below leave(s) has been rejected.";
             }
             $this->view->base_url = $base_URL;
             $this->view->application_name = APPLICATION_NAME;
             $this->view->type = "New";
             $this->view->emp_name = $userfullname;
             $this->view->mailpurpose = $mailpurpose;
             $this->view->requester_name = $userfullname;
             $this->view->NoOfDays = 0;
             $this->view->leave_from = $from_date;
             $this->view->leave_to = $to_date;
             $this->view->reason_for_leave = $reason;
             $this->view->reporting_manager = "";
             $this->view->approvalcomments = $managercomments;
             $options['subject'] = APPLICATION_NAME . ':Leave Request';
             $options['header'] = 'Leave Request';
             $options['toEmail'] = $employeeemail;
             $options['toName'] = $userfullname;
             $options['message'] = $view->render('mailtemplates/leaves.phtml');
             sapp_Global::_sendEmail($options, "new");
             //$result = sapp_Global::_sendEmail($options);
             /* END */
             /* Mail to HR */
             $view = $this->getHelper('ViewRenderer')->view;
             $base_URL = 'http://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getBaseUrl();
             if ($messagestr == 'Leave request approved.') {
                 //$options['subject'] = 'Leave request approved';
                 $mailpurpose = "The below leave(s) has been approved.";
             } else {
                 //$options['subject'] = 'Leave request rejected';
                 $mailpurpose = "The below leave(s) has been rejected.";
             }
             $this->view->base_url = $base_URL;
             $this->view->application_name = APPLICATION_NAME;
             $this->view->type = "New";
             $this->view->emp_name = 'Leave Management';
             $this->view->mailpurpose = $mailpurpose;
             $this->view->requester_name = $userfullname;
             $this->view->NoOfDays = 0;
             $this->view->leave_from = $from_date;
             $this->view->leave_to = $to_date;
             $this->view->reason_for_leave = $reason;
             $this->view->reporting_manager = "";
             $options['subject'] = APPLICATION_NAME . ':Leave Request';
             $options['header'] = 'Leave Request';
             $options['toEmail'] = constant('LV_HR_0');
             $options['toName'] = 'Leave Management';
             $options['message'] = $view->render('mailtemplates/leaves.phtml');
             sapp_Global::_sendEmail($options, "new");
             //$result = sapp_Global::_sendEmail($options);
             /* END */
         }
         $menuidArr = $menumodel->getMenuObjID('/manageremployeevacations');
         $menuID = $menuidArr[0]['id'];
         $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
         $this->_redirect('manageremployeevacations');
     } else {
         $messages = $managerleaverequestform->getMessages();
         foreach ($messages as $key => $val) {
             foreach ($val as $key2 => $val2) {
                 $msgarray[$key] = $val2;
                 break;
             }
         }
         return $msgarray;
     }
 }
예제 #7
0
    public function saveleaverequestdetailsAction()
    {
        $this->_helper->layout->disableLayout();
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            $loginUserId = $auth->getStorage()->read()->id;
        }
        $constantday = '';
        $days = '';
        $errorflag = 'true';
        $msgarray = array();
        $leavetypecount = '';
        $leavedayArr = array(1, 2);
        $availableleaves = '';
        $rep_mang_id = '';
        $employeeemail = '';
        $reportingManageremail = '';
        $week_startday = '';
        $week_endday = '';
        $ishalf_day = '';
        $userfullname = '';
        $reportingmanagerName = '';
        $businessunitid = '';
        $dateofjoining = '';
        $hremailgroup = '';
        $employeeDepartmentId = '';
        $reportingmanagerId = '';
        $leavetypeArr = array();
        $leaverequestform = new Default_Form_leaverequest();
        $leaverequestmodel = new Default_Model_Leaverequest();
        $employeeleavetypesmodel = new Default_Model_Employeeleavetypes();
        $leavemanagementmodel = new Default_Model_Leavemanagement();
        $usersmodel = new Default_Model_Users();
        $employeesmodel = new Default_Model_Employees();
        $weekdaysmodel = new Default_Model_Weekdays();
        if ($loginUserId != '' && $loginUserId != NULL) {
            $loggedinEmpId = $usersmodel->getUserDetailsByID($loginUserId);
            $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
            if (!empty($loggedInEmployeeDetails)) {
                $reportingmanagerId = $loggedInEmployeeDetails[0]['reporting_manager'];
                $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
                $employeeEmploymentStatusId = $loggedInEmployeeDetails[0]['emp_status_id'];
                $businessunitid = $loggedInEmployeeDetails[0]['businessunit_id'];
                $dateofjoining = $loggedInEmployeeDetails[0]['date_of_joining'];
                if ($reportingmanagerId != '' && $reportingmanagerId != NULL) {
                    $reportingManagerDetails = $usersmodel->getUserDetailsByID($reportingmanagerId);
                }
                if ($employeeDepartmentId != '' && $employeeDepartmentId != NULL) {
                    $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId);
                }
                $employeeemail = $loggedinEmpId[0]['emailaddress'];
                $userfullname = $loggedinEmpId[0]['userfullname'];
                if (!empty($reportingManagerDetails)) {
                    $leaverequestform->rep_mang_id->setValue($reportingManagerDetails[0]['userfullname']);
                    $reportingManageremail = $reportingManagerDetails[0]['emailaddress'];
                    $reportingmanagerName = $reportingManagerDetails[0]['userfullname'];
                    $rep_mang_id = $reportingManagerDetails[0]['id'];
                    $rMngr = 'Yes';
                } else {
                    $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.';
                    $errorflag = 'false';
                }
                if (!empty($weekendDatailsArr)) {
                    $week_startday = $weekendDatailsArr[0]['weekendstartday'];
                    $week_endday = $weekendDatailsArr[0]['weekendday'];
                    $ishalf_day = $weekendDatailsArr[0]['is_halfday'];
                    $isskip_holidays = $weekendDatailsArr[0]['is_skipholidays'];
                } else {
                    $msgarray['from_date'] = 'Leave management options are not configured yet.';
                    $msgarray['to_date'] = 'Leave management options are not configured yet.';
                    $errorflag = 'false';
                }
            } else {
                $errorflag = 'false';
                $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.';
                $msgarray['from_date'] = 'Leave management options are not configured yet.';
                $msgarray['to_date'] = 'Leave management options are not configured yet.';
            }
        }
        /*START- Validating if employee has been allotted leaves
        		  Validating if employee has not been assigned any leaves
        		*/
        $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId);
        if (!empty($getavailbaleleaves)) {
            $availableleaves = $getavailbaleleaves[0]['remainingleaves'];
        } else {
            $errorflag = 'false';
            $msgarray['no_of_days'] = 'You have not been allotted leaves for this financial year. Please contact your HR';
        }
        /*
          END- Validating if employee has been allotted leaves
        */
        $id = $this->_request->getParam('id');
        $reason = $this->_request->getParam('reason');
        // reason
        $leavetypeparam = $this->_request->getParam('leavetypeid');
        if (isset($leavetypeparam) && $leavetypeparam != '') {
            $leavetypeArr = explode("!@#", $this->_request->getParam('leavetypeid'));
            $leavetypeid = $leavetypeArr[0];
            $leavetypeArr = $employeeleavetypesmodel->getLeavetypeDataByID($leavetypeid);
        }
        /*
           START- Leave Type Validation
           Server side validation for leavetype count based on user selection.
           This is to validate or negate if user manipulates the data in the browser or firebug.
        */
        if (!empty($leavetypeArr)) {
            $leavetypecount = $leavetypeArr[0]['numberofdays'];
            $leavetypetext = $leavetypeArr[0]['leavetype'];
        } else {
            if (isset($leavetypeparam) && $leavetypeparam != '') {
                $msgarray['leavetypeid'] = 'Wrong inputs given.';
                $errorflag = 'false';
            } else {
                if ($leavetypeparam == '') {
                    $msgarray['leavetypeid'] = 'Please select leave type.';
                    $errorflag = 'false';
                } else {
                    $msgarray['leavetypeid'] = 'Leave types are not configured yet.';
                    $errorflag = 'false';
                }
            }
        }
        /*
           END- Leave Type Validation
        */
        $leaveday = $this->_request->getParam('leaveday');
        /*
           START- Leave Day Validation
           Server side validation for halfday and full day based on user selection.
           This is to validate or negate if user manipulates the data in the browser or firebug.
        */
        if (!in_array($leaveday, $leavedayArr)) {
            $msgarray['leaveday'] = 'Wrong inputs given.';
            $errorflag = 'false';
        }
        /*
           END- Leave Day Validation
        */
        $from_date = $this->_request->getParam('from_date');
        $from_date = sapp_Global::change_date($from_date, 'database');
        $to_date = $this->_request->getParam('to_date');
        $to_date = sapp_Global::change_date($to_date, 'database');
        $appliedleavesdaycount = $this->_request->getParam('appliedleavesdaycount');
        // no of leaves applied
        /* 
           START- Day calculation and validations.
           I. Calculation of days based on start date and end data.
           II. Also checking whether Applied no of days is less than leavetype configuration. 
           III. Also If leaveday is selected as full day then making todata as manadatory and 
                if leave day is selected as half day then no mandatory validation for todate.
        */
        if ($from_date != '' && $to_date != '' && $leavetypecount != '') {
            $days = $this->calculatebusinessdays($from_date, $to_date);
            if (is_numeric($days) && $leavetypecount >= $days) {
            } else {
                if (!is_numeric($days)) {
                    $msgarray['to_date'] = 'To date should be greater than from date.';
                    $errorflag = 'false';
                } else {
                    $msgarray['to_date'] = $leavetypetext . " permits maximum of " . $leavetypecount . " leaves.";
                    $errorflag = 'false';
                }
            }
        } else {
            if ($leaveday == 1) {
                if ($to_date == '' && !empty($weekendDatailsArr)) {
                    $msgarray['to_date'] = "Please select date.";
                    $errorflag = 'false';
                }
            }
        }
        /*
        		    END- Day calculation and validations.
        */
        /*  
        		    START- Validating Half day requests based on Leave management options
        		    Validation for half day leaves. 
        		    If halfday leave is configure in leave management options then only half day leave can be applied. 
        */
        if ($ishalf_day == 2) {
            if ($leaveday == 2) {
                $errorflag = 'false';
                $msgarray['leaveday'] = 'Half day leave cannot be applied.';
            }
        }
        /*  
            END- Validating Half day requests based on Leave management options
        */
        /* 
           START- Validating if leave request has been previoulsy applied
           I.Validating from and to dates to check whether previously 
           any leave has been raised with the same dates.
           II.If full day leave is applied then fromdate and todate are passed as parameter to query.
           III.If half day leave is applied then fromdate and fromdate are passed as a parameter to query.
        */
        $userAppliedLeaves = $leaverequestmodel->getUsersAppliedLeaves($loginUserId);
        if (!empty($userAppliedLeaves)) {
            foreach ($userAppliedLeaves as $leave) {
                if ($leaveday == 1) {
                    $leavesDateExists = $leaverequestmodel->checkLeaveExists($leave['from_date'], $leave['to_date'], $from_date, $to_date, $loginUserId);
                } else {
                    $leavesDateExists = $leaverequestmodel->checkLeaveExists($leave['from_date'], $leave['to_date'], $from_date, $from_date, $loginUserId);
                }
                if ($leavesDateExists[0]['leaveexist'] > 0) {
                    $errorflag = 'false';
                    $msgarray['from_date'] = ' Leave has already been applied for the above dates.';
                    break;
                }
            }
        }
        /*
          END- Validating if leave request has been previoulsy applied
        */
        /* START Validating whether applied date is prior to date of joining */
        if ($dateofjoining >= $from_date && $from_date != '') {
            $errorflag = 'false';
            $msgarray['from_date'] = ' Leave cannot be applied before date of joining.';
        }
        /* End */
        if ($leaveday == 2) {
            $appliedleavescount = 0.5;
        } else {
            if ($leaveday == 1) {
                $appliedleavescount = $days != '' ? $days : $appliedleavesdaycount;
            }
        }
        if ($this->getRequest()->getPost()) {
            if ($leaverequestform->isValid($this->_request->getPost()) && $errorflag == 'true') {
                $date = new Zend_Date();
                $actionflag = '';
                $tableid = '';
                $data = array('user_id' => $loginUserId, 'reason' => $reason, 'leavetypeid' => $leavetypeid, 'leaveday' => $leaveday, 'from_date' => $from_date, 'to_date' => $to_date != '' ? $to_date : $from_date, 'leavestatus' => 1, 'rep_mang_id' => $rep_mang_id, 'no_of_days' => $availableleaves, 'appliedleavescount' => $appliedleavescount, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                if ($id != '') {
                    $where = array('id=?' => $id);
                    $actionflag = 2;
                } else {
                    $data['createdby'] = $loginUserId;
                    $data['createddate'] = gmdate("Y-m-d H:i:s");
                    $data['isactive'] = 1;
                    $where = '';
                    $actionflag = 1;
                }
                $Id = $leaverequestmodel->SaveorUpdateLeaveRequest($data, $where);
                if ($Id == 'update') {
                    $tableid = $id;
                    $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Leave request updated successfully."));
                } else {
                    $tableid = $Id;
                    $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Leave request added successfully."));
                    /** MAILING CODE **/
                    //$hremail = explode(",",HREMAIL);
                    /* Mail to Reporting manager */
                    if ($to_date == '' || $to_date == NULL) {
                        $to_date = $from_date;
                    }
                    $toemailArr = $reportingManageremail;
                    //$employeeemail
                    if (!empty($toemailArr)) {
                        $options['subject'] = 'Leave request for approval';
                        $options['header'] = 'Leave Request';
                        $options['toEmail'] = $toemailArr;
                        $options['toName'] = $reportingmanagerName;
                        $options['message'] = '<div>
												<div>Dear ' . $reportingmanagerName . ',</div>
												<div>The leave of the below employee is pending for approval:</div>
												<div>
                <table width="100%" cellspacing="0" cellpadding="15" border="0" style="border:3px solid #BBBBBB; font-size:16px; font-family:Arial, Helvetica, sans-serif; margin:30px 0 30px 0;" bgcolor="#ffffff">
                      <tbody><tr>
                        <td width="28%" style="border-right:2px solid #BBBBBB;">Employee Name</td>
                        <td width="72%">' . $userfullname . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
                        <td>' . $appliedleavescount . '</td>
                      </tr>
                      <tr>
                        <td style="border-right:2px solid #BBBBBB;">Remaining Leaves</td>
                        <td>' . $availableleaves . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">From</td>
                        <td>' . $from_date . '</td>
                      </tr>
                      <tr>
                        <td style="border-right:2px solid #BBBBBB;">To</td>
                        <td>' . $to_date . '</td>
                  </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">Reason for Leave</td>
                        <td>' . $reason . '</td>
                  </tr>
                  <tr>
                        <td style="border-right:2px solid #BBBBBB;">Reporting Manager</td>
                        <td>' . $reportingmanagerName . '</td>
                  </tr>
                </tbody></table>

            </div>
            <div style="padding:20px 0 10px 0;">Please <a href="' . BASE_URL . '/index/popup" target="_blank" style="color:#b3512f;">click here</a> to login and check the leave details.</div>
            </div>';
                        $result = sapp_Global::_sendEmail($options);
                    }
                    /* END */
                    /* Mail to HR */
                    if (defined('LV_HR_' . $businessunitid) && $businessunitid != '') {
                        $options['subject'] = 'Leave request for approval';
                        $options['header'] = 'Leave Request ';
                        $options['toEmail'] = constant('LV_HR_' . $businessunitid);
                        $options['toName'] = 'Leave management';
                        $options['message'] = '<div>
												<div>Dear HR,</div>
												<div>The leave of the below employee is pending for approval:</div>
<div>
                <table width="100%" cellspacing="0" cellpadding="15" border="0" style="border:3px solid #BBBBBB; font-size:16px; font-family:Arial, Helvetica, sans-serif; margin:30px 0 30px 0;" bgcolor="#ffffff">
                      <tbody><tr>
                        <td width="28%" style="border-right:2px solid #BBBBBB;">Employee Name</td>
                        <td width="72%">' . $userfullname . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
                        <td>' . $appliedleavescount . '</td>
                      </tr>
                      <tr>
                        <td style="border-right:2px solid #BBBBBB;">Remaining Leaves</td>
                        <td>' . $availableleaves . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">From</td>
                        <td>' . $from_date . '</td>
                      </tr>
                      <tr>
                        <td style="border-right:2px solid #BBBBBB;">To</td>
                        <td>' . $to_date . '</td>
                  </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">Reason for Leave</td>
                        <td>' . $reason . '</td>
                  </tr>
                  <tr>
                        <td style="border-right:2px solid #BBBBBB;">Reporting Manager</td>
                        <td>' . $reportingmanagerName . '</td>
                  </tr>
                </tbody></table>

            </div>
            <div style="padding:20px 0 10px 0;">Please <a href="' . BASE_URL . '/index/popup" target="_blank" style="color:#b3512f;">click here</a> to login and check the leave details.</div>
            </div>';
                        //$options['cron'] = 'yes';
                        $result = sapp_Global::_sendEmail($options);
                    }
                    /* END */
                    /* Mail to the applied employee*/
                    $toemailArr = $employeeemail;
                    $options['subject'] = 'Leave request for approval';
                    $options['header'] = 'Leave Request';
                    $options['toEmail'] = $toemailArr;
                    $options['toName'] = $userfullname;
                    $options['message'] = '<div>
												<div>Hi,</div>
												<div>A leave request raised by you is sent for your managers approval.</div>
<div>
                <table width="100%" cellspacing="0" cellpadding="15" border="0" style="border:3px solid #BBBBBB; font-size:16px; font-family:Arial, Helvetica, sans-serif; margin:30px 0 30px 0;" bgcolor="#ffffff">
                      <tbody><tr>
                        <td width="28%" style="border-right:2px solid #BBBBBB;">Employee Name</td>
                        <td width="72%">' . $userfullname . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
                        <td>' . $appliedleavescount . '</td>
                      </tr>
                      <tr>
                        <td style="border-right:2px solid #BBBBBB;">From</td>
                        <td>' . $from_date . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">To</td>
                        <td>' . $to_date . '</td>
            	     </tr>
	    	          <tr>
    	                 <td style="border-right:2px solid #BBBBBB;">Leave Type</td>
                        <td>' . $leavetypetext . '</td>
                  </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">Reason for Leave</td>
                        <td>' . $reason . '</td>
                  </tr>
                </tbody></table>

            </div>
            <div style="padding:20px 0 10px 0;">Please <a href="' . BASE_URL . '/index/popup" target="_blank" style="color:#b3512f;">click here</a> to login and check the leave details.</div>												
            </div>';
                    $result = sapp_Global::_sendEmail($options);
                }
                $menuID = LEAVEREQUEST;
                $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
                $this->_helper->json(array('result' => 'saved', 'message' => 'Leave request applied successfully.', 'controller' => 'pendingleaves'));
            } else {
                $messages = $leaverequestform->getMessages();
                if (isset($msgarray['rep_mang_id'])) {
                    $messages['rep_mang_id'] = array($msgarray['rep_mang_id']);
                }
                if (isset($msgarray['from_date'])) {
                    $messages['from_date'] = array($msgarray['from_date']);
                }
                if (isset($msgarray['to_date'])) {
                    $messages['to_date'] = array($msgarray['to_date']);
                }
                if (isset($msgarray['leaveday'])) {
                    $messages['leaveday'] = array($msgarray['leaveday']);
                }
                if (isset($msgarray['leavetypeid'])) {
                    $messages['leavetypeid'] = array($msgarray['leavetypeid']);
                }
                if (isset($msgarray['no_of_days'])) {
                    $messages['no_of_days'] = array($msgarray['no_of_days']);
                }
                $messages['result'] = 'error';
                $this->_helper->json($messages);
            }
        }
    }
예제 #8
0
 public function weekAction()
 {
     $usersModel = new Timemanagement_Model_Users();
     $storage = new Zend_Auth_Storage_Session();
     $now = new DateTime();
     $data = $storage->read();
     $selYrMon = $this->_getParam('selYrMon');
     $week = $this->_getParam('week') != '' ? $this->_getParam('week') : 1;
     $calWeek = $this->_getParam('calWeek');
     $timeFlag = $this->_getParam('flag');
     $selDay = $this->_getParam('day');
     if ($data->id == 1) {
         $this->_redirect('error');
     }
     $selYrMon = $selYrMon != '' ? $selYrMon : $now->format('Y-m');
     $yrMon = explode('-', $selYrMon);
     if ($timeFlag == 'time' && $selYrMon == $now->format('Y-m') && $calWeek == '') {
         $calWeek = strftime('%U', strtotime($selYrMon . '-' . $now->format('d')));
         $startCalWeek = strftime('%U', strtotime($selYrMon . '-01'));
         $week = $calWeek - $startCalWeek + 1;
     }
     $empDoj = $usersModel->getEmployeeDoj($data->id);
     $selYrMonArray = explode('-', $selYrMon);
     if ($selDay != '') {
         $calWeek = strftime('%U', strtotime($selYrMon . '-' . $selDay));
         $startCalWeek = strftime('%U', strtotime($selYrMon . '-01'));
         $week = $calWeek - $startCalWeek + 1;
     } else {
         if ($calWeek == '') {
             $calWeek = strftime('%U', strtotime($selYrMon . '-01'));
         }
     }
     $myTsModel = new Timemanagement_Model_MyTimesheet();
     if ($timeFlag == 'time') {
         $myTsWeekData = $myTsModel->getWeeklyTimesheetData($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     } else {
         $myTsWeekData = $myTsModel->getWeeklyTimesheetData($data->id, $selYrMonArray[0], $selYrMonArray[1], $week, 'view');
     }
     $empHolidaysWeekendsData = $usersModel->getEmployeeHolidaysNWeekends($data->id, $yrMon[0], $yrMon[1], $calWeek);
     $startDate = date("Y-m-d", strtotime("{$yrMon[0]}-W{$calWeek}-7"));
     $endDate = date("Y-m-d", strtotime('next saturday', strtotime($startDate)));
     $empLeavesData = $usersModel->getEmpLeaves($data->id, $startDate, $endDate, 'all');
     $weekNotes = $myTsModel->getWeekNotes($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     $weekDaysStatus = $myTsModel->getWeekDaysStatus($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     $weekDaysProjStatus = $myTsModel->getWeekDaysProjStatus($data->id, $selYrMonArray[0], $selYrMonArray[1], $week);
     $noOfDaysMonth = date("t", mktime(0, 0, 0, $selYrMonArray[1], 1, $selYrMonArray[0]));
     $cronStartDay = "";
     $cronEndDay = "";
     $mon = $yrMon[1] + 1;
     $yr = $mon == 12 ? $selYrMonArray[0] + 1 : $selYrMonArray[0];
     if ($selDay != '') {
         $this->view->selDay = date("D", strtotime($selYrMon . '-' . $selDay));
     }
     $this->view->empDoj = $empDoj['date_of_joining'];
     $this->view->selYrMon = $selYrMon;
     $this->view->selWeek = $week;
     $this->view->myTsWeekData = $myTsWeekData;
     $this->view->weekNotesData = $weekNotes;
     $this->view->empHolidaysWeekends = $empHolidaysWeekendsData[0];
     $this->view->leavesData = $empLeavesData;
     $this->view->weekDaysStatus = $weekDaysStatus;
     $this->view->weekDaysProjStatus = $weekDaysProjStatus;
     $this->view->cronStartDay = $cronStartDay;
     $this->view->cronEndDay = $cronEndDay;
     //START code to show pending weeks for submit in current month
     $projmodel = new Timemanagement_Model_Projects();
     $prevweeks = $projmodel->getprevmonthweeks(date('Y-m'), date('d'));
     /*Leave request code starts*/
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $leaverequestform = new Default_Form_leaverequest();
     $leaverequestform->setAttrib('action', BASE_URL . 'leaverequest');
     $leaverequestmodel = new Default_Model_Leaverequest();
     $employeeleavetypemodel = new Default_Model_Employeeleavetypes();
     $leavemanagementmodel = new Default_Model_Leavemanagement();
     $usersmodel = new Default_Model_Users();
     $employeesmodel = new Default_Model_Employees();
     $weekdaysmodel = new Default_Model_Weekdays();
     $holidaydatesmodel = new Default_Model_Holidaydates();
     $msgarray = array();
     $dateofjoiningArr = array();
     $holidayDateslistArr = array();
     $rMngr = 'No';
     $availableleaves = '';
     $rep_mang_id = '';
     $employeeemail = '';
     $reportingManageremail = '';
     $week_startday = '';
     $week_endday = '';
     $ishalf_day = '';
     $userfullname = '';
     $reportingmanagerName = '';
     $businessunitid = '';
     $hremailgroup = '';
     /* Start
     		   Queries to fetch user details,reporting manager details and weekend details from users table and employees table
     		*/
     if ($loginUserId != '' && $loginUserId != NULL) {
         $loggedinEmpId = $usersmodel->getUserDetailsByID($loginUserId);
         $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
         if (!empty($loggedInEmployeeDetails)) {
             if ($loggedInEmployeeDetails[0]['date_of_joining'] != '') {
                 $date = new DateTime($loggedInEmployeeDetails[0]['date_of_joining']);
                 $datofjoiningtimestamp = $date->getTimestamp();
                 $dateofjoining = explode("-", $loggedInEmployeeDetails[0]['date_of_joining']);
                 $year = $dateofjoining[0];
                 $month = $dateofjoining[1];
                 $day = $dateofjoining[2];
                 $dateofjoiningArr = array('year' => $year, 'month' => $month, 'day' => $day, 'datetimestamp' => $datofjoiningtimestamp);
             }
             $reportingmanagerId = $loggedInEmployeeDetails[0]['reporting_manager'];
             $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
             $employeeEmploymentStatusId = $loggedInEmployeeDetails[0]['emp_status_id'];
             $employeeHolidayGroupId = $loggedInEmployeeDetails[0]['holiday_group'];
             $reportingManagerDetails = $usersmodel->getUserDetailsByID($reportingmanagerId);
             $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId);
             $employeeemail = $loggedinEmpId[0]['emailaddress'];
             $userfullname = $loggedinEmpId[0]['userfullname'];
             $businessunitid = $loggedInEmployeeDetails[0]['businessunit_id'];
             if (!empty($reportingManagerDetails)) {
                 $leaverequestform->rep_mang_id->setValue($reportingManagerDetails[0]['userfullname']);
                 $reportingManageremail = $reportingManagerDetails[0]['emailaddress'];
                 $reportingmanagerName = $reportingManagerDetails[0]['userfullname'];
                 $rep_mang_id = $reportingManagerDetails[0]['id'];
                 $rMngr = 'Yes';
             } else {
                 $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.';
             }
             if (!empty($weekendDatailsArr)) {
                 $week_startday = $weekendDatailsArr[0]['weekendstartday'];
                 $week_endday = $weekendDatailsArr[0]['weekendday'];
                 $ishalf_day = $weekendDatailsArr[0]['is_halfday'];
                 $isskip_holidays = $weekendDatailsArr[0]['is_skipholidays'];
             } else {
                 $msgarray['from_date'] = 'Leave management options are not configured yet.';
                 $msgarray['to_date'] = 'Leave management options are not configured yet.';
             }
             if ($employeeHolidayGroupId != '' && $employeeHolidayGroupId != NULL) {
                 $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeHolidayGroupId);
             }
             if (defined('LV_HR_' . $businessunitid)) {
                 $hremailgroup = 'hremailgroupexists';
             } else {
                 $hremailgroup = '';
             }
             /* Search Filters */
             $isReportingManagerFlag = 'false';
             $searchRepFlag = 'false';
             $searchMeFlag = 'true';
             $filter = $this->_request->getParam('filter');
             if (!empty($filter)) {
                 if (in_array(2, $filter)) {
                     $searchRepFlag = 'true';
                 }
                 if (in_array(1, $filter)) {
                     $searchMeFlag = 'true';
                 } else {
                     $searchMeFlag = 'false';
                 }
             }
             if ($searchMeFlag == 'true') {
                 $leaverequestdetails = $leaverequestmodel->getUserApprovedOrPendingLeavesData($loginUserId);
             }
             /* Start -For Checking if logged in user is reporting manager */
             $isReportingManager = $employeesmodel->CheckIfReportingManager($loginUserId);
             if (!empty($isReportingManager) && $isReportingManager[0]['count'] > 0) {
                 if ($searchRepFlag == 'true') {
                     $managerrequestdetails = $leaverequestmodel->getManagerApprovedOrPendingLeavesData($loginUserId);
                 }
                 $isReportingManagerFlag = 'true';
             }
             /* End */
             $this->view->userfullname = $userfullname;
             $this->view->loggedinEmpId = $loggedinEmpId;
             $this->view->weekendDatailsArr = $weekendDatailsArr;
             $this->view->reportingManagerDetails = $reportingManagerDetails;
             $this->view->rMngr = $rMngr;
             $this->view->hremailgroup = $hremailgroup;
             $this->view->dateofjoiningArr = $dateofjoiningArr;
             $this->view->leaverequestdetails = !empty($leaverequestdetails) ? $leaverequestdetails : array();
             $this->view->holidayDateslistArr = $holidayDateslistArr;
             $this->view->managerrequestdetails = !empty($managerrequestdetails) ? $managerrequestdetails : array();
             $this->view->isReportingManagerFlag = $isReportingManagerFlag;
             $this->view->searchRepFlag = $searchRepFlag;
             $this->view->searchMeFlag = $searchMeFlag;
         } else {
             $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.';
             $msgarray['from_date'] = 'Leave management options are not configured yet.';
             $msgarray['to_date'] = 'Leave management options are not configured yet.';
         }
     }
     /* End */
     /* 
      Start
      Query to fetch and build multioption for Leavetype dropdown
     */
     $leavetype = $employeeleavetypemodel->getactiveleavetype();
     if (!empty($leavetype)) {
         if (sizeof($leavetype) > 0) {
             foreach ($leavetype as $leavetyperes) {
                 $leaverequestform->leavetypeid->addMultiOption($leavetyperes['id'] . '!@#' . $leavetyperes['numberofdays'] . '!@#' . utf8_encode($leavetyperes['leavetype']), utf8_encode($leavetyperes['leavetype']));
             }
         }
     } else {
         $msgarray['leavetypeid'] = ' Leave types are not configured yet.';
     }
     $this->view->leavetype = $leavetype;
     /* End */
     /*
     START
     Query to get the number of available leaves for the employee 
     */
     $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId);
     if (!empty($getavailbaleleaves)) {
         $leaverequestform->no_of_days->setValue($getavailbaleleaves[0]['remainingleaves']);
         $availableleaves = $getavailbaleleaves[0]['remainingleaves'];
     } else {
         $msgarray['no_of_days'] = 'You have not been allotted leaves for this financial year. Please contact your HR.';
     }
     $this->view->getavailbaleleaves = $getavailbaleleaves;
     /* END */
     $this->view->form = $leaverequestform;
     $this->view->msgarray = $msgarray;
     $this->view->loginUserId = $loginUserId;
     $this->view->messages = $this->_helper->flashMessenger->getMessages();
     /*leave request code ends*/
     if ($timeFlag != '') {
         $this->_helper->viewRenderer('entertime');
     }
 }