-# Filters
- my $linefilter = "";
-# warn "filtres ".@filters[0];
-# warn "filtres ".@filters[4];
-# warn "filtres ".@filters[5];
-# warn "filtres ".@filters[6];
-
- $linefilter = @$filters[0] if ($line =~ /categorycode/ ) ;
- $linefilter = @$filters[1] if ($line =~ /zipcode/ ) ;
- $linefilter = @$filters[2] if ($line =~ /branchcode/ ) ;
- $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 =~ /sex/);
- $colfilter = @$filters[6] if ($column =~ /sort1/);
- $colfilter = @$filters[7] if ($column =~ /sort2/);
-
- my @loopfilter;
- for (my $i=0;$i<=7;$i++) {
- my %cell;
- if ( @$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} .="Sex" if ($i==5);
- $cell{crit} .="Sort1" if ($i==6);
- $cell{crit} .="Sort2" if ($i==7);
- push @loopfilter, \%cell;
- }
- }
+ # 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;
+ for (my $i = 0; $i <= scalar @$filters; $i++) {
+ 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}
+ }
+ }
+ }
+