|
Lines 13-50
if( CheckVersion( $DBversion ) ) {
Link Here
|
| 13 |
$dbh->do( q| ALTER TABLE old_issues ADD CONSTRAINT `old_issues_ibfk_borrowers_borrowernumber` FOREIGN KEY (`issuer`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE CASCADE | ); |
13 |
$dbh->do( q| ALTER TABLE old_issues ADD CONSTRAINT `old_issues_ibfk_borrowers_borrowernumber` FOREIGN KEY (`issuer`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE CASCADE | ); |
| 14 |
} |
14 |
} |
| 15 |
|
15 |
|
| 16 |
# Now attempt to migrate previously action logged issues into issues.issuer |
|
|
| 17 |
# We assume that an item issued to a borrower on the same day is the same issue |
| 18 |
# |
| 19 |
# Get existing action logs |
| 20 |
# - user = issuer |
| 21 |
# - object = borrowernumber |
| 22 |
# - info = itemnumber |
| 23 |
my $action_logs = $dbh->selectall_arrayref("SELECT DATE(timestamp) AS dt, user, object, info FROM action_logs WHERE module='CIRCULATION' and action='ISSUE'", { Slice => {} }); |
| 24 |
|
| 25 |
foreach my $log( @{$action_logs} ) { |
| 26 |
# Look for an issue of this item, to this borrower, on this day |
| 27 |
# We're doing DATE comparison in the database to avoid invoking |
| 28 |
# DateTime and it's performance sapping ways... |
| 29 |
# |
| 30 |
# If we're dealing with an actual borrower |
| 31 |
if ($log->{user} != 0) { |
| 32 |
my $done_issue = $dbh->do( |
| 33 |
"UPDATE issues SET issuer = ? WHERE DATE(timestamp) = ? AND borrowernumber = ? AND itemnumber = ?", |
| 34 |
undef, |
| 35 |
( $log->{user}, $log->{dt}, $log->{object}, $log->{info} ) |
| 36 |
); |
| 37 |
# If we didn't find the issue in 'issues', look in 'old_issues' |
| 38 |
if (!$done_issue) { |
| 39 |
$dbh->do( |
| 40 |
"UPDATE old_issues SET issuer = ? WHERE DATE(timestamp) = ? AND borrowernumber = ? AND itemnumber = ?", |
| 41 |
undef, |
| 42 |
( $log->{user}, $log->{dt}, $log->{object}, $log->{info} ) |
| 43 |
); |
| 44 |
} |
| 45 |
} |
| 46 |
} |
| 47 |
|
| 48 |
SetVersion( $DBversion ); |
16 |
SetVersion( $DBversion ); |
| 49 |
print "Upgrade to $DBversion done (Bug 23916 - Add issues.issuer)\n"; |
17 |
print "Upgrade to $DBversion done (Bug 23916 - Add issues.issuer)\n"; |
| 50 |
} |
18 |
} |
| 51 |
- |
|
|