destroy methode für CsvImportReport
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 7 Nov 2012 12:43:35 +0000 (13:43 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 11 Jan 2013 12:54:41 +0000 (13:54 +0100)
SL/DB/CsvImportReport.pm

index 38d9e69..1271c56 100644 (file)
@@ -4,6 +4,7 @@
 package SL::DB::CsvImportReport;
 
 use strict;
+use SL::DBUtils;
 
 use SL::DB::MetaSetup::CsvImportReport;
 
@@ -63,4 +64,24 @@ sub _fold_status {
   }
 }
 
+# implementes cascade delete as per documentation
+sub destroy {
+  my ($self) = @_;
+
+  my $dbh = $self->db->dbh;
+
+  $dbh->begin_work;
+
+  do_query($::form, $dbh, 'DELETE FROM csv_import_report_status WHERE csv_import_report_id = ?', $self->id);
+  do_query($::form, $dbh, 'DELETE FROM csv_import_report_rows WHERE csv_import_report_id = ?', $self->id);
+  do_query($::form, $dbh, 'DELETE FROM csv_import_reports WHERE id = ?', $self->id);
+
+  if ($self->profile_id) {
+    do_query($::form, $dbh, 'DELETE FROM csv_import_profile_settings WHERE csv_import_profile_id = ?', $self->profile_id);
+    do_query($::form, $dbh, 'DELETE FROM csv_import_profiles WHERE id = ?', $self->profile_id);
+  }
+
+  $dbh->commit;
+}
+
 1;