Browse Source

Bug 5681: Fixes leading zeroes in Add Mulpiple Copies

From Biblibre:
I don't know why, but removing sprintf solves the problems with leading zeroes
and the problems with large values.

(written by jean-andré santoni)

Note from Chris:

The width is never set, so the sprintf always defaults to a float, which
trims the leading zeros. I am not smart enough to figure out how to set
a valid width when calling it, and removing the sprintf seems to work
See http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5681 for
test results

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
3.6.x-rmaint/testing
Paul Poulain 14 years ago
committed by Chris Cormack
parent
commit
4f7bcdcbae
  1. 9
      C4/Barcodes.pm

9
C4/Barcodes.pm

@ -135,14 +135,11 @@ sub next_value ($;$) {
# Note, this enlargement might be undesireable for some barcode formats.
# Those should override next_value() to work accordingly.
$incr++;
my $width = $self->width || undef;
# we would want to use %$x.$xd, but that would break on large values, like 2160700004168
# so we let the object tell us if it has a width to focus on. If not, we use float.
my $format = ($width ? '%'."$width.$width".'d' : '%.0f');
$debug and warn "sprintf(\"$format\",$incr)";
$debug and warn "$incr";
$head = $self->process_head($head,$max,$specific);
$tail = $self->process_tail($tail,$max,$specific);
my $next_value = $head . sprintf($format,$incr) . $tail;
my $next_value = $head . $incr . $tail;
$debug and print STDERR "( next ) max barcode found: $next_value\n";
return $next_value;
}

Loading…
Cancel
Save