From 7512da93fa29c0e90c5443be00a88e7c5d8637d4 Mon Sep 17 00:00:00 2001
From: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Date: Wed, 30 Aug 2023 13:12:31 +0000
Subject: [PATCH] Bug 34609: Add biblio method to Old::Hold

Test plan, clean k-t-d:

1) Add a reserve to koha/koha user, mysql run:
insert into reserves(borrowernumber, reservedate, branchcode, cancellationdate, timestamp, biblionumber)
VALUES (51, '2022-09-23', 'CPL', '2022-09-23', '2022-09-23 15:46:21', 76);

2) Add an old_reserve to koha/koha user, mysql run:
insert into old_reserves(borrowernumber, reservedate, branchcode, cancellationdate, timestamp, reserve_id)
VALUES (51, '2022-09-23', 'CPL', '2022-09-23', '2022-09-23 15:46:21', 1);

3) Visit holdshistory on either OPAC (requires OPACHoldsHistory sys pref) or STAFF
STAFF/cgi-bin/koha/members/holdshistory.pl?borrowernumber=1
OPAC//cgi-bin/koha/opac-holdshistory.pl

4) Notice it blows up with a 500 error
5) Repeat step 3

Signed-off-by: Ray Delahunty <r.delahunty@arts.ac.uk>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
---
 Koha/Old/Hold.pm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/Koha/Old/Hold.pm b/Koha/Old/Hold.pm
index aa164fcd2aa..91f2adb39c6 100644
--- a/Koha/Old/Hold.pm
+++ b/Koha/Old/Hold.pm
@@ -34,6 +34,19 @@ This object represents a hold that has been filled or canceled
 
 =head2 Class methods
 
+=head3 biblio
+
+Returns the related Koha::Biblio object for this old hold
+
+=cut
+
+sub biblio {
+    my ($self) = @_;
+    my $rs = $self->_result->biblionumber;
+    return unless $rs;
+    return Koha::Biblio->_new_from_dbic($rs);
+}
+
 =head3 anonymize
 
     $old_hold->anonymize();
-- 
2.25.1