155 lines
5.0 KiB
SQL
155 lines
5.0 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Er zijn 700+ objecten ingelezen. Achteraf wilde men eigenlijk dat er een garantiedatum gevuld wordt (afgeleiding van registratiedatum).
|
|
-- Dat wordt met dit script alsnog aangemaakt. Dus bij meer dan 700 objecten wordt een kenmerk gevuld (en tracking aangemaakt)
|
|
--
|
|
|
|
DEFINE thisfile = 'MAAS#76183.SQL'
|
|
DEFINE dbuser = 'MAAS'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
PROMPT &fcltcusterr
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
DECLARE
|
|
v_errorhint VARCHAR2 (100);
|
|
v_count NUMBER;
|
|
|
|
CURSOR telefonie IS
|
|
SELECT ins_deel_key,
|
|
TO_CHAR (TRUNC (ADD_MONTHS (ins_deel_aanmaak, 12)),
|
|
'DD-MM-YYYY') AS garantiedatum
|
|
FROM ins_v_aanwezigdeel
|
|
WHERE ins_discipline_key = 101;
|
|
|
|
CURSOR netwerkcomponent IS
|
|
SELECT ins_deel_key,
|
|
TO_CHAR (TRUNC (ADD_MONTHS (ins_deel_aanmaak, 12)),
|
|
'DD-MM-YYYY') AS garantiedatum
|
|
FROM ins_v_aanwezigdeel
|
|
WHERE ins_discipline_key = 102;
|
|
|
|
CURSOR hardware IS
|
|
SELECT ins_deel_key,
|
|
TO_CHAR (TRUNC (ADD_MONTHS (ins_deel_aanmaak, 12)),
|
|
'DD-MM-YYYY') AS garantiedatum
|
|
FROM ins_v_aanwezigdeel
|
|
WHERE ins_discipline_key = 104;
|
|
BEGIN
|
|
FOR rec IN telefonie
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Garantiedatum Telefonie ' || rec.ins_deel_key;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_deel_key = rec.ins_deel_key AND ins_kenmerk_key = 102; -- Kenmerk verloop garantie bij discipline Telefonie (accp102);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint :=
|
|
'Fout toevoegen waarde [' || rec.garantiedatum || ']';
|
|
|
|
INSERT INTO ins_kenmerkdeel (ins_deel_key,
|
|
ins_kenmerk_key,
|
|
ins_kenmerkdeel_waarde)
|
|
VALUES (rec.ins_deel_key, 102, rec.garantiedatum);
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.ins_deel_key,
|
|
NULL,
|
|
NULL,
|
|
'Verloop garantie: (leeg) --> ' || rec.garantiedatum);
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN netwerkcomponent
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Garantiedatum Netwerkcomponent ' || rec.ins_deel_key;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_deel_key = rec.ins_deel_key AND ins_kenmerk_key = 101; -- Kenmerk verloop garantie bij discipline Netwerkcomponent (accp101);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint :=
|
|
'Fout toevoegen waarde [' || rec.garantiedatum || ']';
|
|
|
|
INSERT INTO ins_kenmerkdeel (ins_deel_key,
|
|
ins_kenmerk_key,
|
|
ins_kenmerkdeel_waarde)
|
|
VALUES (rec.ins_deel_key, 101, rec.garantiedatum);
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.ins_deel_key,
|
|
NULL,
|
|
NULL,
|
|
'Verloop garantie: (leeg) --> ' || rec.garantiedatum);
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN hardware
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint := 'Garantiedatum Hardware ' || rec.ins_deel_key;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM ins_v_aanwezigkenmerkdeel
|
|
WHERE ins_deel_key = rec.ins_deel_key AND ins_kenmerk_key = 41; -- Kenmerk verloop garantie bij discipline Hardware;
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint :=
|
|
'Fout toevoegen waarde [' || rec.garantiedatum || ']';
|
|
|
|
INSERT INTO ins_kenmerkdeel (ins_deel_key,
|
|
ins_kenmerk_key,
|
|
ins_kenmerkdeel_waarde)
|
|
VALUES (rec.ins_deel_key, 41, rec.garantiedatum);
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.ins_deel_key,
|
|
NULL,
|
|
NULL,
|
|
'Verloop garantie: (leeg) --> ' || rec.garantiedatum);
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 1); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|