From 80c042cf41932e3c6d9d7d70365e9fd26538f80e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marc=20V=C3=A9ron?= Date: Mon, 28 Dec 2015 12:15:18 +0100 Subject: [PATCH] Bug 14015 - Checkout: Fix software error if barcode '0' is given To reproduce the bug: - Go to Home > Circulation > Checkouts > [a patron] - Enter 0 (zero) in barcode field and hit Enter Result: Software error Can't use string ("1") as a HASH ref while "strict refs" in use at /usr/share/kohaclone/circ/circulation.pl line 473 To test: - Apply patch - Repeat steps above - Verify that the sofware error is gone and that you get a message as with other invalid barcodes. - Test with other values: '00', '000', existing barcode, and a barcode that does not exist - Test with empty barcode (for printing slip) - Search for regressions This patch implements Jonathan's solution (see comment #15) Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart (cherry picked from commit 9afc8e96f3d173a3998cbec2a4ad7ceaf506e49a) Signed-off-by: Julian Maurice --- circ/circulation.pl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/circ/circulation.pl b/circ/circulation.pl index 5747fbf6fd..db4a653ed3 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -88,7 +88,9 @@ if (!C4::Context->userenv && !$branch){ } my $barcodes = []; -if ( my $barcode = $query->param('barcode') ) { +my $barcode = $query->param('barcode'); +# Barcode given by user could be '0' +if ( $barcode || $barcode eq '0' ) { $barcodes = [ $barcode ]; } else { my $filefh = $query->upload('uploadfile'); -- 2.39.5