⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leaverequests.php

📁 国外的人才求职招聘最新版
💻 PHP
📖 第 1 页 / 共 2 页
字号:
		$objArr = null;		while ($row = mysql_fetch_row($result)) {			$tmpLeaveRequestArr = new LeaveRequests();			$tmpLeaveRequestArr->setLeaveTypeName($row[0]);			$tmpLeaveRequestArr->setLeaveRequestId($row[1]);			$tmpLeave = new Leave();			$tmpLeaveArr = $tmpLeave->retrieveLeave($row[1]);			$noOfDays = 0;			$hours = 0;			if (isset($tmpLeaveArr) && !empty($tmpLeaveArr)) {				$totalLeaves = count($tmpLeaveArr);				$tmpLeaveRequestArr->setLeaveFromDate($tmpLeaveArr[0]->getLeaveDate());				if ($tmpLeaveArr[0]->getLeaveStatus() != Leave::LEAVE_STATUS_LEAVE_CANCELLED) {					$noOfDays = $tmpLeaveArr[0]->getLeaveLengthDays();					$hours = $tmpLeaveArr[0]->getLeaveLengthHours();				}				if (($tmpLeaveArr[0]->getStartTime() != null) && ($tmpLeaveArr[0]->getEndTime() != null)) {					$tmpLeaveRequestArr->setStartTime($tmpLeaveArr[0]->getStartTime());					$tmpLeaveRequestArr->setEndTime($tmpLeaveArr[0]->getEndTime());				}				if ($totalLeaves > 1) {					$tmpLeaveRequestArr->setLeaveToDate($tmpLeaveArr[$totalLeaves-1]->getLeaveDate());					$status = $tmpLeaveArr[0]->getLeaveStatus();					$comments = $tmpLeaveArr[0]->getLeaveComments();					$commentsDiffer = false;					for ($i=1; $i<$totalLeaves; $i++) {						if ($tmpLeaveArr[$i]->getLeaveLengthHours() > 0) {							if ($tmpLeaveArr[$i]->getLeaveStatus() != Leave::LEAVE_STATUS_LEAVE_CANCELLED) {								$noOfDays += $tmpLeaveArr[$i]->getLeaveLengthDays();								$hours += $tmpLeaveArr[$i]->getLeaveLengthHours();							}							if ($status != $tmpLeaveArr[$i]->getLeaveStatus()) {								$status = self::LEAVEREQUESTS_MULTIPLESTATUSES;							}						}						if ($comments != $tmpLeaveArr[$i]->getLeaveComments()) {							$commentsDiffer = true;						}					}					$tmpLeaveRequestArr->setLeaveComments($comments);					$tmpLeaveRequestArr->setCommentsDiffer($commentsDiffer);					$tmpLeaveRequestArr->setLeaveStatus($status);				} else {					$tmpLeaveRequestArr->setLeaveStatus($tmpLeaveArr[0]->getLeaveStatus());					$tmpLeaveRequestArr->setLeaveComments($tmpLeaveArr[0]->getLeaveComments());				}				$tmpLeaveRequestArr->setNoDays(number_format($noOfDays,2));				$tmpLeaveRequestArr->setLeaveLengthHours(number_format($hours,2));				/* Check that at least one leave in the list contains a status in				 * $filterLeaveStatus.				 */				$skip = false;				if (isset($filterLeaveStatus)) {					$skip = true;					for ($i=0; $i<$totalLeaves; $i++) {						if (in_array($tmpLeaveArr[$i]->getLeaveStatus(), $filterLeaveStatus)) {							$skip = false;							break;						}					}				} else if ($supervisor &&  $tmpLeaveRequestArr->getLeaveStatus() == self::LEAVE_STATUS_LEAVE_TAKEN) {					$skip = true;				}				if (isset($fromDate) && !$skip) {					if (strtotime($tmpLeaveRequestArr->getLeaveFromDate()) < strtotime($fromDate)) {						$skip = true;					}				}				if (isset($toDate) && !$skip) {					$endDate = $tmpLeaveRequestArr->getLeaveToDate();					if (empty($endDate)) {						$endDate = $tmpLeaveRequestArr->getLeaveFromDate();					}					if (strtotime($endDate) > strtotime($toDate)) {						$skip = true;					}				}				if (!$skip) {					if ($supervisor) {						$tmpLeaveRequestArr->setEmployeeName("{$row[2]} {$row[4]}");						$tmpLeaveRequestArr->setEmployeeId($row[3]);					}					$objArr[] = $tmpLeaveRequestArr;				}			}		}		return $objArr;	}	/**	 * Apply leave for multiple days	 *	 */	public function applyLeaveRequest() {		$res = $this->_addLeaveRequest();		$resQuta  = $this->_addLeaveQuota();		if ($res && $resQuta) {			$res = $this->_applyLeaves();		}		return $res;	}	/**	 * Apply leave Quota multiple Years	 *	 */	private function _addLeaveQuota(){                $fromYearArray  = explode("-" , $this->getLeaveFromDate()) ;                $toYearArray    = explode("-" , $this->getLeaveToDate()) ;                if(trim($fromYearArray[0])  == trim($toYearArray[0])){                        $leaveQuata = new LeaveQuota() ;                        $leaveQuata->setEmployeeId($this->getEmployeeId());                        $leaveQuata->setLeaveTypeId($this->getLeaveTypeId());                        $leaveQuata->setNoOfDaysAllotted(0);                        $leaveQuata->setYear(trim($fromYearArray[0]));                        if($leaveQuata->addLeaveQuotaAdmin()) return true ;                        else return false ;                }else{                        $leaveQuata = new LeaveQuota() ;                        $leaveQuata->setEmployeeId($this->getEmployeeId());                        $leaveQuata->setLeaveTypeId($this->getLeaveTypeId());                        $leaveQuata->setNoOfDaysAllotted(0);                        $leaveQuata->setYear(trim($fromYearArray[0]));                        $quotaFrom	= $leaveQuata->addLeaveQuotaAdmin();                        $leaveQuata->setYear(trim($toYearArray[0]));                        $quotaTo	= $leaveQuata->addLeaveQuotaAdmin();                        if(($quotaFrom) && ($quotaTo)) return true ;                        else return false ;                }		}	/**	 * Does actual leave applying	 *	 */	private function _applyLeaves() {		$from = strtotime($this->getLeaveFromDate());		$to = strtotime($this->getLeaveToDate());		$res = true;		$days = $this->getLeaveLengthDays();		$hours = $this->getLeaveLengthHours();		for ($timeStamp=$from; $timeStamp<=$to; $timeStamp=$this->_incDate($timeStamp)) {			$this->setLeaveDate(date('Y-m-d', $timeStamp));			$this->setLeaveLengthDays($days);			$this->setLeaveLengthHours($hours);			$res = $res && $this->_addLeave();		}		return $res;	}	/**	 * Date increment	 *	 * @param int $timestamp	 */	private function _incDate($timestamp) {		$timestamp+=60*60*24;		return $timestamp;	}	/**	 * Adds Record to Leave Request	 *	 * @access private	 */	private function _addLeaveRequest() {		$newId = UniqueIDGenerator::getInstance()->getNextID('hs_hr_leave_requests', 'leave_request_id');		$this->setLeaveRequestId($newId);		$this->_getLeaveTypeName();		$this->setDateApplied(date('Y-m-d'));		$arrRecordsList[0] = $this->getLeaveRequestId();		$arrRecordsList[1] = "'".$this->getLeaveTypeId()."'";		$arrRecordsList[2] = "'".$this->getLeaveTypeName()."'";		$arrRecordsList[3] = "'". $this->getDateApplied()."'";		$arrRecordsList[4] = "'". $this->getEmployeeId() . "'";		$arrTable = "`hs_hr_leave_requests`";		$sqlBuilder = new SQLQBuilder();		$query = $sqlBuilder->simpleInsert($arrTable, $arrRecordsList);		$dbConnection = new DMLFunctions();		$result = $dbConnection -> executeQuery($query);		return $result;	}	/**	 *	 * function _changeLeaveStatus, access is private, will not be documented	 *	 * @access private	 */	protected function _changeLeaveStatus() {		$sqlBuilder = new SQLQBuilder();		$table = "`hs_hr_leave`";		$changeFields[0] = "`leave_status`";		$changeFields[1] = "`leave_comments`";		$changeValues[0] = $this->getLeaveStatus();		$changeValues[1] = "'".$this->getLeaveComments()."'";		$updateConditions[0] = "`leave_request_id` = ".$this->getLeaveRequestId();		$query = $sqlBuilder->simpleUpdate($table, $changeFields, $changeValues, $updateConditions);		$dbConnection = new DMLFunctions();		$result = $dbConnection->executeQuery($query);		if (isset($result) && (mysql_affected_rows() > 0)) {			return true;		};		return false;	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -