From 5adb51cdd3f4158fb8103d4b806802bd08aafce8 Mon Sep 17 00:00:00 2001 From: William Lavoie Date: Thu, 13 Feb 2025 10:30:03 -0500 Subject: [PATCH] Bug 19113: Barcode value builder not working with numeric branchcode The regexp for the value builder 'hbyymmincr' doesn't allow for numerics in the branchcode, so the nextnum found is always 0 and multiple Add always generate the same barcode. This simply allow for numerics within the regex. Test - It's a bit complicated. You need - all your branchcodes to be numerics (01,02,71...) - all barcodes to already be a bunch of numbers - Modify the syspref 'autobarcode' to hbyymmincr, the home branch + date one. - Find an item in the pro-search, - New -> New Item - Click on the 'p' to have the value builder create the next barcode. - Without the patch, the query won't have found anything, so it'll suggest xxxxxx0001 - Click Add. It reprensent the form to enter another one. - Click on the 'p' edit box, it'll offer you again xxxxxx0001 With the patch, it'll offer valid ones everytime. Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer (cherry picked from commit db067d48ee6bb18a5687411bf5046baf85958c1b) Signed-off-by: Fridolin Somers --- C4/Barcodes/ValueBuilder.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/Barcodes/ValueBuilder.pm b/C4/Barcodes/ValueBuilder.pm index 8e861193ee..3594b937e2 100644 --- a/C4/Barcodes/ValueBuilder.pm +++ b/C4/Barcodes/ValueBuilder.pm @@ -48,7 +48,7 @@ sub get_barcode { my $month = $args->{mon}; my $query = "SELECT MAX(CAST(SUBSTRING(barcode,-4) AS signed)) AS number FROM items WHERE barcode REGEXP ?"; my $sth = C4::Context->dbh->prepare($query); - $sth->execute("^[-a-zA-Z]{1,}$year$month"); + $sth->execute("^[-a-zA-Z0-9]{1,}$year$month"); while (my ($count)= $sth->fetchrow_array) { $nextnum = $count if $count; $nextnum = 0 if $nextnum == 9999; # this sequence only allows for cataloging 9999 items per month