Revision 49345708
Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt
SL/AP.pm | ||
---|---|---|
# connect to database
|
||
my $dbh = $form->dbconnect_noauto($myconfig);
|
||
|
||
# acc_trans entries are deleted by database triggers.
|
||
my $query = qq|DELETE FROM ap WHERE id = ?|;
|
||
do_query($form, $dbh, $query, $form->{id});
|
||
|
||
$query = qq|DELETE FROM acc_trans WHERE trans_id = ?|;
|
||
do_query($form, $dbh, $query, $form->{id});
|
||
|
||
# commit and redirect
|
||
my $rc = $dbh->commit;
|
||
$dbh->disconnect;
|
||
|
SL/AR.pm | ||
---|---|---|
# connect to database, turn AutoCommit off
|
||
my $dbh = $form->dbconnect_noauto($myconfig);
|
||
|
||
# acc_trans entries are deleted by database triggers.
|
||
my $query = qq|DELETE FROM ar WHERE id = ?|;
|
||
do_query($form, $dbh, $query, $form->{id});
|
||
|
||
$query = qq|DELETE FROM acc_trans WHERE trans_id = ?|;
|
||
do_query($form, $dbh, $query, $form->{id});
|
||
|
||
# commit
|
||
my $rc = $dbh->commit;
|
||
$dbh->disconnect;
|
SL/GL.pm | ||
---|---|---|
# connect to database
|
||
my $dbh = $form->dbconnect_noauto($myconfig);
|
||
|
||
my @values = (conv_i($form->{id}));
|
||
do_query($form, $dbh, qq|DELETE FROM acc_trans WHERE trans_id = ?|, @values);
|
||
do_query($form, $dbh, qq|DELETE FROM gl WHERE id = ?|, @values);
|
||
# acc_trans entries are deleted by database triggers.
|
||
do_query($form, $dbh, qq|DELETE FROM gl WHERE id = ?|, conv_i($form->{id}));
|
||
|
||
# commit and redirect
|
||
my $rc = $dbh->commit;
|
sql/Pg-upgrade2/ar_ap_gl_delete_triggers_deletion_from_acc_trans.sql | ||
---|---|---|
-- @tag: ar_ap_gl_delete_triggers_deletion_from_acc_trans
|
||
-- @description: Beim Löschen aus ar, ap, gl per Trigger auch dazugehörige Einträge aus acc_trans löschen
|
||
-- @depends: release_3_0_0
|
||
-- @charset: utf-8
|
||
CREATE OR REPLACE FUNCTION clean_up_acc_trans_after_ar_ap_gl_delete() RETURNS trigger AS $$
|
||
BEGIN
|
||
DELETE FROM acc_trans WHERE trans_id = OLD.id;
|
||
RETURN OLD;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
|
||
CREATE TRIGGER after_delete_ar_trigger
|
||
AFTER DELETE ON ar FOR EACH ROW EXECUTE
|
||
PROCEDURE clean_up_acc_trans_after_ar_ap_gl_delete();
|
||
|
||
CREATE TRIGGER after_delete_ap_trigger
|
||
AFTER DELETE ON ap FOR EACH ROW EXECUTE
|
||
PROCEDURE clean_up_acc_trans_after_ar_ap_gl_delete();
|
||
|
||
CREATE TRIGGER after_delete_gl_trigger
|
||
AFTER DELETE ON gl FOR EACH ROW EXECUTE
|
||
PROCEDURE clean_up_acc_trans_after_ar_ap_gl_delete();
|
Auch abrufbar als: Unified diff
Nach Löschen in ar/ap/gl via DB-Trigger in acc_trans aufräumen