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