MT 1587 (Follow-up) : CSV export for cart and shelves (export_format table creation)
[koha.git] / serials / lateissues-excel.pl
blob6110bcdda2eeedda9f1376ac03c853d576dcb9b5
1 #!/usr/bin/perl
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::Context;
12 # use Date::Manip;
13 use Text::CSV_XS;
16 # &Date_Init("DateFormat=non-US"); # set non-USA date, eg:19/08/2005
19 my $csv = Text::CSV_XS->new(
21 'quote_char' => '"',
22 'escape_char' => '"',
23 'sep_char' => ',',
24 'binary' => 1
29 my $query = new CGI;
30 my $supplierid = $query->param('supplierid');
31 my @serialid = $query->param('serialid');
32 my $op = $query->param('op') || q{};
33 my $serialidcount = @serialid;
35 my %supplierlist = GetSuppliersWithLateIssues;
36 my @select_supplier;
38 my @loop1;
39 my ($count, @lateissues);
40 if($op ne 'claims'){
41 ($count, @lateissues) = GetLateIssues($supplierid);
42 for my $issue (@lateissues){
43 push @loop1,
44 [ $issue->{'name'}, $issue->{'title'}, $issue->{'serialseq'}, $issue->{'planneddate'},];
47 my $totalcount2 = 0;
48 my @loop2;
49 my ($count2, @missingissues);
50 for (my $k=0;$k<@serialid;$k++){
51 ($count2, @missingissues) = GetLateOrMissingIssues($supplierid, $serialid[$k]);
53 for (my $j=0;$j<@missingissues;$j++){
54 my @rows2 = ($missingissues[$j]->{'name'}, # lets build up a row
55 $missingissues[$j]->{'title'},
56 $missingissues[$j]->{'serialseq'},
57 $missingissues[$j]->{'planneddate'},
59 push (@loop2, \@rows2);
61 $totalcount2 = $totalcount2 + $count2;
62 # update claim date to let one know they have looked at this missing item
63 updateClaim($serialid[$k]);
66 my $heading ='';
67 my $filename ='';
68 if($supplierid){
69 if($missingissues[0]->{'name'}){ # if exists display supplier name in heading for neatness
70 # not necessarily needed as the name will appear in supplier column also
71 $heading = "FOR $missingissues[0]->{'name'}";
72 $filename = "_$missingissues[0]->{'name'}";
76 print $query->header(
77 -type => 'application/vnd.ms-excel',
78 -attachment => "claims".$filename.".csv",
81 if($op ne 'claims'){
82 print "LATE ISSUES ".$heading."\n\n";
83 print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n";
85 for my $row ( @loop1 ) {
87 $csv->combine(@$row);
88 my $string = $csv->string;
89 print $string, "\n";
92 print ",,,,,,,\n\n";
94 if($serialidcount == 1){
95 print "MISSING ISSUE ".$heading."\n\n";
96 } else {
97 print "MISSING ISSUES ".$heading."\n\n";
99 print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n";
101 for my $row ( @loop2 ) {
103 $csv->combine(@$row);
104 my $string = $csv->string;
105 print $string, "\n";
108 print ",,,,,,,\n";
109 print ",,,,,,,\n";
110 if($op ne 'claims'){
111 print ",,Total Number Late, $count\n";
113 if($serialidcount == 1){
115 } else {
116 print ",,Total Number Missing, $totalcount2\n";