3 die("This script cannot be run from the command line.") unless ($main::form);
6 my ($dbup_locale, $msg) = @_;
7 die($dbup_locale->text("Database update error:") .
8 "<br>$msg<br>" . $DBI::errstr);
14 print($main::form->parse_html_template("dbupgrade/units_error",
15 { "message" => $msg }));
19 sub update_defaults_add_coa {
20 if ($dbh->do("ALTER TABLE defaults ADD COLUMN coa text")) {
28 sub update_defaults_set_coa {
31 $dbh->do("UPDATE defaults SET coa = " . $dbh->quote($coa));
40 $dbh->selectrow_array("SELECT COUNT(*) FROM chart WHERE accno = " .
46 sub update_guess_chart_of_accounts {
47 update_defaults_add_coa();
49 my $form = $main::form;
51 my @valid_coas = map({ s/^sql\///; s/-chart.sql//; $_; } <sql/*-chart.sql>);
52 $main::lxdebug->dump(0, "mufti", \@valid_coas);
54 my $query = "SELECT coa FROM defaults";
55 my ($coa) = $dbh->selectrow_array($query);
57 return 1 if (grep({ $coa eq $_ } @valid_coas));
59 return update_defaults_set_coa("Germany-DATEV-SKR04EU")
60 if (look_for_accno("0135"));
62 return update_defaults_set_coa("Germany-DATEV-SKR03EU")
63 if (look_for_accno("0027"));
65 return update_defaults_set_coa("Austria")
66 if (look_for_accno("0625"));
68 return update_defaults_set_coa("France")
69 if (look_for_accno("131800"));
71 return update_defaults_set_coa("Swiss-German")
72 if (look_for_accno("21235"));
74 return update_defaults_set_coa($form->{"coa"})
75 if (($form->{"action2"} eq "set_coa") &&
76 grep({ $form->{"coa"} eq $_ } @valid_coas));
78 my @coas = map(+{ "name" => $_ }, @valid_coas);
80 print($form->parse_html_template("dbupgrade/coa_guess",
81 { "COAS" => \@coas }));
86 return update_guess_chart_of_accounts();