From 5bbdc791a9f5d177d953380d3fe6ce62c06b501d Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 2 Dec 2021 13:52:45 +0100 Subject: [PATCH] Bug 29385: Catch register_id for payments against fees This patch refactors the pay method in SIP FeePayment such that we consistently pass parameters to both invocations of Koha::Account->pay. It ensure the missing cash_register definition is passed when a set of account lines to pay is defined. Signed-off-by: Kyle M Hall Signed-off-by: Martin Renvoize Signed-off-by: Kyle M Hall --- C4/SIP/ILS/Transaction/FeePayment.pm | 42 ++++++++++------------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/C4/SIP/ILS/Transaction/FeePayment.pm b/C4/SIP/ILS/Transaction/FeePayment.pm index 7748b1a1d8f..80d9698694d 100644 --- a/C4/SIP/ILS/Transaction/FeePayment.pm +++ b/C4/SIP/ILS/Transaction/FeePayment.pm @@ -57,22 +57,18 @@ sub pay { return { ok => 0 } if $account->balance < $amt; } + my $pay_options = { + amount => $amt, + type => $type, + payment_type => 'SIP' . $sip_type, + interface => C4::Context->interface, + cash_register => $register_id, + }; + if ($fee_id) { my $fee = Koha::Account::Lines->find($fee_id); if ( $fee ) { - my $pay_response = $account->pay( - { - amount => $amt, - type => $type, - payment_type => 'SIP' . $sip_type, - lines => [$fee], - interface => C4::Context->interface - } - ); - return { - ok => 1, - pay_response => $pay_response - }; + $pay_options->{lines} = [$fee]; } else { return { @@ -80,21 +76,11 @@ sub pay { }; } } - else { - my $pay_response = $account->pay( - { - amount => $amt, - type => $type, - payment_type => 'SIP' . $sip_type, - interface => C4::Context->interface, - cash_register => $register_id - } - ); - return { - ok => 1, - pay_response => $pay_response - }; - } + my $pay_response = $account->pay($pay_options); + return { + ok => 1, + pay_response => $pay_response + }; } #sub DESTROY { -- 2.25.1