Bug 5529 Absence or Presence of lists not being reliably returned
[koha_fer] / reports / borrowers_out.pl
index e699029..0a135e1 100755 (executable)
@@ -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;
@@ -49,7 +49,6 @@ 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)
@@ -114,15 +113,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 );
     
@@ -187,7 +181,7 @@ sub calculate {
         $colorder .= $column;
         
         my $strsth2;
-        $strsth2 .= "select distinctrow $colfield FROM borrowers LEFT JOIN `old_issues` USING(borrowernumber)";
+        $strsth2 .= "select distinct $colfield FROM borrowers WHERE 1";
         if ($colfilter[0]) {
             $colfilter[0] =~ s/\*/%/g;
             $strsth2 .= " and $column LIKE '$colfilter[0]' " ;
@@ -235,10 +229,18 @@ sub calculate {
     $strcalc .= "WHERE 1 ";
     @$filters[0]=~ s/\*/%/g if (@$filters[0]);
     $strcalc .= " AND borrowers.categorycode like '" . @$filters[0] ."'" if ( @$filters[0] );
-    my $strqueryfilter = "SELECT DISTINCT borrowernumber FROM old_issues WHERE borrowernumber IS NOT NULL ";
-    if (@$filters[1]){
-        my $strqueryfilter .= "AND old_issues.timestamp> @$filters[1] ";
+
+    my $strqueryfilter = "SELECT DISTINCT borrowernumber FROM  ";
+    $strqueryfilter .= "(SELECT borrowernumber from old_issues WHERE borrowernumber IS NOT NULL ";
+    if ($filters->[1]){
+        $strqueryfilter .= "AND old_issues.timestamp> '$filters->[1]' ";
     }
+    $strqueryfilter .= "UNION SELECT borrowernumber FROM issues WHERE 1 ";
+    if ($filters->[1]){
+        $strqueryfilter .= "AND issues.timestamp> '$filters->[1]' ";
+    }
+    $strqueryfilter .= ") active_borrowers";
+
     $strcalc .= " AND borrowers.borrowernumber not in ($strqueryfilter)";
     $strcalc .= " group by borrowers.borrowernumber";
     $strcalc .= ", $colfield" if ($column);