X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FForm.pm;h=9a6bca2fd6a4760e3251b03fb4ef245302c33cd7;hb=49be66cdf74882abde5a93832a959e27baddd925;hp=f0500d3b5c272c069a1fcafd3b73aca83b55a8c0;hpb=79d876f9797e2c8693d9cc88f7e18afb1fadba4d;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index f0500d3b5..9a6bca2fd 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -1926,17 +1926,24 @@ sub get_employee_data { my $myconfig = \%main::myconfig; my $dbh = $params{dbh} || $self->get_standard_dbh($myconfig); - my ($login) = selectrow_query($self, $dbh, qq|SELECT login FROM employee WHERE id = ?|, conv_i($params{id})); + my ($login, $deleted) = selectrow_query($self, $dbh, qq|SELECT login,deleted FROM employee WHERE id = ?|, conv_i($params{id})); if ($login) { - my $user = User->new(login => $login); - $self->{$params{prefix} . "_${_}"} = $user->{$_} for qw(email fax name signature tel); - $self->{$params{prefix} . "_${_}"} = $defaults->$_ for qw(address businessnumber co_ustid company duns taxnumber); - + # login already fetched and still the same client (mandant) | same for both cases (delete|!delete) $self->{$params{prefix} . '_login'} = $login; - $self->{$params{prefix} . '_name'} ||= $login; - } + $self->{$params{prefix} . "_${_}"} = $defaults->$_ for qw(address businessnumber co_ustid company duns taxnumber); + if (!$deleted) { + # get employee data from auth.user_config + my $user = User->new(login => $login); + $self->{$params{prefix} . "_${_}"} = $user->{$_} for qw(email fax name signature tel); + } else { + # get saved employee data from employee + my $employee = SL::DB::Manager::Employee->find_by(id => conv_i($params{id})); + $self->{$params{prefix} . "_${_}"} = $employee->{"deleted_$_"} for qw(email fax signature tel); + $self->{$params{prefix} . "_name"} = $employee->name; + } + } $main::lxdebug->leave_sub(); } @@ -2137,10 +2144,22 @@ sub _get_taxzones { sub _get_employees { $main::lxdebug->enter_sub(); - my ($self, $dbh, $default_key, $key) = @_; + my ($self, $dbh, $params) = @_; + + my $deleted = 0; + + my $key; + if (ref $params eq 'HASH') { + $key = $params->{key}; + $deleted = $params->{deleted}; + + } else { + $key = $params; + } - $key = $default_key unless ($key); - $self->{$key} = selectall_hashref_query($self, $dbh, qq|SELECT * FROM employee ORDER BY lower(name)|); + $key ||= "all_employees"; + my $filter = $deleted ? '' : 'WHERE NOT COALESCE(deleted, FALSE)'; + $self->{$key} = selectall_hashref_query($self, $dbh, qq|SELECT * FROM employee $filter ORDER BY lower(name)|); $main::lxdebug->leave_sub(); } @@ -2380,7 +2399,7 @@ sub get_lists { } if ($params{"employees"}) { - $self->_get_employees($dbh, "all_employees", $params{"employees"}); + $self->_get_employees($dbh, $params{"employees"}); } if ($params{"salesmen"}) {