database: Add itime and xtime

This commit is contained in:
2025-06-03 20:46:34 +02:00
parent 351228bf30
commit 6aceebde0e
5 changed files with 65 additions and 29 deletions

View File

@ -112,6 +112,8 @@ CREATE TABLE member (
comment TEXT DEFAULT NULL, comment TEXT DEFAULT NULL,
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
xtime INTEGER DEFAULT NULL,
itime INTEGER DEFAULT NULL,
CONSTRAINT pk_member PRIMARY KEY (mgnr), CONSTRAINT pk_member PRIMARY KEY (mgnr),
CONSTRAINT fk_member_member FOREIGN KEY (predecessor_mgnr) REFERENCES member (mgnr) CONSTRAINT fk_member_member FOREIGN KEY (predecessor_mgnr) REFERENCES member (mgnr)
@ -190,6 +192,8 @@ CREATE TABLE area_commitment (
comment TEXT DEFAULT NULL, comment TEXT DEFAULT NULL,
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
xtime INTEGER DEFAULT NULL,
itime INTEGER DEFAULT NULL,
CONSTRAINT pk_area_commitment PRIMARY KEY (fbnr), CONSTRAINT pk_area_commitment PRIMARY KEY (fbnr),
CONSTRAINT fk_area_commitment_member FOREIGN KEY (mgnr) REFERENCES member (mgnr) CONSTRAINT fk_area_commitment_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)

View File

@ -84,6 +84,8 @@ CREATE TABLE delivery_announcement (
type TEXT NOT NULL, type TEXT NOT NULL,
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
xtime INTEGER DEFAULT NULL,
itime INTEGER DEFAULT NULL,
CONSTRAINT pk_delivery_announcement PRIMARY KEY (year, dsnr, mgnr, sortid), CONSTRAINT pk_delivery_announcement PRIMARY KEY (year, dsnr, mgnr, sortid),
CONSTRAINT fk_delivery_announcement_delivery_schedule FOREIGN KEY (year, dsnr) REFERENCES delivery_schedule (year, dsnr) CONSTRAINT fk_delivery_announcement_delivery_schedule FOREIGN KEY (year, dsnr) REFERENCES delivery_schedule (year, dsnr)
@ -129,6 +131,8 @@ CREATE TABLE delivery (
comment TEXT DEFAULT NULL, comment TEXT DEFAULT NULL,
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
xtime INTEGER DEFAULT NULL,
itime INTEGER DEFAULT NULL,
CONSTRAINT pk_delivery PRIMARY KEY (year, did), CONSTRAINT pk_delivery PRIMARY KEY (year, did),
CONSTRAINT sk_delivery_1 UNIQUE (date, zwstid, lnr), CONSTRAINT sk_delivery_1 UNIQUE (date, zwstid, lnr),
@ -187,6 +191,8 @@ CREATE TABLE delivery_part (
comment TEXT DEFAULT NULL, comment TEXT DEFAULT NULL,
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
xtime INTEGER DEFAULT NULL,
itime INTEGER DEFAULT NULL,
CONSTRAINT pk_delivery_part PRIMARY KEY (year, did, dpnr), CONSTRAINT pk_delivery_part PRIMARY KEY (year, did, dpnr),
CONSTRAINT fk_delivery_part_delivery FOREIGN KEY (year, did) REFERENCES delivery (year, did) CONSTRAINT fk_delivery_part_delivery FOREIGN KEY (year, did) REFERENCES delivery (year, did)

View File

@ -28,6 +28,8 @@ CREATE TABLE payment_variant (
data TEXT NOT NULL, data TEXT NOT NULL,
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
xtime INTEGER DEFAULT NULL,
itime INTEGER DEFAULT NULL,
CONSTRAINT pk_payment PRIMARY KEY (year, avnr) CONSTRAINT pk_payment PRIMARY KEY (year, avnr)
) STRICT; ) STRICT;
@ -189,6 +191,8 @@ CREATE TABLE credit (
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()), mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
xtime INTEGER DEFAULT NULL,
itime INTEGER DEFAULT NULL,
CONSTRAINT pk_credit PRIMARY KEY (year, tgnr), CONSTRAINT pk_credit PRIMARY KEY (year, tgnr),
CONSTRAINT sk_credit_payment_member UNIQUE (year, avnr, mgnr), CONSTRAINT sk_credit_payment_member UNIQUE (year, avnr, mgnr),

View File

@ -1,28 +1,32 @@
INSERT INTO client_parameter (param, value) VALUES ('ENABLE_TIME_TRIGGERS', '1');
----------------------------------------------------------------
CREATE TRIGGER t_member_i_ctime CREATE TRIGGER t_member_i_ctime
AFTER INSERT ON member FOR EACH ROW AFTER INSERT ON member FOR EACH ROW
WHEN NEW.ctime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
BEGIN BEGIN
UPDATE member SET ctime = UNIXEPOCH() WHERE mgnr = NEW.mgnr; UPDATE member SET ctime = UNIXEPOCH() WHERE mgnr = NEW.mgnr;
END; END;
CREATE TRIGGER t_member_u_ctime CREATE TRIGGER t_member_u_ctime
BEFORE UPDATE ON member FOR EACH ROW BEFORE UPDATE ON member FOR EACH ROW
WHEN OLD.ctime != NEW.ctime WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
BEGIN BEGIN
SELECT RAISE(ABORT, 'It is not allowed to change ctime'); SELECT RAISE(ABORT, 'It is not allowed to change ctime');
END; END;
CREATE TRIGGER t_member_i_mtime CREATE TRIGGER t_member_i_mtime
AFTER INSERT ON member FOR EACH ROW AFTER INSERT ON member FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr;
END; END;
CREATE TRIGGER t_member_u_mtime CREATE TRIGGER t_member_u_mtime
AFTER UPDATE ON member FOR EACH ROW AFTER UPDATE ON member FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr;
END; END;
@ -31,18 +35,21 @@ END;
CREATE TRIGGER t_member_billing_address_i_mtime_member CREATE TRIGGER t_member_billing_address_i_mtime_member
AFTER INSERT ON member_billing_address FOR EACH ROW AFTER INSERT ON member_billing_address FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr;
END; END;
CREATE TRIGGER t_member_billing_address_u_mtime_member CREATE TRIGGER t_member_billing_address_u_mtime_member
AFTER UPDATE ON member_billing_address FOR EACH ROW AFTER UPDATE ON member_billing_address FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr OR mgnr = NEW.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr OR mgnr = NEW.mgnr;
END; END;
CREATE TRIGGER t_member_billing_address_d_mtime_member CREATE TRIGGER t_member_billing_address_d_mtime_member
AFTER DELETE ON member_billing_address FOR EACH ROW AFTER DELETE ON member_billing_address FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr;
END; END;
@ -51,18 +58,21 @@ END;
CREATE TRIGGER t_member_telephone_number_i_mtime_member CREATE TRIGGER t_member_telephone_number_i_mtime_member
AFTER INSERT ON member_telephone_number FOR EACH ROW AFTER INSERT ON member_telephone_number FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr;
END; END;
CREATE TRIGGER t_member_telephone_number_u_mtime_member CREATE TRIGGER t_member_telephone_number_u_mtime_member
AFTER UPDATE ON member_telephone_number FOR EACH ROW AFTER UPDATE ON member_telephone_number FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr OR mgnr = NEW.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr OR mgnr = NEW.mgnr;
END; END;
CREATE TRIGGER t_member_telephone_number_d_mtime_member CREATE TRIGGER t_member_telephone_number_d_mtime_member
AFTER DELETE ON member_telephone_number FOR EACH ROW AFTER DELETE ON member_telephone_number FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr; UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr;
END; END;
@ -71,28 +81,28 @@ END;
CREATE TRIGGER t_area_commitment_i_ctime CREATE TRIGGER t_area_commitment_i_ctime
AFTER INSERT ON area_commitment FOR EACH ROW AFTER INSERT ON area_commitment FOR EACH ROW
WHEN NEW.ctime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
BEGIN BEGIN
UPDATE area_commitment SET ctime = UNIXEPOCH() WHERE fbnr = NEW.fbnr; UPDATE area_commitment SET ctime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
END; END;
CREATE TRIGGER t_area_commitment_u_ctime CREATE TRIGGER t_area_commitment_u_ctime
BEFORE UPDATE ON area_commitment FOR EACH ROW BEFORE UPDATE ON area_commitment FOR EACH ROW
WHEN OLD.ctime != NEW.ctime WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
BEGIN BEGIN
SELECT RAISE(ABORT, 'It is not allowed to change ctime'); SELECT RAISE(ABORT, 'It is not allowed to change ctime');
END; END;
CREATE TRIGGER t_area_commitment_i_mtime CREATE TRIGGER t_area_commitment_i_mtime
AFTER INSERT ON area_commitment FOR EACH ROW AFTER INSERT ON area_commitment FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr; UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
END; END;
CREATE TRIGGER t_area_commitment_u_mtime CREATE TRIGGER t_area_commitment_u_mtime
AFTER UPDATE ON area_commitment FOR EACH ROW AFTER UPDATE ON area_commitment FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr; UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
END; END;
@ -101,28 +111,28 @@ END;
CREATE TRIGGER t_delivery_i_ctime CREATE TRIGGER t_delivery_i_ctime
AFTER INSERT ON delivery FOR EACH ROW AFTER INSERT ON delivery FOR EACH ROW
WHEN NEW.ctime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery SET ctime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did); UPDATE delivery SET ctime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did);
END; END;
CREATE TRIGGER t_delivery_u_ctime CREATE TRIGGER t_delivery_u_ctime
AFTER UPDATE ON delivery FOR EACH ROW AFTER UPDATE ON delivery FOR EACH ROW
WHEN OLD.ctime != NEW.ctime WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
BEGIN BEGIN
SELECT RAISE(ABORT, 'It is not allowed to change ctime'); SELECT RAISE(ABORT, 'It is not allowed to change ctime');
END; END;
CREATE TRIGGER t_delivery_i_mtime CREATE TRIGGER t_delivery_i_mtime
AFTER INSERT ON delivery FOR EACH ROW AFTER INSERT ON delivery FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did); UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did);
END; END;
CREATE TRIGGER t_delivery_u_mtime CREATE TRIGGER t_delivery_u_mtime
AFTER UPDATE ON delivery FOR EACH ROW AFTER UPDATE ON delivery FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did); UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did);
END; END;
@ -131,46 +141,49 @@ END;
CREATE TRIGGER t_delivery_part_i_ctime CREATE TRIGGER t_delivery_part_i_ctime
AFTER INSERT ON delivery_part FOR EACH ROW AFTER INSERT ON delivery_part FOR EACH ROW
WHEN NEW.ctime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery_part SET ctime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr); UPDATE delivery_part SET ctime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr);
END; END;
CREATE TRIGGER t_delivery_part_u_ctime CREATE TRIGGER t_delivery_part_u_ctime
AFTER UPDATE ON delivery_part FOR EACH ROW AFTER UPDATE ON delivery_part FOR EACH ROW
WHEN OLD.ctime != NEW.ctime WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
BEGIN BEGIN
SELECT RAISE(ABORT, 'It is not allowed to change ctime'); SELECT RAISE(ABORT, 'It is not allowed to change ctime');
END; END;
CREATE TRIGGER t_delivery_part_i_mtime CREATE TRIGGER t_delivery_part_i_mtime
AFTER INSERT ON delivery_part FOR EACH ROW AFTER INSERT ON delivery_part FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr); UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr);
END; END;
CREATE TRIGGER t_delivery_part_u_mtime CREATE TRIGGER t_delivery_part_u_mtime
AFTER UPDATE ON delivery_part FOR EACH ROW AFTER UPDATE ON delivery_part FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr); UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr);
END; END;
CREATE TRIGGER t_delivery_part_i_mtime_delivery CREATE TRIGGER t_delivery_part_i_mtime_delivery
AFTER INSERT ON delivery_part FOR EACH ROW AFTER INSERT ON delivery_part FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did); UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did);
END; END;
CREATE TRIGGER t_delivery_part_u_mtime_delivery CREATE TRIGGER t_delivery_part_u_mtime_delivery
AFTER UPDATE ON delivery_part FOR EACH ROW AFTER UPDATE ON delivery_part FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did) OR (year, did) = (OLD.year, OLD.did); UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (NEW.year, NEW.did) OR (year, did) = (OLD.year, OLD.did);
END; END;
CREATE TRIGGER t_delivery_part_d_mtime_delivery CREATE TRIGGER t_delivery_part_d_mtime_delivery
AFTER DELETE ON delivery_part FOR EACH ROW AFTER DELETE ON delivery_part FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (OLD.year, OLD.did); UPDATE delivery SET mtime = UNIXEPOCH() WHERE (year, did) = (OLD.year, OLD.did);
END; END;
@ -179,18 +192,21 @@ END;
CREATE TRIGGER t_delivery_part_modifier_i_mtime_delivery_part CREATE TRIGGER t_delivery_part_modifier_i_mtime_delivery_part
AFTER INSERT ON delivery_part_modifier FOR EACH ROW AFTER INSERT ON delivery_part_modifier FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr); UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr);
END; END;
CREATE TRIGGER t_delivery_part_modifier_u_mtime_delivery_part CREATE TRIGGER t_delivery_part_modifier_u_mtime_delivery_part
AFTER UPDATE ON delivery_part_modifier FOR EACH ROW AFTER UPDATE ON delivery_part_modifier FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr) OR (year, did, dpnr) = (OLD.year, OLD.did, OLD.dpnr); UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr) OR (year, did, dpnr) = (OLD.year, OLD.did, OLD.dpnr);
END; END;
CREATE TRIGGER t_delivery_part_modifier_d_mtime_delivery_part CREATE TRIGGER t_delivery_part_modifier_d_mtime_delivery_part
AFTER DELETE ON delivery_part_modifier FOR EACH ROW AFTER DELETE ON delivery_part_modifier FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (OLD.year, OLD.did, OLD.dpnr); UPDATE delivery_part SET mtime = UNIXEPOCH() WHERE (year, did, dpnr) = (OLD.year, OLD.did, OLD.dpnr);
END; END;
@ -199,28 +215,28 @@ END;
CREATE TRIGGER t_payment_variant_i_ctime CREATE TRIGGER t_payment_variant_i_ctime
AFTER INSERT ON payment_variant FOR EACH ROW AFTER INSERT ON payment_variant FOR EACH ROW
WHEN NEW.ctime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
BEGIN BEGIN
UPDATE payment_variant SET ctime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr); UPDATE payment_variant SET ctime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr);
END; END;
CREATE TRIGGER t_payment_variant_u_ctime CREATE TRIGGER t_payment_variant_u_ctime
BEFORE UPDATE ON payment_variant FOR EACH ROW BEFORE UPDATE ON payment_variant FOR EACH ROW
WHEN OLD.ctime != NEW.ctime WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
BEGIN BEGIN
SELECT RAISE(ABORT, 'It is not allowed to change ctime'); SELECT RAISE(ABORT, 'It is not allowed to change ctime');
END; END;
CREATE TRIGGER t_payment_variant_i_mtime CREATE TRIGGER t_payment_variant_i_mtime
AFTER INSERT ON payment_variant FOR EACH ROW AFTER INSERT ON payment_variant FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr);
END; END;
CREATE TRIGGER t_payment_variant_u_mtime CREATE TRIGGER t_payment_variant_u_mtime
AFTER UPDATE ON payment_variant FOR EACH ROW AFTER UPDATE ON payment_variant FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr);
END; END;
@ -229,18 +245,21 @@ END;
CREATE TRIGGER t_payment_delivery_part_i_mtime_payment_variant CREATE TRIGGER t_payment_delivery_part_i_mtime_payment_variant
AFTER INSERT ON payment_delivery_part FOR EACH ROW AFTER INSERT ON payment_delivery_part FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr);
END; END;
CREATE TRIGGER t_payment_delivery_part_u_mtime_payment_variant CREATE TRIGGER t_payment_delivery_part_u_mtime_payment_variant
AFTER UPDATE ON payment_delivery_part FOR EACH ROW AFTER UPDATE ON payment_delivery_part FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr) OR (year, avnr) = (NEW.year, NEW.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr) OR (year, avnr) = (NEW.year, NEW.avnr);
END; END;
CREATE TRIGGER t_payment_delivery_part_d_mtime_payment_variant CREATE TRIGGER t_payment_delivery_part_d_mtime_payment_variant
AFTER DELETE ON payment_delivery_part FOR EACH ROW AFTER DELETE ON payment_delivery_part FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr);
END; END;
@ -249,18 +268,21 @@ END;
CREATE TRIGGER t_payment_member_i_mtime_payment_variant CREATE TRIGGER t_payment_member_i_mtime_payment_variant
AFTER INSERT ON payment_member FOR EACH ROW AFTER INSERT ON payment_member FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (NEW.year, NEW.avnr);
END; END;
CREATE TRIGGER t_payment_member_u_mtime_payment_variant CREATE TRIGGER t_payment_member_u_mtime_payment_variant
AFTER UPDATE ON payment_member FOR EACH ROW AFTER UPDATE ON payment_member FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr) OR (year, avnr) = (NEW.year, NEW.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr) OR (year, avnr) = (NEW.year, NEW.avnr);
END; END;
CREATE TRIGGER t_payment_member_d_mtime_payment_variant CREATE TRIGGER t_payment_member_d_mtime_payment_variant
AFTER DELETE ON payment_member FOR EACH ROW AFTER DELETE ON payment_member FOR EACH ROW
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
BEGIN BEGIN
UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr); UPDATE payment_variant SET mtime = UNIXEPOCH() WHERE (year, avnr) = (OLD.year, OLD.avnr);
END; END;
@ -269,28 +291,28 @@ END;
CREATE TRIGGER t_credit_i_ctime CREATE TRIGGER t_credit_i_ctime
AFTER INSERT ON credit FOR EACH ROW AFTER INSERT ON credit FOR EACH ROW
WHEN NEW.ctime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
BEGIN BEGIN
UPDATE credit SET ctime = UNIXEPOCH() WHERE (year, tgnr) = (NEW.year, NEW.tgnr); UPDATE credit SET ctime = UNIXEPOCH() WHERE (year, tgnr) = (NEW.year, NEW.tgnr);
END; END;
CREATE TRIGGER t_credit_u_ctime CREATE TRIGGER t_credit_u_ctime
BEFORE UPDATE ON credit FOR EACH ROW BEFORE UPDATE ON credit FOR EACH ROW
WHEN OLD.ctime != NEW.ctime WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
BEGIN BEGIN
SELECT RAISE(ABORT, 'It is not allowed to change ctime'); SELECT RAISE(ABORT, 'It is not allowed to change ctime');
END; END;
CREATE TRIGGER t_credit_i_mtime CREATE TRIGGER t_credit_i_mtime
AFTER INSERT ON credit FOR EACH ROW AFTER INSERT ON credit FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE credit SET mtime = UNIXEPOCH() WHERE (year, tgnr) = (NEW.year, NEW.tgnr); UPDATE credit SET mtime = UNIXEPOCH() WHERE (year, tgnr) = (NEW.year, NEW.tgnr);
END; END;
CREATE TRIGGER t_credit_u_mtime CREATE TRIGGER t_credit_u_mtime
AFTER UPDATE ON credit FOR EACH ROW AFTER UPDATE ON credit FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE credit SET mtime = UNIXEPOCH() WHERE (year, tgnr) = (NEW.year, NEW.tgnr); UPDATE credit SET mtime = UNIXEPOCH() WHERE (year, tgnr) = (NEW.year, NEW.tgnr);
END; END;
@ -299,28 +321,28 @@ END;
CREATE TRIGGER t_delivery_announcement_i_ctime CREATE TRIGGER t_delivery_announcement_i_ctime
AFTER INSERT ON delivery_announcement FOR EACH ROW AFTER INSERT ON delivery_announcement FOR EACH ROW
WHEN NEW.ctime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery_announcement SET ctime = UNIXEPOCH() WHERE (year, dsnr, mgnr, sortid) = (NEW.year, NEW.dsnr, NEW.mgnr, NEW.sortid); UPDATE delivery_announcement SET ctime = UNIXEPOCH() WHERE (year, dsnr, mgnr, sortid) = (NEW.year, NEW.dsnr, NEW.mgnr, NEW.sortid);
END; END;
CREATE TRIGGER t_delivery_announcement_u_ctime CREATE TRIGGER t_delivery_announcement_u_ctime
BEFORE UPDATE ON delivery_announcement FOR EACH ROW BEFORE UPDATE ON delivery_announcement FOR EACH ROW
WHEN OLD.ctime != NEW.ctime WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
BEGIN BEGIN
SELECT RAISE(ABORT, 'It is not allowed to change ctime'); SELECT RAISE(ABORT, 'It is not allowed to change ctime');
END; END;
CREATE TRIGGER t_delivery_announcement_i_mtime CREATE TRIGGER t_delivery_announcement_i_mtime
AFTER INSERT ON delivery_announcement FOR EACH ROW AFTER INSERT ON delivery_announcement FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery_announcement SET mtime = UNIXEPOCH() WHERE (year, dsnr, mgnr, sortid) = (NEW.year, NEW.dsnr, NEW.mgnr, NEW.sortid); UPDATE delivery_announcement SET mtime = UNIXEPOCH() WHERE (year, dsnr, mgnr, sortid) = (NEW.year, NEW.dsnr, NEW.mgnr, NEW.sortid);
END; END;
CREATE TRIGGER t_delivery_announcement_u_mtime CREATE TRIGGER t_delivery_announcement_u_mtime
AFTER UPDATE ON delivery_announcement FOR EACH ROW AFTER UPDATE ON delivery_announcement FOR EACH ROW
WHEN NEW.mtime != UNIXEPOCH() WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
BEGIN BEGIN
UPDATE delivery_announcement SET mtime = UNIXEPOCH() WHERE (year, dsnr, mgnr, sortid) = (NEW.year, NEW.dsnr, NEW.mgnr, NEW.sortid); UPDATE delivery_announcement SET mtime = UNIXEPOCH() WHERE (year, dsnr, mgnr, sortid) = (NEW.year, NEW.dsnr, NEW.mgnr, NEW.sortid);
END; END;

View File

@ -1,3 +1,3 @@
-- This value MUST NOT be changed while other connections are open! -- This value MUST NOT be changed while other connections are open!
PRAGMA schema_version = 3100; PRAGMA schema_version = 3200;