print "Upgrade to $DBversion done (Bug 21890 - Patron password reset by category)\n";
}
+$DBversion = '18.12.00.045';
+if( CheckVersion( $DBversion ) ) {
+
+ if ( !column_exists( 'categories', 'change_password' ) ) {
+ $dbh->do(q{
+ ALTER TABLE categories
+ ADD COLUMN change_password TINYINT(1) NULL DEFAULT NULL
+ AFTER reset_password
+ });
+ }
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 10796 - Patron password change by category)\n";
+}
+
+$DBversion = '18.12.00.046';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( "UPDATE systempreferences SET value = 'default' WHERE variable = 'XSLTResultsDisplay' AND value = ''" );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22695 - Remove non-XSLT search results view from the staff client)\n";
+}
+
+$DBversion = '18.12.00.047';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q|
+ INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('LibrisKey', '', 'This key must be obtained at http://api.libris.kb.se/. It is unique for the IP of the server.', NULL, 'Free');
+ |);
+ $dbh->do(q|
+ INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('LibrisURL', 'http://api.libris.kb.se/bibspell/', 'This is the base URL for the Libris spellchecking API.',NULL,'Free');
+ |);
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 14557: Add Libris spellchecking system preferences)\n";
+}
+
+$DBversion = '18.12.00.048';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( q{
+ INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type)
+ VALUES ('NoRenewalBeforePrecision', 'exact_time', 'Calculate "No renewal before" based on date or exact time. Only relevant for loans calculated in days, hourly loans are not affected.', 'date|exact_time', 'Choice');
+ });
+ $dbh->do("UPDATE systempreferences SET value='exact_time' WHERE variable='NoRenewalBeforePrecision' AND value IS NULL;" );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22044 - Set a default value for NoRenewalBeforePrecision)\n";
+}
+
+$DBversion = '18.12.00.049';
+if( CheckVersion( $DBversion ) ) {
+
+ $dbh->do(q{
+ ALTER TABLE borrowers
+ ADD COLUMN flgAnonymized tinyint DEFAULT 0
+ AFTER overdrive_auth_token
+ }) if !column_exists('borrowers', 'flgAnonymized');
+
+ $dbh->do(q{
+ ALTER TABLE deletedborrowers
+ ADD COLUMN flgAnonymized tinyint DEFAULT 0
+ AFTER overdrive_auth_token
+ }) if !column_exists('deletedborrowers', 'flgAnonymized');
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 21336 - Add field flgAnonymized)\n";
+}
+
+$DBversion = '18.12.00.050';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( q|
+INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` )
+VALUES
+('UnsubscribeReflectionDelay','',NULL,'Delay for locking unsubscribers', 'Integer'),
+('PatronAnonymizeDelay','',NULL,'Delay for anonymizing patrons', 'Integer'),
+('PatronRemovalDelay','',NULL,'Delay for removing anonymized patrons', 'Integer')
+ |);
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 21336 - Add preferences)\n";
+}
+
+$DBversion = '18.12.00.051';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( "UPDATE borrowers SET login_attempts = ? WHERE login_attempts > ?", undef, C4::Context->preference('FailedLoginAttempts'), C4::Context->preference('FailedLoginAttempts') );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 21336 - Reset login_attempts)\n";
+}
+
+$DBversion = '18.12.00.052';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
+ ('OpacMoreSearches', '', NULL, 'Add additional elements to the OPAC more searches bar', 'Textarea')
+ } );
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22311 - Add a SysPref to allow adding content to the #moresearches div in the opac)\n";
+}
+
+$DBversion = '18.12.00.053';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES
+ ('AutoReturnCheckedOutItems', '0', '', 'If disabled, librarian must confirm return of checked out item when checking out to another.', 'YesNo');
+ });
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 17171 - Add a syspref to allow currently issued items to be issued to a new patron without staff confirmation)\n";
+}
+
+$DBversion = '18.12.00.054';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+ INSERT IGNORE permissions (module_bit, code, description)
+ VALUES
+ (9,'advanced_editor','Use the advanced cataloging editor')
+ });
+ if( C4::Context->preference('EnableAdvancedCatalogingEditor') ){
+ $dbh->do(q{
+ INSERT INTO user_permissions (borrowernumber, module_bit, code)
+ SELECT borrowernumber, 9, 'advanced_editor' FROM borrowers WHERE borrowernumber IN (SELECT DISTINCT borrowernumber FROM user_permissions WHERE code = 'edit_catalogue');
+ });
+ }
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 20128: Add permission for Advanced Cataloging Editor)\n";
+}
+
+$DBversion = '18.12.00.055';
+if ( CheckVersion($DBversion) ) {
+
+ $dbh->do(qq{
+ UPDATE
+ `account_offset_types`
+ SET
+ type = 'OVERDUE'
+ WHERE
+ type = 'Fine';
+ });
+
+ $dbh->do(qq{
+ UPDATE
+ `account_offset_types`
+ SET
+ type = 'OVERDUE_INCREASE'
+ WHERE
+ type = 'fine_increase';
+ });
+
+ $dbh->do(qq{
+ UPDATE
+ `account_offset_types`
+ SET
+ type = 'OVERDUE_DECREASE'
+ WHERE
+ type = 'fine_decrease';
+ });
+
+ if ( column_exists( 'accountlines', 'accounttype' ) ) {
+ $dbh->do(
+ qq{
+ ALTER TABLE `accountlines`
+ CHANGE COLUMN `accounttype`
+ `accounttype` varchar(16) DEFAULT NULL;
+ }
+ );
+ }
+
+ $dbh->do(qq{
+ UPDATE
+ accountlines
+ SET
+ accounttype = 'OVERDUE',
+ status = 'UNRETURNED'
+ WHERE
+ accounttype = 'FU';
+ });
+
+ $dbh->do(qq{
+ UPDATE
+ accountlines
+ SET
+ accounttype = 'OVERDUE',
+ status = 'FORGIVEN'
+ WHERE
+ accounttype = 'FFOR';
+ });
+
+ $dbh->do(qq{
+ UPDATE
+ accountlines
+ SET
+ accounttype = 'OVERDUE',
+ status = 'RETURNED'
+ WHERE
+ accounttype = 'F';
+ });
+ SetVersion($DBversion);
+ print "Upgrade to $DBversion done (Bug 22521 - Update accountlines.accounttype to varchar(16), and map new statuses)\n";
+}
+
+$DBversion = '18.12.00.056';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( "UPDATE systempreferences SET explanation = 'This syspref allows to define custom rules for hiding specific items at the OPAC. See http://wiki.koha-community.org/wiki/OpacHiddenItems for more information.' WHERE variable = 'OpacHiddenItems'");
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 8701 - Update OpacHiddenItems system preference description)\n";
+}
+
+$DBversion = '18.12.00.057';
+if( CheckVersion( $DBversion ) ) {
+ if( column_exists('statistics', 'associatedborrower') ) {
+ $dbh->do(q{ ALTER TABLE statistics DROP COLUMN associatedborrower });
+ }
+ if( column_exists('statistics', 'usercode') ) {
+ $dbh->do(q{ ALTER TABLE statistics DROP COLUMN usercode });
+ }
+
+ SetVersion($DBversion);
+ print "Upgrade to $DBversion done (Bug 13795 - Delete unused fields from statistics table)\n";
+}
+
+$DBversion = '18.12.00.058';
+if( CheckVersion( $DBversion ) ) {
+ my $opaclang = C4::Context->preference("opaclanguages");
+ my @langs;
+ push @langs, split ( '\,', $opaclang );
+ # Get any existing value from the OpacNavRight system preference
+ my ($OpacNavRight) = $dbh->selectrow_array( q|
+ SELECT value FROM systempreferences WHERE variable='OpacNavRight';
+ |);
+ if( $OpacNavRight ){
+ # If there is a value in the OpacNavRight preference, insert it into opac_news
+ $dbh->do("INSERT INTO opac_news (branchcode, lang, title, content ) VALUES (NULL, 'OpacNavRight_$langs[0]', '', '$OpacNavRight')");
+ }
+ # Remove the OpacNavRight system preference
+ $dbh->do("DELETE FROM systempreferences WHERE variable='OpacNavRight'");
+ SetVersion ($DBversion);
+ print "Upgrade to $DBversion done (Bug 22318: Move contents of OpacNavRight preference to Koha news system)\n";
+}
+
+$DBversion = '18.12.00.059';
+if( CheckVersion( $DBversion ) ) {
+ if( column_exists( 'import_records', 'z3950random' ) ) {
+ $dbh->do( "ALTER TABLE import_records DROP COLUMN z3950random" );
+ }
+
+ # Always end with this (adjust the bug info)
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22532 - Remove import_records z3950random column)\n";
+}
+
+$DBversion = '18.12.00.060';
+if ( CheckVersion($DBversion) ) {
+
+ my $rows = $dbh->do(
+ qq{
+ UPDATE `accountlines`
+ SET
+ `accounttype` = 'L',
+ `status` = 'REPLACED'
+ WHERE
+ `accounttype` = 'Rep'
+ }
+ );
+
+ SetVersion($DBversion);
+ printf "Upgrade to $DBversion done (Bug 22564 - Fix accounttype 'Rep' - %d updated)\n", $rows;
+}
+
+$DBversion = '18.12.00.061';
+if( CheckVersion( $DBversion ) ) {
+
+ if ( column_exists( 'borrowers', 'flgAnonymized' ) ) {
+ $dbh->do(q{
+ UPDATE borrowers SET flgAnonymized = 0 WHERE flgAnonymized IS NULL
+ });
+ $dbh->do(q{
+ ALTER TABLE borrowers
+ CHANGE `flgAnonymized` `anonymized` TINYINT(1) NOT NULL DEFAULT 0
+ });
+ }
+
+ if ( column_exists( 'deletedborrowers', 'flgAnonymized' ) ) {
+ $dbh->do(q{
+ UPDATE deletedborrowers SET flgAnonymized = 0 WHERE flgAnonymized IS NULL
+ });
+ $dbh->do(q{
+ ALTER TABLE deletedborrowers
+ CHANGE `flgAnonymized` `anonymized` TINYINT(1) NOT NULL DEFAULT 0
+ });
+ }
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 21336 - (follow-up) Rename flgAnonymized column)\n";
+}
+
+$DBversion = '18.12.00.062';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( q|
+ UPDATE search_marc_map SET marc_field='007_/0'
+ WHERE marc_type IN ('marc21', 'normarc') AND marc_field='007_/1' AND id IN
+ (SELECT search_marc_map_id FROM search_marc_to_field WHERE search_field_id IN
+ (SELECT id FROM search_field WHERE label='ff7-00')
+ )
+ |);
+
+ $dbh->do( q|
+ UPDATE search_marc_map SET marc_field='007_/1'
+ WHERE marc_type IN ('marc21', 'normarc') AND marc_field='007_/2' AND id IN
+ (SELECT search_marc_map_id FROM search_marc_to_field WHERE search_field_id IN
+ (SELECT id FROM search_field WHERE label='ff7-01')
+ )
+ |);
+
+ $dbh->do( q|
+ UPDATE search_marc_map SET marc_field='007_/2'
+ WHERE marc_type IN ('marc21', 'normarc') AND marc_field='007_/3' AND id IN
+ (SELECT search_marc_map_id FROM search_marc_to_field WHERE search_field_id IN
+ (SELECT id FROM search_field WHERE label='ff7-02')
+ )
+ |);
+
+ # N.B. ff7-01-02 really is 00-01!
+ $dbh->do( q|
+ UPDATE search_marc_map SET marc_field='007_/0-1'
+ WHERE marc_type IN ('marc21', 'normarc') AND marc_field='007_/1-2' AND id IN
+ (SELECT search_marc_map_id FROM search_marc_to_field WHERE search_field_id IN
+ (SELECT id FROM search_field WHERE label='ff7-01-02')
+ )
+ |);
+
+ $dbh->do( q|
+ UPDATE search_marc_map SET marc_field='008_/0-5'
+ WHERE marc_type IN ('marc21', 'normarc') AND marc_field='008_/1-5' AND id IN
+ (SELECT search_marc_map_id FROM search_marc_to_field WHERE search_field_id IN
+ (SELECT id FROM search_field WHERE label='date-entered-on-file')
+ )
+ |);
+
+ $dbh->do( q|
+ UPDATE search_marc_map SET marc_field='leader_/0-4'
+ WHERE marc_type IN ('marc21', 'normarc') AND marc_field='leader_/1-5' AND id IN
+ (SELECT search_marc_map_id FROM search_marc_to_field WHERE search_field_id IN
+ (SELECT id FROM search_field WHERE label='llength')
+ )
+ |);
+
+ # Always end with this (adjust the bug info)
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22339 - Fix search field mappings of MARC fixed fields)\n";
+}
+
+$DBversion = '18.12.00.063';
+if ( CheckVersion($DBversion) ) {
+
+ my $types_map = {
+ 'Writeoff' => 'W',
+ 'Payment' => 'Pay',
+ 'Lost Item' => 'CR',
+ 'Manual Credit' => 'C',
+ 'Forgiven' => 'FOR'
+ };
+
+ my $sth = $dbh->prepare( "SELECT accountlines_id FROM accountlines WHERE accounttype = 'VOID'" );
+ my $sth2 = $dbh->prepare( "SELECT type FROM account_offsets WHERE credit_id = ? ORDER BY created_on LIMIT 1" );
+ my $sth3 = $dbh->prepare( "UPDATE accountlines SET accounttype = ?, status = 'VOID' WHERE accountlines_id = ?" );
+ $sth->execute();
+ while (my $row = $sth->fetchrow_hashref) {
+ $sth2->execute($row->{accountlines_id});
+ my $result = $sth2->fetchrow_hashref;
+ my $type = $types_map->{$result->{'type'}} // 'Pay';
+ $sth3->execute($type,$row->{accountlines_id});
+ }
+
+ SetVersion($DBversion);
+ print "Upgrade to $DBversion done (Bug 22511 - Update existing VOID accountlines)\n";
+}
+
# SEE bug 13068
# if there is anything in the atomicupdate, read and execute it.