public function deleteAction()
    {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            $loginUserId = $auth->getStorage()->read()->id;
            $loginUserEmail = $auth->getStorage()->read()->emailaddress;
            $loginUserName = $auth->getStorage()->read()->userfullname;
        }
        $id = $this->_request->getParam('objid');
        $messages['message'] = '';
        $actionflag = 5;
        $businessunitid = '';
        $leavetypetext = '';
        if ($id) {
            $leaverequestmodel = new Default_Model_Leaverequest();
            $usersmodel = new Default_Model_Users();
            $employeesmodel = new Default_Model_Employees();
            $employeeleavetypesmodel = new Default_Model_Employeeleavetypes();
            $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
            if ($loggedInEmployeeDetails[0]['businessunit_id'] != '') {
                $businessunitid = $loggedInEmployeeDetails[0]['businessunit_id'];
            }
            $dataarr = array('leavestatus' => 4, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId);
            $where = array('id=?' => $id);
            $Id = $leaverequestmodel->SaveorUpdateLeaveRequest($dataarr, $where);
            $data = $leaverequestmodel->getsinglePendingLeavesData($id);
            $data = $data[0];
            $appliedleavesdaycount = $data['appliedleavescount'];
            $to_date = $data['to_date'];
            $from_date = $data['from_date'];
            $reason = $data['reason'];
            $leavetypeid = $data['leavetypeid'];
            $repmngrnameArr = $usersmodel->getUserDetailsByID($data['rep_mang_id']);
            $reportingmanageremail = $repmngrnameArr[0]['emailaddress'];
            $reportingmanagername = $repmngrnameArr[0]['userfullname'];
            if ($Id == 'update') {
                $menuID = PENDINGLEAVES;
                $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $id);
                /** MAILING CODE **/
                if ($to_date == '' || $to_date == NULL) {
                    $to_date = $from_date;
                }
                /* Mail to Employee */
                $options['subject'] = 'Leave request cancelled';
                $options['header'] = 'Leave Request';
                $options['toEmail'] = $loginUserEmail;
                $options['toName'] = $loginUserName;
                $options['message'] = '<div>Hi,</div>
								<div>The below leave(s) has been cancelled.</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%">' . $loginUserName . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
                        <td>' . $appliedleavesdaycount . '</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 Reporting Manager */
                $options['subject'] = 'Leave request cancelled';
                $options['header'] = 'Leave Request';
                $options['toEmail'] = $reportingmanageremail;
                $options['toName'] = $reportingmanagername;
                $options['message'] = '<div>Hi,</div>
								<div>The below leave(s) has been cancelled.</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%">' . $loginUserName . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
                        <td>' . $appliedleavesdaycount . '</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['subject'] = 'Leave request cancelled';
                    $options['header'] = 'Leave Request';
                    $options['toEmail'] = constant('LV_HR_' . $businessunitid);
                    $options['toName'] = 'Leave management';
                    $options['message'] = '<div>Hi,</div>
								<div>The below leave(s) has been cancelled by the Employee.</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%">' . $loginUserName . '</td>
                      </tr>
                      <tr bgcolor="#e9f6fc">
                        <td style="border-right:2px solid #BBBBBB;">No. of Day(s)</td>
                        <td>' . $appliedleavesdaycount . '</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>';
                    $options['cron'] = 'yes';
                    $result = sapp_Global::_sendEmail($options);
                }
                $messages['message'] = 'Leave request cancelled';
                $messages['msgtype'] = 'success';
            } else {
                $messages['message'] = 'Leave request cannot be cancelled';
                $messages['msgtype'] = 'error';
            }
        } else {
            $messages['message'] = 'Leave request cannot be cancelled';
            $messages['msgtype'] = 'error';
        }
        $this->_helper->json($messages);
    }
Beispiel #2
0
 public function calculatecalendardaysAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $noOfDays = 0;
     $weekDay = '';
     $result['message'] = '';
     $result['days'] = '';
     $result['from_date_view'] = '';
     $result['to_date_view'] = '';
     $result['result'] = '';
     $employeeDepartmentId = '';
     $employeeGroupId = '';
     $weekend1 = '';
     $weekend2 = '';
     $availableleaves = '';
     $holidayDatesArr = array();
     $fromDatejs = $this->_request->getParam('fromDate');
     $fromDate = sapp_Global::change_date($fromDatejs, 'database');
     $toDatejs = $this->_request->getParam('toDate');
     $toDate = sapp_Global::change_date($toDatejs, 'database');
     //Calculating the no of days in b/w from date & to date with out taking weekend & holidays....
     $from_obj = new DateTime($fromDatejs);
     $from_date = $from_obj->format('Y-m-d');
     $to_obj = new DateTime($toDatejs);
     $to_date = $to_obj->format('Y-m-d');
     if ($to_date >= $from_date) {
         $employeesmodel = new Default_Model_Employees();
         $leavemanagementmodel = new Default_Model_Leavemanagement();
         $holidaydatesmodel = new Default_Model_Holidaydates();
         $leaverequestmodel = new Default_Model_Leaverequest();
         $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
         $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId);
         if (!empty($getavailbaleleaves)) {
             $availableleaves = $getavailbaleleaves[0]['remainingleaves'];
         }
         if (!empty($loggedInEmployeeDetails)) {
             $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
             $employeeGroupId = $loggedInEmployeeDetails[0]['holiday_group'];
             if ($employeeDepartmentId != '' && $employeeDepartmentId != NULL) {
                 $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($employeeDepartmentId);
             }
             if (!empty($weekendDetailsArr)) {
                 if ($weekendDetailsArr[0]['is_skipholidays'] == 1 && isset($employeeGroupId) && $employeeGroupId != '') {
                     $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeGroupId);
                     if (!empty($holidayDateslistArr)) {
                         for ($i = 0; $i < sizeof($holidayDateslistArr); $i++) {
                             $holidayDatesArr[$i] = $holidayDateslistArr[$i]['holidaydate'];
                         }
                     }
                 }
                 $weekend1 = $weekendDetailsArr[0]['daystartname'];
                 $weekend2 = $weekendDetailsArr[0]['dayendname'];
             }
             $fromdate_obj = new DateTime($fromDate);
             $weekDay = $fromdate_obj->format('l');
             while ($fromDate <= $toDate) {
                 if (count($holidayDatesArr) > 0) {
                     if ($weekDay != $weekend1 && $weekDay != $weekend2 && !in_array($fromDate, $holidayDatesArr)) {
                         $noOfDays++;
                     }
                 } else {
                     if ($weekDay != $weekend1 && $weekDay != $weekend2) {
                         $noOfDays++;
                     }
                 }
                 $fromdate_obj->add(new DateInterval('P1D'));
                 //Increment from date by one day...
                 $fromDate = $fromdate_obj->format('Y-m-d');
                 $weekDay = $fromdate_obj->format('l');
             }
         }
         $result['result'] = 'success';
         $result['days'] = $noOfDays;
         $result['message'] = '';
         $result['loginUserId'] = $loginUserId;
         $result['availableleaves'] = $availableleaves;
     }
     $this->_helper->_json($result);
 }
 public function editpopupAction()
 {
     //For opening the form in pop up.....
     Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH . "/layouts/scripts/popup/");
     $leavemanagementmodel = new Default_Model_Leavemanagement();
     $employeesmodel = new Default_Model_Employees();
     $empMedicalclaimsform = new Default_Form_Medicalclaims();
     $empMedicalclaimsModel = new Default_Model_Medicalclaims();
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginUserGroup = $auth->getStorage()->read()->id;
     }
     $id = $this->getRequest()->getParam('id');
     //Id (PK) from form URL
     $user_id = $this->getRequest()->getParam('unitId');
     //This is User_id taking from URL set to form...
     if ($user_id) {
         $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($user_id);
         $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
         $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId);
         $this->view->weekendDatailsArr = $weekendDatailsArr;
     }
     $empMedicalclaimsform->removeElement('injuryindicator');
     $empMedicalclaimsform->removeElement('type');
     if ($id) {
         $data = $empMedicalclaimsModel->getmedicalclaimsdetails($id);
         if (!empty($data)) {
             $empMedicalclaimsform->setDefault("id", $data[0]["id"]);
             $empMedicalclaimsform->setDefault("user_id", $data[0]["user_id"]);
             $empMedicalclaimsform->setDefault("injuryindicator", $data[0]["injury_indicator"]);
             $empMedicalclaimsform->setDefault("type", $data[0]["injury_type"]);
             $empMedicalclaimsform->setDefault("description", $data[0]["injury_description"]);
             $empMedicalclaimsform->setDefault("injury_name", $data[0]["injury_name"]);
             $empMedicalclaimsform->setDefault("injury_severity", $data[0]["injury_severity"]);
             $empMedicalclaimsform->setDefault("disability_type", $data[0]["disability_type"]);
             $empMedicalclaimsform->setDefault("other_disability_type", $data[0]["other_disability_type"]);
             $empMedicalclaimsform->setDefault("insurer_name", $data[0]["medical_insurer_name"]);
             $empMedicalclaimsform->setDefault("gp_name", $data[0]["concerned_physician_name"]);
             $empMedicalclaimsform->setDefault("hospital_name", $data[0]["hospital_name"]);
             $empMedicalclaimsform->setDefault("hospital_addr", $data[0]["hospital_address"]);
             $empMedicalclaimsform->setDefault("treatment_details", $data[0]["treatment_details"]);
             $empMedicalclaimsform->setDefault("room_num", $data[0]["room_number"]);
             $empMedicalclaimsform->setDefault("total_cost", $data[0]["total_cost"]);
             $empMedicalclaimsform->setDefault("amount_claimed", $data[0]["amount_claimed_for"]);
             $empMedicalclaimsform->setDefault("amount_approved", $data[0]["amount_approved"]);
             $empMedicalclaimsform->setDefault("leavebyemp_days", $data[0]["leavebyemployeer_days"]);
             $empMedicalclaimsform->setDefault("empleave_days", $data[0]["leaveappliedbyemployee_days"]);
             if ($data[0]["injured_date"] != "" && $data[0]["injured_date"] != 00 - 00 - 00) {
                 $injureddate = sapp_Global::change_date($data[0]["injured_date"], 'view');
                 $empMedicalclaimsform->setDefault('injured_date', $injureddate);
             }
             if ($data[0]["expected_date_join"] != "" && $data[0]["expected_date_join"] != 00 - 00 - 00) {
                 $exp_dateofjoin = sapp_Global::change_date($data[0]["expected_date_join"], 'view');
                 $empMedicalclaimsform->setDefault('expected_date_join', $exp_dateofjoin);
             }
             if ($data[0]["leavebyemployeer_to_date"] != "" && $data[0]["leavebyemployeer_to_date"] != 00 - 00 - 00) {
                 $leavebyemployeer_to_date = sapp_Global::change_date($data[0]["leavebyemployeer_to_date"], 'view');
                 $empMedicalclaimsform->setDefault("leavebyemp_to_date", $leavebyemployeer_to_date);
             }
             if ($data[0]["leavebyemployeer_from_date"] != "" && $data[0]["leavebyemployeer_from_date"] != 00 - 00 - 00) {
                 $leavebyemployeer_from_date = sapp_Global::change_date($data[0]["leavebyemployeer_from_date"], 'view');
                 $empMedicalclaimsform->setDefault("leavebyemp_from_date", $leavebyemployeer_from_date);
             }
             if ($data[0]["leaveappliedbyemployee_to_date"] != "" && $data[0]["leaveappliedbyemployee_to_date"] != 00 - 00 - 00) {
                 $leaveappliedbyemployeetodate = sapp_Global::change_date($data[0]["leaveappliedbyemployee_to_date"], 'view');
                 $empMedicalclaimsform->setDefault("empleave_to_date", $leaveappliedbyemployeetodate);
             }
             if ($data[0]["leaveappliedbyemployee_from_date"] != "" && $data[0]["leaveappliedbyemployee_from_date"] != 00 - 00 - 00) {
                 $leaveappliedbyemployeefromdate = sapp_Global::change_date($data[0]["leaveappliedbyemployee_from_date"], 'view');
                 $empMedicalclaimsform->setDefault("empleave_from_date", $leaveappliedbyemployeefromdate);
             }
             $this->view->data = $data;
         }
         $this->view->id = $id;
         $empMedicalclaimsform->setAttrib('action', DOMAIN . 'medicalclaims/editpopup/unitId/' . $user_id);
     }
     $this->view->form = $empMedicalclaimsform;
     if ($this->getRequest()->getPost()) {
         $errorResult = $this->medicalclaimsvalidations();
         if (empty($errorResult['msgarray'])) {
             $result = $this->save($empMedicalclaimsform, $user_id);
             $this->view->msgarray = $result;
             $this->view->fieldValues = $errorResult['fieldValues'];
         } else {
             $this->view->msgarray = $errorResult['msgarray'];
             $this->view->fieldValues = $errorResult['fieldValues'];
         }
     }
 }
 public function save($empholidaysform, $userid)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     if ($empholidaysform->isValid($this->_request->getPost())) {
         $employeesModel = new Default_Model_Employees();
         $holiday_group = $this->_request->getParam('holiday_group');
         $user_id = $userid;
         $date = new Zend_Date();
         $menumodel = new Default_Model_Menu();
         $actionflag = '';
         $tableid = '';
         if ($user_id != '') {
             $data = array('holiday_group' => $holiday_group, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             $where = array('user_id=?' => $user_id, 'isactive' => 1);
             $actionflag = 2;
             $Id = $employeesModel->SaveorUpdateEmployees($data, $where);
             if ($Id == 'update') {
                 $empdetailsArr = $employeesModel->getLoggedInEmployeeDetails($user_id);
                 $tableid = $empdetailsArr[0]['id'];
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Employee holiday group updated successfully."));
             } else {
                 $tableid = $Id;
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Employee holiday group added successfully."));
             }
         }
         $menuidArr = $menumodel->getMenuObjID('/employee');
         $menuID = $menuidArr[0]['id'];
         $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $user_id);
         $this->_redirect('empholidays/edit/userid/' . $user_id);
     } else {
         $messages = $empholidaysform->getMessages();
         foreach ($messages as $key => $val) {
             foreach ($val as $key2 => $val2) {
                 $msgarray[$key] = $val2;
                 break;
             }
         }
         return $msgarray;
     }
 }
 public function editAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $id = $this->getRequest()->getParam('id');
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $managerleaverequestform = new Default_Form_managerleaverequest();
     try {
         if ($id && is_numeric($id) && $id > 0) {
             $leaverequestmodel = new Default_Model_Leaverequest();
             $usersmodel = new Default_Model_Users();
             $flag = 'true';
             $userid = $leaverequestmodel->getUserID($id);
             $getreportingManagerArr = $leaverequestmodel->getReportingManagerId($id);
             $reportingManager = $getreportingManagerArr[0]['repmanager'];
             if ($reportingManager != $loginUserId) {
                 $flag = 'false';
             }
             if (!empty($userid)) {
                 $isactiveuser = $usersmodel->getUserDetailsByID($userid[0]['user_id']);
             } else {
                 $this->view->rowexist = "rows";
             }
             if (!empty($userid) && !empty($isactiveuser) && $flag == 'true') {
                 $data = $leaverequestmodel->getLeaveRequestDetails($id);
                 if (!empty($data) && $data[0]['leavestatus'] == 'Pending for approval') {
                     $data = $data[0];
                     $reason = $data['reason'];
                     $appliedleavescount = $data['appliedleavescount'];
                     $employeeid = $data['user_id'];
                     $leavetypeid = $data['leavetypeid'];
                     $employeeleavetypemodel = new Default_Model_Employeeleavetypes();
                     $usersmodel = new Default_Model_Users();
                     $employeesmodel = new Default_Model_Employees();
                     $businessunitid = '';
                     $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($employeeid);
                     if ($loggedInEmployeeDetails[0]['businessunit_id'] != '') {
                         $businessunitid = $loggedInEmployeeDetails[0]['businessunit_id'];
                     }
                     $employeeleavetypeArr = $employeeleavetypemodel->getsingleEmployeeLeavetypeData($data['leavetypeid']);
                     if ($employeeleavetypeArr != 'norows') {
                         $managerleaverequestform->leavetypeid->addMultiOption($employeeleavetypeArr[0]['id'], utf8_encode($employeeleavetypeArr[0]['leavetype']));
                     }
                     if ($data['leaveday'] == 1) {
                         $managerleaverequestform->leaveday->addMultiOption($data['leaveday'], 'Full Day');
                     } else {
                         $managerleaverequestform->leaveday->addMultiOption($data['leaveday'], 'Half Day');
                     }
                     $employeenameArr = $usersmodel->getUserDetailsByID($data['user_id']);
                     $employeeemail = $employeenameArr[0]['emailaddress'];
                     $employeename = $employeenameArr[0]['userfullname'];
                     $managerleaverequestform->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');
                     $managerleaverequestform->from_date->setValue($from_date);
                     $managerleaverequestform->to_date->setValue($to_date);
                     $managerleaverequestform->createddate->setValue($appliedon);
                     $managerleaverequestform->appliedleavesdaycount->setValue($data['appliedleavescount']);
                     $managerleaverequestform->employeename->setValue($employeenameArr[0]['userfullname']);
                     $managerleaverequestform->setDefault('leavetypeid', $data['leavetypeid']);
                     $managerleaverequestform->setDefault('leaveday', $data['leaveday']);
                     $this->view->id = $id;
                     $this->view->form = $managerleaverequestform;
                     $this->view->data = $data;
                     $managerleaverequestform->setAttrib('action', BASE_URL . 'manageremployeevacations/edit/id/' . $id);
                 } else {
                     $this->view->rowexist = "rows";
                 }
             } else {
                 $this->view->rowexist = "rows";
             }
         } else {
             $this->view->rowexist = "rows";
         }
     } catch (Exception $e) {
         $this->view->rowexist = 'norows';
     }
     if ($this->getRequest()->getPost()) {
         $result = $this->save($managerleaverequestform, $appliedleavescount, $employeeemail, $employeeid, $employeename, $from_date, $to_date, $reason, $businessunitid, $leavetypeid);
         $this->view->msgarray = $result;
     }
 }
 public function deleteAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginUserEmail = $auth->getStorage()->read()->emailaddress;
         $loginUserName = $auth->getStorage()->read()->userfullname;
     }
     $id = $this->_request->getParam('objid');
     $messages['message'] = '';
     $actionflag = 5;
     $businessunitid = '';
     $leavetypetext = '';
     if ($id) {
         $leaverequestmodel = new Default_Model_Leaverequest();
         $usersmodel = new Default_Model_Users();
         $employeesmodel = new Default_Model_Employees();
         $menumodel = new Default_Model_Menu();
         $employeeleavetypesmodel = new Default_Model_Employeeleavetypes();
         $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
         if ($loggedInEmployeeDetails[0]['businessunit_id'] != '') {
             $businessunitid = $loggedInEmployeeDetails[0]['businessunit_id'];
         }
         $dataarr = array('leavestatus' => 4, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId);
         $where = array('id=?' => $id);
         $Id = $leaverequestmodel->SaveorUpdateLeaveRequest($dataarr, $where);
         $data = $leaverequestmodel->getsinglePendingLeavesData($id);
         $data = $data[0];
         $appliedleavesdaycount = $data['appliedleavescount'];
         $to_date = $data['to_date'];
         $from_date = $data['from_date'];
         $reason = $data['reason'];
         $leavetypeid = $data['leavetypeid'];
         $repmngrnameArr = $usersmodel->getUserDetailsByID($data['rep_mang_id']);
         $reportingmanageremail = $repmngrnameArr[0]['emailaddress'];
         $reportingmanagername = $repmngrnameArr[0]['userfullname'];
         if ($Id == 'update') {
             $menuidArr = $menumodel->getMenuObjID('/manageremployeevacations');
             $menuID = $menuidArr[0]['id'];
             $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $id);
             /** MAILING CODE * */
             if ($to_date == '' || $to_date == NULL) {
                 $to_date = $from_date;
             }
             /* Mail to Employee */
             $view = $this->getHelper('ViewRenderer')->view;
             $base_URL = 'http://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getBaseUrl();
             $mailpurpose = "The below leave(s) has been cancelled by your manager.";
             $this->view->base_url = $base_URL;
             $this->view->application_name = APPLICATION_NAME;
             $this->view->type = "New";
             $this->view->emp_name = $loginUserName;
             $this->view->mailpurpose = $mailpurpose;
             $this->view->requester_name = $loginUserName;
             $this->view->NoOfDays = $appliedleavesdaycount;
             $this->view->leave_from = $from_date;
             $this->view->leave_to = $to_date;
             $this->view->reason_for_leave = $reason;
             $this->view->reporting_manager = $reportingmanagername;
             $options['subject'] = APPLICATION_NAME . ':Leave request cancelled by your manager';
             $options['header'] = 'Leave Request';
             $options['toEmail'] = $loginUserEmail;
             $options['toName'] = $loginUserName;
             $options['message'] = $view->render('mailtemplates/leaves.phtml');
             sapp_Global::_sendEmail($options, "new");
             /* End */
             /* Mail to Reporting Manager */
             $view = $this->getHelper('ViewRenderer')->view;
             $base_URL = 'http://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getBaseUrl();
             $mailpurpose = "The below leave(s) has been cancelled by your manager.";
             $this->view->base_url = $base_URL;
             $this->view->application_name = APPLICATION_NAME;
             $this->view->type = "New";
             $this->view->emp_name = $reportingmanagername;
             $this->view->mailpurpose = $mailpurpose;
             $this->view->requester_name = $loginUserName;
             $this->view->NoOfDays = $appliedleavesdaycount;
             $this->view->leave_from = $from_date;
             $this->view->leave_to = $to_date;
             $this->view->reason_for_leave = $reason;
             $this->view->reporting_manager = $reportingmanagername;
             $options['subject'] = APPLICATION_NAME . ':Leave request cancelled by your manager';
             $options['header'] = 'Leave Request';
             $options['toEmail'] = $reportingmanageremail;
             $options['toName'] = $reportingmanagername;
             $options['message'] = $view->render('mailtemplates/leaves.phtml');
             //$options['message'] = '<div>Hi,</div><div>The below leave(s) has been cancelled.</div><div><table ><tbody><tr><td width="28%" >Employee Name</td><td width="72%">' . $loginUserName . '</td></tr><tr ><td >No. of Day(s)</td><td>' . $appliedleavesdaycount . '</td>/tr><tr><td >From</td><td>' . $from_date . '</td></tr><tr ><td >To</td><td>' . $to_date . '</td></tr><tr ><td >Reason for Leave</td><td>' . $reason . '</td></tr></tbody></table></div>';
             sapp_Global::_sendEmail($options, "new");
             /* End */
             /* Mail to HR */
             $view = $this->getHelper('ViewRenderer')->view;
             $base_URL = 'http://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getBaseUrl();
             $mailpurpose = "The below leave(s) has been cancelled by your manager.";
             $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 = $loginUserName;
             $this->view->NoOfDays = $appliedleavesdaycount;
             $this->view->leave_from = $from_date;
             $this->view->leave_to = $to_date;
             $this->view->reason_for_leave = $reason;
             $this->view->reporting_manager = $reportingmanagername;
             $options['subject'] = APPLICATION_NAME . ':Leave request cancelled by your manager';
             $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");
             $messages['message'] = 'Leave request cancelled';
             $messages['msgtype'] = 'success';
         } else {
             $messages['message'] = 'Leave request cannot be cancelled';
             $messages['msgtype'] = 'error';
         }
     } else {
         $messages['message'] = 'Leave request cannot be cancelled';
         $messages['msgtype'] = 'error';
     }
     $this->_helper->json($messages);
     $this->_redirect(sapp_Global::_curPageURL());
     //$this->_redirect('/manageremployeevacations');
 }
 function gethalfdaydetailsAction()
 {
     $this->_helper->layout->disableLayout();
     $result['result'] = '';
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $employeesmodel = new Default_Model_Employees();
     $leavemanagementmodel = new Default_Model_Leavemanagement();
     $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
     $ishalf_day = '';
     if (!empty($loggedInEmployeeDetails)) {
         $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
         $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId);
         if (!empty($weekendDatailsArr)) {
             $ishalf_day = $weekendDatailsArr[0]['is_halfday'];
         } else {
             $ishalf_day = 'error';
         }
     }
     $result['result'] = $ishalf_day;
     $this->_helper->_json($result);
 }
 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');
     }
 }
 public function calculatebusinessdays($fromDate, $toDate)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $noOfDays = 0;
     $weekDay = '';
     $employeeDepartmentId = '';
     $employeeGroupId = '';
     $weekend1 = '';
     $weekend2 = '';
     $holidayDatesArr = array();
     //Calculating the no of days in b/w from date & to date with out taking weekend & holidays....
     $employeesmodel = new Default_Model_Employees();
     $leavemanagementmodel = new Default_Model_Leavemanagement();
     $holidaydatesmodel = new Default_Model_Holidaydates();
     $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId);
     if (!empty($loggedInEmployeeDetails)) {
         $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id'];
         $employeeGroupId = $loggedInEmployeeDetails[0]['holiday_group'];
         if ($employeeDepartmentId != '' && $employeeDepartmentId != NULL) {
             $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($employeeDepartmentId);
         }
         if (!empty($weekendDetailsArr)) {
             if ($weekendDetailsArr[0]['is_skipholidays'] == 1 && isset($employeeGroupId) && $employeeGroupId != '') {
                 $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeGroupId);
                 if (!empty($holidayDateslistArr)) {
                     for ($i = 0; $i < sizeof($holidayDateslistArr); $i++) {
                         $holidayDatesArr[$i] = $holidayDateslistArr[$i]['holidaydate'];
                     }
                 }
             }
             $weekend1 = $weekendDetailsArr[0]['daystartname'];
             $weekend2 = $weekendDetailsArr[0]['dayendname'];
         }
         $fromdate_obj = new DateTime($fromDate);
         $weekDay = $fromdate_obj->format('l');
         while ($fromDate <= $toDate) {
             /* if(($weekDay != 'Saturday'||$weekDay != 'Sunday') && (!empty($holidayDates)) && (!in_array($fromDate,$holidayDates))) */
             if (count($holidayDatesArr) > 0) {
                 if ($weekDay != $weekend1 && $weekDay != $weekend2 && !in_array($fromDate, $holidayDatesArr)) {
                     $noOfDays++;
                 }
             } else {
                 if ($weekDay != $weekend1 && $weekDay != $weekend2) {
                     $noOfDays++;
                 }
             }
             $fromdate_obj->add(new DateInterval('P1D'));
             //Increment from date by one day...
             $fromDate = $fromdate_obj->format('Y-m-d');
             $weekDay = $fromdate_obj->format('l');
         }
     }
     return $noOfDays;
 }