]> wagnertech.de Git - mfinanz.git/blobdiff - SL/User.pm
countries defaults managed
[mfinanz.git] / SL / User.pm
index 8bb9b997bd68475b7518ad4fe1b9fa2e86a165dc..7a8d303e56da7f66a5493e66ae6ed5034765633f 100644 (file)
@@ -46,6 +46,7 @@ use SL::DBUtils;
 use SL::Iconv;
 use SL::Inifile;
 use SL::System::InstallationLock;
+use SL::DefaultManager;
 
 use strict;
 
@@ -124,10 +125,10 @@ sub login {
   $self->create_schema_info_table($form, $dbh);
 
   my $dbupdater        = SL::DBUpgrade2->new(form => $form)->parse_dbupdate_controls;
-  my $update_available = $dbupdater->update2_available($dbh);
+  my @unapplied_scripts = $dbupdater->unapplied_upgrade_scripts($dbh);
   $dbh->disconnect;
 
-  if (!$update_available) {
+  if (!@unapplied_scripts) {
     SL::DB::Manager::Employee->update_entries_for_authorized_users;
     return LOGIN_OK();
   }
@@ -142,7 +143,7 @@ sub login {
   $form->{dbupdate} = "db" . $::auth->client->{dbname};
 
   if ($form->{"show_dbupdate_warning"}) {
-    print $form->parse_html_template("dbupgrade/warning");
+    print $form->parse_html_template("dbupgrade/warning", { unapplied_scripts => \@unapplied_scripts });
     ::end_of_request();
   }
 
@@ -283,11 +284,18 @@ sub dbcreate {
   # create the tables
   $dbupdater->process_query($dbh, "sql/lx-office.sql");
 
+  # process update-scripts needed before 1st user-login
+  $self->create_schema_info_table($form, $dbh);
+  $dbupdater->process_query($dbh, "sql/Pg-upgrade2/defaults_add_precision.sql");
+  $dbh->do("INSERT INTO schema_info (tag, login) VALUES ('defaults_add_precision', 'admin')");
+  $dbupdater->process_query($dbh, "sql/Pg-upgrade2/defaults_add_country_mode.sql");
+  $dbh->do("INSERT INTO schema_info (tag, login) VALUES ('defaults_add_country_mode', 'admin')");
+
   # load chart of accounts
   $dbupdater->process_query($dbh, "sql/$form->{chart}-chart.sql");
 
-  $query = qq|UPDATE defaults SET coa = ?, accounting_method = ?, profit_determination = ?, inventory_system = ?, curr = ?|;
-  do_query($form, $dbh, $query, map { $form->{$_} } qw(chart accounting_method profit_determination inventory_system defaultcurrency));
+  $query = qq|UPDATE defaults SET coa = ?, accounting_method = ?, profit_determination = ?, inventory_system = ?, curr = ?, precision = ?, country_mode = ?|;
+  do_query($form, $dbh, $query, map { $form->{$_} } qw(chart accounting_method profit_determination inventory_system defaultcurrency precision countrymode));
 
   $dbh->disconnect;
 
@@ -384,6 +392,9 @@ sub dbupdate2 {
 
   &dbconnect_vars($form, $db);
 
+  # Flush potentially held database locks.
+  $form->get_standard_dbh->commit;
+
   my $dbh = SL::DBConnect->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}, SL::DBConnect->get_options) or $form->dberror;
 
   $dbh->do($form->{dboptions}) if ($form->{dboptions});
@@ -409,4 +420,19 @@ sub data {
   +{ %{ $_[0] } }
 }
 
+sub get_default_myconfig {
+  my ($self_or_class, %user_config) = @_;
+  my $defaults = SL::DefaultManager->new($::lx_office_conf{system}->{default_manager});
+
+  return (
+    countrycode  => $defaults->language('de'),
+    css_path     => 'css',      # Needed for menunew, see SL::Layout::Base::get_stylesheet_for_user
+    dateformat   => $defaults->dateformat('dd.mm.yy'),
+    numberformat => $defaults->numberformat('1.000,00'),
+    stylesheet   => 'kivitendo.css',
+    timeformat   => $defaults->timeformat('hh:mm'),
+    %user_config,
+  );
+}
+
 1;