+### ###############################################################################
+# BUILD HTML
+# 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;
+ foreach my $num_res (@borrowerreserv) {
+ my %getreserv;
+ my $getiteminfo = GetBiblioFromItemNumber( $num_res->{'itemnumber'} );
+ my $itemtypeinfo = getitemtypeinfo( $getiteminfo->{'itemtype'} );
+ my ( $transfertwhen, $transfertfrom, $transfertto ) =
+ GetTransfers( $num_res->{'itemnumber'} );
+
+ foreach (qw(waiting transfered nottransfered)) {
+ $getreserv{$_} = 0;
+ }
+ $getreserv{reservedate} = C4::Dates->new($num_res->{'reservedate'},'iso')->output('syspref');
+ foreach (qw(biblionumber title author itemcallnumber )) {
+ $getreserv{$_} = $getiteminfo->{$_};
+ }
+ $getreserv{barcodereserv} = $getiteminfo->{'barcode'};
+ $getreserv{itemtype} = $itemtypeinfo->{'description'};
+
+ # check if we have a waitin status for reservations
+ if ( $num_res->{'found'} eq 'W' ) {
+ $getreserv{color} = 'reserved';
+ $getreserv{waiting} = 1;
+ }
+
+ # check transfers with the itemnumber foud in th reservation loop
+ if ($transfertwhen) {
+ $getreserv{color} = 'transfered';
+ $getreserv{transfered} = 1;
+ $getreserv{datesent} = C4::Dates->new($transfertwhen, 'iso')->output('syspref') or die "Cannot get new($transfertwhen, 'iso') from C4::Dates";
+ $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'} );
+ $getreserv{color} = 'inwait';
+ $getreserv{title} = $getbibinfo->{'title'};
+ $getreserv{nottransfered} = 0;
+ $getreserv{itemtype} = $getbibtype->{'description'};
+ $getreserv{author} = $getbibinfo->{'author'};
+ $getreserv{biblionumber} = $num_res->{'biblionumber'};
+ }
+ $getreserv{waitingposition} = $num_res->{'priority'};
+
+ push( @reservloop, \%getreserv );
+ }
+
+ # return result to the template
+ $template->param( reservloop => \@reservloop,
+ countreserv => scalar @reservloop,
+ );
+}
+
+# current alert subscriptions
+my $alerts = getalert($borrowernumber);
+foreach (@$alerts) {
+ $_->{ $_->{type} } = 1;
+ $_->{relatedto} = findrelatedto( $_->{type}, $_->{externalid} );
+}
+
+my $candeleteuser;
+my $userenv = C4::Context->userenv;
+if($userenv->{flags} % 2 == 1){
+ $candeleteuser = 1;
+}elsif ( C4::Context->preference("IndependantBranches") ) {
+ $candeleteuser = ( $data->{'branchcode'} eq $userenv->{branch} );
+}else{
+ if( C4::Auth::getuserflags( $userenv->{flags},$userenv->{number})->{borrowers} ) {
+ $candeleteuser = 1;
+ }else{
+ $candeleteuser = 0;
+ }
+}
+
+# check to see if patron's image exists in the database
+# basically this gives us a template var to condition the display of
+# patronimage related interface on
+my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'});
+$template->param( picture => 1 ) if $picture;
+
+my $branch=C4::Context->userenv->{'branch'};
+
+$template->param(%$data);
+
+if (C4::Context->preference('ExtendedPatronAttributes')) {
+ $template->param(ExtendedPatronAttributes => 1);
+ $template->param(patron_attributes => C4::Members::Attributes::GetBorrowerAttributes($borrowernumber));
+ my @types = C4::Members::AttributeTypes::GetAttributeTypes();
+ if (scalar(@types) == 0) {
+ $template->param(no_patron_attribute_types => 1);
+ }
+}
+
+if (C4::Context->preference('EnhancedMessagingPreferences')) {
+ C4::Form::MessagingPreferences::set_form_values({ borrowernumber => $borrowernumber }, $template);
+ $template->param(messaging_form_inactive => 1);
+ $template->param(SMSSendDriver => C4::Context->preference("SMSSendDriver"));
+ $template->param(SMSnumber => defined $data->{'smsalertnumber'} ? $data->{'smsalertnumber'} : $data->{'mobile'});