[Koha-patches] [PATCH] [SIGNED-OFF] Bug 5213 - Suffix number sequence not resetting properly in hmyymmincr barcode autogen pattern

Stéphane Delaune stephane.delaune at biblibre.com
Tue Apr 5 11:50:48 CEST 2011


From: Chris Nighswonger <cnighswonger at foundations.edu>

Two things are happening.

First, the SELECT does not account for a branchcode greater than 2 chars.

This is fixed by just selecting the final four digits representing the
incremental suffix from the barcode field.

Second, the incremental suffix (4 digits) is not rolling back over to zero when
reaching 9999.

This pattern probably needs help. It should allow for cataloging of 10000 items
per month as is. I would not recommend doing barcode numbering this way, but
need to support it since it is in use in at least one library.

This patch also impliments strict and warnings per Bug 2505

Signed-off-by: Stéphane Delaune <stephane.delaune at biblibre.com>
---
 cataloguing/value_builder/barcode.pl |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/cataloguing/value_builder/barcode.pl b/cataloguing/value_builder/barcode.pl
index 3c6ef74..c05ec48 100755
--- a/cataloguing/value_builder/barcode.pl
+++ b/cataloguing/value_builder/barcode.pl
@@ -1,8 +1,6 @@
 #!/usr/bin/perl
-
-# $Id: barcode.pl,v 1.1.2.2 2006/09/20 02:24:42 kados Exp $
-
 # Copyright 2000-2002 Katipo Communications
+# Parts copyright 2008-2010 Foundations Bible College
 #
 # This file is part of Koha.
 #
@@ -19,10 +17,13 @@
 # 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; FIXME - Bug 2505
+use strict;
+use warnings;
+no warnings 'redefine'; # otherwise loading up multiple plugins fills the log with subroutine redefine warnings
+
 use C4::Context;
 require C4::Dates;
+
 my $DEBUG = 0;
 
 =head1
@@ -99,11 +100,12 @@ sub plugin_javascript {
     }
     elsif ($autoBarcodeType eq 'hbyymmincr') {      # Generates a barcode where hb = home branch Code, yymm = year/month catalogued, incr = incremental number, reset yearly -fbcit
         $year = substr($year, -2);
-        $query = "SELECT MAX(CAST(SUBSTRING(barcode,7,4) AS signed)) FROM items WHERE barcode REGEXP ?";
+        $query = "SELECT MAX(CAST(SUBSTRING(barcode,-4) AS signed)) AS number FROM items WHERE barcode REGEXP ?";
         my $sth = $dbh->prepare($query);
         $sth->execute("^[a-zA-Z]{1,}$year");
         while (my ($count)= $sth->fetchrow_array) {
             $nextnum = $count if $count;
+            $nextnum = 0 if $nextnum == 9999; # this sequence only allows for cataloging 10000 books per month
             warn "Existing incremental number = $nextnum" if $DEBUG;
         }
         $nextnum++;
-- 
1.7.0.4



More information about the Koha-patches mailing list