X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=reports%2Fborrowers_out.pl;h=55243b355a144fd75f3940ed7cf3850234d686a5;hb=9706908b269ebc068b19a0989ca8af6804b1a540;hp=8bc3097b03070a51c5ff17bb9c0a9100226b4924;hpb=4747ea7462c04770484386538b1594c1760bc75b;p=koha.git diff --git a/reports/borrowers_out.pl b/reports/borrowers_out.pl index 8bc3097b03..55243b355a 100755 --- a/reports/borrowers_out.pl +++ b/reports/borrowers_out.pl @@ -13,9 +13,9 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; use warnings; @@ -46,9 +46,9 @@ my $fullreportname = "reports/borrowers_out.tmpl"; my $limit = $input->param("Limit"); my $column = $input->param("Criteria"); my @filters = $input->param("Filter"); +$filters[1] = format_date_in_iso($filters[1]) if $filters[1]; my $output = $input->param("output"); my $basename = $input->param("basename"); -my $mime = $input->param("MIME"); our $sep = $input->param("sep") || ''; $sep = "\t" if ($sep eq 'tabulation'); my ($template, $borrowernumber, $cookie) @@ -60,7 +60,6 @@ my ($template, $borrowernumber, $cookie) debug => 1, }); $template->param(do_it => $do_it, - DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), ); if ($do_it) { # Displaying results @@ -69,7 +68,7 @@ if ($do_it) { # Printing results to screen $template->param(mainloop => $results); output_html_with_http_headers $input, $cookie, $template->output; - exit(1); + exit; } else { # Printing to a csv file print $input->header(-type => 'application/vnd.sun.xml.calc', @@ -103,7 +102,7 @@ if ($do_it) { print $sep.$col->{totalcol}; } print $sep.@$results[0]->{total}; - exit(1); + exit; } # Displaying choices } else { @@ -113,15 +112,10 @@ if ($do_it) { my %select; my $req; - my @mime = ( C4::Context->preference("MIME") ); -# foreach my $mime (@mime){ -# warn "".$mime; -# } - my $CGIextChoice=CGI::scrolling_list( -name => 'MIME', -id => 'MIME', - -values => \@mime, + -values => ['CSV'], # FIXME translation -size => 1, -multiple => 0 ); @@ -186,7 +180,7 @@ sub calculate { $colorder .= $column; my $strsth2; - $strsth2 .= "select distinctrow $colfield FROM borrowers LEFT JOIN `old_issues` ON old_issues.borrowernumber=borrowers.borrowernumber"; + $strsth2 .= "select distinct $colfield FROM borrowers WHERE 1"; if ($colfilter[0]) { $colfilter[0] =~ s/\*/%/g; $strsth2 .= " and $column LIKE '$colfilter[0]' " ; @@ -197,7 +191,6 @@ sub calculate { my $sth2 = $dbh->prepare( $strsth2 ); $sth2->execute; - while (my ($celvalue) = $sth2->fetchrow) { my %cell; # my %ft; @@ -235,24 +228,13 @@ sub calculate { $strcalc .= "WHERE 1 "; @$filters[0]=~ s/\*/%/g if (@$filters[0]); $strcalc .= " AND borrowers.categorycode like '" . @$filters[0] ."'" if ( @$filters[0] ); - if (@$filters[1]){ - my $strqueryfilter="SELECT DISTINCT borrowernumber FROM old_issues where old_issues.timestamp> @$filters[1] "; -# my $queryfilter = $dbh->prepare("SELECT DISTINCT borrowernumber FROM old_issues where old_issues.timestamp> ".format_date_in_iso(@$filters[1])); - $strcalc .= " AND borrowers.borrowernumber not in ($strqueryfilter)"; - -# $queryfilter->execute(@$filters[1]); -# while (my ($borrowernumber)=$queryfilter->fetchrow){ -# $strcalc .= " AND borrowers.borrowernumber <> $borrowernumber "; -# } - } else { - my $strqueryfilter="SELECT DISTINCT borrowernumber FROM old_issues "; -# my $queryfilter = $dbh->prepare("SELECT DISTINCT borrowernumber FROM old_issues "); -# $queryfilter->execute; - $strcalc .= " AND borrowers.borrowernumber not in ($strqueryfilter)"; -# while (my ($borrowernumber)=$queryfilter->fetchrow){ -# $strcalc .= " AND borrowers.borrowernumber <> $borrowernumber "; -# } - } + + $strcalc .= " AND NOT EXISTS (SELECT * FROM issues WHERE issues.borrowernumber=borrowers.borrowernumber "; + $strcalc .= " AND issues.timestamp> '" . @$filters[1] . "'" if (@$filters[1]); + $strcalc .= ") "; + $strcalc .= " AND NOT EXISTS (SELECT * FROM old_issues WHERE old_issues.borrowernumber=borrowers.borrowernumber "; + $strcalc .= " AND old_issues.timestamp> '" . @$filters[1] . "'" if (@$filters[1]); + $strcalc .= ") "; $strcalc .= " group by borrowers.borrowernumber"; $strcalc .= ", $colfield" if ($column); $strcalc .= " order by $colfield " if ($colfield); @@ -263,7 +245,6 @@ sub calculate { } else { $max=$line;} $strcalc .= " LIMIT 0,$max"; } -# warn "SQL :". $strcalc; my $dbcalc = $dbh->prepare($strcalc); $dbcalc->execute;