Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 49be66cd

Von Jan Büren vor mehr als 10 Jahren hinzugefügt

  • ID 49be66cdf74882abde5a93832a959e27baddd925
  • Vorgänger 80983f8a
  • Nachfolger 9bf9acdf

Bugfix für 2275 Verkäuferinformationen im Druck kommen aus der Authdatenbank
closes #2275
Hat leider einen kleinen "Rattenschwanz":
a) Beim Löschen des Benutzer wird nur deleted auf true gesetzt, jetzt werden auch
alle weiteren benutzereditierbaren Metadaten gespeichert, dafür ->
b) muss die Tabelle employee geändert werden, dabei ->
c) ist aufgefallen, dass einige Felder in employee überhaupt keinen Sinn mehr haben (addr1), aber dann ...
d) braucht man auch nicht mehr workphone mit tel aus der auth.user_config

zu d) -> SL/DB/Manager/Employee.pm
zu b) und c) -> sql/Pg-upgrade2/employee_drop_columns.sql und SL/DB/MetaSetup/Employee.pm
zu a) SL/Controller/Admin.pm

Jetzt können beim Drucken entweder die Daten des Benutzers genommen werden oder die Daten kommen aus employee (Form.pm)

Unterschiede anzeigen:

SL/Controller/Admin.pm
172 172

  
173 173
  my @clients = @{ $self->user->clients || [] };
174 174

  
175
  # backup user metadata (email, name, etc)
176
  my $user_config_values_ref = $self->user->config_values();
177
  my $login =$self->user->login;
178

  
175 179
  if (!$self->user->delete) {
176 180
    flash('error', t8('The user could not be deleted.'));
177 181
    $self->edit_user_form(title => t8('Edit User'));
......
179 183
  }
180 184

  
181 185
  # Flag corresponding entries in 'employee' as deleted.
186
  # and restore the most important user data in employee
187
  # TODO try and catch the whole transaction {user->delete; update employee} {exception}
182 188
  foreach my $client (@clients) {
183 189
    my $dbh = $client->dbconnect(AutoCommit => 1) || next;
184
    $dbh->do(qq|UPDATE employee SET deleted = TRUE WHERE login = ?|, undef, $self->user->login);
190
    $dbh->do(qq|UPDATE employee SET deleted = TRUE, name = ?, deleted_email = ?,
191
                deleted_tel = ?, deleted_fax = ?, deleted_signature = ? WHERE login = ?|,undef,
192
              $user_config_values_ref->{name}, $user_config_values_ref->{email},
193
              $user_config_values_ref->{tel}, $user_config_values_ref->{fax},
194
              $user_config_values_ref->{signature}, $self->user->login);
185 195
    $dbh->disconnect;
186 196
  }
187 197

  

Auch abrufbar als: Unified diff