From dde5d34e39a064208d0b01060e7b9f95542517a1 Mon Sep 17 00:00:00 2001 From: Andrii Veremeienko Date: Tue, 26 Oct 2021 09:55:34 +0300 Subject: [PATCH] Bug 29114: Trim whitespace before the barcode The solution was to add regexp that trims all whitespaces. How to test: 1. Go to the koha/virtualshelves/shelves.pl; 2. Add new list or edit existing one; 3. Start adding new items; 4. In the "Barcode" field add barcode(s) with whitespaces before them; 5. Observe that it wasn't added as the barcode isn't recognized because of whitespaces; 6. Apply the patch; 7. Repeat step 4; 8. Observe that the item was successfully added; --- virtualshelves/shelves.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/virtualshelves/shelves.pl b/virtualshelves/shelves.pl index 25f2127b1c..0fb0a5a851 100755 --- a/virtualshelves/shelves.pl +++ b/virtualshelves/shelves.pl @@ -21,6 +21,7 @@ use Modern::Perl; use CGI qw ( -utf8 ); use C4::Auth qw( get_template_and_user ); use C4::Biblio qw( GetMarcBiblio ); +use C4::Circulation qw( barcodedecode ); use C4::Koha qw( GetNormalizedEAN GetNormalizedISBN @@ -154,7 +155,9 @@ if ( $op eq 'add_form' ) { if ( $shelf->can_biblios_be_added( $loggedinuser ) ) { my @barcodes = split /\n/, $barcodes; # Entries are effectively passed in as a separated list foreach my $barcode (@barcodes){ - $barcode =~ s/\r$//; # strip any naughty return chars + $barcode =~ s/^\s+//; # remove leading whitespace + $barcode =~ s/\s+$//; # remove trailing whitespace + $barcode = barcodedecode( $barcode ) if $barcode; next if $barcode eq ''; my $item = Koha::Items->find({barcode => $barcode}); if ( $item ) { -- 2.17.1