/** * OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures * all the essential functionalities required for any enterprise. * Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com * * OrangeHRM is free software; you can redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * OrangeHRM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA * */ function populateActivities($projectId) { ob_clean(); require ROOT_PATH . '/language/default/lang_default_full.php'; $timeController = new TimeController(); $projectActivities = $timeController->fetchProjectActivities($projectId); $objResponse = new xajaxResponse(); $xajaxFiller = new xajaxElementFiller(); $element = "cmbActivity"; $objResponse = $xajaxFiller->cmbFillerById($objResponse, $projectActivities, 0, 'frmTimesheet', $element, 1); $objResponse->addScript('document.getElementById("' . $element . '").focus();'); $objResponse->addAssign('status', 'innerHTML', ''); return $objResponse->getXML(); }
function getDeletedProjects($val) { $timeController = new TimeController(); $objResponse = new xajaxResponse(); $xajaxFiller = new xajaxElementFiller(); $element = "cmbProject"; if ($val == 1) { $projectList = $timeController->fetchIncludingDeletedProjects(1); $Response = $xajaxFiller->cmbFillerById($objResponse, $projectList, 0, 'frmReport', $element, 0); } else { $projectList = $timeController->fetchIncludingDeletedProjects(0); $Response = $xajaxFiller->cmbFillerById($objResponse, $projectList, 0, 'frmReport', $element, 0); } return $objResponse->getXML(); }
public function testTimeApi() { // Call API $response = TimeController::apiGet(); // Validate result $time = time(); $this->assertLessThanOrEqual($time, $response['time']); }
function populateActivities($projectId, $row, $activityId = null, $activityName = null) { ob_clean(); require ROOT_PATH . '/language/default/lang_default_full.php'; $timeController = new TimeController(); $projectActivities = $timeController->fetchProjectActivities($projectId); $objResponse = new xajaxResponse(); $xajaxFiller = new xajaxElementFiller(); $xajaxFiller->setDefaultOptionName($GLOBALS['lang_Common_Select']); $element = "cmbActivity[{$row}]"; if (count($projectActivities) == 0) { $projectActivities[0][0] = -1; $projectActivities[0][1] = "- {$lang_Time_Timesheet_SelectProject} -"; $objResponse = $xajaxFiller->cmbFillerById($objResponse, $projectActivities, 0, 'frmTimesheet', $element, 0); } else { if ($activityId != null) { $projectActivityObject = new ProjectActivity(); if ($projectId == $projectActivityObject->retrieveActivityProjectId($activityId)) { $activityExists = false; $i = 0; foreach ($projectActivities as $activity) { if ($activity[$i][0] == $activityId) { $activityExists = true; } $i++; } if (!$activityExists) { $count = count($projectActivities); $projectActivities[$count][0] = $activityId; $projectActivities[$count][1] = $activityName; } } } $objResponse->addScript("document.getElementById('" . $element . "').options.length = 0;"); $objResponse->addScript("document.getElementById('" . $element . "').options[0] = new Option('- {$lang_Common_Select} -','-1');"); $objResponse = $xajaxFiller->cmbFillerById($objResponse, $projectActivities, 0, 'frmTimesheet', $element, 1); } $objResponse->addScript('document.getElementById("' . $element . '").focus();'); $objResponse->addAssign('status', 'innerHTML', ''); return $objResponse->getXML(); }
trigger_error("Invalid Action " . $_GET['action'], E_USER_NOTICE); } } else { trigger_error("Invalid Action " . $_GET['action'], E_USER_NOTICE); } break; default: trigger_error("Invalid Command " . $_GET['leavecode'], E_USER_NOTICE); break; } break; case 'timeMod': switch ($_GET['timecode']) { case 'Time': if (isset($_GET['action'])) { $timeController = new TimeController(); $timesheetExtractor = new EXTRACTOR_Timesheet(); $timeEventExtractor = new EXTRACTOR_TimeEvent(); $timesheetSubmissionPeriodExtractor = new EXTRACTOR_TimesheetSubmissionPeriod(); $workShiftExtractor = new EXTRACTOR_Workshift(); $current = false; $useClientTime = false; $clientTime = null; $punchIn = false; $new = false; $return = null; switch ($_GET['action']) { case 'View_Current_Timesheet': $current = true; $clientTimezoneOffset = @$_GET['clientTimezoneOffset']; settype($clientTimezoneOffset, 'integer');
/** * Tests validateTimeEvent method. */ public function testValidateTimeEvent() { $timeController = new TimeController(); $timesheet1 = $this->_getTimesheet(11, 10, 10, '2007-05-14', '2007-05-20', 0); // Test time event within timesheet period $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Test time event out side timesheet period $timeEvent = $this->_getTimeEvent(2, 10, 10, 10, '2007-05-13 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(3, 10, 10, 10, '2007-05-21 00:10', '2007-05-21 03:10', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(4, 10, 10, 10, '2007-05-13 23:30', '2007-05-14 04:30', '2007-07-07', 5 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(5, 10, 10, 10, '2007-05-20 23:30', '2007-05-21 04:30', '2007-07-07', 5 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(5, 10, 10, 10, '2007-05-21 07:30', '2007-05-21 04:30', '2007-07-07', 5 * 3600, "desc"); $this->assertSame(TimeController::ZeroOrNegativeIntervalSpecified_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Test invalid timesheet periods $timesheet2 = $this->_getTimesheet(11, 10, 10, '2007-05-14', '', 0); $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::INVALID_TIMESHEET_PERIOD_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet2)); $timesheet2 = $this->_getTimesheet(11, 10, 10, '', '2007-05-14', 0); $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::INVALID_TIMESHEET_PERIOD_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet2)); $timesheet2 = $this->_getTimesheet(11, 10, 10, '2007-05-15', '2007-05-14', 0); $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::INVALID_TIMESHEET_PERIOD_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet2)); // Empty project Id $timeEvent = $this->_getTimeEvent(1, null, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::ProjectNotSpecified_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Empty activity Id $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc", ""); $this->assertSame(TimeController::ActivityNotSpecified_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // invalid start time $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-15-13 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::InvalidStartTime_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Invalid end time $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', 'xyz', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::InvalidEndTime_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // reported date not given $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '', 3 * 3600, "desc"); $this->assertSame(TimeController::ReportedDateNotSpecified_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // invalid reported date $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '929-19-191', 3 * 3600, "desc"); $this->assertSame(TimeController::InvalidReportedDate_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Empty duration allowed $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', "", "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // 0 duration allowed for event with id $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', "0", "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Invalid duration values $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', "-1", "desc"); $this->assertSame(TimeController::InvalidDuration_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // 0 duration not allowed for new entry (without event id) $timeEvent = $this->_getTimeEvent("", 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', "0", "desc"); $this->assertSame(TimeController::InvalidDuration_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Reported date and duration given $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '', '2007-05-14', 3 * 3600, "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Reported date outside period $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '', '2007-05-13', 3 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '', '2007-05-21', 3 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '', '2007-05-20', 25 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // zero duration + reported date $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '', '2007-05-20', 0, "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Reported date on period end date $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '', '2007-05-20', 10 * 3600, "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Only start time given $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '', '2007-05-20', "", "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start time outside timesheet period $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-13 23:00', '', '2007-05-20', "", "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-21 12:00', '', '2007-05-20', "", "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start time and end time given $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 13:00', '2007-05-20', "", "desc"); $this->assertSame("", $timeEvent->getDuration()); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // check duration is set $this->assertSame(3600, $timeEvent->getDuration()); // start time == end time $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 13:10', '2007-05-14 13:10', '2007-05-20', "", "desc"); $this->assertSame(TimeController::ZeroOrNegativeIntervalSpecified_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start time == end time and duration == 0 $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 13:10', '2007-05-14 13:10', '2007-05-20', "", "desc"); $this->assertSame(TimeController::ZeroOrNegativeIntervalSpecified_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start time > end time $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 13:11', '2007-05-14 13:10', '2007-05-20', "", "desc"); $this->assertSame(TimeController::ZeroOrNegativeIntervalSpecified_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start time outside timesheet period $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-13 13:11', '2007-05-13 13:30', '2007-05-20', "", "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // end time outside timesheet period $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-13 21:11', '2007-05-21 13:30', '2007-05-20', "", "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start time and duration given $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // end time set $this->assertSame("2007-05-14 15:00", $timeEvent->getEndTime()); // start outside period $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-13 12:00', '', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // End time outside period $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-12 22:00', '', '2007-07-07', 5 * 3600, "desc"); $this->assertSame(TimeController::EVENT_OUTSIDE_PERIOD_FAILURE, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // Start time and zero duration not allowed $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 22:00', '', '2007-07-07', 0, "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start, end and duration allowed for events with id $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(true, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // start, end and duration not allowed for new events $timeEvent = $this->_getTimeEvent("", 10, 10, 10, '2007-05-14 12:00', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::NotAllowedToSpecifyDurationAndInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // End time and duration not allowed $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // End time only not allowed $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '2007-05-14 15:00', '2007-07-07', "", "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, null, '2007-05-14 15:00', '2007-07-07', null, "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); // just reported date not allowed $timeEvent = $this->_getTimeEvent(1, 10, 10, 10, '', '', '2007-07-07', "", "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent("", 10, 10, 10, '', '', '2007-07-07', "", "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); $timeEvent = $this->_getTimeEvent("", 10, 10, 10, null, null, '2007-07-07', null, "desc"); $this->assertSame(TimeController::NoValidDurationOrInterval_ERROR, $timeController->validateTimeEvent($timeEvent, $timesheet1)); }