my $item_type = C4::Context->preference('item-level_itypes') ? "items.itype" : "biblioitems.itemtype";
+# Bug 21320
+if ( ! C4::Context->preference('AllowHoldsOnDamagedItems') ) {
+ $sqldatewhere .= " AND damaged = 0";
+}
+
my $strsth =
"SELECT min(reservedate) as l_reservedate,
reserves.reserve_id,
GROUP_CONCAT(DISTINCT items.location
ORDER BY items.itemnumber SEPARATOR '|') l_location,
GROUP_CONCAT(DISTINCT items.itemcallnumber
- ORDER BY items.itemnumber SEPARATOR '<br/>') l_itemcallnumber,
+ ORDER BY items.itemnumber SEPARATOR '|') l_itemcallnumber,
GROUP_CONCAT(DISTINCT items.enumchron
- ORDER BY items.itemnumber SEPARATOR '<br/>') l_enumchron,
+ ORDER BY items.itemnumber SEPARATOR '|') l_enumchron,
GROUP_CONCAT(DISTINCT items.copynumber
- ORDER BY items.itemnumber SEPARATOR '<br/>') l_copynumber,
+ ORDER BY items.itemnumber SEPARATOR '|') l_copynumber,
biblio.title,
+ biblio.subtitle,
+ biblio.medium,
+ biblio.part_number,
+ biblio.part_name,
biblio.author,
count(DISTINCT items.itemnumber) as icount,
count(DISTINCT reserves.borrowernumber) as rcount,
LEFT JOIN branchtransfers ON items.itemnumber=branchtransfers.itemnumber
LEFT JOIN issues ON items.itemnumber=issues.itemnumber
LEFT JOIN borrowers ON reserves.borrowernumber=borrowers.borrowernumber
+ LEFT JOIN default_branch_item_rules ON items.itype=default_branch_item_rules.itemtype
WHERE
reserves.found IS NULL
$sqldatewhere
AND issues.itemnumber IS NULL
AND reserves.priority <> 0
AND reserves.suspend = 0
- AND notforloan = 0 AND damaged = 0 AND itemlost = 0 AND withdrawn = 0
+ AND notforloan = 0 AND itemlost = 0 AND withdrawn = 0
+ AND ( default_branch_item_rules.holdallowed IS NULL OR default_branch_item_rules.holdallowed != 0 )
";
# GROUP BY reserves.biblionumber allows only items that are not checked out, else multiples occur when
# multiple patrons have a hold on an item
$sth->execute(@query_params);
while ( my $data = $sth->fetchrow_hashref ) {
- my $record = Koha::Biblios->find($data->{biblionumber});
- if ($record){
- $data->{subtitle} = [ $record->subtitles ];
- }
push(
@reservedata, {
reservedate => $data->{l_reservedate},
surname => $data->{surname},
title => $data->{title},
subtitle => $data->{subtitle},
+ medium => $data->{medium},
+ part_number => $data->{part_number},
+ part_name => $data->{part_name},
author => $data->{author},
borrowernumber => $data->{borrowernumber},
biblionumber => $data->{biblionumber},
holdingbranches => [split('\|', $data->{l_holdingbranch})],
branch => $data->{l_branch},
- itemcallnumber => $data->{l_itemcallnumber},
- enumchron => $data->{l_enumchron},
- copyno => $data->{l_copynumber},
+ itemcallnumber => [split('\|', $data->{l_itemcallnumber})],
+ enumchron => [split('\|', $data->{l_enumchron})],
+ copyno => [split('\|', $data->{l_copynumber})],
count => $data->{icount},
rcount => $data->{rcount},
pullcount => $data->{icount} <= $data->{rcount} ? $data->{icount} : $data->{rcount},