From 6eab0b94248d86fd4996065ec92f9ebbf44646ea Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 8 Nov 2016 12:52:52 +0000 Subject: [PATCH] Bug 17584: Add the Koha::Patron->get_checkouts method Test plan: prove t/db_dependent/Koha/Patrons.t should return green Signed-off-by: Josef Moravec Signed-off-by: Kyle M Hall Signed-off-by: Kyle M Hall --- Koha/Patron.pm | 16 +++++++++++++--- t/db_dependent/Koha/Patrons.t | 15 ++++++++++++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 9c6e051727..e32173aaef 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -501,6 +501,18 @@ sub add_enrolment_fee_if_needed { return $enrolment_fee || 0; } +=head3 get_checkouts + +my $issues = $patron->get_checkouts + +=cut + +sub get_checkouts { + my ($self) = @_; + my $issues = $self->_result->issues; + return Koha::Checkouts->_new_from_dbic( $issues ); +} + =head3 get_overdues my $overdue_items = $patron->get_overdues @@ -512,16 +524,14 @@ Return the overdued items sub get_overdues { my ($self) = @_; my $dtf = Koha::Database->new->schema->storage->datetime_parser; - my $issues = Koha::Checkouts->search( + return $self->get_checkouts->search( { - 'me.borrowernumber' => $self->borrowernumber, 'me.date_due' => { '<' => $dtf->format_datetime(dt_from_string) }, }, { prefetch => { item => { biblio => 'biblioitems' } }, } ); - return $issues; } =head3 get_age diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t index 67506d277c..a837a44bdb 100644 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -412,8 +412,8 @@ subtest 'add_enrolment_fee_if_needed' => sub { $patron->delete; }; -subtest 'get_overdues' => sub { - plan tests => 4; +subtest 'get_checkouts + get_overdues' => sub { + plan tests => 8; my $library = $builder->build( { source => 'Branch' } ); my ($biblionumber_1) = AddBiblio( MARC::Record->new, '' ); @@ -455,8 +455,13 @@ subtest 'get_overdues' => sub { } ); + $patron = Koha::Patrons->find( $patron->{borrowernumber} ); + my $checkouts = $patron->get_checkouts; + is( $checkouts->count, 0, 'get_checkouts should not return any issues for that patron' ); + is( ref($checkouts), 'Koha::Checkouts', 'get_checkouts should return a Koha::Checkouts object' ); + # Not sure how this is useful, but AddIssue pass this variable to different other subroutines - $patron = GetMember( borrowernumber => $patron->{borrowernumber} ); + $patron = GetMember( borrowernumber => $patron->borrowernumber ); my $module = new Test::MockModule('C4::Context'); $module->mock( 'userenv', sub { { branch => $library->{branchcode} } } ); @@ -466,6 +471,10 @@ subtest 'get_overdues' => sub { AddIssue( $patron, $item_3->{barcode} ); $patron = Koha::Patrons->find( $patron->{borrowernumber} ); + $checkouts = $patron->get_checkouts; + is( $checkouts->count, 3, 'get_checkouts should return 3 issues for that patron' ); + is( ref($checkouts), 'Koha::Checkouts', 'get_checkouts should return a Koha::Checkouts object' ); + my $overdues = $patron->get_overdues; is( $overdues->count, 2, 'Patron should have 2 overdues'); is( ref($overdues), 'Koha::Checkouts', 'Koha::Patron->get_overdues should return Koha::Checkouts' ); -- 2.39.5