From a1aec74b27f090b1a22280fd478643e262a03c3c Mon Sep 17 00:00:00 2001 From: Ere Maijala <ere.maijala@helsinki.fi> Date: Mon, 18 Nov 2019 16:13:07 +0200 Subject: [PATCH] Alma: Fix date and status display for the holds list. (#1501) As far as I can see there's no way to determine if a request is in transit. I'm open to suggestions if e.g. @betullam knows more. I suspect the same changes should be done to the other two methods, but I don't currently have a way of testing it. --- module/VuFind/src/VuFind/ILS/Driver/Alma.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/module/VuFind/src/VuFind/ILS/Driver/Alma.php b/module/VuFind/src/VuFind/ILS/Driver/Alma.php index b8228ab810c..b18e8feaa64 100644 --- a/module/VuFind/src/VuFind/ILS/Driver/Alma.php +++ b/module/VuFind/src/VuFind/ILS/Driver/Alma.php @@ -895,11 +895,25 @@ class Alma extends AbstractBase implements \VuFindHttp\HttpServiceAwareInterface ); $holdList = []; foreach ($xml as $request) { + $lastInterestDate = $request->last_interest_date + ? $this->dateConverter->convertToDisplayDate( + 'Y-m-dT', (string)$request->last_interest_date + ) : null; + $available = (string)$request->request_status === 'On Hold Shelf'; + if ($available) { + $lastPickupDate = $request->expiry_date + ? $this->dateConverter->convertToDisplayDate( + 'Y-m-dT', (string)$request->expiry_date + ) : null; + } $holdList[] = [ - 'create' => (string)$request->request_date, - 'expire' => (string)$request->last_interest_date, + 'create' => $this->dateConverter->convertToDisplayDate( + 'Y-m-dT', (string)$request->request_date + ), + 'expire' => $lastInterestDate, 'id' => (string)$request->request_id, - 'in_transit' => (string)$request->request_status !== 'On Hold Shelf', + 'available' => $available, + 'last_pickup_date' => $lastPickupDate, 'item_id' => (string)$request->mms_id, 'location' => (string)$request->pickup_location, 'processed' => $request->item_policy === 'InterlibraryLoan' -- GitLab