Bug 21432: (bug 20899 follow-up) Fix patron's name display for deleted patrons
Template process failed: undef error - DBIC result _type isn't of the _type Borrower at /home/vagrant/kohaclone/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt line 54. Koha::Old::Checkout->patron should return undef if the patron record has been removed. Test plan: - 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 exist?) - View the checkout history for this bib record (Home › Catalog › Checkout history) => Without this patch you get the error => With this patch applied one of the "Patron" cells will be empty Signed-off-by: Claudio <costalc@gmail.com> Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
parent
051eef767a
commit
7fbd50e3aa
3 changed files with 32 additions and 5 deletions
|
@ -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 );
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,11 @@
|
|||
[% FOREACH checkout IN checkouts %]
|
||||
<tr>
|
||||
[% IF show_patron_column %]
|
||||
<td>[% INCLUDE 'patron-title.inc' patron => checkout.patron hide_patron_infos_if_needed=1 %]</td>
|
||||
<td>
|
||||
[% IF checkout.patron %][%# Not set for deleted patron records %]
|
||||
[% INCLUDE 'patron-title.inc' patron => checkout.patron hide_patron_infos_if_needed=1 %]
|
||||
[% END %]
|
||||
</td>
|
||||
[% END %]
|
||||
<td>
|
||||
[% IF checkout.item.barcode %] [%# FIXME This test is not mandatory I think %]
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue