Currently we fetch the checkout, patron, and item when calculating the soonest renewal date Lets instead pass the checkout object and fetch from there, allowing to prefetch in the calling routine
Created attachment 131048 [details] [review] Bug 30168: Use checkout object in GetSoonestRenewDate
Created attachment 131049 [details] [review] Bug 30168: Embed patron and item in issue for passing to GetSoonestRenewDate
(In reply to Nick Clemens from comment #2) > Created attachment 131049 [details] [review] [review] > Bug 30168: Embed patron and item in issue for passing to GetSoonestRenewDate Obsoleting, see bug 30169
Created attachment 134603 [details] [review] Bug 30168: Use checkout object in GetSoonestRenewDate
Created attachment 140969 [details] [review] Bug 30168: Use checkout object in GetSoonestRenewDate Signed-off-by: David Nind <david@davidnind.com>
I've signed off on the basis that the tests pass before and after the patch is applied: prove t/db_dependent/Circulation.t Let me know if there is anything else required to test this.
I also ran similar tests to bug 30167, for what it is worth. - Tested on 09/25/2022 (American date format) with . 'no renewal before' set to 3 . 'loan period' set to 5 - Checked out on date is 09/25/2022 05:10 - For the patron from the checkouts: No renewal before 04/27/2022 - When trying to renew from Circulation > Renew, the message is "Intermediate Perl / ( 39999000005134 ) cannot be renewed before 09/27/2022." - When trying to renew by checking out to the same patron again, the message is: "No more renewals possible" - Date is calculated correctly including the current day (3 days - 25th, 26th + 27th)
(In reply to David Nind from comment #7) > I also ran similar tests to bug 30167, for what it is worth. > > - Tested on 09/25/2022 (American date format) with > . 'no renewal before' set to 3 > . 'loan period' set to 5 > - Checked out on date is 09/25/2022 05:10 > - For the patron from the checkouts: No renewal before 04/27/2022 > - When trying to renew from Circulation > Renew, the message is > "Intermediate Perl / ( 39999000005134 ) cannot be renewed before 09/27/2022." > - When trying to renew by checking out to the same patron again, the message > is: "No more renewals possible" > - Date is calculated correctly including the current day (3 days - 25th, > 26th + 27th) Thanks David, your notes are always very helpful!
Created attachment 141554 [details] [review] Bug 30168: Use checkout object in GetSoonestRenewDate Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Created attachment 141555 [details] [review] Bug 30168: (QA follow-up) Fix POD The POD had $issue in the example, but $checkout in explanation. Also standardized a bit of other terminology. (borrower, issue) = (patron, checkout) Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Pushed to master for 22.11. Nice work everyone, thanks!