use C4::Dates;
use C4::Acquisition;
use C4::Output;
+use C4::Reports;
use C4::Circulation;
+use C4::Dates qw/format_date format_date_in_iso/;
use Date::Calc qw(
Today
Add_Delta_YM
my $line = $input->param("Line");
my $column = $input->param("Column");
my @filters = $input->param("Filter");
+$filters[3]=format_date_in_iso($filters[3]);
+$filters[4]=format_date_in_iso($filters[4]);
my $digits = $input->param("digits");
my $period = $input->param("period");
my $borstat = $input->param("status");
my $output = $input->param("output");
my $basename = $input->param("basename");
my $mime = $input->param("MIME");
-my $del = $input->param("sep");
+our $sep = $input->param("sep");
+$sep = "\t" if ($sep eq 'tabulation');
my $selected_branch; # = $input->param("?");
our $branches = GetBranches;
-attachment => "$basename.csv");
my $cols = @$results[0]->{loopcol};
my $lines = @$results[0]->{looprow};
- my $sep;
- $sep =C4::Context->preference("delimiter");
print @$results[0]->{line} ."/". @$results[0]->{column} .$sep;
foreach my $col ( @$cols ) {
print $col->{coltitle}.$sep;
$req = $dbh->prepare("SELECT authorised_value,lib FROM authorised_values WHERE category='Bsort1' ORDER BY lib");
$req->execute;
$template->param( SORT1_LOOP => $req->fetchall_arrayref({}));
- $req = $dbh->prepare("SELECT DISTINCTROW sort2 AS value FROM borrowers WHERE sort2 IS NOT NULL AND sort <> '' ORDER BY sort2 LIMIT 200");
+ $req = $dbh->prepare("SELECT DISTINCTROW sort2 AS value FROM borrowers WHERE sort2 IS NOT NULL AND sort2 <> '' ORDER BY sort2 LIMIT 200");
# More than 200 items in a dropdown is not going to be useful anyway, and w/ 50,000 patrons we can destory DB performance.
$req->execute;
$template->param( SORT2_LOOP => $req->fetchall_arrayref({}));
-values => \@mime,
-size => 1,
-multiple => 0 );
- my @dels = ( C4::Context->preference("delimiter") );
- my $CGIsepChoice=CGI::scrolling_list(
- -name => 'sep',
- -id => 'sep',
- -values => \@dels,
- -size => 1,
- -multiple => 0 );
+ my $CGIsepChoice=GetDelimiterChoices;
$template->param(
CGIextChoice => $CGIextChoice,
CGIsepChoice => $CGIsepChoice,
$linefilter = @$filters[0] if ($line =~ /categorycode/ ) ;
$linefilter = @$filters[1] if ($line =~ /zipcode/ ) ;
$linefilter = @$filters[2] if ($line =~ /branchcode/ ) ;
- $linefilter = @$filters[5] if ($line =~ /sort1/ ) ;
- $linefilter = @$filters[6] if ($line =~ /sort2/ ) ;
+ $linefilter = @$filters[5] if ($line =~ /sex/);
+ $linefilter = @$filters[6] if ($line =~ /sort1/ ) ;
+ $linefilter = @$filters[7] if ($line =~ /sort2/ ) ;
#
my $colfilter = "";
$colfilter = @$filters[0] if ($column =~ /categorycode/);
$colfilter = @$filters[1] if ($column =~ /zipcode/);
$colfilter = @$filters[2] if ($column =~ /branchcode/);
- $colfilter = @$filters[5] if ($column =~ /sort1/);
- $colfilter = @$filters[6] if ($column =~ /sort2/);
+ $colfilter = @$filters[5] if ($column =~ /sex/);
+ $colfilter = @$filters[6] if ($column =~ /sort1/);
+ $colfilter = @$filters[7] if ($column =~ /sort2/);
my @loopfilter;
- for (my $i=0;$i<=6;$i++) {
+ for (my $i=0;$i<=7;$i++) {
my %cell;
if ( @$filters[$i] ) {
- $cell{filter} .= @$filters[$i];
+ if($i == 3 or $i == 4){
+ $cell{filter} .= format_date(@$filters[$i]);
+ }else{
+ $cell{filter} .= @$filters[$i];
+ }
+
$cell{crit} .="Cat Code " if ($i==0);
$cell{crit} .="Zip Code" if ($i==1);
$cell{crit} .="Branchcode" if ($i==2);
$cell{crit} .="Date of Birth" if ($i==3);
$cell{crit} .="Date of Birth" if ($i==4);
- $cell{crit} .="Sort1" if ($i==5);
- $cell{crit} .="Sort2" if ($i==6);
+ $cell{crit} .="Sex" if ($i==5);
+ $cell{crit} .="Sort1" if ($i==6);
+ $cell{crit} .="Sort2" if ($i==7);
push @loopfilter, \%cell;
}
}
$strcalc .= " AND dateofbirth > '" . @$filters[3] ."'" if ( @$filters[3] );
@$filters[4]=~ s/\*/%/g if (@$filters[4]);
$strcalc .= " AND dateofbirth < '" . @$filters[4] ."'" if ( @$filters[4] );
- @$filters[5]=~ s/\*/%/g if (@$filters[5]);
- $strcalc .= " AND sort1 like '" . @$filters[5] ."'" if ( @$filters[5] );
- @$filters[6]=~ s/\*/%/g if (@$filters[6]);
- $strcalc .= " AND sort2 like '" . @$filters[6] ."'" if ( @$filters[6] );
+ @$filters[5]=~ s/\*/%/g if (@$filters[5]);
+ $strcalc .= " AND sex like '" . @$filters[5] ."'" if ( @$filters[5] );
+ @$filters[6]=~ s/\*/%/g if (@$filters[6]);
+ $strcalc .= " AND sort1 like '" . @$filters[6] ."'" if ( @$filters[6] );
+ @$filters[7]=~ s/\*/%/g if (@$filters[7]);
+ $strcalc .= " AND sort2 like '" . @$filters[7] ."'" if ( @$filters[7] );
$strcalc .= " AND borrowernumber in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "')" if ($activity eq 'active');
$strcalc .= " AND borrowernumber not in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "')" if ($activity eq 'nonactive');
$strcalc .= " AND $status='1' " if ($status);
my $emptycol;
while (my ($row, $col, $value) = $dbcalc->fetchrow) {
# warn "filling table $row / $col / $value ";
- $emptycol = 1 if ($col eq undef);
- $col = "zzEMPTY" if ($col eq undef);
- $row = "zzEMPTY" if ($row eq undef);
+ $emptycol = 1 if (!defined($col));
+ $col = "zzEMPTY" if (!defined($col));
+ $row = "zzEMPTY" if (!defined($row));
$table{$row}->{$col}+=$value;
$table{$row}->{totalrow}+=$value;