Remove bottleneck making claims page unuseable
[koha.git] / serials / claims.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use CGI;
6 use C4::Auth;
7 use C4::Serials;
8 use C4::Acquisition;
9 use C4::Output;
10 use C4::Bookseller;
11 use C4::Context;
12 use C4::Letters;
13 my $input = CGI->new;
14
15 my $serialid = $input->param('serialid');
16 my $op = $input->param('op');
17 my $claimletter = $input->param('claimletter');
18 my $supplierid = $input->param('supplierid');
19 my $suppliername = $input->param('suppliername');
20 my $order = $input->param('order');
21 my $supplierlist = GetSuppliersWithLateIssues();
22 if ($supplierid) {
23     foreach my $s ( @{$supplierlist} ) {
24         if ($s->{id} == $supplierid ) {
25             $s->{selected} = 1;
26             last;
27         }
28     }
29 }
30
31 # open template first (security & userenv set here)
32 my ($template, $loggedinuser, $cookie)
33 = get_template_and_user({template_name => 'serials/claims.tmpl',
34             query => $input,
35             type => 'intranet',
36             authnotrequired => 0,
37             flagsrequired => {serials => 1},
38             debug => 1,
39             });
40
41
42 my $letters = GetLetters('claimissues');
43 my @letters;
44 foreach (keys %{$letters}){
45     push @letters ,{code=>$_,name=> $letters->{$_}};
46 }
47
48 my $letter=((scalar(@letters)>1) || ($letters[0]->{name}||$letters[0]->{code}));
49 my  @missingissues;
50 my @supplierinfo;
51 if ($supplierid) {
52     @missingissues = GetLateOrMissingIssues($supplierid,$serialid,$order);
53     @supplierinfo=GetBookSeller($supplierid);
54 }
55
56 my $preview=0;
57 if($op && $op eq 'preview'){
58     $preview = 1;
59 } else {
60     my @serialnums=$input->param('serialid');
61     if (@serialnums) { # i.e. they have been flagged to generate claims
62         SendAlerts('claimissues',\@serialnums,$input->param("letter_code"));
63         my $cntupdate=UpdateClaimdateIssues(\@serialnums);
64         ### $cntupdate SHOULD be equal to scalar(@$serialnums)
65     }
66 }
67 $template->param('letters'=>\@letters,'letter'=>$letter);
68 $template->param(
69         order =>$order,
70         supplier_loop => $supplierlist,
71         phone => $supplierinfo[0]->{phone},
72         booksellerfax => $supplierinfo[0]->{booksellerfax},
73         bookselleremail => $supplierinfo[0]->{bookselleremail},
74         preview => $preview,
75         missingissues => \@missingissues,
76         supplierid => $supplierid,
77         claimletter => $claimletter,
78         supplierloop => \@supplierinfo,
79         dateformat    => C4::Context->preference("dateformat"),
80         DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
81         );
82 output_html_with_http_headers $input, $cookie, $template->output;