@@ -, +, @@ for deleted patrons - Check 2 items out on the same bibliographic record - Check them in - Delete the patron's record of one of the issuer (Is this word really - View the checkout history for this bib record (Home › Catalog › --- Koha/Old/Checkout.pm | 1 + .../prog/en/modules/catalogue/issuehistory.tt | 6 ++++- t/db_dependent/Koha/Checkouts.t | 30 +++++++++++++++++++--- 3 files changed, 32 insertions(+), 5 deletions(-) --- a/Koha/Old/Checkout.pm +++ a/Koha/Old/Checkout.pm @@ -54,6 +54,7 @@ Return the patron for who the checkout has been done sub patron { my ( $self ) = @_; my $patron_rs = $self->_result->borrower; + return unless $patron_rs; return Koha::Patron->_new_from_dbic( $patron_rs ); } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt @@ -48,7 +48,11 @@ [% FOREACH checkout IN checkouts %] [% IF show_patron_column %] - [% INCLUDE 'patron-title.inc' patron => checkout.patron hide_patron_infos_if_needed=1 %] + + [% IF checkout.patron %][%# Not set for deleted patron records %] + [% INCLUDE 'patron-title.inc' patron => checkout.patron hide_patron_infos_if_needed=1 %] + [% END %] + [% END %] [% IF checkout.item.barcode %] [%# FIXME This test is not mandatory I think %] --- a/t/db_dependent/Koha/Checkouts.t +++ a/t/db_dependent/Koha/Checkouts.t @@ -21,6 +21,7 @@ use Modern::Perl; use Test::More tests => 7; +use C4::Circulation; use Koha::Checkouts; use Koha::Database; use Koha::DateUtils qw( dt_from_string ); @@ -94,10 +95,31 @@ subtest 'item' => sub { }; subtest 'patron' => sub { - plan tests => 2; - my $p = $new_checkout_1->patron; - is( ref($p), 'Koha::Patron', 'Koha::Checkout->patron should return a Koha::Patron' ); - is( $p->borrowernumber, $patron->{borrowernumber}, 'Koha::Checkout->patron should return the correct patron' ); + plan tests => 3; + my $patron = $builder->build_object({class=>'Koha::Patrons', value => {branchcode => $library->{branchcode}}}); + + my $item = $builder->build_object( { class=> 'Koha::Items' } ); + my $checkout = Koha::Checkout->new( + { borrowernumber => $patron->borrowernumber, + itemnumber => $item->itemnumber, + branchcode => $library->{branchcode}, + } + )->store; + + my $p = $checkout->patron; + is( ref($p), 'Koha::Patron', + 'Koha::Checkout->patron should return a Koha::Patron' ); + is( $p->borrowernumber, $patron->borrowernumber, + 'Koha::Checkout->patron should return the correct patron' ); + + # Testing Koha::Old::Checkout->patron now + my $issue_id = $checkout->issue_id; + C4::Circulation::MarkIssueReturned( $p->borrowernumber, $checkout->itemnumber ); + $p->delete; + my $old_issue = Koha::Old::Checkouts->find($issue_id); + is( $old_issue->patron, undef, + 'Koha::Checkout->patron should return undef if the patron record has been deleted' + ); }; $retrieved_checkout_1->delete; --