- LEFT JOIN borrowers ON borrowers.borrowernumber
- LEFT JOIN items ON items.itemnumber=old_issues.itemnumber
- LEFT JOIN biblioitems ON (biblioitems.biblioitemnumber=items.biblioitemnumber)
- WHERE returndate is not null";
-
- @$filters[0]=~ s/\*/%/g if (@$filters[0]);
- $strcalc .= " AND old_issues.timestamp > '" . @$filters[0] ."'" if ( @$filters[0] );
- @$filters[1]=~ s/\*/%/g if (@$filters[1]);
- $strcalc .= " AND old_issues.timestamp < '" . @$filters[1] ."'" if ( @$filters[1] );
- @$filters[2]=~ s/\*/%/g if (@$filters[2]);
- $strcalc .= " AND old_issues.returndate > '" . @$filters[2] ."'" if ( @$filters[2] );
- @$filters[3]=~ s/\*/%/g if (@$filters[3]);
- $strcalc .= " AND old_issues.returndate < '" . @$filters[3] ."'" if ( @$filters[3] );
- @$filters[4]=~ s/\*/%/g if (@$filters[4]);
- $strcalc .= " AND old_issues.branchcode like '" . @$filters[4] ."'" if ( @$filters[4] );
- @$filters[5]=~ s/\*/%/g if (@$filters[5]);
- $strcalc .= " AND biblioitems.itemtype like '" . @$filters[5] ."'" if ( @$filters[5] );
- @$filters[6]=~ s/\*/%/g if (@$filters[6]);
- $strcalc .= " AND borrowers.categorycode like '" . @$filters[6] ."'" if ( @$filters[6] );
- @$filters[7]=~ s/\*/%/g if (@$filters[7]);
- $strcalc .= " AND dayname(old_issues.timestamp) like '" . @$filters[7]."'" if (@$filters[7]);
- @$filters[8]=~ s/\*/%/g if (@$filters[8]);
- $strcalc .= " AND monthname(old_issues.timestamp) like '" . @$filters[8]."'" if (@$filters[8]);
- @$filters[9]=~ s/\*/%/g if (@$filters[9]);
- $strcalc .= " AND year(old_issues.timestamp) like '" . @$filters[9] ."'" if ( @$filters[9] );
+ LEFT JOIN borrowers ON old_issues.borrowernumber=borrowers.borrowernumber
+ LEFT JOIN items ON items.itemnumber=old_issues.itemnumber
+ LEFT JOIN biblioitems ON (biblioitems.biblioitemnumber=items.biblioitemnumber)
+ WHERE 1";
+ my @filterterms = (
+ 'old_issues.timestamp >',
+ 'old_issues.timestamp <',
+ 'old_issues.returndate >',
+ 'old_issues.returndate <',
+ 'old_issues.branchcode like',
+ 'biblioitems.itemtype like',
+ 'borrowers.categorycode like',
+ 'dayname(old_issues.timestamp) like',
+ 'monthname(old_issues.timestamp) like',
+ 'monthname(old_issues.timestamp) like',
+ 'year(old_issues.timestamp) like',
+ );
+ foreach ((@$filters)[0..9]) {
+ my $term = shift @filterterms; # go through both arrays in step
+ ($_) or next;
+ s/\*/%/g;
+ $strcalc .= " AND $term '$_' ";
+ }