|
Lines 60-65
sub GetLastpickupdate {
Link Here
|
| 60 |
return $expiration; |
60 |
return $expiration; |
| 61 |
} |
61 |
} |
| 62 |
|
62 |
|
|
|
63 |
=head2 GetWaitingReserves |
| 63 |
|
64 |
|
|
|
65 |
my $waitingReserves = GetWaitingReserves($borrowernumber); |
| 66 |
|
| 67 |
@PARAM1 Integer from koha.borrowers.borrowernumber |
| 68 |
@RETURNS DBIx:: containing Reservation-objects. |
| 69 |
=cut |
| 70 |
sub GetWaitingReserves { |
| 71 |
my ($borrowernumber) = @_; |
| 72 |
|
| 73 |
my $schema = Koha::Database->new()->schema(); |
| 74 |
my $reserves_rs = $schema->resultset('Reserve')->search( |
| 75 |
{ -and => [ |
| 76 |
borrowernumber => $borrowernumber, |
| 77 |
found => 'W' |
| 78 |
] |
| 79 |
}, |
| 80 |
{ |
| 81 |
prefetch => { 'item' => 'biblio' }, |
| 82 |
} |
| 83 |
); |
| 84 |
|
| 85 |
my $currentBranch = C4::Context->userenv->{branch}; |
| 86 |
|
| 87 |
my @waitingReserves; |
| 88 |
while ( my $reserve = $reserves_rs->next() ) { |
| 89 |
my %waitingReserveInfo; |
| 90 |
|
| 91 |
my $lastpickupdate = Koha::Reserves::GetLastpickupdate( $reserve ); |
| 92 |
$lastpickupdate = C4::Dates->new($lastpickupdate->ymd(), 'iso')->output(); |
| 93 |
|
| 94 |
my $pickupBranchcode = $reserve->branchcode(); |
| 95 |
my $pickupBranch; |
| 96 |
if (ref $pickupBranchcode eq 'Koha::Schema::Result::Branch') { |
| 97 |
$pickupBranch = $pickupBranchcode; |
| 98 |
$pickupBranchcode = $pickupBranchcode->branchcode(); |
| 99 |
} |
| 100 |
|
| 101 |
my $biblio = $reserve->biblio(); |
| 102 |
if ($biblio) { #For some reason it is possible for a waiting hold to not have a biblio? |
| 103 |
$waitingReserveInfo{title} = $biblio->title(); |
| 104 |
$waitingReserveInfo{biblionumber} = $biblio->biblionumber(); |
| 105 |
$waitingReserveInfo{author} = $biblio->author(); |
| 106 |
} |
| 107 |
else { |
| 108 |
$waitingReserveInfo{title} = "<<ERROR, no biblio found>>"; |
| 109 |
} |
| 110 |
|
| 111 |
$waitingReserveInfo{lastpickupdate} = $lastpickupdate; |
| 112 |
|
| 113 |
my $item = $reserve->item(); |
| 114 |
if ($item) { |
| 115 |
$waitingReserveInfo{itemcallnumber} = $reserve->item()->itemcallnumber(); |
| 116 |
} |
| 117 |
else { |
| 118 |
$waitingReserveInfo{itemcallnumber} = "<<ERROR, no item found>>"; |
| 119 |
} |
| 120 |
|
| 121 |
#$waitingReserveInfo{itemcallnumber} = $reserve->item()->itemcallnumber(); |
| 122 |
$waitingReserveInfo{waitinghere} = 1 if $pickupBranchcode eq $currentBranch; |
| 123 |
$waitingReserveInfo{waitingat} = $pickupBranch->branchname(); |
| 124 |
|
| 125 |
push @waitingReserves, \%waitingReserveInfo; |
| 126 |
} |
| 127 |
return \@waitingReserves; |
| 128 |
} |
| 64 |
|
129 |
|
| 65 |
return 1; |
130 |
return 1; |