unless ( foreign_key_exists('aqorders', 'aqorders_created_by') ) {
$dbh->do( "ALTER TABLE aqorders ADD CONSTRAINT aqorders_created_by FOREIGN KEY (created_by) REFERENCES borrowers (borrowernumber) ON DELETE SET NULL ON UPDATE CASCADE;" );
}
- $dbh->do( "UPDATE aqorders, aqbasket SET aqorders.created_by = aqbasket.authorisedby WHERE aqorders.basketno = aqbasket.basketno AND aqorders.created_by IS NULL;" );
+ $dbh->do( "UPDATE aqbasket LEFT JOIN borrowers ON ( aqbasket.authorisedby = borrowers.borrowernumber ) SET aqbasket.authorisedby = NULL WHERE borrowers.borrowernumber IS NULL;" );
+ $dbh->do( "UPDATE aqorders LEFT JOIN aqbasket ON ( aqorders.basketno = aqbasket.basketno ) SET aqorders.created_by = aqbasket.authorisedby WHERE aqorders.created_by IS NULL;" );
}
SetVersion( $DBversion );
print "Upgrade to $DBversion done (Bug 12395 - Save order line's creator)\n";
print "Upgrade to $DBversion done (Bug 12166 - Remove 'Reserve Charge' text from accountlines description)\n";
}
+$DBversion = '18.12.00.041';
+if( CheckVersion( $DBversion ) ) {
+ my $table_sth = $dbh->prepare('SHOW CREATE TABLE `search_marc_map`');
+ $table_sth->execute();
+ my @table = $table_sth->fetchrow_array();
+ unless ( $table[1] =~ /`marc_field`.*COLLATE utf8mb4_bin/ ) { #catches utf8mb4 collated tables
+ $dbh->do("ALTER TABLE `search_marc_map` MODIFY `marc_field` VARCHAR(255) NOT NULL COLLATE utf8mb4_bin COMMENT 'the MARC specifier for this field'");
+ }
+
+ # Always end with this (adjust the bug info)
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 19670 - Change collation of marc_field to allow mixed case search field mappings)\n";
+}
+
+$DBversion = '18.12.00.042';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( "UPDATE systempreferences SET value = 'default' WHERE variable = 'XSLTDetailsDisplay' AND value = ''" );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 29891 - Remove non-XSLT detail view in the staff client)\n";
+}
+
+$DBversion = '18.12.00.043';
+if ( CheckVersion($DBversion) ) {
+ $dbh->do("UPDATE accountlines SET description = REPLACE(description, 'Lost Item ', '') WHERE description LIKE 'Lost Item %'");
+ SetVersion($DBversion);
+ print "Upgrade to $DBversion done (Bug 21953 - Remove 'Lost Item' text from accountlines description)\n";
+}
+
+$DBversion = '18.12.00.044';
+if( CheckVersion( $DBversion ) ) {
+
+ if ( !column_exists( 'categories', 'reset_password' ) ) {
+ $dbh->do(q{
+ ALTER TABLE categories
+ ADD COLUMN reset_password TINYINT(1) NULL DEFAULT NULL
+ AFTER checkprevcheckout
+ });
+ }
+
+ SetVersion( $DBversion );
+ 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, ?, '', ?)", undef, "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";
+}
+
+$DBversion = '18.12.00.064';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES ('UpdateItemLocationOnCheckin', 'PROC: _PERM_\n', 'NULL', 'This is a list of value pairs.\n Examples:\n PROC: FIC - causes an item in the Processing Center location to be updated into the Fiction location on check in.\n FIC: GEN - causes an item in the Fiction location to be updated into the General stacks location on check in.\n _BLANK_:FIC - causes an item that has no location to be updated into the Fiction location on check in.\nFIC: _BLANK_ - causes an item in location FIC to be updated to a blank location on check in.\n_ALL_:FIC - causes all items to be updated into the Fiction location on check in.\nPROC: _PERM_ - causes an item that is in the Processing Center to be updated to it''s permanent location.\nGeneral rule: if the location value on the left matches the item''s current location, it will be updated to match the location value on the right.\nNote: PROC and CART are special values, for these locations only can location and permanent_location differ, in all other cases an update will affect both. Items in the CART location will be returned to their permanent location on checkout.\nThe special term _BLANK_ may be used on either side of a value pair to update or remove the location from items with no location assigned. The special term _ALL_ is used on the left side of the colon (:) to affect all items.\nThe special term _PERM_ is used on the right side of the colon (:) to return items to their permanent location.', 'Free');
+ });
+ $dbh->do(q{
+ UPDATE systempreferences s1, (SELECT IF(value,'PROC: CART\n','') AS p2c FROM systempreferences WHERE variable='InProcessingToShelvingCart') s2 SET s1.value= CONCAT(s2.p2c, REPLACE(s1.value,'PROC: _PERM_\n','') ) WHERE s1.variable='UpdateItemLocationOnCheckin' AND s1.value NOT LIKE '%PROC: CART%';
+ });
+ $dbh->do(q{
+ DELETE FROM systempreferences WHERE variable='InProcessingToShelvingCart';
+ });
+ $dbh->do(q{
+ UPDATE systempreferences s1, (SELECT IF(value,'_ALL_: CART\n','') AS rtc FROM systempreferences WHERE variable='ReturnToShelvingCart') s2 SET s1.value= CONCAT(s2.rtc,s1.value) WHERE s1.variable='UpdateItemLocationOnCheckin' AND s1.value NOT LIKE '%_ALL_: CART%';
+ });
+ $dbh->do(q{
+ DELETE FROM systempreferences WHERE variable='ReturnToShelvingCart';
+ });
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 14576: Add UpdateItemLocationOnCheckin syspref)\n";
+}
+
+$DBversion = '18.12.00.065';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( q{
+ INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` )
+ SELECT 'IndependentBranchesTransfers', value, NULL, 'Allow non-superlibrarians to transfer items between libraries','YesNo'
+ FROM systempreferences WHERE variable = 'IndependentBranches'
+ });
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 10300 - Allow transferring of items to be have separate IndependentBranches syspref)\n";
+}
+
+$DBversion = '18.12.00.066';
+if ( CheckVersion($DBversion) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO `systempreferences` (`variable`, `value`, `explanation`, `options`, `type`) VALUES
+ ('OpenURLResolverURL', '', 'URL of OpenURL Resolver', NULL, 'Free'),
+ ('OpenURLText', '', 'Text of OpenURL links (or image title if OpenURLImageLocation is defined)', NULL, 'Free'),
+ ('OpenURLImageLocation', '', 'Location of image for OpenURL links', NULL, 'Free'),
+ ('OPACShowOpenURL', '', 'Enable display of OpenURL links in OPAC search results and detail page', NULL, 'YesNo'),
+ ('OPACOpenURLItemTypes', '', 'Show the OpenURL link only for these item types', NULL, 'Free');
+ });
+
+ SetVersion($DBversion);
+ print
+"Upgrade to $DBversion done (Bug 8995 - Add new preferences for OpenURLResolvers)\n";
+}
+
+$DBversion = '18.12.00.067';
+if ( CheckVersion($DBversion) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type)
+ VALUES ('SendAllEmailsTo','',NULL,'All emails will be redirected to this email if it is not empty','free');
+ });
+ SetVersion($DBversion);
+ print
+"Upgrade to $DBversion done (Bug 8000 - Add new preferences for SendAllEmailsTo)\n";
+}
+
+$DBversion = '18.12.00.068';
+if ( CheckVersion($DBversion) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES
+ ('AllowRenewalOnHoldOverride','0','','If on, allow items on hold to be renewed with a specified due date','YesNo');
+ });
+ SetVersion($DBversion);
+ print "Upgrade to $DBversion done (Bug 7088: Cannot renew items on hold even with override)\n";
+}
+
+$DBversion = '18.12.00.069';
+if( CheckVersion( $DBversion ) ) {
+
+ $dbh->do(q{
+ INSERT INTO plugin_data
+ (plugin_class, plugin_key, plugin_value)
+ SELECT
+ plugin_class,
+ '__ENABLED__',
+ 1
+ FROM plugin_data
+ WHERE plugin_key='__INSTALLED_VERSION__'
+ });
+
+ # Always end with this (adjust the bug info)
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22053 - enable all plugins)\n";
+}
+
+$DBversion = '18.12.00.070';
+if ( CheckVersion($DBversion) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO systempreferences
+ ( `variable`, `value`, `options`, `explanation`, `type` )
+ VALUES
+ ('SelfCheckAllowByIPRanges','',NULL,'(Leave blank if not used. Use ranges or simple ip addresses separated by spaces, like <code>192.168.1.1 192.168.0.0/24</code>.)','Short');
+ });
+ SetVersion($DBversion);
+ print "Upgrade to $DBversion done (Bug 14407 - Limit web-based self-checkout to specific IP addresses)\n";
+}
+
+$DBversion = '18.12.00.071';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+INSERT IGNORE INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES
+('circulation', 'ACCOUNT_CREDIT', '', 'Account payment', 0, 'Account payment', '<table>
+[% IF ( LibraryName ) %]
+ <tr>
+ <th colspan="4" class="centerednames">
+ <h3>[% LibraryName | html %]</h3>
+ </th>
+ </tr>
+[% END %]
+ <tr>
+ <th colspan="4" class="centerednames">
+ <h2><u>Fee receipt</u></h2>
+ </th>
+ </tr>
+ <tr>
+ <th colspan="4" class="centerednames">
+ <h2>[% Branches.GetName( patron.branchcode ) | html %]</h2>
+ </th>
+ </tr>
+ <tr>
+ <th colspan="4">
+ Received with thanks from [% patron.firstname | html %] [% patron.surname | html %] <br />
+ Card number: [% patron.cardnumber | html %]<br />
+ </th>
+ </tr>
+ <tr>
+ <th>Date</th>
+ <th>Description of charges</th>
+ <th>Note</th>
+ <th>Amount</th>
+ </tr>
+
+ [% FOREACH account IN accounts %]
+ <tr class="highlight">
+ <td>[% account.date | $KohaDates %]</td>
+ <td>
+ [% PROCESS account_type_description account=account %]
+ [%- IF account.description %], [% account.description | html %][% END %]
+ </td>
+ <td>[% account.note | html %]</td>
+ [% IF ( account.amountcredit ) %]<td class="credit">[% ELSE %]<td class="debit">[% END %][% account.amount | $Price %]</td>
+ </tr>
+
+ [% END %]
+<tfoot>
+ <tr>
+ <td colspan="3">Total outstanding dues as on date: </td>
+ [% IF ( totalcredit ) %]<td class="credit">[% ELSE %]<td class="debit">[% END %][% total | $Price %]</td>
+ </tr>
+</tfoot>
+</table>', 'print', 'default');
+ });
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22809 - Move 'ACCOUNT_CREDIT' from template to a slip)\n";
+}
+
+$DBversion = '18.12.00.072';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+INSERT IGNORE INTO `letter` (`module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content`, `message_transport_type`, `lang`) VALUES
+('circulation', 'ACCOUNT_DEBIT', '', 'Account fee', 0, 'Account fee', '<table>
+ [% IF ( LibraryName ) %]
+ <tr>
+ <th colspan="5" class="centerednames">
+ <h3>[% LibraryName | html %]</h3>
+ </th>
+ </tr>
+ [% END %]
+
+ <tr>
+ <th colspan="5" class="centerednames">
+ <h2><u>INVOICE</u></h2>
+ </th>
+ </tr>
+ <tr>
+ <th colspan="5" class="centerednames">
+ <h2>[% Branches.GetName( patron.branchcode ) | html %]</h2>
+ </th>
+ </tr>
+ <tr>
+ <th colspan="5" >
+ Bill to: [% patron.firstname | html %] [% patron.surname | html %] <br />
+ Card number: [% patron.cardnumber | html %]<br />
+ </th>
+ </tr>
+ <tr>
+ <th>Date</th>
+ <th>Description of charges</th>
+ <th>Note</th>
+ <th style="text-align:right;">Amount</th>
+ <th style="text-align:right;">Amount outstanding</th>
+ </tr>
+
+ [% FOREACH account IN accounts %]
+ <tr class="highlight">
+ <td>[% account.date | $KohaDates%]</td>
+ <td>
+ [% PROCESS account_type_description account=account %]
+ [%- IF account.description %], [% account.description | html %][% END %]
+ </td>
+ <td>[% account.note | html %]</td>
+ [% IF ( account.amountcredit ) %]<td class="credit">[% ELSE %]<td class="debit">[% END %][% account.amount | $Price %]</td>
+ [% IF ( account.amountoutstandingcredit ) %]<td class="credit">[% ELSE %]<td class="debit">[% END %][% account.amountoutstanding | $Price %]</td>
+ </tr>
+ [% END %]
+
+ <tfoot>
+ <tr>
+ <td colspan="4">Total outstanding dues as on date: </td>
+ [% IF ( totalcredit ) %]<td class="credit">[% ELSE %]<td class="debit">[% END %][% total | $Price %]</td>
+ </tr>
+ </tfoot>
+</table>', 'print', 'default');
+ });
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22809 - Move 'INVOICE' from template to a slip)\n";
+}
+
+$DBversion = '18.12.00.073';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( q{
+ INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES
+ ('EmailPurchaseSuggestions','0','0|EmailAddressForSuggestions|BranchEmailAddress|KohaAdminEmailAddress','Choose email address that will be sent new purchase suggestions','Choice'),
+ ('EmailAddressForSuggestions','','','If you choose EmailAddressForSuggestions you should enter a valid email address','free')
+ });
+
+ $dbh->do( q{
+ INSERT IGNORE INTO `letter` (module, code, name, title, content, is_html, message_transport_type) VALUES
+ ('suggestions','NEW_SUGGESTION','New suggestion','New suggestion','<h3>Suggestion pending approval</h3>
+ <p><h4>Suggested by</h4>
+ <ul>
+ <li><<borrowers.firstname>> <<borrowers.surname>></li>
+ <li><<borrowers.cardnumber>></li>
+ <li><<borrowers.phone>></li>
+ <li><<borrowers.email>></li>
+ </ul>
+ </p>
+ <p><h4>Title suggested</h4>
+ <ul>
+ <li><b>Library:</b> <<branches.branchname>></li>
+ <li><b>Title:</b> <<suggestions.title>></li>
+ <li><b>Author:</b> <<suggestions.author>></li>
+ <li><b>Copyright date:</b> <<suggestions.copyrightdate>></li>
+ <li><b>Standard number (ISBN, ISSN or other):</b> <<suggestions.isbn>></li>
+ <li><b>Publisher:</b> <<suggestions.publishercode>></li>
+ <li><b>Collection title:</b> <<suggestions.collectiontitle>></li>
+ <li><b>Publication place:</b> <<suggestions.place>></li>
+ <li><b>Quantity:</b> <<suggestions.quantity>></li>
+ <li><b>Item type:</b> <<suggestions.itemtype>></li>
+ <li><b>Reason for suggestion:</b> <<suggestions.patronreason>></li>
+ <li><b>Notes:</b> <<suggestions.note>></li>
+ </ul>
+ </p>',1, 'email')
+ });
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 5770 - Email librarian when purchase suggestion made)\n";
+}
+
+$DBversion = '18.12.00.074';
+if( CheckVersion( $DBversion ) ) {
+ unless ( TableExists( 'keyboard_shortcuts' ) ) {
+ $dbh->do(q|
+ CREATE TABLE keyboard_shortcuts (
+ shortcut_name varchar(80) NOT NULL,
+ shortcut_keys varchar(80) NOT NULL,
+ PRIMARY KEY (shortcut_name)
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;|
+ );
+ }
+ $dbh->do(q|
+ INSERT IGNORE INTO keyboard_shortcuts (shortcut_name, shortcut_keys) VALUES
+ ("insert_copyright","Alt-C"),
+ ("insert_copyright_sound","Alt-P"),
+ ("insert_delimiter","Ctrl-D"),
+ ("subfield_help","Ctrl-H"),
+ ("link_authorities","Shift-Ctrl-L"),
+ ("delete_field","Ctrl-X"),
+ ("delete_subfield","Shift-Ctrl-X"),
+ ("new_line","Enter"),
+ ("line_break","Shift-Enter"),
+ ("next_position","Tab"),
+ ("prev_position","Shift-Tab")
+ ;|
+ );
+ $dbh->do(q|
+ INSERT IGNORE permissions (module_bit, code, description)
+ VALUES
+ (3,'manage_keyboard_shortcuts','Manage keyboard shortcuts for advanced cataloging editor')
+ ;|
+ );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 21411 - Add keyboard_shortcuts table)\n";
+}
+
+$DBversion = '18.12.00.075';
+if( CheckVersion( $DBversion ) ) {
+ # you can use $dbh here like:
+ unless ( foreign_key_exists( 'tmp_holdsqueue', 'tmp_holdsqueue_ibfk_1' ) ) {
+ $dbh->do(q{
+ DELETE t FROM tmp_holdsqueue t
+ LEFT JOIN items i ON t.itemnumber=i.itemnumber
+ WHERE i.itemnumber IS NULL
+ });
+ $dbh->do(q{
+ ALTER TABLE tmp_holdsqueue
+ ADD CONSTRAINT `tmp_holdsqueue_ibfk_1` FOREIGN KEY (`itemnumber`)
+ REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE
+ });
+ }
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22899 - Add items constraint to tmp_holdsqueue)\n";
+}
+
+$DBversion = '19.05.00.000';
+if( CheckVersion( $DBversion ) ) {
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (19.05.00 release)\n";
+}
+
+$DBversion = '19.06.00.000';
+if( CheckVersion( $DBversion ) ) {
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Wingardium Leviosa!)\n";
+}
+
+$DBversion = '19.06.00.001';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( q{
+ UPDATE systempreferences
+ SET explanation = 'This is a list of value pairs.\n Examples:\n PROC: FIC - causes an item in the Processing Center location to be updated into the Fiction location on check in.\n FIC: GEN - causes an item in the Fiction location to be updated into the General stacks location on check in.\n _BLANK_:FIC - causes an item that has no location to be updated into the Fiction location on check in.\nFIC: _BLANK_ - causes an item in location FIC to be updated to a blank location on check in.\n_ALL_:FIC - causes all items to be updated into the Fiction location on check in.\nPROC: _PERM_ - causes an item that is in the Processing Center to be updated to it''s permanent location.\nGeneral rule: if the location value on the left matches the item''s current location, it will be updated to match the location value on the right.\nNote: PROC and CART are special values, for these locations only can location and permanent_location differ, in all other cases an update will affect both. Items in the CART location will be returned to their permanent location on checkout.\nThe special term _BLANK_ may be used on either side of a value pair to update or remove the location from items with no location assigned. The special term _ALL_ is used on the left side of the colon (:) to affect all items.\nThe special term _PERM_ is used on the right side of the colon (:) to return items to their permanent location.'
+ WHERE variable = 'UpdateItemLocationOnCheckin'
+ });
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22960: Fix typo in syspref description)\n";
+}
+
+$DBversion = '19.06.00.002';
+if ( CheckVersion($DBversion) ) {
+
+ $dbh->do(q{ALTER TABLE subscriptionhistory CHANGE opacnote opacnote LONGTEXT NULL});
+ $dbh->do(q{ALTER TABLE subscriptionhistory CHANGE librariannote librariannote LONGTEXT NULL});
+
+ $dbh->do(q{UPDATE subscriptionhistory SET opacnote = NULL WHERE opacnote = ''});
+ $dbh->do(q{UPDATE subscriptionhistory SET librariannote = NULL WHERE librariannote = ''});
+
+ SetVersion ($DBversion);
+ print "Upgrade to $DBversion done (Bug 10215 - Increase the size of opacnote and librariannote for table subscriptionhistory)\n";
+}
+
+$DBversion = '19.06.00.003';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{UPDATE systempreferences SET value = REPLACE( value, ' ', '|' ) WHERE variable = 'UniqueItemFields'; });
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22867 - UniqueItemFields preference value should be pipe-delimited)\n";
+}
+
+$DBversion = '19.06.00.004';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( 'UPDATE language_descriptions SET description = "Griechisch (Modern 1453-)"
+ WHERE subtag = "el" and type = "language" and lang ="de"' );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22770 - Fix typo in language description for el in German)\n";
+}
+
+$DBversion = '19.06.00.005';
+if( CheckVersion( $DBversion ) ) {
+ unless ( column_exists( 'reserves', 'item_level_hold' ) ) {
+ $dbh->do( "ALTER TABLE reserves ADD COLUMN item_level_hold BOOLEAN NOT NULL DEFAULT 0 AFTER itemtype" );
+ }
+ unless ( column_exists( 'old_reserves', 'item_level_hold' ) ) {
+ $dbh->do( "ALTER TABLE old_reserves ADD COLUMN item_level_hold BOOLEAN NOT NULL DEFAULT 0 AFTER itemtype" );
+ }
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 9834 - Add the reserves.item_level_hold column)\n";
+}
+
+$DBversion = '19.06.00.006';
+if( CheckVersion( $DBversion ) ) {
+
+ unless ( TableExists('plugin_methods') ) {
+ $dbh->do(q{
+ CREATE TABLE plugin_methods (
+ plugin_class varchar(255) NOT NULL,
+ plugin_method varchar(255) NOT NULL,
+ PRIMARY KEY ( `plugin_class` (191), `plugin_method` (191) )
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+ });
+ }
+
+ require Koha::Plugins;
+ Koha::Plugins->new({ enable_plugins => 1 })->InstallPlugins;
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 21073 - Improve plugin performance)\n";
+}
+
+$DBversion = '19.06.00.007';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( "DELETE FROM systempreferences WHERE variable = 'RotationPreventTransfers'" );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 22653 - Remove unimplemented RotationPreventTransfers system preference)\n";
+}
+
+$DBversion = '19.06.00.008';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( "UPDATE userflags SET flagdesc = 'Allow staff members to modify permissions and passwords for other staff members' WHERE flag = 'staffaccess'" );
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 23109 - Improve description of staffaccess permission)\n";
+}
+
+$DBversion = '19.06.00.009';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q{
+ INSERT IGNORE INTO keyboard_shortcuts (shortcut_name, shortcut_keys)
+ VALUES ("toggle_keyboard", "Shift-Ctrl-K")
+ });
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 17178 - add shortcut to keyboard_shortcuts)\n";
+}
+
+$DBversion = '19.06.00.010';
+if( CheckVersion( $DBversion ) ) {
+
+ if ( TableExists('default_circ_rules') ) {
+ if ( column_exists( 'default_circ_rules', 'holdallowed' ) ) {
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, NULL, NULL, 'holdallowed', holdallowed
+ FROM default_circ_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, NULL, NULL, 'hold_fulfillment_policy', hold_fulfillment_policy
+ FROM default_circ_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, NULL, NULL, 'returnbranch', returnbranch
+ FROM default_circ_rules
+ ");
+ $dbh->do("DROP TABLE default_circ_rules");
+ }
+ }
+
+ if ( TableExists('default_branch_circ_rules') ) {
+ if ( column_exists( 'default_branch_circ_rules', 'holdallowed' ) ) {
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, branchcode, NULL, 'holdallowed', holdallowed
+ FROM default_branch_circ_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, branchcode, NULL, 'hold_fulfillment_policy', hold_fulfillment_policy
+ FROM default_branch_circ_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, branchcode, NULL, 'returnbranch', returnbranch
+ FROM default_branch_circ_rules
+ ");
+ $dbh->do("DROP TABLE default_branch_circ_rules");
+ }
+ }
+
+ if ( TableExists('branch_item_rules') ) {
+ if ( column_exists( 'branch_item_rules', 'holdallowed' ) ) {
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, branchcode, itemtype, 'holdallowed', holdallowed
+ FROM branch_item_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, branchcode, itemtype, 'hold_fulfillment_policy', hold_fulfillment_policy
+ FROM branch_item_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, branchcode, itemtype, 'returnbranch', returnbranch
+ FROM branch_item_rules
+ ");
+ $dbh->do("DROP TABLE branch_item_rules");
+ }
+ }
+
+ if ( TableExists('default_branch_item_rules') ) {
+ if ( column_exists( 'default_branch_item_rules', 'holdallowed' ) ) {
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, NULL, itemtype, 'holdallowed', holdallowed
+ FROM default_branch_item_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, NULL, itemtype, 'hold_fulfillment_policy', hold_fulfillment_policy
+ FROM default_branch_item_rules
+ ");
+ $dbh->do("
+ INSERT IGNORE INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, NULL, itemtype, 'returnbranch', returnbranch
+ FROM default_branch_item_rules
+ ");
+ $dbh->do("DROP TABLE default_branch_item_rules");
+ }
+ }
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 18928 - Move holdallowed, hold_fulfillment_policy, returnbranch to circulation_rules)\n";
+}
+
+$DBversion = '19.06.00.011';
+if( CheckVersion( $DBversion ) ) {
+
+ if ( TableExists('refund_lost_item_fee_rules') ) {
+ if ( column_exists( 'refund_lost_item_fee_rules', 'refund' ) ) {
+ $dbh->do("
+ INSERT INTO circulation_rules ( categorycode, branchcode, itemtype, rule_name, rule_value )
+ SELECT NULL, IF(branchcode='*', NULL, branchcode), NULL, 'refund', refund
+ FROM refund_lost_item_fee_rules
+ ");
+ $dbh->do("DROP TABLE refund_lost_item_fee_rules");
+ }
+ }
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 18930 - Move lost item refund rules to circulation_rules table)\n";
+}
+
+$DBversion = '19.06.00.012';
+if ( CheckVersion($DBversion) ) {
+
+ # Find and correct pathological cases of LR becoming a credit
+ my $sth = $dbh->prepare( "SELECT accountlines_id, issue_id, borrowernumber, itemnumber, amount, manager_id FROM accountlines WHERE accounttype = 'LR' AND amount < 0" );
+ $sth->execute();
+ while ( my $row = $sth->fetchrow_hashref ) {
+ $dbh->do(
+ "INSERT INTO accountlines (accounttype, issue_id, borrowernumber, itemnumber, amount, manager_id, interface) VALUES ( ?, ?, ?, ?, ?, ?, ? );",
+ {},
+ (
+ 'CR', $row->{issue_id},
+ $row->{borrowernumber}, $row->{itemnumber},
+ $row->{amount}, $row->{manager_id},
+ 'upgrade'
+ )
+ );
+ my $credit_id = $dbh->last_insert_id(undef, undef, 'accountlines', undef);
+ my $amount = $row->{amount} * -1;
+ $dbh->do("INSERT INTO account_offsets (credit_id, debit_id, type, amount) VALUES (?,?,?,?);",{},($credit_id, $row->{accountlines_id}, 'Lost Item', $amount));
+ $dbh->do("UPDATE accountlines SET amount = '$amount' WHERE accountlines_id = '$row->{accountlines_id}';");
+ }
+
+ $dbh->do(qq{
+ UPDATE
+ accountlines
+ SET
+ accounttype = 'LOST',
+ status = 'RETURNED'
+ WHERE
+ accounttype = 'LR';
+ });
+
+ # Find and correct pathalogical cases of L having been converted to W
+ $sth = $dbh->prepare( "SELECT accountlines_id, issue_id, borrowernumber, itemnumber, amount, manager_id FROM accountlines WHERE accounttype = 'W' AND itemnumber IS NOT NULL" );
+ $sth->execute();
+ while ( my $row = $sth->fetchrow_hashref ) {
+ my $amount = $row->{amount} * -1;
+ $dbh->do(
+ "INSERT INTO accountlines (accounttype, issue_id, borrowernumber, itemnumber, amount, manager_id, interface) VALUES ( ?, ?, ?, ?, ?, ?, ? );",
+ {},
+ (
+ 'LOST', $row->{issue_id}, $row->{borrowernumber},
+ $row->{itemnumber}, $amount, $row->{manager_id},
+ 'upgrade'
+ )
+ );
+ my $debit_id = $dbh->last_insert_id(undef, undef, 'accountlines', undef);
+ $dbh->do(
+ "INSERT INTO account_offsets (credit_id, debit_id, type, amount) VALUES (?,?,?,?);",
+ {},
+ (
+ $row->{accountlines_id}, $debit_id,
+ 'Lost Item', $amount
+ )
+ );
+ }
+
+ $dbh->do(qq{
+ UPDATE
+ accountlines
+ SET
+ accounttype = 'LOST'
+ WHERE
+ accounttype = 'L';
+ });
+
+ $dbh->do(qq{
+ UPDATE
+ accountlines
+ SET
+ accounttype = 'LOST_RETURNED'
+ WHERE
+ accounttype = 'CR';
+ });
+
+ SetVersion($DBversion);
+ print "Upgrade to $DBversion done (Bug 22563 - Fix accounttypes for 'L', 'LR' and 'CR')\n";
+}
+
# SEE bug 13068
# if there is anything in the atomicupdate, read and execute it.
-
my $update_dir = C4::Context->config('intranetdir') . '/installer/data/mysql/atomicupdate/';
opendir( my $dirh, $update_dir );
foreach my $file ( sort readdir $dirh ) {
=head1 FUNCTIONS
-=head2 TableExists($table)
-
-=cut
-
-sub TableExists {
- my $table = shift;
- eval {
- local $dbh->{PrintError} = 0;
- local $dbh->{RaiseError} = 1;
- $dbh->do(qq{SELECT * FROM $table WHERE 1 = 0 });
- };
- return 1 unless $@;
- return 0;
-}
-
=head2 DropAllForeignKeys($table)
Drop all foreign keys of the table $table