Bug 31420: Managing funds: Labels of statistic fields overlap with pull downs
[koha-ffzg.git] / ill / ill-requests.pl
index df80dd5..fc7da41 100755 (executable)
@@ -21,8 +21,9 @@ use Modern::Perl;
 
 use CGI;
 
-use C4::Auth;
-use C4::Output;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
+use Koha::Notice::Templates;
 use Koha::AuthorisedValues;
 use Koha::Illcomment;
 use Koha::Illrequests;
@@ -30,9 +31,9 @@ use Koha::Illrequest::Availability;
 use Koha::Libraries;
 use Koha::Token;
 
-use Try::Tiny;
-use URI::Escape;
-use JSON;
+use Try::Tiny qw( catch try );
+use URI::Escape qw( uri_escape_utf8 );
+use JSON qw( encode_json );
 
 our $cgi = CGI->new;
 my $illRequests = Koha::Illrequests->new;
@@ -72,14 +73,36 @@ if ( $backends_available ) {
         # View the details of an ILL
         my $request = Koha::Illrequests->find($params->{illrequest_id});
 
+        # Get the details for notices that can be sent from here
+        my $notices = Koha::Notice::Templates->search(
+            {
+                module => 'ill',
+                code => { -in => [ 'ILL_PICKUP_READY' ,'ILL_REQUEST_UNAVAIL' ] },
+            },
+            {
+                columns => [ qw/code name/ ],
+                distinct => 1
+            }
+        )->unblessed;
+
         $template->param(
+            notices    => $notices,
             request    => $request,
             csrf_token => Koha::Token->new->generate_csrf({
                 session_id => scalar $cgi->cookie('CGISESSID'),
             }),
-            ( $params->{error} ? ( error => $params->{error} ) : () ),
+            ( $params->{tran_error} ?
+                ( tran_error => $params->{tran_error} ) : () ),
+            ( $params->{tran_success} ?
+                ( tran_success => $params->{tran_success} ) : () ),
         );
 
+        my $backend_result = $request->backend_illview($params);
+        $template->param(
+            whole      => $backend_result,
+        ) if $backend_result;
+
+
     } elsif ( $op eq 'create' ) {
         # We're in the process of creating a request
         my $request = Koha::Illrequest->new->load_backend( $params->{backend} );
@@ -135,14 +158,12 @@ if ( $backends_available ) {
         my $request = Koha::Illrequests->find($params->{illrequest_id});
         my $backend_result;
         if ( $params->{backend} ) {
-            my $new_request = Koha::Illrequest->new->load_backend( $params->{backend} );
-            $backend_result = $new_request->backend_migrate($params);
+            $backend_result = $request->backend_migrate($params);
             if ($backend_result) {
                 $template->param(
                     whole   => $backend_result,
-                    request => $new_request
+                    request => $request
                 );
-                $request = $new_request;
             } else {
                 # Backend failure, redirect back to illview
                 print $cgi->redirect( '/cgi-bin/koha/ill/ill-requests.pl'
@@ -380,6 +401,23 @@ if ( $backends_available ) {
         );
         exit;
 
+    } elsif ( $op eq "send_notice" ) {
+        my $illrequest_id = $params->{illrequest_id};
+        my $request = Koha::Illrequests->find($illrequest_id);
+        my $ret = $request->send_patron_notice($params->{notice_code});
+        my $append = '';
+        if ($ret->{result} && scalar @{$ret->{result}->{success}} > 0) {
+            $append .= '&tran_success=' . join(',', @{$ret->{result}->{success}});
+        }
+        if ($ret->{result} && scalar @{$ret->{result}->{fail}} > 0) {
+            $append .= '&tran_fail=' . join(',', @{$ret->{result}->{fail}}.join(','));
+        }
+        # Redirect to view the whole request
+        print $cgi->redirect(
+            "/cgi-bin/koha/ill/ill-requests.pl?method=illview&illrequest_id=".
+            scalar $params->{illrequest_id} . $append
+        );
+        exit;
     } else {
         my $request = Koha::Illrequests->find($params->{illrequest_id});
         my $backend_result = $request->custom_capability($op, $params);
@@ -397,7 +435,7 @@ $template->param(
     backends   => $backends,
     types      => [ "Book", "Article", "Journal" ],
     query_type => $op,
-    branches   => scalar Koha::Libraries->search,
+    branches   => Koha::Libraries->search,
 );
 
 output_html_with_http_headers( $cgi, $cookie, $template->output );