+# show all reserves of this borrower, and the position of the reservation ....
+if ($borrowernumber) {
+
+ # new op dev
+ # now we show the status of the borrower's reservations
+ my @borrowerreserv = GetReservesFromBorrowernumber($borrowernumber );
+ my @reservloop;
+ my @WaitingReserveLoop;
+
+ foreach my $num_res (@borrowerreserv) {
+ my %getreserv;
+ my %getWaitingReserveInfo;
+ my $getiteminfo = GetBiblioFromItemNumber( $num_res->{'itemnumber'} );
+ my $itemtypeinfo = getitemtypeinfo( (C4::Context->preference('item-level_itype')) ? $getiteminfo->{'itype'} : $getiteminfo->{'itemtype'} );
+ my ( $transfertwhen, $transfertfrom, $transfertto ) =
+ GetTransfers( $num_res->{'itemnumber'} );
+
+ $getreserv{waiting} = 0;
+ $getreserv{transfered} = 0;
+ $getreserv{nottransfered} = 0;
+
+ $getreserv{reservedate} = format_date( $num_res->{'reservedate'} );
+ $getreserv{title} = $getiteminfo->{'title'};
+ $getreserv{itemtype} = $itemtypeinfo->{'description'};
+ $getreserv{author} = $getiteminfo->{'author'};
+ $getreserv{barcodereserv} = $getiteminfo->{'barcode'};
+ $getreserv{itemcallnumber} = $getiteminfo->{'itemcallnumber'};
+ $getreserv{biblionumber} = $getiteminfo->{'biblionumber'};
+
+ # check if we have a waiting status for reservations
+ if ( $num_res->{'found'} eq 'W' ) {
+ $getreserv{color} = 'reserved';
+ $getreserv{waiting} = 1;
+# genarate information displaying only waiting reserves
+ $getWaitingReserveInfo{title} = $getiteminfo->{'title'};
+ $getWaitingReserveInfo{biblionumber} = $getiteminfo->{'biblionumber'};
+ $getWaitingReserveInfo{itemtype} = $itemtypeinfo->{'description'};
+ $getWaitingReserveInfo{author} = $getiteminfo->{'author'};
+ $getWaitingReserveInfo{reservedate} = format_date( $num_res->{'reservedate'} );
+ if ($getiteminfo->{'holdingbranch'} ne $num_res->{'branchcode'} ) {
+ $getWaitingReserveInfo{waitingat} = GetBranchName( $num_res->{'branchcode'} );
+ }
+
+ }
+ # check transfers with the itemnumber foud in th reservation loop
+ if ($transfertwhen) {
+ $getreserv{color} = 'transfered';
+ $getreserv{transfered} = 1;
+ $getreserv{datesent} = format_date($transfertwhen);
+ $getreserv{frombranch} = GetBranchName($transfertfrom);
+ }
+
+ if ( ( $getiteminfo->{'holdingbranch'} ne $num_res->{'branchcode'} )
+ and not $transfertwhen )
+ {
+ $getreserv{nottransfered} = 1;
+ $getreserv{nottransferedby} =
+ GetBranchName( $getiteminfo->{'holdingbranch'} );
+ }
+
+# if we don't have a reserv on item, we put the biblio infos and the waiting position
+ if ( $getiteminfo->{'title'} eq '' ) {
+ my $getbibinfo = GetBiblioData( $num_res->{'biblionumber'} );
+ my $getbibtype = getitemtypeinfo( $getbibinfo->{'itemtype'} ); # fixme - we should have item-level reserves here ?
+ $getreserv{color} = 'inwait';
+ $getreserv{title} = $getbibinfo->{'title'};
+ $getreserv{waitingposition} = $num_res->{'priority'};
+ $getreserv{nottransfered} = 0;
+ $getreserv{itemtype} = $getbibtype->{'description'};
+ $getreserv{author} = $getbibinfo->{'author'};
+ $getreserv{itemcallnumber} = '----------';
+ $getreserv{biblionumber} = $num_res->{'biblionumber'};
+ }
+ push( @reservloop, \%getreserv );
+
+# if we have a reserve waiting, initiate waitingreserveloop
+ if ($getreserv{waiting} eq 1) {
+ push (@WaitingReserveLoop, \%getWaitingReserveInfo)
+ }
+
+ }
+
+ # return result to the template
+ $template->param(
+ countreserv => scalar @reservloop,
+ reservloop => \@reservloop ,
+ WaitingReserveLoop => \@WaitingReserveLoop,
+ );
+}