From: Moritz Bunkus Date: Fri, 5 Jun 2009 07:23:43 +0000 (+0000) Subject: Vor Zugriff auf "employee"-Tabelle testen, ob diese existiert. X-Git-Tag: release-2.6.1beta1~420 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=c8c960bcc06f833933bd3cce3d4aabe68b15fd75;p=kivitendo-erp.git Vor Zugriff auf "employee"-Tabelle testen, ob diese existiert. Es kann sein, dass die Funktion User::create_employee_record() aufgerufen wird, bevor die beim Benutzer eingetragene Datenbank existiert bzw. bevor darin die Lx-Office-Tabellen existieren. In diesem Falle darf create_employee_record() nicht fehlschlagen, weil der Eintrag in "employee" spätestens beim Login angelegt wird. Das kann z.B. passieren, wenn im Administrationsbereich zuerst ein Benutzer und später erst die dazugehörige Datenbank angelegt wird. Fix für Bug 922. --- diff --git a/SL/User.pm b/SL/User.pm index 487236800..a49b3b5c6 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -971,6 +971,11 @@ sub create_employee_entry { my $myconfig = shift; my $update_existing = shift; + if (!does_table_exist($dbh, 'employee')) { + $main::lxdebug->leave_sub(); + return; + } + # add login to employee table if it does not exist # no error check for employee table, ignore if it does not exist my ($id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $self->{login});