Bug 8182 - Problem with overdue fine calculations after upgrade

Items that were overdue and still out as of 5/26 (date of Upgrade) were charged
overdue fines as of 5/26.  When the items DO come back, the overdue fines are
calculated again from the due date to the date of checkin.  Therefore the
patron is being charged double overdue fines from the original date up to 5/26.

This is caused by issues.date_due being changed to a datetime, with the
hour/minute/secons time portion defaulting to 00:00:00. It should be 23::50::00 instead.

This is an unusual patch as it modifies a previous database update. This
make sense because if a install has already been updated past the db rev
update, this fix will be too late. It will only help those that have not
updated past that db revision.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This commit is contained in:
Kyle Hall 2012-06-01 14:30:05 -04:00 committed by Paul Poulain
parent 12c6c94f86
commit 21475a6cbc

View file

@ -5018,6 +5018,7 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$DBversion = "3.07.00.035";
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
$dbh->do("ALTER TABLE issues CHANGE date_due date_due datetime");
$dhb->do("UPDATE issues SET date_due = CONCAT(SUBSTR(date_due,1,11),'23:59:00')");
$dbh->do("ALTER TABLE issues CHANGE returndate returndate datetime");
$dbh->do("ALTER TABLE issues CHANGE lastreneweddate lastreneweddate datetime");
$dbh->do("ALTER TABLE issues CHANGE issuedate issuedate datetime");