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;
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;
# 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} );
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'
);
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);
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 );