Bugzilla – Attachment 154835 Details for
Bug 34620
Writeoff causes 500 error if RequirePaymentType is on
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 34620: Do not throw expection if payment type is writeoff
Bug-34620-Do-not-throw-expection-if-payment-type-i.patch (text/plain), 3.15 KB, created by
Lucas Gass (lukeg)
on 2023-08-25 16:05:55 UTC
(
hide
)
Description:
Bug 34620: Do not throw expection if payment type is writeoff
Filename:
MIME Type:
Creator:
Lucas Gass (lukeg)
Created:
2023-08-25 16:05:55 UTC
Size:
3.15 KB
patch
obsolete
>From 36e2e1373482d7c33d49643cbc92a826250cf5da Mon Sep 17 00:00:00 2001 >From: Lucas Gass <lucas@bywatersolutions.com> >Date: Fri, 25 Aug 2023 15:49:09 +0000 >Subject: [PATCH] Bug 34620: Do not throw expection if payment type is writeoff > >To test: >1. Turn on RequirePaymentType >2. Create a manual invoice and then attempt to write it off. >3. 500 error >4. Turn of RequirePaymentType, no error. >5. Apply patch, restart_all >6. Try step 2 again, you should not get an error >7. prove t/db_dependent/Koha/Account.t >8. Make sure tests pass >--- > Koha/Account.pm | 18 +++++++++--------- > t/db_dependent/Koha/Account.t | 12 +++++++++++- > 2 files changed, 20 insertions(+), 10 deletions(-) > >diff --git a/Koha/Account.pm b/Koha/Account.pm >index 09cf0ad8ce..ad08a6df4b 100644 >--- a/Koha/Account.pm >+++ b/Koha/Account.pm >@@ -87,18 +87,18 @@ sub pay { > > my $userenv = C4::Context->userenv; > >- Koha::Exceptions::Account::PaymentTypeRequired->throw() >- if ( C4::Context->preference("RequirePaymentType") >- && !defined($payment_type) ); >+ unless ( $type eq 'WRITEOFF' ) { >+ Koha::Exceptions::Account::PaymentTypeRequired->throw() >+ if ( C4::Context->preference("RequirePaymentType") >+ && !defined($payment_type) ); > >- my $av = Koha::AuthorisedValues->search_with_library_limits({ category => 'PAYMENT_TYPE', authorised_value => $payment_type }); >+ my $av = Koha::AuthorisedValues->search_with_library_limits( >+ { category => 'PAYMENT_TYPE', authorised_value => $payment_type } ); > >- if ( !$av->count && C4::Context->preference("RequirePaymentType")) { >- Koha::Exceptions::Account::InvalidPaymentType->throw( >- error => 'Invalid payment type' >- ); >+ if ( !$av->count && C4::Context->preference("RequirePaymentType") ) { >+ Koha::Exceptions::Account::InvalidPaymentType->throw( error => 'Invalid payment type' ); >+ } > } >- > my $manager_id = $userenv ? $userenv->{number} : undef; > my $interface = $params ? ( $params->{interface} || C4::Context->interface ) : C4::Context->interface; > my $payment = $self->payin_amount( >diff --git a/t/db_dependent/Koha/Account.t b/t/db_dependent/Koha/Account.t >index 46f57f1358..57ecd741aa 100755 >--- a/t/db_dependent/Koha/Account.t >+++ b/t/db_dependent/Koha/Account.t >@@ -691,7 +691,7 @@ subtest 'reconcile_balance' => sub { > > subtest 'pay() tests' => sub { > >- plan tests => 8; >+ plan tests => 9; > > $schema->storage->txn_begin; > >@@ -727,6 +727,16 @@ subtest 'pay() tests' => sub { > 'Koha::Exceptions::Account::InvalidPaymentType', > 'Exception thrown for InvalidPaymentType:1 + payment_type:FOOBAR'; > >+ my $writeoff_id = $account->pay( >+ { >+ amount => 10, >+ interface => 'intranet', >+ type => 'WRITEOFF', >+ } >+ )->{payment_id}; >+ my $writeoff = Koha::Account::Lines->find($writeoff_id); >+ is( $writeoff->payment_type, undef, "Writeoff should not have a payment_type " ); >+ > t::lib::Mocks::mock_preference( 'RequirePaymentType', 0 ); > my $context = Test::MockModule->new('C4::Context'); > $context->mock( 'userenv', { branch => $library->id } ); >-- >2.30.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 34620
:
154835
|
154850
|
155192