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>
(cherry picked from commit 7fbd50e3aa)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
78ffca5f32
commit
2b37db0d7d
|
|
@ -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 );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
[% FOREACH checkout IN checkouts %]
|
||||
<tr>
|
||||
[% IF Koha.Preference('intranetreadinghistory') AND CAN_user_circulate_circulate_remaining_permissions %]
|
||||
<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 New Issue