public static function assignAsYouGo(Expo $expo, Worker $worker) { if ($expo->scheduleAssignAsYouGo) { $workerList = NULL; $stationList = NULL; $assignmentList = NULL; try { // needed for all $workerList = WorkerSchedule::selectExpo($expo->expoid); $stationList = JobSchedule::selectExpo($expo->expoid); $assignmentList = ShiftAssignment::selectExpo($expo->expoid); } catch (PDOException $ex) { logMessage("FirstComeFirstServed", "assignAsYouGo(" . $expo->titleString() . ", " . $worker->email . ") - " . $ex->getMessage()); return; } foreach ($workerList as $w) { if ($w->workerid == $worker->workerid) { $worker = $w; break; } } // $w $aas = new FirstComeFirstServed($expo->expoid, $stationList, $workerList, $assignmentList, TRUE); $stationList = NULL; $assignmentList = NULL; $workerList = NULL; $d1 = new DateTime(); logMessage("FirstComeFirstServed", "**** assignSchedule(" . $expoId . ") ****", $d1->format('H:i'), "\n"); $aas->assignWorker($worker, $expoId); $d2 = new DateTime(); logMessage("FirstComeFirstServed", "****assignSchedule(" . $expoId . ") ****", $d2->format('H:i'), " elapsed: ", $d2->getTimestamp() - $d1->getTimestamp(), "\n"); // $aas->logJobListState("FirstComeFirstServed", "jobs after assignment"); // $aas->logWorkerListState("FirstComeFirstServed", "workers after assignment"); AbstractScheduler::commitSchedule($expo->expoid, TRUE, $aas->getSchedule()); } return; }
require_once 'db/ShiftAssignment.php'; require_once 'util/log.php'; require_once 'util/session.php'; require_once 'util/ScheduleEnum.php'; require_once 'schedule/AbstractScheduler.php'; require_once 'schedule/FirstComeFirstServed.php'; require_once 'schedule/FirstComeLocationLocked.php'; require_once 'schedule/FirstComeSoftLocationLocked.php'; require_once 'schedule/AssignAndSubtract.php'; require_once 'schedule/JobSchedule.php'; require_once 'schedule/WorkerSchedule.php'; require_once 'swwat/gizmos/parse.php'; $expo = getExpoCurrent(); if (isset($_POST[PARAM_SCHEDULE_PUBLISH]) && isset($_SESSION[PARAM_SCHEDULE_PUBLISH])) { $keepFlag = isset($_SESSION[PARAM_SCHEDULE_KEEP]); AbstractScheduler::commitSchedule($expo->expoid, $keepFlag, $_SESSION[PARAM_SCHEDULE_PUBLISH]); unset($_SESSION[PARAM_SCHEDULE_PUBLISH]); unset($_SESSION[PARAM_SCHEDULE_ALGO]); unset($_SESSION[PARAM_PAGE_MESSAGE]); unset($_SESSION[PARAM_SCHEDULE_KEEP]); header('Location: SchedulingReportPage.php'); include 'SchedulingReportPage.php'; return; } $algorithm = $_POST[PARAM_SCHEDULE_ALGO]; try { $algorithm = swwat_parse_enum($algorithm, ScheduleEnum::$ENUM_ARRAY, FALSE); } catch (ParseSWWATException $ex) { header('Location: WorkerLoginPage.php'); include 'WorkerLoginPage.php'; return;