function launch() { global $interface, $configArray; $results = ''; if (isset($_POST['submit'])) { require_once ROOT_DIR . '/sys/OfflineCirculationEntry.php'; //Store information into the database $login = $_REQUEST['login']; $interface->assign('lastLogin', $login); $password1 = $_REQUEST['password1']; $interface->assign('lastPassword1', $password1); /* $initials = $_REQUEST['initials']; $interface->assign('lastInitials', $initials); $password2 = $_REQUEST['password2']; $interface->assign('lastPassword2', $password2); */ $loginInfoValid = true; if (strlen($login) == 0) { $results .= "Please enter your login"; $loginInfoValid = false; } if (strlen($password1) == 0) { $results .= "Please enter your login password"; $loginInfoValid = false; } /*if (strlen($initials) == 0){ $initials = $login; } if (strlen($password2) == 0){ $password2 = $password1; }*/ if ($loginInfoValid) { //$barcodesToCheckIn = $_REQUEST['barcodesToCheckIn']; $patronBarcode = $_REQUEST['patronBarcode']; $barcodesToCheckOut = $_REQUEST['barcodesToCheckOut']; //First store any titles that are being checked in /*if (strlen(trim($barcodesToCheckIn)) > 0){ $barcodesToCheckIn = preg_split('/[\\s\\r\\n]+/', $barcodesToCheckIn); foreach ($barcodesToCheckIn as $barcode){ $offlineCirculationEntry = new OfflineCirculationEntry(); $offlineCirculationEntry->timeEntered = time(); $offlineCirculationEntry->itemBarcode = $barcode; $offlineCirculationEntry->login = $login; $offlineCirculationEntry->loginPassword = $password1; $offlineCirculationEntry->initials = $initials; $offlineCirculationEntry->initialsPassword = $password2; $offlineCirculationEntry->type = 'Check In'; $offlineCirculationEntry->status = 'Not Processed'; $offlineCirculationEntry->insert(); } }*/ $numItemsCheckedOut = 0; if (strlen(trim($barcodesToCheckOut)) > 0 && strlen($patronBarcode) > 0) { $userObj = new User(); $patronId = null; $userObj->cat_password = $patronBarcode; if ($userObj->find()) { $userObj->fetch(); $patronId = $userObj->id; } $barcodesToCheckOut = preg_split('/[\\s\\r\\n]+/', $barcodesToCheckOut); if (!is_array($barcodesToCheckOut)) { $barcodesToCheckOut = array($barcodesToCheckOut); } foreach ($barcodesToCheckOut as $barcode) { $barcode = trim($barcode); if (strlen($barcode) > 0) { $offlineCirculationEntry = new OfflineCirculationEntry(); $offlineCirculationEntry->timeEntered = time(); $offlineCirculationEntry->itemBarcode = $barcode; $offlineCirculationEntry->login = $login; $offlineCirculationEntry->loginPassword = $password1; //$offlineCirculationEntry->initials = $initials; //$offlineCirculationEntry->initialsPassword = $password2; $offlineCirculationEntry->patronBarcode = $patronBarcode; $offlineCirculationEntry->patronId = $patronId; $offlineCirculationEntry->type = 'Check Out'; $offlineCirculationEntry->status = 'Not Processed'; if ($offlineCirculationEntry->insert()) { $numItemsCheckedOut++; } else { $results .= "Could not check out item {$barcode} to patron {$patronBarcode}.<br/>"; } } } } $results .= "Successfully checked out {$numItemsCheckedOut} items to patron {$patronBarcode}.<br/>"; } } $interface->assign('results', $results); $ils_name = $configArray['Catalog']['ils'] ? $configArray['Catalog']['ils'] : 'ILS'; $interface->assign('ILSname', $ils_name); //Get view & load template $interface->setPageTitle('Offline Circulation'); $interface->assign('sidebar', 'MyAccount/account-sidebar.tpl'); $interface->setTemplate('offlineCirculation.tpl'); $interface->display('layout.tpl', 'Circa'); }
public function launch() { global $interface; if (isset($_REQUEST['startDate'])) { $startDate = new DateTime($_REQUEST['startDate']); } else { $startDate = new DateTime(); date_sub($startDate, new DateInterval('P1M')); // 1 month ago } if (isset($_REQUEST['endDate'])) { $endDate = new DateTime($_REQUEST['endDate']); } else { $endDate = new DateTime(); } $endDate->setTime(23, 59, 59); //second before midnight $typesToInclude = isset($_REQUEST['typesToInclude']) ? $_REQUEST['typesToInclude'] : 'everything'; $loginsToInclude = isset($_REQUEST['loginsToInclude']) ? $_REQUEST['loginsToInclude'] : ''; $hideNotProcessed = isset($_REQUEST['hideNotProcessed']); $hideFailed = isset($_REQUEST['hideFailed']); $hideSuccess = isset($_REQUEST['hideSuccess']); $interface->assign('startDate', $startDate->getTimestamp()); $interface->assign('endDate', $endDate->getTimestamp()); $interface->assign('typesToInclude', $typesToInclude); $interface->assign('loginsToInclude', $loginsToInclude); $interface->assign('hideNotProcessed', $hideNotProcessed); $interface->assign('hideFailed', $hideFailed); $interface->assign('hideSuccess', $hideSuccess); $offlineCirculationEntries = array(); $offlineCirculationEntryObj = new OfflineCirculationEntry(); $offlineCirculationEntryObj->whereAdd("timeEntered >= " . $startDate->getTimestamp() . " AND timeEntered <= " . $endDate->getTimestamp()); if ($typesToInclude == 'checkouts') { $offlineCirculationEntryObj->type = 'Check Out'; } else { if ($typesToInclude == 'checkins') { $offlineCirculationEntryObj->type = 'Check In'; } } if ($hideFailed) { $offlineCirculationEntryObj->whereAdd("status != 'Processing Failed'", 'AND'); } if ($hideSuccess) { $offlineCirculationEntryObj->whereAdd("status != 'Processing Succeeded'", 'AND'); } if ($hideNotProcessed) { $offlineCirculationEntryObj->whereAdd("status != 'Not Processed'", 'AND'); } if (strlen($loginsToInclude) > 0) { $logins = explode(',', $loginsToInclude); $loginsToFind = ''; foreach ($logins as $login) { $login = trim($login); if (strlen($loginsToFind) > 0) { $loginsToFind .= ", "; } $loginsToFind .= "'{$login}'"; } if (strlen($loginsToFind) > 0) { $offlineCirculationEntryObj->whereAdd("login IN ({$loginsToFind})", 'AND'); } } $offlineCirculationEntryObj->find(); $totalRecords = 0; $totalPassed = 0; $totalFailed = 0; $totalNotProcessed = 0; while ($offlineCirculationEntryObj->fetch()) { $offlineCirculationEntries[] = clone $offlineCirculationEntryObj; $totalRecords++; if ($offlineCirculationEntryObj->status == 'Not Processed') { $totalNotProcessed++; } elseif ($offlineCirculationEntryObj->status == 'Processing Succeeded') { $totalPassed++; } else { $totalFailed++; } } $interface->assign('totalRecords', $totalRecords); $interface->assign('totalPassed', $totalPassed); $interface->assign('totalFailed', $totalFailed); $interface->assign('totalNotProcessed', $totalNotProcessed); $interface->setPageTitle('Offline Circulation Report'); $interface->assign('sidebar', 'MyAccount/account-sidebar.tpl'); $interface->assign('offlineCirculation', $offlineCirculationEntries); $interface->setTemplate('offlineCirculationReport.tpl'); $interface->display('layout.tpl'); }