Controller für Mandantenkonfiguration.
[kivitendo-erp.git] / sql / Pg-upgrade2 / defaults_posting_config.pl
1 # @tag: defaults_posting_config
2 # @description: Einstellung, ob und wann Zahlungen änderbar sind, vom Config-File in die DB verlagern.
3 # @depends: release_2_7_0
4 # @charset: utf-8
5
6 use utf8;
7 use strict;
8
9 die("This script cannot be run from the command line.") unless ($main::form);
10
11 sub mydberror {
12   my ($msg) = @_;
13   die($dbup_locale->text("Database update error:") .
14       "<br>$msg<br>" . $DBI::errstr);
15 }
16
17 sub do_query {
18   my ($query, $may_fail) = @_;
19
20   if (!$dbh->do($query)) {
21     mydberror($query) unless ($may_fail);
22     $dbh->rollback();
23     $dbh->begin_work();
24   }
25 }
26
27 sub do_update {
28
29   # this query will fail if column already exist (new database)
30   do_query(qq|ALTER TABLE defaults ADD COLUMN payments_changeable integer NOT NULL DEFAULT 0|, 1);
31
32   # check current configuration and set default variables accordingly, so that
33   # Lx-Office behaviour isn't changed by this update
34   # if payments_changeable is not set in config set it to 0
35   my $payments_changeable = 0;
36   if ($::lx_office_conf{features}->{payments_changeable} == 1 ) {
37     $payments_changeable = 1;
38   } elsif ($::lx_office_conf{features}->{payments_changeable} == 2 ) {
39     $payments_changeable = 2;
40   }
41
42   my $update_column = "UPDATE defaults SET payments_changeable = '$payments_changeable';";
43   do_query($update_column);
44
45   return 1;
46 }
47
48 return do_update();
49