Main Koha release repository https://koha-community.org
Find a file
Jonathan Druart 8d58acc565 Bug 14494: Prevent slow checkout if the patron does not have an expiry date
If a patron has a expiry date set to 9999-12-31 (for organizations for
instance), the checkouts are very slow.

It's caused by 2 different calls to DateTime in CanBookBeIssued:
1/
  DateTime->new( year => 9999, month => 12, day => 31, time_zone => C4::Context->tz );
The time_zone should not be set (as it's done in Koha::DateUtils), set to UTC or floating tz.

2/
  DateTime->compare($today, $expiry_dt)
The comparaison of 2 DT with 1 related to 9999 is very slow, as you can
imagine.

For 1/ we need to call Koha::DateUtils::dt_from_string (actually, we
should never call DateTime directly).
For 2/ we just need to test if the date is != 9999, no need to compare
it in this case.

Test plan:
Before this patch, confirm that the checkouts are slow if the patron has a
dateexpiry set to 9999-12-31.
update borrowers set dateexpiry="9999-12-31" where borrowernumber=42;

After this patch, you should not see any regression when checking out
items to an expired patron and to a valid patron.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>
2015-07-20 10:16:24 -03:00
acqui Bug 14428: Remove C4::Input 2015-07-10 10:53:56 -03:00
admin Bug 14521: SQL injection in local use system preferences 2015-07-20 10:15:27 -03:00
authorities Bug 8399: No need to truncate the marc field text to 22 chars 2015-05-18 12:11:23 -03:00
basket Bug 14330: Remove unused email_sender from sendbasket/sendshelf 2015-06-08 10:38:08 -03:00
C4 Bug 14494: Prevent slow checkout if the patron does not have an expiry date 2015-07-20 10:16:24 -03:00
catalogue Bug 14449: Add authentication check on retrieving item info when receiving 2015-07-20 10:10:59 -03:00
cataloguing Bug 13904: Make unimarc_field_4XX displays usefull 200 subfield data 2015-06-19 11:35:57 -03:00
circ Bug 11882: Add a new button to the checkout confirmation dialog when checking out a reserved item 2015-06-26 15:07:32 -03:00
course_reserves Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
debian Bug 14383: debian: Fix some trivial typos 2015-06-22 17:34:44 -03:00
docs Bug 14383: docs: Fix some typos in documentation 2015-06-22 17:34:46 -03:00
errors Bug 11944: use CGI( -utf8 ) everywhere 2015-01-13 13:07:21 -03:00
etc Bug 14453: (followup) Fix shipped XSLT files 2015-07-08 14:39:04 -03:00
install_misc Bug 14066: Removing more Readonly 2015-05-06 11:05:22 -03:00
installer Bug 3206: (QA followup) missing comma on sysprefs.sql 2015-07-08 18:16:47 -03:00
Koha Bug 9006: Remove AUTOLOAD in C4::Context 2015-07-20 10:11:41 -03:00
koha-tmpl Bug 14303: Fix item search CSV export - obsolete "by" and display of publication year for MARC21 2015-07-10 10:57:20 -03:00
labels Bug 12911: batch_id for new labels batches can be asssigned to several batches 2015-05-14 11:11:03 -03:00
members Bug 14428: Remove C4::Input 2015-07-10 10:53:56 -03:00
misc Bug 13014: [QA Follow-up] Few typos in cronjob 2015-06-24 11:49:13 -03:00
offline_circ Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
opac Bug 14496: Improving opac-detail.pl performances 2015-07-10 10:53:48 -03:00
OpenILS Bug 9239 QA follow-up: remove stray debug code 2013-03-16 21:32:34 -04:00
patron_lists Bug 11944: use CGI( -utf8 ) everywhere 2015-01-13 13:07:21 -03:00
patroncards Bug 14366: Units doesn't get saved usefully for patroncards 2015-07-08 14:47:20 -03:00
plugins Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
reports Bug 9006: Remove AUTOLOAD in C4::Context 2015-07-20 10:11:41 -03:00
reserve Bug 13687: Move hold policy check into CanItemBeReserved 2015-05-19 12:05:50 -03:00
reviews Bug 9978: (followup) Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:43 -03:00
rotating_collections Bug 9978: (followup) Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:43 -03:00
selenium
serials Bug 13662: Fix the serials.receive_serials permissions 2015-06-05 12:53:09 -03:00
services Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
skel Bug 11078: Add locking to rebuild_zebra 2014-02-28 22:21:41 +00:00
sms Bug 11944: use CGI( -utf8 ) everywhere 2015-01-13 13:07:21 -03:00
suggestion Bug 10752: Alert the librarian if the suggestion has not been added 2015-04-28 15:11:42 -03:00
svc Bug 14299: Today's checkouts not always sorting correctly 2015-06-05 12:53:03 -03:00
t Bug 14428: Remove C4::Input 2015-07-10 10:53:56 -03:00
tags Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
test Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
tmp/modified_authorities
tools Bug 14440: get_template_and_user can not have an empty template_name (quote*_ajax.pl) 2015-06-25 14:41:27 -03:00
virtualshelves Bug 14383: Fix some typos in comments and documentation 2015-06-22 17:34:46 -03:00
xt Bug 14383: Fix some typos in comments and documentation 2015-06-22 17:34:46 -03:00
.editorconfig Bug 12545: Add EditorConfig.org file to the source tree 2014-08-22 11:07:45 -03:00
.htaccess
.mailmap (RM followup) .mailmap updates 2015-05-22 17:02:21 -03:00
about.pl Bug 13486: Apache version empty in about page if Apache 2.4 2015-05-22 09:33:02 -03:00
changelanguage.pl Bug 9978: (followup) Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:43 -03:00
edithelp.pl Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
fix-perl-path.PL Bug 9978: (followup) Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:43 -03:00
help.pl Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
INSTALL Bug 7759, update of install files to use background indexing (and some whitespace tidy) 2012-04-20 16:11:52 +02:00
install-CPAN.pl Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
INSTALL.debian Bug 8092 follow-up: Add optional dependency on CHI 2012-06-09 13:08:18 +02:00
INSTALL.fedora7 Bug 11757: remove dependency on POE 2014-02-15 01:38:15 +00:00
INSTALL.opensuse Bug 11757: remove dependency on POE 2014-02-15 01:38:15 +00:00
INSTALL.ubuntu Bug 7764: (follow-up) editorial tweaks 2013-10-04 16:27:55 +00:00
Koha.pm Bug 3206: DBRev 3.21.00.014 2015-07-08 15:15:47 -03:00
koha_perl_deps.pl bug 10548: fix count of missing required dependencies by koha_perl_deps.pl 2013-07-11 14:03:32 +00:00
kohaversion.pl Bug 13758: Move the Koha version from kohaversion.pl 2015-05-07 11:39:04 -03:00
LICENSE Bug 9440 - update Koha's LICENSE file from GPL2 to GPL3 2013-02-12 08:52:10 -05:00
mainpage.pl Bug 8007: Discharge - Glue 2015-04-30 12:33:53 -03:00
Makefile.PL Bug 13758: (QA followup) Make Makefile.PL aware of Koha.pm 2015-05-07 11:42:12 -03:00
MANIFEST.SKIP Bug 9546 : Updating make manifest tardist 2013-02-06 23:54:46 -05:00
README Bug 9440 - update Koha's LICENSE file from GPL2 to GPL3 2013-02-12 08:52:10 -05:00
README.robots
rewrite-config.PL Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00

Koha is a free software integrated library system.

Koha is distributed under the GNU GPL version 3 or later.
Please read the file LICENSE for more details.

To install or upgrade Koha, please see the INSTALL file appropriate
to your platform.

Report bugs at http://bugs.koha-community.org/

Visit the Koha Project website at http://www.koha-community.org/