$DBversion = '18.12.00.069';
if( CheckVersion( $DBversion ) ) {
- use Koha::Plugins;
-
- my @plugins = Koha::Plugins->new({ enable_plugins => 1 })->GetPlugins({ all => 1 });
- foreach my $plugin ( @plugins ) {
- $plugin->enable;
- }
+ $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 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/';