Bug 17801: Use issuedate for limits in Most Circulated Items
authorAndrew Fuerste-Henry <andrew@bywatersolutions.com>
Thu, 27 Aug 2020 18:03:14 +0000 (18:03 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 3 Sep 2020 12:18:23 +0000 (14:18 +0200)
To test:
1 - Have two checkouts in old_issues
    issue 1: timestamp 2020-08-01 00:00:00, issuedate 2019-08-01 00:00:00
    issue 2: timestamp 2020-07-01 00:00:00, issuedate 2019-07-01 00:00:00
2 - Perform a Most Circulated Items search for checkout dates 2020-06-01 to 2020-09-01. Both checkouts appear in search
3 - Repeat search with checkout dates 2019-06-01 to 2019-09-01. Neither checkout appears in search
4 - apply patch, restart all
5 - Repeat search with checkout dates 2020-06-01 to 2020-09-01. Neither checkout appears in search
6 - Repeat search with checkout dates 2019-06-01 to 2019-09-01. Both checkouts appears in search

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
reports/cat_issues_top.pl

index 0792a28..596ea00 100755 (executable)
@@ -194,14 +194,14 @@ sub calculate {
     my $colfield;
     my $colorder;
     if ($column){
-        $column = "old_issues.".$column if (($column=~/branchcode/) or ($column=~/timestamp/));
+        $column = "old_issues.".$column if (($column=~/branchcode/) or ($column=~/issuedate/));
         if($column=~/itemtype/){
             $column = C4::Context->preference('item-level_itypes') ? "items.itype": "biblioitems.itemtype";
         }
         $column = "borrowers.".$column if $column=~/categorycode/;
         my @colfilter ;
-        $colfilter[0] = @$filters[0] if ($column =~ /timestamp/ )  ;
-        $colfilter[1] = @$filters[1] if ($column =~ /timestamp/ )  ;
+        $colfilter[0] = @$filters[0] if ($column =~ /issuedate/ )  ;
+        $colfilter[1] = @$filters[1] if ($column =~ /issuedate/ )  ;
         $colfilter[0] = @$filters[2] if ($column =~ /returndate/ )  ;
         $colfilter[1] = @$filters[3] if ($column =~ /returndate/ )  ;
         $colfilter[0] = @$filters[4] if ($column =~ /branch/ )  ;
@@ -212,25 +212,25 @@ sub calculate {
         $colfilter[0] = @$filters[8] if ($column =~ /category/ )  ;
       # This commented out row (sort2) was not removed when adding new filters for ccode, shelving location and call number
       # $colfilter[0] = @$filters[11] if ($column =~ /sort2/ ) ;
-        $colfilter[0] = @$filters[9] if ($column =~ /timestamp/ ) ;
-        $colfilter[0] = @$filters[10] if ($column =~ /timestamp/ ) ;
-        $colfilter[0] = @$filters[11] if ($column =~ /timestamp/ ) ;
+        $colfilter[0] = @$filters[9] if ($column =~ /issuedate/ ) ;
+        $colfilter[0] = @$filters[10] if ($column =~ /issuedate/ ) ;
+        $colfilter[0] = @$filters[11] if ($column =~ /issuedate/ ) ;
     #warn "filtre col ".$colfilter[0]." ".$colfilter[1];
                                                 
     # loop cols.
         if ($column eq "Day") {
             #Display by day
-            $column = "old_issues.timestamp";
+            $column = "old_issues.issuedate";
             $colfield .="dayname($column)";  
             $colorder .="weekday($column)";
         } elsif ($column eq "Month") {
             #Display by Month
-            $column = "old_issues.timestamp";
+            $column = "old_issues.issuedate";
             $colfield .="monthname($column)";  
             $colorder .="month($column)";  
         } elsif ($column eq "Year") {
             #Display by Year
-            $column = "old_issues.timestamp";
+            $column = "old_issues.issuedate";
             $colfield .="Year($column)";
             $colorder .= $column;
         } else {
@@ -245,7 +245,7 @@ sub calculate {
                      LEFT JOIN items ON old_issues.itemnumber=items.itemnumber 
                      LEFT JOIN biblioitems  ON biblioitems.biblioitemnumber=items.biblioitemnumber 
                      WHERE 1";
-        if (($column=~/timestamp/) or ($column=~/returndate/)){
+        if (($column=~/issuedate/) or ($column=~/returndate/)){
             if ($colfilter[1] and ($colfilter[0])){
                 $strsth2 .= " and $column between '$colfilter[0]' and '$colfilter[1]' " ;
             } elsif ($colfilter[1]) {
@@ -311,9 +311,9 @@ sub calculate {
                   WHERE 1";
 
     @$filters[0]=~ s/\*/%/g if (@$filters[0]);
-    $strcalc .= " AND old_issues.timestamp > '" . @$filters[0] ."'" if ( @$filters[0] );
+    $strcalc .= " AND old_issues.issuedate > '" . @$filters[0] ."'" if ( @$filters[0] );
     @$filters[1]=~ s/\*/%/g if (@$filters[1]);
-    $strcalc .= " AND old_issues.timestamp < '" . @$filters[1] ."'" if ( @$filters[1] );
+    $strcalc .= " AND old_issues.issuedate < '" . @$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]);
@@ -338,11 +338,11 @@ sub calculate {
     @$filters[9]=~ s/\*/%/g if (@$filters[9]);
     $strcalc .= " AND borrowers.categorycode like '" . @$filters[9] ."'" if ( @$filters[9] );
     @$filters[10]=~ s/\*/%/g if (@$filters[10]);
-    $strcalc .= " AND dayname(old_issues.timestamp) like '" . @$filters[10]."'" if (@$filters[10]);
+    $strcalc .= " AND dayname(old_issues.issuedate) like '" . @$filters[10]."'" if (@$filters[10]);
     @$filters[11]=~ s/\*/%/g if (@$filters[11]);
-    $strcalc .= " AND monthname(old_issues.timestamp) like '" . @$filters[11]."'" if (@$filters[11]);
+    $strcalc .= " AND monthname(old_issues.issuedate) like '" . @$filters[11]."'" if (@$filters[11]);
     @$filters[12]=~ s/\*/%/g if (@$filters[12]);
-    $strcalc .= " AND year(old_issues.timestamp) like '" . @$filters[12] ."'" if ( @$filters[12] );
+    $strcalc .= " AND year(old_issues.issuedate) like '" . @$filters[12] ."'" if ( @$filters[12] );
     
     $strcalc .= " group by biblio.biblionumber";
     $strcalc .= ", $colfield" if ($column);