From 6768ddad54d2a675939e1167536f4943628de2bb Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Mon, 26 Sep 2016 11:14:49 +0200 Subject: [PATCH] =?utf8?q?sepa=5Fexport=5Fitems=20automatisch=20mit=20Rech?= =?utf8?q?nungen=20l=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Wenn man eine Rechnung löschen möchte, die bereits in einen SEPA-Export verwendet wurde, so erhält man eine Fehlermeldung. Also den dazugehörigen Eintrag aus »sepa_export_items« automatisch über ein »ON DELETE CASCADE« auf den Fremdschlüsseln löschen lassen. --- ...ete_sepa_export_items_on_ap_ar_deletion.pl | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sql/Pg-upgrade2/auto_delete_sepa_export_items_on_ap_ar_deletion.pl diff --git a/sql/Pg-upgrade2/auto_delete_sepa_export_items_on_ap_ar_deletion.pl b/sql/Pg-upgrade2/auto_delete_sepa_export_items_on_ap_ar_deletion.pl new file mode 100644 index 000000000..f7bad040a --- /dev/null +++ b/sql/Pg-upgrade2/auto_delete_sepa_export_items_on_ap_ar_deletion.pl @@ -0,0 +1,26 @@ +# @tag: auto_delete_sepa_export_items_on_ap_ar_deletion +# @description: Automatisch Einträge aus reconciliation_links entfernen, wenn referenzierte Einträge gelöscht werden +# @depends: sepa_in +package SL::DBUpgrade2::auto_delete_sepa_export_items_on_ap_ar_deletion; + +use utf8; +use strict; + +use parent qw(SL::DBUpgrade2::Base); + +sub run { + my ($self) = @_; + + $self->drop_constraints(table => $_) for qw(sepa_export_items); + + my @queries = ( + q|ALTER TABLE sepa_export_items ADD CONSTRAINT sepa_export_items_ar_id_fkey FOREIGN KEY (ar_id) REFERENCES ar (id) ON DELETE CASCADE|, + q|ALTER TABLE sepa_export_items ADD CONSTRAINT sepa_export_items_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES ap (id) ON DELETE CASCADE|, + ); + + $self->db_query($_) for @queries; + + return 1; +} + +1; -- 2.20.1