-
- $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/ ) ;
-#
- 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/);
-
- my @loopfilter;
- for (my $i=0;$i<=6;$i++) {
- my %cell;
- if ( @$filters[$i] ) {
- $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);
- push @loopfilter, \%cell;
- }
- }
- if ($status) {
- push @loopfilter,{crit=>"Status",filter=>$status}
- }
-
- if ($activity) {
- push @loopfilter,{crit=>"Activity",filter=>$activity};
- }
+ # Filters
+ my $linefilter;
+ given ($line) {
+ when (/categorycode/) { $linefilter = @$filters[0] }
+ when (/zipcode/) { $linefilter = @$filters[1] }
+ when (/branchcode/) { $linefilter = @$filters[2] }
+ when (/sex/) { $linefilter = @$filters[5] }
+ when (/sort1/) { $linefilter = @$filters[6] }
+ when (/sort2/) { $linefilter = @$filters[7] }
+ when (/^patron_attr\.(.*)$/) { $linefilter = $attr_filters->{$1} }
+ default { $linefilter = '' }
+ }
+
+ my $colfilter;
+ given ($column) {
+ when (/categorycode/) { $colfilter = @$filters[0] }
+ when (/zipcode/) { $colfilter = @$filters[1] }
+ when (/branchcode/) { $colfilter = @$filters[2] }
+ when (/sex/) { $colfilter = @$filters[5] }
+ when (/sort1/) { $colfilter = @$filters[6] }
+ when (/sort2/) { $colfilter = @$filters[7] }
+ when (/^patron_attr\.(.*)$/) { $colfilter = $attr_filters->{$1} }
+ default { $colfilter = '' }
+ }
+
+ my @loopfilter;
+ foreach my $i (0 .. scalar @$filters) {
+ my %cell;
+ if ( @$filters[$i] ) {
+ if ($i == 3 or $i == 4) {
+ $cell{filter} = format_date(@$filters[$i]);
+ } else {
+ $cell{filter} = @$filters[$i];
+ }
+
+ given ($i) {
+ when (0) { $cell{crit} = "Cat code" }
+ when (1) { $cell{crit} = "Zip code" }
+ when (2) { $cell{crit} = "Branch code" }
+ when ([3,4]) { $cell{crit} = "Date of birth" }
+ when (5) { $cell{crit} = "Sex" }
+ when (6) { $cell{crit} = "Sort1" }
+ when (7) { $cell{crit} = "Sort2" }
+ default { $cell{crit} = "Unknown" }
+ }
+ push @loopfilter, \%cell;
+ }
+ }
+ foreach my $type (keys %$attr_filters) {
+ if($attr_filters->{$type}) {
+ push @loopfilter, {
+ crit => "Attribute $type",
+ filter => $attr_filters->{$type}
+ }
+ }
+ }
+
+ ($status ) and push @loopfilter,{crit=>"Status", filter=>$status };
+ ($activity) and push @loopfilter,{crit=>"Activity",filter=>$activity};
+ push @loopfilter,{debug=>1, crit=>"Branches",filter=>join(" ", sort keys %$branches)};
+ push @loopfilter,{debug=>1, crit=>"(line, column)", filter=>"($line,$column)"};
+# year of activity
+ my ( $period_year, $period_month, $period_day )=Add_Delta_YM( Today(),-$period, 0);
+ my $newperioddate=$period_year."-".$period_month."-".$period_day;