From e0412b7e60eb334d00a4df775041ce469907c62e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bernd=20Ble=C3=9Fmann?= Date: Fri, 10 Jan 2014 11:52:16 +0100 Subject: [PATCH] =?utf8?q?=C3=9Cbersetzungen=20von=20Zahlungsbedingungen?= =?utf8?q?=20l=C3=B6schen,=20wenn=20Zahlungsbed.=20gel=C3=B6scht=20wird.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Via Trigger. Außerdem löscht das Update-Skript alle verweisten Übersetzungen der Zahlungsbedingungen. Behebt #2390. --- ...te_translations_on_payment_term_delete.sql | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 sql/Pg-upgrade2/delete_translations_on_payment_term_delete.sql diff --git a/sql/Pg-upgrade2/delete_translations_on_payment_term_delete.sql b/sql/Pg-upgrade2/delete_translations_on_payment_term_delete.sql new file mode 100644 index 000000000..950245240 --- /dev/null +++ b/sql/Pg-upgrade2/delete_translations_on_payment_term_delete.sql @@ -0,0 +1,24 @@ +-- @tag: delete_translations_on_payment_term_delete +-- @description: Übersetzungen löschen, wenn Lieferbedingung gelöscht wird +-- @depends: payment_terms_translation2 +-- @encoding: utf-8 + +CREATE OR REPLACE FUNCTION generic_translations_delete_on_payment_terms_delete_trigger() +RETURNS TRIGGER AS $$ + BEGIN + DELETE FROM generic_translations + WHERE translation_id = OLD.id AND translation_type LIKE 'SL::DB::PaymentTerm/description_long'; + RETURN OLD; + END; +$$ LANGUAGE plpgsql; + +DROP TRIGGER IF EXISTS after_delete_payment_term_trigger ON payment_terms; + +CREATE TRIGGER after_delete_payment_term_trigger + AFTER DELETE ON payment_terms + FOR EACH ROW EXECUTE PROCEDURE generic_translations_delete_on_payment_terms_delete_trigger(); + +-- delete orphaned translations +DELETE FROM generic_translations + WHERE translation_type LIKE 'SL::DB::PaymentTerm/description_long' + AND translation_id NOT IN (SELECT id FROM payment_terms); -- 2.20.1