public function indexAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $call = $this->_getParam('call');
     if ($call == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $employeesModel = new Default_Model_Employees();
     $empholidaygroup = $employeesModel->getHolidayGroupForEmployee($loginUserId);
     if (isset($empholidaygroup[0]['holiday_group']) && $empholidaygroup[0]['holiday_group'] != '') {
         $view = Zend_Layout::getMvcInstance()->getView();
         $objname = $this->_getParam('objname');
         $refresh = $this->_getParam('refresh');
         $dashboardcall = $this->_getParam('dashboardcall');
         $data = array();
         $searchQuery = '';
         $searchArray = array();
         $tablecontent = '';
         if ($refresh == 'refresh') {
             if ($dashboardcall == 'Yes') {
                 $perPage = DASHBOARD_PERPAGE;
             } else {
                 $perPage = PERPAGE;
             }
             $sort = 'DESC';
             $by = 'h.holidaydate';
             $perPage = 10;
             $pageNo = 1;
             $searchData = '';
         } else {
             $sort = $this->_getParam('sort') != '' ? $this->_getParam('sort') : 'DESC';
             $by = $this->_getParam('by') != '' ? $this->_getParam('by') : 'h.holidaydate';
             if ($dashboardcall == 'Yes') {
                 $perPage = $this->_getParam('per_page', DASHBOARD_PERPAGE);
             } else {
                 $perPage = $this->_getParam('per_page', PERPAGE);
             }
             $pageNo = $this->_getParam('page', 1);
             /** search from grid - START * */
             $searchData = $this->_getParam('searchData');
             $searchData = rtrim($searchData, ',');
             /** search from grid - END * */
         }
         $holidaydatesmodel = new Default_Model_Holidaydates();
         $objName = 'myholidaycalendar';
         $groupid = $empholidaygroup[0]['holiday_group'];
         $dataTmp = $holidaydatesmodel->getGrid($sort, $by, $perPage, $pageNo, $searchData, $call, $dashboardcall, $objName, $groupid);
         array_push($data, $dataTmp);
         $this->view->dataArray = $data;
         $this->view->call = $call;
     } else {
         $this->view->errormessage = "Not assigned to any group";
     }
     $this->view->controllergrid = 'myholidaycalendar';
     $this->view->messages = $this->_helper->flashMessenger->getMessages();
 }
 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 holidaysAction()
 {
     if (defined('EMPTABCONFIGS')) {
         $empOrganizationTabs = explode(",", EMPTABCONFIGS);
         if (in_array('emp_holidays', $empOrganizationTabs)) {
             $tabName = "holidays";
             $objName = 'empholidays';
             $employeeData = array();
             $empdata = array();
             $auth = Zend_Auth::getInstance();
             if ($auth->hasIdentity()) {
                 $loginUserId = $auth->getStorage()->read()->id;
             }
             $id = $loginUserId;
             $call = $this->_getParam('call');
             if ($call == 'ajaxcall') {
                 $this->_helper->layout->disableLayout();
                 $userID = $this->_getParam('unitId') != '' ? $this->_getParam('unitId') : $this->_getParam('userid');
             }
             if ($id == '') {
                 $id = $userID;
             }
             $Uid = $id ? $id : $userID;
             $employeeModal = new Default_Model_Employee();
             try {
                 $empdata = $employeeModal->getsingleEmployeeData($Uid);
                 if ($empdata == 'norows') {
                     $this->view->rowexist = "norows";
                     $this->view->empdata = "";
                 } else {
                     $this->view->rowexist = "rows";
                     if (!empty($empdata)) {
                         $holidaydatesmodel = new Default_Model_Holidaydates();
                         $usersModel = new Default_Model_Users();
                         $call = $this->_getParam('call');
                         $objname = $this->_getParam('objname');
                         $refresh = $this->_getParam('refresh');
                         $data = array();
                         $searchQuery = '';
                         $searchArray = array();
                         $tablecontent = '';
                         if ($refresh == 'refresh') {
                             $sort = 'DESC';
                             $by = 'h.modifieddate';
                             $perPage = 10;
                             $pageNo = 1;
                             $searchData = '';
                         } else {
                             $sort = $this->_getParam('sort') != '' ? $this->_getParam('sort') : 'DESC';
                             $by = $this->_getParam('by') != '' ? $this->_getParam('by') : 'h.modifieddate';
                             $perPage = $this->_getParam('per_page', 10);
                             $pageNo = $this->_getParam('page', 1);
                             $searchData = $this->_getParam('searchData');
                             $searchData = rtrim($searchData, ',');
                             /** search from grid - START **/
                             $searchData = $this->_getParam('searchData');
                             if ($searchData != '' && $searchData != 'undefined') {
                                 $searchValues = json_decode($searchData);
                                 foreach ($searchValues as $key => $val) {
                                     if ($key == 'holidaydate') {
                                         $searchQuery .= " " . $key . " like '%" . sapp_Global::change_date($val, 'database') . "%' AND ";
                                     } else {
                                         $searchQuery .= " " . $key . " like '%" . $val . "%' AND ";
                                     }
                                     $searchArray[$key] = $val;
                                 }
                                 $searchQuery = rtrim($searchQuery, " AND");
                             }
                             /** search from grid - END **/
                         }
                         $employeesModel = new Default_Model_Employees();
                         $empholidaydata = $employeesModel->getHolidayGroupForEmployee($id);
                         if (isset($empholidaydata[0]) && $empholidaydata[0]['holiday_group'] != '') {
                             $empGroupId = $empholidaydata[0]['holiday_group'];
                             $tableFields = array('action' => 'Action', 'holidayname' => 'Holiday', 'holidaydate' => 'Date', 'description' => 'Description');
                             $tablecontent = $holidaydatesmodel->getHolidayDatesData($sort, $by, $pageNo, $perPage, $searchQuery, $empGroupId);
                             $dataTmp = array('userid' => $Uid, 'sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getEmployeeAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'add' => 'add', 'menuName' => 'Employee Holidays', 'formgrid' => 'true', 'unitId' => $Uid, 'call' => $call, 'context' => 'mydetails', 'search_filters' => array('holidaydate' => array('type' => 'datepicker')));
                             array_push($data, $dataTmp);
                             $this->view->dataArray = $data;
                             $this->view->call = $call;
                         }
                         if ($Uid) {
                             if (!empty($empdata)) {
                                 $this->view->empdata = $empdata[0];
                             } else {
                                 $this->view->empdata = $empdata;
                             }
                         }
                         $this->view->id = $id;
                         $this->view->messages = $this->_helper->flashMessenger->getMessages();
                     }
                     $this->view->empdata = $empdata;
                 }
             } catch (Exception $e) {
                 $this->view->rowexist = "norows";
             }
         } else {
             $this->_redirect('error');
         }
     } else {
         $this->_redirect('error');
     }
 }
 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 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);
    }
 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 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'];
         }
     }
 }
Exemple #8
0
 public function getGrid($sort, $by, $perPage, $pageNo, $searchData, $call, $dashboardcall, $objName, $unitId = '', $userid = '', $conText = '')
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $searchQuery = '';
     $searchArray = array();
     $data = array();
     $dataTmp = array();
     if ($objName == 'holidaydates') {
         if ($searchData != '' && $searchData != 'undefined') {
             $searchValues = json_decode($searchData);
             foreach ($searchValues as $key => $val) {
                 if ($key == "description") {
                     $searchQuery .= " h." . $key . " like '%" . $val . "%' AND ";
                 } else {
                     if ($key == 'holidaydate') {
                         $searchQuery .= "  " . $key . " like '%" . sapp_Global::change_date($val, 'database') . "%' AND ";
                     } else {
                         $searchQuery .= " " . $key . " like '%" . $val . "%' AND ";
                     }
                 }
                 $searchArray[$key] = $val;
             }
             $searchQuery = rtrim($searchQuery, " AND");
         }
         if ($searchQuery == null) {
             $searchQuery = $searchData;
         }
         $tableFields = array('action' => 'Action', 'holidayname' => 'Holiday', 'holidaydate' => 'Date', 'description' => 'Description');
         $tablecontent = $this->getHolidayDatesData($sort, $by, $pageNo, $perPage, $searchQuery, $unitId);
         if (isset($unitId) && $unitId != '') {
             $formgrid = 'true';
         } else {
             $formgrid = '';
         }
         $dataTmp = array('sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'add' => 'add', 'formgrid' => $formgrid, 'unitId' => $unitId, 'menuName' => 'Holidays', 'call' => $call, 'dashboardcall' => $dashboardcall, 'search_filters' => array('holidaydate' => array('type' => 'datepicker')));
     } else {
         if ($objName == 'myholidaycalendar') {
             if ($unitId == '') {
                 $employeesModel = new Default_Model_Employees();
                 $empholidaygroup = $employeesModel->getHolidayGroupForEmployee($loginUserId);
                 if (isset($empholidaygroup[0]['holiday_group']) && $empholidaygroup[0]['holiday_group'] != '') {
                     $unitId = $empholidaygroup[0]['holiday_group'];
                 }
             }
             if ($searchData != '' && $searchData != 'undefined') {
                 $searchValues = json_decode($searchData);
                 foreach ($searchValues as $key => $val) {
                     if ($key == "description") {
                         $searchQuery .= " h." . $key . " like '%" . $val . "%' AND ";
                     } else {
                         if ($key == 'holidaydate') {
                             $searchQuery .= "  " . $key . " like '%" . sapp_Global::change_date($val, 'database') . "%' AND ";
                         } else {
                             $searchQuery .= " " . $key . " like '%" . $val . "%' AND ";
                         }
                     }
                     $searchArray[$key] = $val;
                 }
                 $searchQuery = rtrim($searchQuery, " AND");
             }
             $tableFields = array('action' => 'Action', 'holidayname' => 'Holiday', 'holidaydate' => 'Date', 'description' => 'Description');
             $tablecontent = $this->getHolidayDatesData($sort, $by, $pageNo, $perPage, $searchQuery, $unitId);
             $dataTmp = array('sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'menuName' => 'My Holiday Calendar', 'add' => 'add', 'call' => $call, 'dashboardcall' => $dashboardcall, 'search_filters' => array('holidaydate' => array('type' => 'datepicker')));
         } else {
             if ($objName == 'empholidays') {
                 $groupname = '';
                 if ($searchData != '' && $searchData != 'undefined') {
                     $searchValues = json_decode($searchData);
                     foreach ($searchValues as $key => $val) {
                         if ($key == 'holidaydate') {
                             $searchQuery .= " " . $key . " like '%" . sapp_Global::change_date($val, 'database') . "%' AND ";
                         } else {
                             if ($key == "description") {
                                 $searchQuery .= " h." . $key . " like '%" . $val . "%' AND ";
                             } else {
                                 $searchQuery .= " " . $key . " like '%" . $val . "%' AND ";
                             }
                         }
                         $searchArray[$key] = $val;
                     }
                     $searchQuery = rtrim($searchQuery, " AND");
                 }
                 $tableFields = array('action' => 'Action', 'groupname' => 'Holiday Group', 'holidayname' => 'Holiday', 'holidaydate' => 'Date', 'description' => 'Description');
                 $tablecontent = $this->getHolidayDatesData($sort, $by, $pageNo, $perPage, $searchQuery, $unitId);
                 $holidaygroupModel = new Default_Model_Holidaygroups();
                 $groupnameArr = $holidaygroupModel->getParticularGroupData($unitId);
                 if (!empty($groupnameArr)) {
                     $groupname = $groupnameArr[0]['groupname'] . ' - Holidays';
                 } else {
                     $groupname = 'Holidays';
                 }
                 $dataTmp = array('userid' => $userid, 'sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getEmployeeAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'add' => 'add', 'menuName' => $groupname, 'formgrid' => 'true', 'unitId' => $userid, 'dashboardcall' => $dashboardcall, 'call' => $call, 'context' => $conText, 'search_filters' => array('holidaydate' => array('type' => 'datepicker')));
             }
         }
     }
     return $dataTmp;
 }
 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;
 }