Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5d179028

Von Moritz Bunkus vor mehr als 5 Jahren hinzugefügt

  • ID 5d1790289c565ace01143d524538bd505859a57c
  • Vorgänger abaf5db5
  • Nachfolger 5eb836e4

CSV-Import-Bericht: beim Löschen nur verwaiste Profile löschen

Unter gewissen Umständen kann es passieren, dass es mehrere
`csv_import_reports` mit derselben `profile_id` gibt. In so einem Fall
darf nur dann versucht werden, die Einträge aus `csv_import_profiles`
zu löschen, wenn der letzte `csv_import_reports`-Eintrag gelöscht
wird, der auf auf dieses Profil verlinkt.

Unterschiede anzeigen:

SL/DB/CsvImportReport.pm
65 65
    do_query($::form, $dbh, 'DELETE FROM csv_import_reports WHERE id = ?', $self->id);
66 66

  
67 67
    if ($self->profile_id) {
68
      do_query($::form, $dbh, 'DELETE FROM csv_import_profile_settings WHERE csv_import_profile_id = ?', $self->profile_id);
69
      do_query($::form, $dbh, 'DELETE FROM csv_import_profiles WHERE id = ?', $self->profile_id);
68
      my ($is_profile_used_elsewhere) = selectfirst_array_query($::form, $dbh, <<SQL, $self->profile_id);
69
        SELECT id
70
        FROM csv_import_reports
71
        WHERE profile_id = ?
72
        LIMIT 1
73
SQL
74

  
75
      if (!$is_profile_used_elsewhere) {
76
        do_query($::form, $dbh, 'DELETE FROM csv_import_profile_settings WHERE csv_import_profile_id = ?', $self->profile_id);
77
        do_query($::form, $dbh, 'DELETE FROM csv_import_profiles WHERE id = ?', $self->profile_id);
78
      }
70 79
    }
71 80
    1;
72 81
  }) or do { die SL::DB->client->error };

Auch abrufbar als: Unified diff