fix to remove leading/trailing whitespace from entered barcode.
[koha_fer] / circ / branchtransfers.pl
index 70184dc..8ae283d 100755 (executable)
@@ -27,15 +27,28 @@ use C4::Circulation;
 use C4::Output;
 use C4::Reserves;
 use C4::Biblio;
-use C4::Auth;
+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 = get_session($sessionID);
+       if ($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 );
@@ -46,7 +59,7 @@ my $user;
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { circulate => 1 },
+        flagsrequired   => { circulate => "circulate_remaining_permissions" },
     }
 );
 
@@ -78,7 +91,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;
@@ -105,6 +118,8 @@ my @trsfitemloop;
 my %transfereditems;
 my $transfered;
 my $barcode = $query->param('barcode');
+# strip whitespace
+$barcode =~ s/\s*//g;
 # warn "barcode : $barcode";
 if ($barcode) {
 
@@ -178,6 +193,14 @@ if ($found) {
 
 #####################
 
+# Used for branch transfer limits error messages.
+my $codeTypeDescription = 'Collection Code';
+my $codeType = C4::Context->preference("BranchTransferLimitsType");
+if ( $codeType eq 'itemtype' ) {   
+  $codeTypeDescription = 'Item Type';
+}
+
+
 my @errmsgloop;
 foreach my $code ( keys %$messages ) {
     my %err;
@@ -187,6 +210,16 @@ foreach my $code ( keys %$messages ) {
         $err{errbadcode} = 1;
     }
 
+    if ( $code eq "NotAllowed" ) {
+    warn $messages->{'NotAllowed'};
+    warn  $branches->{ $messages->{'NotAllowed'} }->{'branchname'};
+        $err{errnotallowed} =  1;
+        my ( $tbr, $typecode ) = split( /::/,  $messages->{'NotAllowed'} );
+        $err{tbr} = $branches->{ $tbr }->{'branchname'};
+        $err{code} = $typecode;
+        $err{codeType} = $codeTypeDescription; 
+    }
+    
     if ( $code eq 'IsPermanent' ) {
         $err{errispermanent} = 1;
         $err{msg} = $branches->{ $messages->{'IsPermanent'} }->{'branchname'};
@@ -195,6 +228,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 );
 }
@@ -216,6 +255,7 @@ $template->param(
     trsfitemloop            => \@trsfitemloop,
     branchoptionloop        => \@branchoptionloop,
     errmsgloop              => \@errmsgloop,
+    CircAutocompl           => C4::Context->preference("CircAutocompl")
 );
 output_html_with_http_headers $query, $cookie, $template->output;