rel_3_0 moved to HEAD
[koha.git] / serials / lateissues-excel.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use CGI;
5 use C4::Auth;
6 use C4::Serials;
7 use C4::Acquisition;
8 use C4::Output;
9 use C4::Interface::CGI::Output;
10 use C4::Context;
11
12 # use Date::Manip;
13 use Text::CSV_XS;
14
15
16 # &Date_Init("DateFormat=non-US"); # set non-USA date, eg:19/08/2005
17
18
19 my $csv = Text::CSV_XS->new(
20         {
21             'quote_char'  => '"',
22             'escape_char' => '"',
23             'sep_char'    => ',',
24             'binary'      => 1
25         }
26     );
27
28
29 my $query = new CGI;
30 my $supplierid = $query->param('supplierid');
31 my @serialid = $query->param('serialid');
32 my $op = $query->param('op');
33 my $serialidcount = @serialid;
34
35 my %supplierlist = GetSuppliersWithLateIssues;
36 my @select_supplier;
37
38 my @loop1;
39 my ($count, @lateissues);
40 if($op ne 'claims'){
41     ($count, @lateissues) = GetLateIssues($supplierid);
42     for (my $i=0;$i<@lateissues;$i++){
43         my @rows1 = ($lateissues[$i]->{'name'},          # lets build up a row
44                      $lateissues[$i]->{'title'}, 
45                      $lateissues[$i]->{'serialseq'},
46                      $lateissues[$i]->{'planneddate'},
47                      );
48         push (@loop1, \@rows1);
49     }
50 }
51 my $totalcount2 = 0;
52 my @loop2;
53 my ($count2, @missingissues);
54 for (my $k=0;$k<@serialid;$k++){
55     ($count2, @missingissues) = GetMissingIssues($supplierid, $serialid[$k]);
56
57     for (my $j=0;$j<@missingissues;$j++){
58         my @rows2 = ($missingissues[$j]->{'name'},          # lets build up a row
59                      $missingissues[$j]->{'title'}, 
60                      $missingissues[$j]->{'serialseq'},
61                      $missingissues[$j]->{'planneddate'},
62                      );
63         push (@loop2, \@rows2);
64     }
65     $totalcount2 = $totalcount2 + $count2;
66     # update claim date to let one know they have looked at this missing item
67     updateClaim($serialid[$k]);
68 }
69
70 my $heading ='';
71 my $filename ='';
72 if($supplierid){
73     if($missingissues[0]->{'name'}){ # if exists display supplier name in heading for neatness
74         # not necessarily needed as the name will appear in supplier column also
75         $heading = "FOR $missingissues[0]->{'name'}";
76         $filename = "_$missingissues[0]->{'name'}"; 
77     }
78 }
79
80 print $query->header(
81         -type       => 'application/vnd.ms-excel',
82         -attachment => "claims".$filename.".csv",
83     );
84
85 if($op ne 'claims'){
86     print "LATE ISSUES ".$heading."\n\n";
87     print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n";
88
89     for my $row ( @loop1 ) {
90     
91         $csv->combine(@$row);
92         my $string = $csv->string;
93         print $string, "\n";
94     }
95
96     print ",,,,,,,\n\n";
97 }
98 if($serialidcount == 1){
99     print "MISSING ISSUE ".$heading."\n\n";
100 } else {
101     print "MISSING ISSUES ".$heading."\n\n";
102 }
103 print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n";
104
105 for my $row ( @loop2 ) {
106     
107         $csv->combine(@$row);
108         my $string = $csv->string;
109         print $string, "\n";
110     }
111
112 print ",,,,,,,\n";
113 print ",,,,,,,\n";
114 if($op ne 'claims'){
115     print ",,Total Number Late, $count\n";
116 }
117 if($serialidcount == 1){
118
119 } else {
120     print ",,Total Number Missing, $totalcount2\n";
121 }