From 782864feb0a5680613e7531a5e53a6e788a3500b Mon Sep 17 00:00:00 2001
From: Nick Clemens <nick@bywatersolutions.com>
Date: Wed, 24 Feb 2016 17:10:02 +0000
Subject: [PATCH] Bug 15877 - C4::Barcodes does not correctly calculate db_max
 for 'annual' barcodes

This patch alters the MySQL query to remove a max statement which
incorrectly groups full annual barcodes with numeric values.

Signed-off-by: Srdjan <srdjan@catalyst.net.nz>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
---
 C4/Barcodes/annual.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/C4/Barcodes/annual.pm b/C4/Barcodes/annual.pm
index eb0e80e..1c8a432 100644
--- a/C4/Barcodes/annual.pm
+++ b/C4/Barcodes/annual.pm
@@ -38,8 +38,8 @@ BEGIN {
 
 sub db_max ($;$) {
 	my $self = shift;
-	my $query = "SELECT max(substring_index(barcode,'-',-1)) AS chunk,barcode FROM items WHERE barcode LIKE ? GROUP BY barcode";
-		# FIXME: unreasonably expensive query on large datasets
+	my $query = "SELECT substring_index(barcode,'-',-1) AS chunk,barcode FROM items WHERE barcode LIKE ? ORDER BY chunk DESC LIMIT 1";
+		# FIXME: unreasonably expensive query on large datasets (I think removal of group by does this?)
 	my $sth = C4::Context->dbh->prepare($query);
 	my ($iso);
 	if (@_) {
-- 
2.7.0