#!/usr/bin/perl use strict; use warnings; use CGI; use C4::Auth; use C4::Serials; use C4::Acquisition; use C4::Output; use C4::Context; # use Date::Manip; use Text::CSV_XS; # &Date_Init("DateFormat=non-US"); # set non-USA date, eg:19/08/2005 my $csv = Text::CSV_XS->new( { 'quote_char' => '"', 'escape_char' => '"', 'sep_char' => ',', 'binary' => 1 } ); my $query = new CGI; my $supplierid = $query->param('supplierid'); my @serialid = $query->param('serialid'); my $op = $query->param('op') || q{}; my $serialidcount = @serialid; my %supplierlist = GetSuppliersWithLateIssues; my @select_supplier; my @loop1; my ($count, @lateissues); if($op ne 'claims'){ ($count, @lateissues) = GetLateIssues($supplierid); for my $issue (@lateissues){ push @loop1, [ $issue->{'name'}, $issue->{'title'}, $issue->{'serialseq'}, $issue->{'planneddate'},]; } } my $totalcount2 = 0; my @loop2; my ($count2, @missingissues); for (my $k=0;$k<@serialid;$k++){ ($count2, @missingissues) = GetLateOrMissingIssues($supplierid, $serialid[$k]); for (my $j=0;$j<@missingissues;$j++){ my @rows2 = ($missingissues[$j]->{'name'}, # lets build up a row $missingissues[$j]->{'title'}, $missingissues[$j]->{'serialseq'}, $missingissues[$j]->{'planneddate'}, ); push (@loop2, \@rows2); } $totalcount2 = $totalcount2 + $count2; # update claim date to let one know they have looked at this missing item updateClaim($serialid[$k]); } my $heading =''; my $filename =''; if($supplierid){ if($missingissues[0]->{'name'}){ # if exists display supplier name in heading for neatness # not necessarily needed as the name will appear in supplier column also $heading = "FOR $missingissues[0]->{'name'}"; $filename = "_$missingissues[0]->{'name'}"; } } print $query->header( -type => 'application/vnd.ms-excel', -attachment => "claims".$filename.".csv", ); if($op ne 'claims'){ print "LATE ISSUES ".$heading."\n\n"; print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n"; for my $row ( @loop1 ) { $csv->combine(@$row); my $string = $csv->string; print $string, "\n"; } print ",,,,,,,\n\n"; } if($serialidcount == 1){ print "MISSING ISSUE ".$heading."\n\n"; } else { print "MISSING ISSUES ".$heading."\n\n"; } print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n"; for my $row ( @loop2 ) { $csv->combine(@$row); my $string = $csv->string; print $string, "\n"; } print ",,,,,,,\n"; print ",,,,,,,\n"; if($op ne 'claims'){ print ",,Total Number Late, $count\n"; } if($serialidcount == 1){ } else { print ",,Total Number Missing, $totalcount2\n"; }