Bug 32894: Koha::Item->last_returned_by

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
Jonathan Druart 2023-02-28 16:13:56 +01:00 committed by Tomas Cohen Arazi
parent 68216c541b
commit 3545292513
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
3 changed files with 13 additions and 24 deletions

View File

@ -2621,7 +2621,7 @@ sub MarkIssueReturned {
if ( C4::Context->preference('StoreLastBorrower') ) {
my $item = Koha::Items->find( $itemnumber );
$item->last_returned_by( $patron );
$item->last_returned_by( $patron->borrowernumber )->store;
}
# Remove any OVERDUES related debarment if the borrower has no overdues

View File

@ -596,35 +596,17 @@ sub get_transfers {
=head3 last_returned_by
Gets and sets the last borrower to return an item.
Accepts and returns Koha::Patron objects
$item->last_returned_by( $borrowernumber );
Gets the last borrower to return an item.
$last_returned_by = $item->last_returned_by();
=cut
sub last_returned_by {
my ( $self, $borrower ) = @_;
my $items_last_returned_by_rs = Koha::Database->new()->schema()->resultset('ItemsLastBorrower');
if ($borrower) {
return $items_last_returned_by_rs->update_or_create(
{ borrowernumber => $borrower->borrowernumber, itemnumber => $self->id } );
}
else {
unless ( $self->{_last_returned_by} ) {
my $result = $items_last_returned_by_rs->single( { itemnumber => $self->id } );
if ($result) {
$self->{_last_returned_by} = Koha::Patrons->find( $result->get_column('borrowernumber') );
}
}
return $self->{_last_returned_by};
}
my ( $self ) = @_;
my $rs = $self->_result->last_returned_by;
return unless $rs;
return Koha::Patron->_new_from_dbic($rs);
}
=head3 can_article_request

View File

@ -982,6 +982,13 @@ __PACKAGE__->has_many(
}
);
__PACKAGE__->might_have(
"last_returned_by",
"Koha::Schema::Result::ItemsLastBorrower",
{ "foreign.itemnumber" => "self.itemnumber" },
{ cascade_copy => 0, cascade_delete => 0 },
);
use C4::Context;
sub effective_itemtype {
my ( $self ) = @_;