Bug 27204: Fix end boundary index, never return results for non-existant accountlines
There are two primary issues I've identified with requesting line items for fees via SIP: 1) The end boundary is incorrect. For example, if send a request with a BP ( starting item) of 1, and a BQ (end item) of 1, I should get just the first item. Instead I will get two items 2) Our SIP server does not check bounds. For example, if I have 3 fines, but I send a BP of 1 and a BQ of 5, I will get back 5 AVs, two of them being "empty" because the patron only has 3 accountlines! Test Plan: 1) Apply the unit test patch 2) prove t/db_dependent/SIP/Patron.t 3) Note the failures 4) Apply the second patch 5) prove t/db_dependent/SIP/Patron.t 6) All tests should pass! Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
cb9b72b783
commit
0a5232412f
|
|
@ -377,7 +377,7 @@ sub fine_items {
|
|||
);
|
||||
|
||||
$start = $start ? $start - 1 : 0;
|
||||
$end = $end ? $end : scalar @fees - 1;
|
||||
$end = $end ? $end - 1 : scalar @fees - 1;
|
||||
|
||||
my $av_field_template = $server ? $server->{account}->{av_field_template} : undef;
|
||||
$av_field_template ||= "[% accountline.description %] [% accountline.amountoutstanding | format('%.2f') %]";
|
||||
|
|
@ -388,6 +388,8 @@ sub fine_items {
|
|||
for ( my $i = $start; $i <= $end; $i++ ) {
|
||||
my $fee = $fees[$i];
|
||||
|
||||
next unless $fee;
|
||||
|
||||
my $output;
|
||||
$tt->process( \$av_field_template, { accountline => $fee }, \$output );
|
||||
push( @return_values, { barcode => $output } );
|
||||
|
|
|
|||
Loading…
Reference in New Issue