Bug 30612: Add accountlines method to Koha::Checkout and Koha::Old::Checkout

It would be very useful to have an accountlines method on checkouts objects. In particular it would make fees related to a checkout available from the checkout objects in overdue notices.

Test Plan:
1) Apply this patch
2) prove t/db_dependent/Koha/Account/Line.t
3) prove t/db_dependent/Koha/Checkouts.t

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Kyle Hall 2022-06-08 13:41:56 -04:00 committed by Tomas Cohen Arazi
parent ad0aa754ee
commit 58dfeff13a
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F
4 changed files with 66 additions and 2 deletions

View file

@ -79,6 +79,20 @@ sub item {
return Koha::Item->_new_from_dbic( $item_rs );
}
=head3 accountlines
my $accountlines = $checkout->accountlines;
Return the checked out accountlines
=cut
sub accountlines {
my ( $self ) = @_;
my $accountlines_rs = $self->_result->accountlines;
return Koha::Account::Lines->_new_from_dbic( $accountlines_rs );
}
=head3 library
my $library = $checkout->library;

View file

@ -45,6 +45,20 @@ sub item {
return Koha::Item->_new_from_dbic( $item_rs );
}
=head3 accountlines
my $accountlines = $checkout->accountlines;
Return the checked out accountlines
=cut
sub accountlines {
my ( $self ) = @_;
my $accountlines_rs = $self->_result->accountlines;
return Koha::Account::Lines->_new_from_dbic( $accountlines_rs );
}
=head3 library
my $library = $checkout->library;

View file

@ -203,7 +203,7 @@ subtest 'is_credit() and is_debit() tests' => sub {
subtest 'apply() tests' => sub {
plan tests => 31;
plan tests => 32;
$schema->storage->txn_begin;
@ -346,6 +346,9 @@ subtest 'apply() tests' => sub {
}
)->store();
my $a = $checkout->accountlines->next;
is( $a->id, $accountline->id, "Koha::Checkout::accountlines returns the related acountline" );
# Enable renewing upon fine payment
t::lib::Mocks::mock_preference( 'RenewAccruingItemWhenPaid', 1 );
my $called = 0;

View file

@ -19,7 +19,7 @@
use Modern::Perl;
use Test::More tests => 10;
use Test::More tests => 11;
use C4::Circulation qw( MarkIssueReturned AddReturn );
use Koha::Checkouts;
@ -110,6 +110,39 @@ subtest 'item' => sub {
'Koha::Checkout->item should return the correct item' );
};
subtest 'accountlines' => sub {
plan tests => 3;
my $accountline = Koha::Account::Line->new(
{
issue_id => $retrieved_checkout_1->id,
borrowernumber => $retrieved_checkout_1->borrowernumber,
itemnumber => $retrieved_checkout_1->itemnumber,
branchcode => $retrieved_checkout_1->branchcode,
date => \'NOW()',
debit_type_code => 'OVERDUE',
status => 'UNRETURNED',
interface => 'cli',
amount => '1',
amountoutstanding => '1',
}
)->store();
my $accountlines = $retrieved_checkout_1->accountlines;
is( ref($accountlines), 'Koha::Account::Lines',
'Koha::Checkout->accountlines should return a Koha::Item' );
my $line = $accountlines->next;
is( ref($line), 'Koha::Account::Line',
'next returns a Koha::Account::Line' );
is(
$accountline->id,
$line->id,
'Koha::Checkout->accountlines should return the correct accountlines'
);
};
subtest 'patron' => sub {
plan tests => 3;
my $patron = $builder->build_object(