Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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;
 }