From 7ceb9988e935165163a720d265f50646969c55de Mon Sep 17 00:00:00 2001 From: Adrien Saurat Date: Tue, 22 Jan 2013 14:46:38 +0100 Subject: [PATCH] Bug 7241: circulation action logs record biblionumber instead of item number Issue log and and circulation logs are incorrectly recording biblionumber instead of item number, creating incorrect logs. This patch corrects this, and modifies the action_logs table in two ways: - the timestamp is not updated anymore with UPDATES (but still automatically filled when INSERTing) - to partially correct the broken logs, the log history is filled with the first found item for each biblio Signed-off-by: Kyle M Hall Signed-off-by: Marcel de Rooy Signed-off-by: Jared Camins-Esakov --- C4/Circulation.pm | 4 ++-- installer/data/mysql/kohastructure.sql | 2 +- installer/data/mysql/updatedatabase.pl | 8 ++++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 05b5b7e42d..b5a5172de1 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -1317,7 +1317,7 @@ sub AddIssue { } } - logaction("CIRCULATION", "ISSUE", $borrower->{'borrowernumber'}, $biblio->{'biblionumber'}) + logaction("CIRCULATION", "ISSUE", $borrower->{'borrowernumber'}, $biblio->{'itemnumber'}) if C4::Context->preference("IssueLog"); } return ($datedue); # not necessarily the same as when it came in! @@ -1885,7 +1885,7 @@ sub AddReturn { }); } - logaction("CIRCULATION", "RETURN", $borrowernumber, $item->{'biblionumber'}) + logaction("CIRCULATION", "RETURN", $borrowernumber, $item->{'itemnumber'}) if C4::Context->preference("ReturnLog"); # FIXME: make this comment intelligible. diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index c74c39bbc5..2909dcd470 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -2524,7 +2524,7 @@ CREATE TABLE `accountoffsets` ( DROP TABLE IF EXISTS `action_logs`; CREATE TABLE `action_logs` ( -- logs of actions taken in Koha (requires that the logs be turned on) `action_id` int(11) NOT NULL auto_increment, -- unique identifier for each action - `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, -- the date and time the action took place + `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP, -- the date and time the action took place `user` int(11) NOT NULL default 0, -- the staff member who performed the action (borrowers.borrowernumber) `module` text, -- the module this action was taken against `action` text, -- the action (includes things like DELETED, ADDED, MODIFY, etc) diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index caa1fc523c..5e10670294 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -6661,6 +6661,14 @@ if ( CheckVersion($DBversion) ) { SetVersion ($DBversion); } +$DBversion = "3.11.00.XXX"; +if ( CheckVersion($DBversion) ) { + $dbh->do("ALTER TABLE action_logs CHANGE timestamp timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;"); + $dbh->do("UPDATE action_logs SET info=(SELECT itemnumber FROM items WHERE biblionumber= action_logs.info LIMIT 1) WHERE module='CIRCULATION' AND action in ('ISSUE','RETURN');"); + print "Upgrade to $DBversion done (Bug 7241: Changing timestamp autoupdate on action_logs; setting items to circulation logs where missing)\n"; + SetVersion($DBversion); +} + =head1 FUNCTIONS -- 2.39.5