Lines 3-8
Link Here
|
3 |
|
3 |
|
4 |
#writen 2/1/00 by chris@katipo.oc.nz |
4 |
#writen 2/1/00 by chris@katipo.oc.nz |
5 |
# Copyright 2000-2002 Katipo Communications |
5 |
# Copyright 2000-2002 Katipo Communications |
|
|
6 |
# Parts Copyright 2011 Catalyst IT |
6 |
# |
7 |
# |
7 |
# This file is part of Koha. |
8 |
# This file is part of Koha. |
8 |
# |
9 |
# |
Lines 62-72
my $showallitems = $input->param('showallitems');
Link Here
|
62 |
# get Branches and Itemtypes |
63 |
# get Branches and Itemtypes |
63 |
my $branches = GetBranches(); |
64 |
my $branches = GetBranches(); |
64 |
my $itemtypes = GetItemTypes(); |
65 |
my $itemtypes = GetItemTypes(); |
65 |
|
66 |
|
66 |
my $default = C4::Context->userenv->{branch}; |
67 |
my $default = C4::Context->userenv->{branch}; |
67 |
my @values; |
68 |
my @values; |
68 |
my %label_of; |
69 |
my %label_of; |
69 |
|
70 |
|
70 |
foreach my $branchcode (sort keys %{$branches} ) { |
71 |
foreach my $branchcode (sort keys %{$branches} ) { |
71 |
push @values, $branchcode; |
72 |
push @values, $branchcode; |
72 |
$label_of{$branchcode} = $branches->{$branchcode}->{branchname}; |
73 |
$label_of{$branchcode} = $branches->{$branchcode}->{branchname}; |
Lines 99-107
if ( $action eq 'move' ) {
Link Here
|
99 |
my $where = $input->param('where'); |
100 |
my $where = $input->param('where'); |
100 |
my $borrowernumber = $input->param('borrowernumber'); |
101 |
my $borrowernumber = $input->param('borrowernumber'); |
101 |
my $biblionumber = $input->param('biblionumber'); |
102 |
my $biblionumber = $input->param('biblionumber'); |
102 |
|
|
|
103 |
AlterPriority( $where, $borrowernumber, $biblionumber ); |
103 |
AlterPriority( $where, $borrowernumber, $biblionumber ); |
104 |
|
|
|
105 |
} elsif ( $action eq 'cancel' ) { |
104 |
} elsif ( $action eq 'cancel' ) { |
106 |
my $borrowernumber = $input->param('borrowernumber'); |
105 |
my $borrowernumber = $input->param('borrowernumber'); |
107 |
my $biblionumber = $input->param('biblionumber'); |
106 |
my $biblionumber = $input->param('biblionumber'); |
Lines 129-135
if ($findborrower) {
Link Here
|
129 |
} |
128 |
} |
130 |
} |
129 |
} |
131 |
|
130 |
|
132 |
if ($borrowernumber_hold) { |
131 |
# If we have the borrowernumber because we've performed an action, then we |
|
|
132 |
# don't want to try to place another reserve. |
133 |
if ($borrowernumber_hold && !$action) { |
133 |
my $borrowerinfo = GetMemberDetails( $borrowernumber_hold ); |
134 |
my $borrowerinfo = GetMemberDetails( $borrowernumber_hold ); |
134 |
my $diffbranch; |
135 |
my $diffbranch; |
135 |
my @getreservloop; |
136 |
my @getreservloop; |
Lines 154-160
if ($borrowernumber_hold) {
Link Here
|
154 |
Date_to_Days(split /-/,$date) > Date_to_Days(split /-/,$expiry_date)) { |
155 |
Date_to_Days(split /-/,$date) > Date_to_Days(split /-/,$expiry_date)) { |
155 |
$messages = $expiry = 1; |
156 |
$messages = $expiry = 1; |
156 |
} |
157 |
} |
157 |
|
|
|
158 |
|
158 |
|
159 |
# check if the borrower make the reserv in a different branch |
159 |
# check if the borrower make the reserv in a different branch |
160 |
if ( $borrowerinfo->{'branchcode'} ne C4::Context->userenv->{'branch'} ) { |
160 |
if ( $borrowerinfo->{'branchcode'} ne C4::Context->userenv->{'branch'} ) { |
Lines 265-275
foreach my $biblionumber (@biblionumbers) {
Link Here
|
265 |
warnings => $warnings, |
265 |
warnings => $warnings, |
266 |
maxreserves=>$maxreserves |
266 |
maxreserves=>$maxreserves |
267 |
); |
267 |
); |
268 |
|
268 |
|
269 |
|
269 |
|
270 |
# FIXME think @optionloop, is maybe obsolete, or must be switchable by a systeme preference fixed rank or not |
270 |
# FIXME think @optionloop, is maybe obsolete, or must be switchable by a systeme preference fixed rank or not |
271 |
# make priorities options |
271 |
# make priorities options |
272 |
|
272 |
|
273 |
my @optionloop; |
273 |
my @optionloop; |
274 |
for ( 1 .. $count + 1 ) { |
274 |
for ( 1 .. $count + 1 ) { |
275 |
push( |
275 |
push( |
Lines 286-292
foreach my $biblionumber (@biblionumbers) {
Link Here
|
286 |
my @branchcodes; |
286 |
my @branchcodes; |
287 |
my %itemnumbers_of_biblioitem; |
287 |
my %itemnumbers_of_biblioitem; |
288 |
my @itemnumbers; |
288 |
my @itemnumbers; |
289 |
|
289 |
|
290 |
## $items is array of 'item' table numbers |
290 |
## $items is array of 'item' table numbers |
291 |
if (my $items = get_itemnumbers_of($biblionumber)->{$biblionumber}){ |
291 |
if (my $items = get_itemnumbers_of($biblionumber)->{$biblionumber}){ |
292 |
@itemnumbers = @$items; |
292 |
@itemnumbers = @$items; |
Lines 295-355
foreach my $biblionumber (@biblionumbers) {
Link Here
|
295 |
$template->param('noitems' => 1); |
295 |
$template->param('noitems' => 1); |
296 |
$biblioloopiter{noitems} = 1; |
296 |
$biblioloopiter{noitems} = 1; |
297 |
} |
297 |
} |
298 |
|
298 |
|
299 |
## Hash of item number to 'item' table fields |
299 |
## Hash of item number to 'item' table fields |
300 |
my $iteminfos_of = GetItemInfosOf(@itemnumbers); |
300 |
my $iteminfos_of = GetItemInfosOf(@itemnumbers); |
301 |
|
301 |
|
302 |
## Here we go backwards again to create hash of biblioitemnumber to itemnumbers, |
302 |
## Here we go backwards again to create hash of biblioitemnumber to itemnumbers, |
303 |
## when by definition all of the itemnumber have the same biblioitemnumber |
303 |
## when by definition all of the itemnumber have the same biblioitemnumber |
304 |
foreach my $itemnumber (@itemnumbers) { |
304 |
foreach my $itemnumber (@itemnumbers) { |
305 |
my $biblioitemnumber = $iteminfos_of->{$itemnumber}->{biblioitemnumber}; |
305 |
my $biblioitemnumber = $iteminfos_of->{$itemnumber}->{biblioitemnumber}; |
306 |
push( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} }, $itemnumber ); |
306 |
push( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} }, $itemnumber ); |
307 |
} |
307 |
} |
308 |
|
308 |
|
309 |
## Should be same as biblionumber |
309 |
## Should be same as biblionumber |
310 |
my @biblioitemnumbers = keys %itemnumbers_of_biblioitem; |
310 |
my @biblioitemnumbers = keys %itemnumbers_of_biblioitem; |
311 |
|
311 |
|
312 |
my $notforloan_label_of = get_notforloan_label_of(); |
312 |
my $notforloan_label_of = get_notforloan_label_of(); |
313 |
|
313 |
|
314 |
## Hash of biblioitemnumber to 'biblioitem' table records |
314 |
## Hash of biblioitemnumber to 'biblioitem' table records |
315 |
my $biblioiteminfos_of = GetBiblioItemInfosOf(@biblioitemnumbers); |
315 |
my $biblioiteminfos_of = GetBiblioItemInfosOf(@biblioitemnumbers); |
316 |
|
316 |
|
317 |
my @bibitemloop; |
317 |
my @bibitemloop; |
318 |
|
318 |
|
319 |
foreach my $biblioitemnumber (@biblioitemnumbers) { |
319 |
foreach my $biblioitemnumber (@biblioitemnumbers) { |
320 |
my $biblioitem = $biblioiteminfos_of->{$biblioitemnumber}; |
320 |
my $biblioitem = $biblioiteminfos_of->{$biblioitemnumber}; |
321 |
my $num_available = 0; |
321 |
my $num_available = 0; |
322 |
my $num_override = 0; |
322 |
my $num_override = 0; |
323 |
my $hiddencount = 0; |
323 |
my $hiddencount = 0; |
324 |
|
324 |
|
325 |
$biblioitem->{description} = |
325 |
$biblioitem->{description} = |
326 |
$itemtypes->{ $biblioitem->{itemtype} }{description}; |
326 |
$itemtypes->{ $biblioitem->{itemtype} }{description}; |
327 |
$biblioloopiter{description} = $biblioitem->{description}; |
327 |
$biblioloopiter{description} = $biblioitem->{description}; |
328 |
$biblioloopiter{itypename} = $biblioitem->{description}; |
328 |
$biblioloopiter{itypename} = $biblioitem->{description}; |
329 |
$biblioloopiter{imageurl} = |
329 |
$biblioloopiter{imageurl} = |
330 |
getitemtypeimagelocation('intranet', $itemtypes->{$biblioitem->{itemtype}}{imageurl}); |
330 |
getitemtypeimagelocation('intranet', $itemtypes->{$biblioitem->{itemtype}}{imageurl}); |
331 |
|
331 |
|
332 |
foreach my $itemnumber ( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} } ) { |
332 |
foreach my $itemnumber ( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} } ) { |
333 |
my $item = $iteminfos_of->{$itemnumber}; |
333 |
my $item = $iteminfos_of->{$itemnumber}; |
334 |
|
334 |
|
335 |
unless (C4::Context->preference('item-level_itypes')) { |
335 |
unless (C4::Context->preference('item-level_itypes')) { |
336 |
$item->{itype} = $biblioitem->{itemtype}; |
336 |
$item->{itype} = $biblioitem->{itemtype}; |
337 |
} |
337 |
} |
338 |
|
338 |
|
339 |
$item->{itypename} = $itemtypes->{ $item->{itype} }{description}; |
339 |
$item->{itypename} = $itemtypes->{ $item->{itype} }{description}; |
340 |
$item->{imageurl} = getitemtypeimagelocation( 'intranet', $itemtypes->{ $item->{itype} }{imageurl} ); |
340 |
$item->{imageurl} = getitemtypeimagelocation( 'intranet', $itemtypes->{ $item->{itype} }{imageurl} ); |
341 |
$item->{homebranchname} = $branches->{ $item->{homebranch} }{branchname}; |
341 |
$item->{homebranchname} = $branches->{ $item->{homebranch} }{branchname}; |
342 |
|
342 |
|
343 |
# if the holdingbranch is different than the homebranch, we show the |
343 |
# if the holdingbranch is different than the homebranch, we show the |
344 |
# holdingbranch of the document too |
344 |
# holdingbranch of the document too |
345 |
if ( $item->{homebranch} ne $item->{holdingbranch} ) { |
345 |
if ( $item->{homebranch} ne $item->{holdingbranch} ) { |
346 |
$item->{holdingbranchname} = |
346 |
$item->{holdingbranchname} = |
347 |
$branches->{ $item->{holdingbranch} }{branchname}; |
347 |
$branches->{ $item->{holdingbranch} }{branchname}; |
348 |
} |
348 |
} |
349 |
|
349 |
|
350 |
# add information |
350 |
# add information |
351 |
$item->{itemcallnumber} = $item->{itemcallnumber}; |
351 |
$item->{itemcallnumber} = $item->{itemcallnumber}; |
352 |
|
352 |
|
353 |
# if the item is currently on loan, we display its return date and |
353 |
# if the item is currently on loan, we display its return date and |
354 |
# change the background color |
354 |
# change the background color |
355 |
my $issues= GetItemIssue($itemnumber); |
355 |
my $issues= GetItemIssue($itemnumber); |
Lines 357-367
foreach my $biblionumber (@biblionumbers) {
Link Here
|
357 |
$item->{date_due} = format_date($issues->{'date_due'}); |
357 |
$item->{date_due} = format_date($issues->{'date_due'}); |
358 |
$item->{backgroundcolor} = 'onloan'; |
358 |
$item->{backgroundcolor} = 'onloan'; |
359 |
} |
359 |
} |
360 |
|
360 |
|
361 |
# checking reserve |
361 |
# checking reserve |
362 |
my ($reservedate,$reservedfor,$expectedAt) = GetReservesFromItemnumber($itemnumber); |
362 |
my ($reservedate,$reservedfor,$expectedAt) = GetReservesFromItemnumber($itemnumber); |
363 |
my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0); |
363 |
my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0); |
364 |
|
364 |
|
365 |
if ( defined $reservedate ) { |
365 |
if ( defined $reservedate ) { |
366 |
$item->{backgroundcolor} = 'reserved'; |
366 |
$item->{backgroundcolor} = 'reserved'; |
367 |
$item->{reservedate} = format_date($reservedate); |
367 |
$item->{reservedate} = format_date($reservedate); |
Lines 369-387
foreach my $biblionumber (@biblionumbers) {
Link Here
|
369 |
$item->{ReservedForSurname} = $ItemBorrowerReserveInfo->{'surname'}; |
369 |
$item->{ReservedForSurname} = $ItemBorrowerReserveInfo->{'surname'}; |
370 |
$item->{ReservedForFirstname} = $ItemBorrowerReserveInfo->{'firstname'}; |
370 |
$item->{ReservedForFirstname} = $ItemBorrowerReserveInfo->{'firstname'}; |
371 |
$item->{ExpectedAtLibrary} = $branches->{$expectedAt}{branchname}; |
371 |
$item->{ExpectedAtLibrary} = $branches->{$expectedAt}{branchname}; |
372 |
|
372 |
|
373 |
} |
373 |
} |
374 |
|
374 |
|
375 |
# Management of the notforloan document |
375 |
# Management of the notforloan document |
376 |
if ( $item->{notforloan} ) { |
376 |
if ( $item->{notforloan} ) { |
377 |
$item->{backgroundcolor} = 'other'; |
377 |
$item->{backgroundcolor} = 'other'; |
378 |
$item->{notforloanvalue} = |
378 |
$item->{notforloanvalue} = |
379 |
$notforloan_label_of->{ $item->{notforloan} }; |
379 |
$notforloan_label_of->{ $item->{notforloan} }; |
380 |
} |
380 |
} |
381 |
|
381 |
|
382 |
# Management of lost or long overdue items |
382 |
# Management of lost or long overdue items |
383 |
if ( $item->{itemlost} ) { |
383 |
if ( $item->{itemlost} ) { |
384 |
|
384 |
|
385 |
# FIXME localized strings should never be in Perl code |
385 |
# FIXME localized strings should never be in Perl code |
386 |
$item->{message} = |
386 |
$item->{message} = |
387 |
$item->{itemlost} == 1 ? "(lost)" |
387 |
$item->{itemlost} == 1 ? "(lost)" |
Lines 393-403
foreach my $biblionumber (@biblionumbers) {
Link Here
|
393 |
$hiddencount++; |
393 |
$hiddencount++; |
394 |
} |
394 |
} |
395 |
} |
395 |
} |
396 |
|
396 |
|
397 |
# Check the transit status |
397 |
# Check the transit status |
398 |
my ( $transfertwhen, $transfertfrom, $transfertto ) = |
398 |
my ( $transfertwhen, $transfertfrom, $transfertto ) = |
399 |
GetTransfers($itemnumber); |
399 |
GetTransfers($itemnumber); |
400 |
|
400 |
|
401 |
if ( defined $transfertwhen && $transfertwhen ne '' ) { |
401 |
if ( defined $transfertwhen && $transfertwhen ne '' ) { |
402 |
$item->{transfertwhen} = format_date($transfertwhen); |
402 |
$item->{transfertwhen} = format_date($transfertwhen); |
403 |
$item->{transfertfrom} = |
403 |
$item->{transfertfrom} = |
Lines 405-417
foreach my $biblionumber (@biblionumbers) {
Link Here
|
405 |
$item->{transfertto} = $branches->{$transfertto}{branchname}; |
405 |
$item->{transfertto} = $branches->{$transfertto}{branchname}; |
406 |
$item->{nocancel} = 1; |
406 |
$item->{nocancel} = 1; |
407 |
} |
407 |
} |
408 |
|
408 |
|
409 |
# If there is no loan, return and transfer, we show a checkbox. |
409 |
# If there is no loan, return and transfer, we show a checkbox. |
410 |
$item->{notforloan} = $item->{notforloan} || 0; |
410 |
$item->{notforloan} = $item->{notforloan} || 0; |
411 |
|
411 |
|
412 |
# if independent branches is on we need to check if the person can reserve |
412 |
# if independent branches is on we need to check if the person can reserve |
413 |
# for branches they arent logged in to |
413 |
# for branches they arent logged in to |
414 |
if ( C4::Context->preference("IndependantBranches") ) { |
414 |
if ( C4::Context->preference("IndependantBranches") ) { |
415 |
if (! C4::Context->preference("canreservefromotherbranches")){ |
415 |
if (! C4::Context->preference("canreservefromotherbranches")){ |
416 |
# cant reserve items so need to check if item homebranch and userenv branch match if not we cant reserve |
416 |
# cant reserve items so need to check if item homebranch and userenv branch match if not we cant reserve |
417 |
my $userenv = C4::Context->userenv; |
417 |
my $userenv = C4::Context->userenv; |
Lines 420-441
foreach my $biblionumber (@biblionumbers) {
Link Here
|
420 |
} |
420 |
} |
421 |
} |
421 |
} |
422 |
} |
422 |
} |
423 |
|
423 |
|
424 |
my $branch = C4::Circulation::_GetCircControlBranch($item, $borrowerinfo); |
424 |
my $branch = C4::Circulation::_GetCircControlBranch($item, $borrowerinfo); |
425 |
|
425 |
|
426 |
my $branchitemrule = GetBranchItemRule( $branch, $item->{'itype'} ); |
426 |
my $branchitemrule = GetBranchItemRule( $branch, $item->{'itype'} ); |
427 |
my $policy_holdallowed = 1; |
427 |
my $policy_holdallowed = 1; |
428 |
|
428 |
|
429 |
$item->{'holdallowed'} = $branchitemrule->{'holdallowed'}; |
429 |
$item->{'holdallowed'} = $branchitemrule->{'holdallowed'}; |
430 |
|
430 |
|
431 |
if ( $branchitemrule->{'holdallowed'} == 0 || |
431 |
if ( $branchitemrule->{'holdallowed'} == 0 || |
432 |
( $branchitemrule->{'holdallowed'} == 1 && |
432 |
( $branchitemrule->{'holdallowed'} == 1 && |
433 |
$borrowerinfo->{'branchcode'} ne $item->{'homebranch'} ) ) { |
433 |
$borrowerinfo->{'branchcode'} ne $item->{'homebranch'} ) ) { |
434 |
$policy_holdallowed = 0; |
434 |
$policy_holdallowed = 0; |
435 |
} |
435 |
} |
436 |
|
436 |
|
437 |
if (IsAvailableForItemLevelRequest($itemnumber) and |
437 |
if (IsAvailableForItemLevelRequest($itemnumber) and |
438 |
not $item->{cantreserve} and |
438 |
not $item->{cantreserve} and |
439 |
CanItemBeReserved($borrowerinfo->{borrowernumber}, $itemnumber) ) { |
439 |
CanItemBeReserved($borrowerinfo->{borrowernumber}, $itemnumber) ) { |
440 |
if ( $policy_holdallowed ) { |
440 |
if ( $policy_holdallowed ) { |
441 |
$item->{available} = 1; |
441 |
$item->{available} = 1; |
Lines 449-458
foreach my $biblionumber (@biblionumbers) {
Link Here
|
449 |
if (C4::Context->preference( 'AllowHoldPolicyOverride' ) && !$item->{available} ) { |
449 |
if (C4::Context->preference( 'AllowHoldPolicyOverride' ) && !$item->{available} ) { |
450 |
$item->{override} = 1; |
450 |
$item->{override} = 1; |
451 |
$num_override++; |
451 |
$num_override++; |
452 |
} |
452 |
} |
453 |
|
453 |
|
454 |
# If none of the conditions hold true, then neither override nor available is set and the item cannot be checked |
454 |
# If none of the conditions hold true, then neither override nor available is set and the item cannot be checked |
455 |
|
455 |
|
456 |
# FIXME: move this to a pm |
456 |
# FIXME: move this to a pm |
457 |
my $sth2 = $dbh->prepare("SELECT * FROM reserves WHERE borrowernumber=? AND itemnumber=? AND found='W'"); |
457 |
my $sth2 = $dbh->prepare("SELECT * FROM reserves WHERE borrowernumber=? AND itemnumber=? AND found='W'"); |
458 |
$sth2->execute($item->{ReservedForBorrowernumber},$item->{itemnumber}); |
458 |
$sth2->execute($item->{ReservedForBorrowernumber},$item->{itemnumber}); |
Lines 461-467
foreach my $biblionumber (@biblionumbers) {
Link Here
|
461 |
} |
461 |
} |
462 |
push @{ $biblioitem->{itemloop} }, $item; |
462 |
push @{ $biblioitem->{itemloop} }, $item; |
463 |
} |
463 |
} |
464 |
|
464 |
|
465 |
if ( $num_override == scalar( @{ $biblioitem->{itemloop} } ) ) { # That is, if all items require an override |
465 |
if ( $num_override == scalar( @{ $biblioitem->{itemloop} } ) ) { # That is, if all items require an override |
466 |
$template->param( override_required => 1 ); |
466 |
$template->param( override_required => 1 ); |
467 |
} elsif ( $num_available == 0 ) { |
467 |
} elsif ( $num_available == 0 ) { |
Lines 471-487
foreach my $biblionumber (@biblionumbers) {
Link Here
|
471 |
$biblioloopiter{none_avail} = 1; |
471 |
$biblioloopiter{none_avail} = 1; |
472 |
} |
472 |
} |
473 |
$template->param( hiddencount => $hiddencount); |
473 |
$template->param( hiddencount => $hiddencount); |
474 |
|
474 |
|
475 |
push @bibitemloop, $biblioitem; |
475 |
push @bibitemloop, $biblioitem; |
476 |
} |
476 |
} |
477 |
|
477 |
|
478 |
# existingreserves building |
478 |
# existingreserves building |
479 |
my @reserveloop; |
479 |
my @reserveloop; |
480 |
( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1); |
480 |
( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1); |
481 |
foreach my $res ( sort { |
481 |
foreach my $res ( sort { |
482 |
my $a_found = $a->{found} || ''; |
482 |
my $a_found = $a->{found} || ''; |
483 |
my $b_found = $a->{found} || ''; |
483 |
my $b_found = $a->{found} || ''; |
484 |
$a_found cmp $b_found; |
484 |
$a_found cmp $b_found; |
485 |
} @$reserves ) { |
485 |
} @$reserves ) { |
486 |
my %reserve; |
486 |
my %reserve; |
487 |
my @optionloop; |
487 |
my @optionloop; |
Lines 494-504
foreach my $biblionumber (@biblionumbers) {
Link Here
|
494 |
} |
494 |
} |
495 |
); |
495 |
); |
496 |
} |
496 |
} |
497 |
|
497 |
|
498 |
if ( defined $res->{'found'} && $res->{'found'} eq 'W' || $res->{'found'} eq 'T' ) { |
498 |
if ( defined $res->{'found'} && $res->{'found'} eq 'W' || $res->{'found'} eq 'T' ) { |
499 |
my $item = $res->{'itemnumber'}; |
499 |
my $item = $res->{'itemnumber'}; |
500 |
$item = GetBiblioFromItemNumber($item,undef); |
500 |
$item = GetBiblioFromItemNumber($item,undef); |
501 |
$reserve{'wait'}= 1; |
501 |
$reserve{'wait'}= 1; |
502 |
$reserve{'holdingbranch'}=$item->{'holdingbranch'}; |
502 |
$reserve{'holdingbranch'}=$item->{'holdingbranch'}; |
503 |
$reserve{'biblionumber'}=$item->{'biblionumber'}; |
503 |
$reserve{'biblionumber'}=$item->{'biblionumber'}; |
504 |
$reserve{'barcodenumber'} = $item->{'barcode'}; |
504 |
$reserve{'barcodenumber'} = $item->{'barcode'}; |
Lines 519-539
foreach my $biblionumber (@biblionumbers) {
Link Here
|
519 |
$reserve{'item_level_hold'} = 1; |
519 |
$reserve{'item_level_hold'} = 1; |
520 |
} |
520 |
} |
521 |
} |
521 |
} |
522 |
|
522 |
|
523 |
# get borrowers reserve info |
523 |
# get borrowers reserve info |
524 |
my $reserveborrowerinfo = GetMemberDetails( $res->{'borrowernumber'}, 0); |
524 |
my $reserveborrowerinfo = GetMemberDetails( $res->{'borrowernumber'}, 0); |
525 |
if (C4::Context->preference('HidePatronName')){ |
525 |
if (C4::Context->preference('HidePatronName')){ |
526 |
$reserve{'hidename'} = 1; |
526 |
$reserve{'hidename'} = 1; |
527 |
$reserve{'cardnumber'} = $reserveborrowerinfo->{'cardnumber'}; |
527 |
$reserve{'cardnumber'} = $reserveborrowerinfo->{'cardnumber'}; |
528 |
} |
528 |
} |
529 |
$reserve{'expirationdate'} = format_date( $res->{'expirationdate'} ) |
529 |
$reserve{'expirationdate'} = format_date( $res->{'expirationdate'} ) |
530 |
unless ( !defined($res->{'expirationdate'}) || $res->{'expirationdate'} eq '0000-00-00' ); |
530 |
unless ( !defined($res->{'expirationdate'}) || $res->{'expirationdate'} eq '0000-00-00' ); |
531 |
$reserve{'date'} = format_date( $res->{'reservedate'} ); |
531 |
$reserve{'date'} = format_date( $res->{'reservedate'} ); |
532 |
$reserve{'borrowernumber'} = $res->{'borrowernumber'}; |
532 |
$reserve{'borrowernumber'} = $res->{'borrowernumber'}; |
533 |
$reserve{'biblionumber'} = $res->{'biblionumber'}; |
533 |
$reserve{'biblionumber'} = $res->{'biblionumber'}; |
534 |
$reserve{'borrowernumber'} = $res->{'borrowernumber'}; |
534 |
$reserve{'borrowernumber'} = $res->{'borrowernumber'}; |
535 |
$reserve{'firstname'} = $reserveborrowerinfo->{'firstname'}; |
535 |
$reserve{'firstname'} = $reserveborrowerinfo->{'firstname'}; |
536 |
$reserve{'surname'} = $reserveborrowerinfo->{'surname'}; |
536 |
$reserve{'surname'} = $reserveborrowerinfo->{'surname'}; |
537 |
$reserve{'notes'} = $res->{'reservenotes'}; |
537 |
$reserve{'notes'} = $res->{'reservenotes'}; |
538 |
$reserve{'wait'} = |
538 |
$reserve{'wait'} = |
539 |
( ( defined $res->{'found'} and $res->{'found'} eq 'W' ) or ( $res->{'priority'} eq '0' ) ); |
539 |
( ( defined $res->{'found'} and $res->{'found'} eq 'W' ) or ( $res->{'priority'} eq '0' ) ); |
Lines 546-565
foreach my $biblionumber (@biblionumbers) {
Link Here
|
546 |
$reserve{'lowestPriority'} = $res->{'lowestPriority'}; |
546 |
$reserve{'lowestPriority'} = $res->{'lowestPriority'}; |
547 |
$reserve{'branchloop'} = GetBranchesLoop($res->{'branchcode'}); |
547 |
$reserve{'branchloop'} = GetBranchesLoop($res->{'branchcode'}); |
548 |
$reserve{'optionloop'} = \@optionloop; |
548 |
$reserve{'optionloop'} = \@optionloop; |
549 |
|
549 |
|
550 |
push( @reserveloop, \%reserve ); |
550 |
push( @reserveloop, \%reserve ); |
551 |
} |
551 |
} |
552 |
|
552 |
|
553 |
# get the time for the form name... |
553 |
# get the time for the form name... |
554 |
my $time = time(); |
554 |
my $time = time(); |
555 |
|
555 |
|
556 |
$template->param( |
556 |
$template->param( |
557 |
CGIbranch => $CGIbranch, |
557 |
CGIbranch => $CGIbranch, |
558 |
|
558 |
|
559 |
time => $time, |
559 |
time => $time, |
560 |
fixedRank => $fixedRank, |
560 |
fixedRank => $fixedRank, |
561 |
); |
561 |
); |
562 |
|
562 |
|
563 |
# display infos |
563 |
# display infos |
564 |
$template->param( |
564 |
$template->param( |
565 |
optionloop => \@optionloop, |
565 |
optionloop => \@optionloop, |
Lines 588-594
foreach my $biblionumber (@biblionumbers) {
Link Here
|
588 |
if (@reserveloop) { |
588 |
if (@reserveloop) { |
589 |
$template->param( reserveloop => \@reserveloop ); |
589 |
$template->param( reserveloop => \@reserveloop ); |
590 |
} |
590 |
} |
591 |
|
|
|
592 |
|
591 |
|
593 |
push @biblioloop, \%biblioloopiter; |
592 |
push @biblioloop, \%biblioloopiter; |
594 |
} |
593 |
} |
Lines 604-609
if ($multihold) {
Link Here
|
604 |
if ( C4::Context->preference( 'AllowHoldDateInFuture' ) ) { |
603 |
if ( C4::Context->preference( 'AllowHoldDateInFuture' ) ) { |
605 |
$template->param( reserve_in_future => 1 ); |
604 |
$template->param( reserve_in_future => 1 ); |
606 |
} |
605 |
} |
607 |
|
606 |
|
608 |
# printout the page |
607 |
# printout the page |
609 |
output_html_with_http_headers $input, $cookie, $template->output; |
608 |
output_html_with_http_headers $input, $cookie, $template->output; |
610 |
- |
|
|