Bug 6801: checkoverdues returns unnecessary fields, causing slowness
authorIan Walls <ian.walls@bywatersolutions.com>
Wed, 31 Aug 2011 18:43:09 +0000 (14:43 -0400)
committerChris Cormack <chrisc@catalyst.net.nz>
Mon, 26 Sep 2011 20:43:25 +0000 (09:43 +1300)
commit26acaf3dfa24598f9cce1d647079f779e714f874
treea6775167dd2a8cf1eeb8cdcbd0d33a510c1c5b01
parentd5a886201cd5e2f7615b92ad727ba136eb105bab
Bug 6801: checkoverdues returns unnecessary fields, causing slowness

Explicitly specifies which fields to return in C4::Overdues::checkoverdues
SQL:  all of biblio, items, and issues, and everything in biblioitems
EXCEPT marc, marcxml and timestamp.

Bug 6801: member details page taking long time to load when many checkouts present

This patch removes the call to GetMemberDetails in build_issue_data; this heavy-weight
subroutine was being run for every single item a patron (or their relatives) have checked out.
Instead, the borrowers first name, surname and cardnumber are added to the GetPendingIssues query.
I believe this is reasonable since GetPendingIssues can now return issues for multiple borrowers.

Also corrects the $borrowernumber used for GetIssuesCharges and CanItemBeRenewed; was using the borrower whose
page we were on, NOT the borrower of that specific item (which would be different in the Relatives Checkouts tab).

Template calls to [% scope.borrowername %] are now broken up into [% scope.firstname %] [% scope.surname %].

Signed-off-by: Liz Rea <lrea@nekls.org>
On my test data, a patron with 180 checkouts (without this patch) would take more than a minute to bring back the circulation.pl and moremember.pl pages.
With this patch, the time is reduced to 5 or so seconds.

Big ups to Ian for tenaciously hunting this one down.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
C4/Members.pm
C4/Overdues.pm
circ/circulation.pl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt
members/moremember.pl