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 <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit
9afc8e96f3d173a3998cbec2a4ad7ceaf506e49a)
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
}
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');