FSN#28732 Flexkenmerken bij inspecties

svn path=/Database/trunk/; revision=20764
This commit is contained in:
Erik Groener
2014-02-24 12:00:37 +00:00
parent 234b82b5f4
commit a7d1aebc44
4 changed files with 17 additions and 32 deletions

View File

@@ -151,10 +151,10 @@ ALTER TABLE ins_kenmerk DROP CONSTRAINT ins_c_ins_kenmerk_niveau2;
ALTER TABLE ins_kenmerk ADD CONSTRAINT ins_c_ins_kenmerk_niveau2
CHECK (ins_kenmerk_niveau IS NOT NULL AND (ins_kenmerk_niveau IN('D', 'G', 'S', 'C')));
CREATE_TABLE(ins_kenmerkdeelsrtcontrole,0)
( ins_kenmerkdeelsrtcontrole_key
CREATE_TABLE(ins_kmdeelsrtcontr,0)
( ins_kmdeelsrtcontr_key
NUMBER(10)
CONSTRAINT ins_k_kenmerkdeelsrtcontr_key PRIMARY KEY,
CONSTRAINT ins_k_kmdeelsrtcontr_key PRIMARY KEY,
ins_deelsrtcontrole_key
NUMBER(10)
NOT NULL REFERENCES ins_deelsrtcontrole (ins_deelsrtcontrole_key) ON DELETE CASCADE,
@@ -171,10 +171,10 @@ CREATE_TABLE(ins_kenmerkdeelsrtcontrole,0)
ins_kmdeelsrtcontr_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT ins_u_ins_kenmerkdeelsrtcontr UNIQUE(ins_kenmerk_key, ins_deelsrtcontrole_key, ins_kmdeelsrtcontr_verwijder)
CONSTRAINT ins_u_ins_kmdeelsrtcontr UNIQUE(ins_kenmerk_key, ins_deelsrtcontrole_key, ins_kmdeelsrtcontr_verwijder)
);
CREATE SEQUENCE ins_s_kenmerkdeelsrtcontr_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_kmdeelsrtcontr_key MINVALUE 1;
/////////////////////////////////////////////////////////////////////////////////////////// FSN#28896
CREATE_TABLE(ins_deel_state_history, 0)
@@ -204,13 +204,14 @@ END;
// Truuk: converteer de bekende tracking; vereist wel de bovenstaande trigger
INSERT INTO ins_deel_state_history (ins_deel_key, ins_deel_state, ins_deel_statedate)
SELECT fac_tracking_refkey ins_deel_key,
REPLACE (REPLACE (fac_tracking_oms, 'Status ', ''), '''', ''),
MAX(REPLACE (REPLACE (fac_tracking_oms, 'Status ', ''), '''', '')),
t.fac_tracking_datum
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie n
WHERE n.fac_srtnotificatie_code = 'INSUPD')
AND t.fac_tracking_oms LIKE 'Status %';
AND t.fac_tracking_oms LIKE 'Status %'
GROUP BY fac_tracking_refkey, t.fac_tracking_datum;
// Now lets clean the tracking
DELETE FROM fac_tracking t
@@ -219,22 +220,6 @@ DELETE FROM fac_tracking t
WHERE n.fac_srtnotificatie_code = 'INSUPD')
AND t.fac_tracking_oms LIKE 'Status %';
// Verwijder het laatste record van evt tweedubbele waarden, anders faalt de unique index
DELETE FROM ins_deel_state_history h
WHERE h.ins_deel_key IN ( SELECT h3.ins_deel_key
FROM ins_deel_state_history h3
GROUP BY ins_deel_key, ins_deel_statedate
HAVING COUNT ( * ) > 1)
AND h.ins_deel_statedate IN ( SELECT h3.ins_deel_statedate
FROM ins_deel_state_history h3
GROUP BY ins_deel_key, ins_deel_statedate
HAVING COUNT ( * ) > 1)
AND h.ins_deel_state_history_key =
(SELECT MAX (h2.ins_deel_state_history_key)
FROM ins_deel_state_history h2
WHERE h2.ins_deel_key = h.ins_deel_key
AND h2.ins_deel_statedate = h.ins_deel_statedate);
CREATE UNIQUE INDEX ins_i_ins_deel_state_hist1 ON ins_deel_state_history(ins_deel_key, ins_deel_statedate);
///////////////////////////////////////////////////////////////////////////////////////////