X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=a11b7adb672b2ed45f7ae455fc6a5b30665c2a2c;hb=fba56a49429a170e00a0f26f15784303eb99e108;hp=2e4f5a9beb81e26e06b6d7848b550c18a8208c19;hpb=15cfd696637c6734459068dc5ff8f97b8ebe9d25;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 2e4f5a9be..a11b7adb6 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(); } @@ -3173,81 +3180,6 @@ sub get_history { return 0; } -sub update_defaults { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $fld, $provided_dbh) = @_; - - my $dbh; - if ($provided_dbh) { - $dbh = $provided_dbh; - } else { - $dbh = $self->dbconnect_noauto($myconfig); - } - my $query = qq|SELECT $fld FROM defaults FOR UPDATE|; - my $sth = $dbh->prepare($query); - - $sth->execute || $self->dberror($query); - my ($var) = $sth->fetchrow_array; - $sth->finish; - - $var = 0 if !defined($var) || ($var eq ''); - $var = SL::PrefixedNumber->new(number => $var)->get_next; - $query = qq|UPDATE defaults SET $fld = ?|; - do_query($self, $dbh, $query, $var); - - if (!$provided_dbh) { - $dbh->commit; - $dbh->disconnect; - } - - $main::lxdebug->leave_sub(); - - return $var; -} - -sub update_business { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $business_id, $provided_dbh) = @_; - - my $dbh; - if ($provided_dbh) { - $dbh = $provided_dbh; - } else { - $dbh = $self->dbconnect_noauto($myconfig); - } - my $query = - qq|SELECT customernumberinit FROM business - WHERE id = ? FOR UPDATE|; - my ($var) = selectrow_query($self, $dbh, $query, $business_id); - - return undef unless $var; - - if ($var =~ m/\d+$/) { - my $new_var = (substr $var, $-[0]) * 1 + 1; - my $len_diff = length($var) - $-[0] - length($new_var); - $var = substr($var, 0, $-[0]) . ($len_diff > 0 ? '0' x $len_diff : '') . $new_var; - - } else { - $var = $var . '1'; - } - - $query = qq|UPDATE business - SET customernumberinit = ? - WHERE id = ?|; - do_query($self, $dbh, $query, $var, $business_id); - - if (!$provided_dbh) { - $dbh->commit; - $dbh->disconnect; - } - - $main::lxdebug->leave_sub(); - - return $var; -} - sub get_partsgroup { $main::lxdebug->enter_sub(); @@ -3594,18 +3526,6 @@ Points of interest for a beginner are: =head1 SPECIAL FUNCTIONS -=head2 C PARAMS - -PARAMS (not named): - \%config, - config hashref - $business_id, - business id - $dbh - optional database handle - -handles business (thats customer/vendor types) sequences. - -special behaviour for empty strings in customerinitnumber field: -will in this case not increase the value, and return undef. - =head2 C $url Generates a HTTP redirection header for the new C<$url>. Constructs an