From: G. Richardson Date: Wed, 29 Feb 2012 09:34:05 +0000 (+0100) Subject: Merge branch 'master' of vc.linet-services.de:public/lx-office-erp X-Git-Tag: release-3.0.0beta1~348 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/46b00bb49d5514f00c8ebf70c19b0e929b6a5a9b?hp=58eae0927419df7bc4f5c3adffc8ecd0c0d4dcfd Merge branch 'master' of vc.linet-services.de:public/lx-office-erp --- diff --git a/SL/User.pm b/SL/User.pm index acbe5cf76..2addf2905 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -697,7 +697,6 @@ sub save_member { $main::lxdebug->enter_sub(); my ($self) = @_; - my $form = \%main::form; # format dbconnect and dboptions string dbconnect_vars($self, $self->{dbname}); @@ -708,7 +707,7 @@ sub save_member { my $dbh = SL::DBConnect->connect($self->{dbconnect}, $self->{dbuser}, $self->{dbpasswd}); if ($dbh) { - $self->create_employee_entry($form, $dbh, $self, 1); + $self->create_employee_entry($::form, $dbh, $self, 1); $dbh->disconnect(); } @@ -731,13 +730,16 @@ sub create_employee_entry { # 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}); + my ($id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $self->{login}); + my ($good_db) = selectrow_query($form, $dbh, qq|select * from pg_tables where tablename = ? and schemaname = ?|, 'schema_info', 'public'); + my $can_delete; + ($can_delete) = selectrow_query($form, $dbh, qq|SELECT tag FROM schema_info WHERE tag = ?|, 'employee_deleted') if $good_db; if (!$id) { my $query = qq|INSERT INTO employee (login, name, workphone, role) VALUES (?, ?, ?, ?)|; do_query($form, $dbh, $query, ($self->{login}, $myconfig->{name}, $myconfig->{tel}, "user")); - } elsif ($update_existing) { + } elsif ($update_existing && $can_delete) { my $query = qq|UPDATE employee SET name = ?, workphone = ?, role = 'user', deleted = 'f' WHERE id = ?|; do_query($form, $dbh, $query, $myconfig->{name}, $myconfig->{tel}, $id); } diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index 3254b9b85..ff4641adb 100755 --- a/bin/mozilla/admin.pl +++ b/bin/mozilla/admin.pl @@ -542,7 +542,7 @@ sub save_user { # Add new user to his groups. if (ref $form->{new_user_group_ids} eq 'ARRAY') { my $all_groups = $main::auth->read_groups(); - my %user = $main::auth->read_user(login => $user->{login}); + my %user = $main::auth->read_user(login => $myconfig->{login}); foreach my $group_id (@{ $form->{new_user_group_ids} }) { my $group = $all_groups->{$group_id}; @@ -564,7 +564,7 @@ sub save_user { $form->error($::locale->text('The settings were saved, but the password was not changed.') . ' ' . join(' ', $verifier->errors($result))); } - $main::auth->change_password($user->{login}, $::form->{new_password}); + $main::auth->change_password($myconfig->{login}, $::form->{new_password}); } $::form->redirect($::locale->text('User saved!')); diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index ccc5f2b13..d18378aea 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -280,7 +280,7 @@ sub form_header { $::form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); $::form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); $::form->{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all(query => [ - or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, shipto_id => $::form->{shipto_id} * 1 ] + or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, and => [ shipto_id => $::form->{shipto_id} * 1, trans_id => undef ] ] ]); $::form->{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [ or => [ diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 5aa916eee..66aa4b8f2 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -312,7 +312,7 @@ sub form_header { $TMPL_VAR{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); $TMPL_VAR{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); $TMPL_VAR{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all(query => [ - or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, shipto_id => $::form->{shipto_id} * 1 ] + or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, and => [ shipto_id => $::form->{shipto_id} * 1, trans_id => undef ] ] ]); $TMPL_VAR{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [ or => [ diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index 39ec0eb2f..c1b281c6b 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -342,7 +342,7 @@ sub form_header { $TMPL_VAR{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); $TMPL_VAR{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); $TMPL_VAR{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all(query => [ - or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, shipto_id => $::form->{shipto_id} * 1 ] + or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, and => [ shipto_id => $::form->{shipto_id} * 1, trans_id => undef ] ] ]); $TMPL_VAR{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [ or => [