Authorities framework Bug fixing
[koha.git] / circ / branchtransfers.pl
index 493363a..85ad30e 100755 (executable)
@@ -27,16 +27,29 @@ use C4::Circulation;
 use C4::Output;
 use C4::Reserves;
 use C4::Biblio;
-use C4::Auth;
-use C4::Interface::CGI::Output;
+use C4::Items;
+use C4::Auth qw/:DEFAULT get_session/;
 use C4::Branch; # GetBranches
 use C4::Koha;
+use C4::Members;
 
 ###############################################
 #  Getting state
 
 my $query = new CGI;
 
+if (!C4::Context->userenv){
+       my $sessionID = $query->cookie("CGISESSID");
+        my $session;
+       $session = get_session($sessionID) if $sessionID;
+       if (!$session or $session->param('branch') eq 'NO_LIBRARY_SET'){
+               # no branch set we can't transfer
+               print $query->redirect("/cgi-bin/koha/circ/selectbranchprinter.pl");
+               exit;
+       }
+}   
+
+
 #######################################################################################
 # Make the page .....
 my ( $template, $cookie );
@@ -47,7 +60,7 @@ my $user;
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { circulate => 1 },
+        flagsrequired   => { circulate => "circulate_remaining_permissions" },
     }
 );
 
@@ -79,7 +92,7 @@ if ( $request eq "KillWaiting" ) {
 my $ignoreRs = 0;
 if ( $request eq "SetWaiting" ) {
     my $item = $query->param('itemnumber');
-    $tobranchcd  = ReserveWaiting( $item, $borrowernumber );
+    ModReserveAffect( $item, $borrowernumber );
     $ignoreRs    = 1;
     $setwaiting  = 1;
     $reqmessage  = 1;
@@ -93,7 +106,7 @@ if ( $request eq 'KillReserved' ) {
 
 # set up the branchselect options....
 my @branchoptionloop;
-foreach my $br ( keys %$branches ) {
+foreach my $br (sort {$branches->{$a}->{branchname} cmp $branches->{$b}->{branchname}} keys %$branches ) {
     my %branch;
     $branch{selected} = ( $br eq $tobranchcd );
     $branch{code}     = $br;
@@ -106,6 +119,8 @@ my @trsfitemloop;
 my %transfereditems;
 my $transfered;
 my $barcode = $query->param('barcode');
+# strip whitespace
+$barcode =~ s/\s*//g;
 # warn "barcode : $barcode";
 if ($barcode) {
 
@@ -196,6 +211,12 @@ foreach my $code ( keys %$messages ) {
 
     if ( $code eq 'WasReturned' ) {
         $err{errwasreturned} = 1;
+               $err{borrowernumber}=$messages->{'WasReturned'};
+               my $borrower = GetMember($messages->{'WasReturned'},'borrowernumber');
+               $err{title}=$borrower->{'title'};
+               $err{firstname}=$borrower->{'firstname'};
+               $err{surname}=$borrower->{'surname'};
+               $err{cardnumber} =$borrower->{'cardnumber'};
     }
     push( @errmsgloop, \%err );
 }
@@ -217,6 +238,7 @@ $template->param(
     trsfitemloop            => \@trsfitemloop,
     branchoptionloop        => \@branchoptionloop,
     errmsgloop              => \@errmsgloop,
+    CircAutocompl           => C4::Context->preference("CircAutocompl")
 );
 output_html_with_http_headers $query, $cookie, $template->output;