use DateTime;
use Koha::DateUtils;
use Text::CSV::Encoded;
-#use Data::Dumper;
-#use Smart::Comments;
my $input = new CGI;
my $dbh = C4::Context->dbh;
if ($transaction_type eq 'ALL') { #All Transactons
$whereTType = '';
} elsif ($transaction_type eq 'ACT') { #Active
- $whereTType = " accounttype NOT IN ('F', 'FU', 'FOR', 'M', 'L') AND ";
+ $whereTType = " accounttype IN ('Pay','C') AND ";
} else { #Single transac type
if ($transaction_type eq 'FORW') {
$whereTType = " accounttype = 'FOR' OR accounttype = 'W' AND ";
total => $grantotal,
);
} else{
- binmode STDOUT, ':encoding(UTF-8)';
- my $q_errors;
my $format = 'csv';
my $reportname = $input->param('basename');
my $reportfilename = $reportname ? "$reportname.$format" : "reportresults.$format" ;
#my $reportfilename = "$reportname.html" ;
my $delimiter = C4::Context->preference('delimiter') || ',';
- my ( $type, $content );
- if ( $format eq 'csv' ) {
- my $type = 'application/csv';
- my $csv = Text::CSV::Encoded->new({ encoding_out => 'UTF-8', sep_char => $delimiter});
- $csv or die "Text::CSV::Encoded->new({binary => 1}) FAILED: " . Text::CSV::Encoded->error_diag();
- my @headers = ();
- push @headers, "mfirstname",
- "cardnumber",
- "bfirstname",
- "branchname",
- "date",
- "accounttype",
- "amount",
- "title",
- "barcode",
- "itype";
- if ($csv->combine(@headers)) {
- $content .= Encode::decode('UTF-8', $csv->string()) . "\n";
- } else {
- push @$q_errors, { combine => 'HEADER ROW: ' . $csv->error_diag() } ;
- }
+ my @rows;
foreach my $row (@loopresult) {
- my @rowValues = ();
+ my @rowValues;
push @rowValues, $row->{mfirstname},
$row->{cardnumber},
- $row->{bfirstname},
- $row->{branchname},
- $row->{date},
- $row->{accounttype},
- $row->{amount},
- $row->{title},
- $row->{barcode};
- $row->{itype};
- if ($csv->combine(@rowValues)) {
- $content .= $csv->string() . "\n";
- } else {
- push @$q_errors, { combine => $csv->error_diag() } ;
+ $row->{bfirstname},
+ $row->{branchname},
+ $row->{date},
+ $row->{accounttype},
+ $row->{amount},
+ $row->{title},
+ $row->{barcode},
+ $row->{itype};
+ push (@rows, \@rowValues) ;
}
- }
- }
+ my @total;
+ for (1..6){push(@total,"")};
+ push(@total, $grantotal);
print $input->header(
- -type => $type,
- -attachment=> $reportfilename
- );
- print $content;
-
- print $delimiter x 6;
- print $grantotal."\n";
- foreach my $err (@$q_errors) {
- print "# ERROR: " . (map {$_ . ": " . $err->{$_}} keys %$err) . "\n";
- } # here we print all the non-fatal errors at the end. Not super smooth, but better than nothing.
+ -type => 'text/csv',
+ -encoding => 'utf-8',
+ -attachment => $reportfilename,
+ -name => $reportfilename
+ );
+ my $csvTemplate = C4::Templates::gettemplate('reports/csv/cash_register_stats.tt', 'intranet', $input);
+ $csvTemplate->param(sep => $delimiter, rows => \@rows, total => \@total );
+ print $csvTemplate->output;
exit(1);
}
beginDate => $fromDate,
endDate => $toDate,
transaction_type => $transaction_type,
- branchloop => C4::Branch::GetBranchesLoop($manager_branchcode),
+ branchloop => Koha::Libraries->search({}, { order_by => ['branchname'] })->unblessed,
manualinv_types => $manualinv_types,
CGIsepChoice => GetDelimiterChoices,
);