Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 21 additions & 7 deletions code/web/Drivers/SirsiDynixROA.php
Original file line number Diff line number Diff line change
Expand Up @@ -3952,17 +3952,31 @@ public function checkoutByAPI(User $patron, $barcode, Location $currentLocation)
//Check to see if the user already has a copy of the title checked out.
$includeFields = urlencode("circRecordList{*,bib{title,author}},holdRecordList{*,bib{title,author},selectedItem{call{*},itemType{*},barcode}}");
$patronHoldsAndCheckouts = $this->getWebServiceResponse('getHolds', $webServiceURL . '/user/patron/key/' . $patron->unique_ils_id . '?includeFields=' . $includeFields, null, $sessionToken);

//First, check if item being checked out is a volume
$isVolume = false;
$lookupItemKey = $itemKey;
if (str_contains($itemKey, ':')) {
$parts = explode(':', $itemKey);
$lookupItemKey = $parts[0] . ':' . $parts[1];
}
require_once ROOT_DIR . '/sys/ILS/IlsVolumeInfo.php';
$volumeInfo = new IlsVolumeInfo();
$volumeInfo->volumeId = $lookupItemKey;
if ($volumeInfo->find(true)) {
$isVolume = true;
}

if ($patronHoldsAndCheckouts && isset($patronHoldsAndCheckouts->fields)) {
foreach ($patronHoldsAndCheckouts->fields->circRecordList as $checkout) {
if (str_starts_with($checkout->key, $bibKey . ':')){
$result['message'] = translate([
'text' => 'A copy of this title already checked out to you, see a staff member to checkout additional copies.',
'isPublicFacing' => true,
]);
$result['api']['message'] = translate([
'text' => 'A copy of this title already checked out to you, see a staff member to checkout additional copies.',
if (str_starts_with($checkout->key, $bibKey . ':') && (!$isVolume || $checkout->fields->item->key == $itemKey)) {
$message = translate([
'text' => 'A copy of this title is already checked out to you, see a staff member to checkout additional copies.',
'isPublicFacing' => true,
]);

$result['message'] = $message;
$result['api']['message'] = $message;
return $result;
}
}
Expand Down
12 changes: 12 additions & 0 deletions code/web/release_notes/26.10.00/DIS-2825.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Jira: DIS-2825
Type: Enhancement
Developer: Kodi Lein (KL)
Contributing Org: Grove For Libraries
Sponsor: SWAN Library Network
GroveRelease: 26.10.00
CommunityRelease: 26.11.00
Component: Symphony ILS
Description:
- Update Scan & Go for Symphony ILS to allow multiple volumes of a periodical to be checked out.
New Settings:
New Permissions:
Loading