@@ -, +, @@
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;
--
|