Bug 21027: Fix checkout statistics if 1+ of the fields is not defined
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 29 Apr 2019 00:55:02 +0000 (20:55 -0400)
committerLucas Gass <lucas@bywatersolutions.com>
Tue, 13 Aug 2019 19:23:23 +0000 (19:23 +0000)
TEST

- Use a patron who hasn't checked out items before
- Set  StatisticsFields to itype|ccode
- Check out some items without location
- Verify that statistics stable shows the correct number of checkouts
- Check out one item with a location or just change one of your checked out items
- Verify the total is still correct
- Change  StatisticsFields to location|itype|ccode
- Verify the total has changed now - it's only 1 (the one with a location)

Apply the patch and try again

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 17a71b990076efd04c15de6b3165c33fffe037a3)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit 49fb1c0ae86bb888485385294466d312d069c8dc)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
members/statistics.pl

index e63d2217efda06577cefeef54aba3c09785ec63d..5a2240803fdcd1a9508e6216c9f80394470a4015 100755 (executable)
@@ -207,7 +207,10 @@ sub merge {
         for my $ch ( @r ) {
             $exists = 1;
             for my $cn ( @statistic_column_names ) {
-                if ( $ch->{$cn} and not $ch->{$cn} eq $h->{$cn} ) {
+                if (   ( not defined $ch->{$cn} && defined $h->{$cn} )
+                    || ( defined $ch->{$cn} && not defined $h->{$cn} )
+                    || ( $ch->{$cn} ne $h->{$cn} ) )
+                {
                     $exists = 0;
                     last;
                 }