/** * Send list of checked out books to view. * Added profile to view, so borrow blocks can be shown. * * @return mixed */ public function checkedoutAction() { // Stop now if the user does not have valid catalog credentials available: if (!is_array($patron = $this->catalogLogin())) { return $patron; } $view = $this->createViewIfUnsupported('getMyTransactions'); if ($view === false) { $view = parent::checkedoutAction(); $view->profile = $this->getCatalogProfile(); $renewResult = $view->renewResult; if (isset($renewResult) && is_array($renewResult)) { $renewedCount = 0; $renewErrorCount = 0; foreach ($renewResult as $renew) { if ($renew['success']) { $renewedCount++; } else { $renewErrorCount++; } } $flashMsg = $this->flashMessenger(); if ($renewedCount > 0) { $msg = $this->translate('renew_ok', ['%%count%%' => $renewedCount]); $flashMsg->setNamespace('info')->addMessage($msg); } if ($renewErrorCount > 0) { $msg = $this->translate('renew_failed', ['%%count%%' => $renewErrorCount]); $flashMsg->setNamespace('error')->addMessage($msg); } } } return $view; }
/** * Send list of checked out books to view * * @return mixed */ public function checkedoutAction() { $view = parent::checkedoutAction(); $showOverdueMessage = false; foreach ($view->transactions as $resource) { $ilsDetails = $resource->getExtraDetail('ils_details'); if (isset($ilsDetails['dueStatus']) && $ilsDetails['dueStatus'] == "overdue") { $showOverdueMessage = true; break; } } if ($showOverdueMessage) { $this->flashMessenger()->setNamespace('error')->addMessage('overdue_error_message'); } $view->history = false; $view = $this->addViews($view); $this->flashExceptions($this->flashMessenger()); return $view; }
/** * Send list of checked out books to view. * Added profile to view, so borrow blocks can be shown. * * @return mixed */ public function checkedoutAction() { // Stop now if the user does not have valid catalog credentials available: if (!is_array($patron = $this->catalogLogin())) { return $patron; } $view = $this->createViewIfUnsupported('getMyTransactions'); if ($view === false) { $view = parent::checkedoutAction(); $view->profile = $this->getCatalogProfile(); $transactions = count($view->transactions); $renewResult = $view->renewResult; if (isset($renewResult) && is_array($renewResult)) { $renewedCount = 0; $renewErrorCount = 0; foreach ($renewResult as $renew) { if ($renew['success']) { $renewedCount++; } else { $renewErrorCount++; } } $flashMsg = $this->flashMessenger(); if ($renewedCount > 0) { $msg = $this->translate('renew_ok', ['%%count%%' => $renewedCount, '%%transactionscount%%' => $transactions]); $flashMsg->setNamespace('info')->addMessage($msg); } if ($renewErrorCount > 0) { $msg = $this->translate('renew_failed', ['%%count%%' => $renewErrorCount]); $flashMsg->setNamespace('error')->addMessage($msg); } } // Handle sorting $currentSort = $this->getRequest()->getQuery('sort', 'duedate'); $view->sortList = ['duedate' => ['desc' => 'Due Date', 'url' => '?sort=duedate', 'selected' => $currentSort == 'duedate'], 'title' => ['desc' => 'Title', 'url' => '?sort=title', 'selected' => $currentSort == 'title']]; $date = $this->getServiceLocator()->get('VuFind\\DateConverter'); $sortFunc = function ($a, $b) use($currentSort, $date) { $aDetails = $a->getExtraDetail('ils_details'); $bDetails = $b->getExtraDetail('ils_details'); if ($currentSort == 'title') { $aTitle = is_a($a, 'VuFind\\RecordDriver\\SolrDefault') && !is_a($a, 'VuFind\\RecordDriver\\Missing') ? $a->getSortTitle() : ''; if (!$aTitle) { $aTitle = isset($aDetails['title']) ? $aDetails['title'] : ''; } $bTitle = is_a($b, 'VuFind\\RecordDriver\\SolrDefault') && !is_a($b, 'VuFind\\RecordDriver\\Missing') ? $b->getSortTitle() : ''; if (!$bTitle) { $bTitle = isset($bDetails['title']) ? $bDetails['title'] : ''; } $result = strcmp($aTitle, $bTitle); if ($result != 0) { return $result; } } try { $aDate = isset($aDetails['duedate']) ? $date->convertFromDisplayDate('U', $aDetails['duedate']) : 0; $bDate = isset($bDetails['duedate']) ? $date->convertFromDisplayDate('U', $bDetails['duedate']) : 0; } catch (Exception $e) { return 0; } return $aDate - $bDate; }; $transactions = $view->transactions; usort($transactions, $sortFunc); $view->transactions = $transactions; } return $view; }