INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('TrackLastPatronActivity', '0', 'If set, the field borrowers.lastseen will be updated everytime a patron is seen', NULL, 'YesNo');
});
- print "Upgrade to $DBversion done (Bug 16274 - Make the selfregistration branchcode selection configurable)\n";
+ print "Upgrade to $DBversion done (Bug 16276: Add a new pref TrackLastPatronActivity and new column borrowers.lastseen)\n";
SetVersion($DBversion);
}
INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type) VALUES ('FallbackToSMSIfNoEmail', 0, 'Enable|Disable', 'Send messages by SMS if no patron email is defined', 'YesNo');
});
SetVersion( $DBversion );
- print "Upgrade to $DBversion done (Bug 17047 - Mana knowledge base)\n";
+ print "Upgrade to $DBversion done (Bug 21241 - Add FallbackToSMSIfNoEmail syspref )\n";
}
$DBversion = '18.12.00.010';
print "Upgrade to $DBversion done (Bug 3820 - Update patron modification logs)\n";
}
+$DBversion = '18.12.00.016';
+if( CheckVersion( $DBversion ) ) {
+
+ if ( !column_exists( 'illrequests', 'status_alias' ) ) {
+ # Fresh upgrade, just add the column and constraint
+ $dbh->do( "ALTER TABLE illrequests ADD COLUMN status_alias varchar(80) DEFAULT NULL AFTER status" );
+ } else {
+ # Migrate all existing foreign keys from referencing authorised_values.id
+ # to referencing authorised_values.authorised_value
+ # First remove the foreign key constraint and index
+ if ( foreign_key_exists( 'illrequests', 'illrequests_safk' ) ) {
+ $dbh->do( "ALTER TABLE illrequests DROP FOREIGN KEY illrequests_safk");
+ }
+ if ( index_exists( 'illrequests', 'illrequests_safk' ) ) {
+ $dbh->do( "DROP INDEX illrequests_safk ON illrequests" );
+ }
+ # Now change the illrequests.status_alias column definition from int to varchar
+ $dbh->do( "ALTER TABLE illrequests MODIFY COLUMN status_alias varchar(80)" );
+ # Now replace all references to authorised_values.id with their
+ # corresponding authorised_values.authorised_value
+ my $sth = $dbh->prepare( "SELECT illrequest_id, status_alias FROM illrequests WHERE status_alias IS NOT NULL" );
+ $sth->execute();
+ while (my @row = $sth->fetchrow_array()) {
+ my $r_id = $row[0];
+ my $av_id = $row[1];
+ # Get the authorised value's authorised_value value
+ my ($av_val) = $dbh->selectrow_array( "SELECT authorised_value FROM authorised_values WHERE id = ?", {}, $av_id );
+ # Now update illrequests.status_alias
+ if ($av_val) {
+ $dbh->do( "UPDATE illrequests SET status_alias = ? WHERE illrequest_id = ?", {}, ($av_val, $r_id) );
+ }
+ }
+ }
+ if ( !foreign_key_exists( 'illrequests', 'illrequests_safk' ) ) {
+ $dbh->do( "ALTER TABLE illrequests ADD CONSTRAINT illrequests_safk FOREIGN KEY (status_alias) REFERENCES authorised_values(authorised_value) ON UPDATE CASCADE ON DELETE SET NULL" );
+ }
+ $dbh->do( "INSERT IGNORE INTO authorised_value_categories SET category_name = 'ILLSTATUS'");
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 20581 - Allow manual selection of custom ILL request statuses)\n";
+}
+
+$DBversion = '18.12.00.017';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO account_offset_types ( type ) VALUES ( 'fine_increase' ), ( 'fine_decrease' );
+ });
+ $dbh->do(q{
+ UPDATE account_offsets SET type = 'fine_increase' WHERE type = 'Fine Update' AND amount > 0;
+ });
+ $dbh->do(q{
+ UPDATE account_offsets SET type = 'fine_decrease' WHERE type = 'Fine Update' AND amount < 0;
+ });
+
+ $dbh->do(q{
+ DELETE FROM account_offset_types WHERE type = 'Fine Update';
+ });
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 21747 - Update account_offset_types to include 'fine_increase' and 'fine_decrease')\n";
+}
+
# SEE bug 13068
# if there is anything in the atomicupdate, read and execute it.