svn path=/Customer/trunk/; revision=14817

This commit is contained in:
Maarten van der Heide
2011-06-01 15:08:14 +00:00
parent f3fd838ee9
commit 783f068922

530
CONN/Once/CONN44.sql Normal file
View File

@@ -0,0 +1,530 @@
-- Customer specific once-script CONN44.
--
-- (c) 2011 SG|facilitor bv
-- $Revision: 1 $
-- $Modtime: 1-06-11 16:26 $
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xconn44.lst
SET DEFINE OFF
-- Definitie tabel voor importfunctie inspectieobjecten
CREATE TABLE conn_imp_inspectieobj
(
alg_locatie_code VARCHAR2 (10), -- C10
alg_ruimte_nr VARCHAR2 (10), -- C10
ins_discipline_omschrijving VARCHAR2 (30), -- C30
ins_srtgroep_omschrijving VARCHAR2 (60), -- C60
ins_srtdeel_code VARCHAR2 (10), -- C10
ins_srtdeel_omschrijving VARCHAR2 (100), -- C100
ins_deel_omschrijving VARCHAR2 (60), -- C60
merk VARCHAR2 (60), -- C60
type VARCHAR2 (60), -- C60
hoogte VARCHAR2 (60), -- C60
belasting VARCHAR2 (60), -- C60
bereik VARCHAR2 (60), -- C60
voltage VARCHAR2 (60), -- C60
apkplicht VARCHAR2 (60), -- C60
prs_bedrijf_naam VARCHAR2 (60), -- C60
ins_srtcontrole_omschrijving VARCHAR2 (60), -- C60
--periode NUMBER(4), -- N4
--controle_gepland DATE, -- DATE
--controle_laatste DATE, -- DATE
ins_deelsrtcontrole_datum DATE, -- DATE
ins_deelsrtcontrole_opmerking VARCHAR2 (500), -- C500
afgekeurd VARCHAR2 (60) -- C60
);
INSERT INTO fac_import_app (fac_import_app_code, fac_import_app_oms, fac_functie_key)
SELECT 'INSPECTIEOBJ', 'Inlezen/bijwerken inspectieobjecten', fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
INSERT INTO fac_usrrap (fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum)
VALUES ('BEHEER: Export/import inspectieobjecten',
'conn_v_rap_inspectieobj_expimp',
0,
'Export/import: inspectieobjecten',
64,
0,
0);
INSERT INTO fac_import_app (fac_import_app_code, fac_import_app_oms, fac_functie_key)
SELECT 'BUDGET', 'Inlezen budgetinformatie', fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
INSERT INTO fac_import_app (fac_import_app_code, fac_import_app_oms, fac_functie_key)
SELECT 'KOSTEN', 'Inlezen kosteninformatie', fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
INSERT INTO fac_import_app (fac_import_app_code, fac_import_app_oms, fac_functie_key)
SELECT 'XELION_CONTRACT', 'Inlezen Xelion contractinformatie', fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
INSERT INTO fac_usrrap (fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum)
VALUES ('FIN: kosten vs begroting',
'conn_v_rap_locatie_kosten',
1,
'Verschil tussen begroting en gemaakte kosten',
64,
0,
0);
-- reanimeer oude huur/verhuurcontracten omdat de einddatum nooit aangepast is.
UPDATE cnt_contract
SET cnt_contract_looptijd_tot = TO_DATE ('20200101', 'yyyymmdd')
WHERE ins_discipline_key IN (1564, 1565) -- inhuur en verhuurcontracten
AND cnt_contract_looptijd_tot < SYSDATE;
COMMIT;
-- Converteer last/next keurdatum
/* Formatted on 1-6-2011 16:10:30 (QP5 v5.115.810.9015) */
DECLARE
v_errormsg VARCHAR2 (1024);
c_controle_soort VARCHAR2 (60) := '_DEFAULT';
c_controle_periode NUMBER (10) := 360;
v_srtcontrole_id VARCHAR2 (20);
v_controlemode_key NUMBER (10);
laatste DATE;
ccount NUMBER (10);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_1 NUMBER (10) := 0;
v_count_2 NUMBER (10) := 0;
v_aanduiding VARCHAR (200);
BEGIN
FOR rc
IN ( SELECT z1.discipline_key,
z1.groep_key,
z1.objectsoort_key,
z1.objectsoortcode,
z1.objectsoort,
z1.ins_deel_key,
z1.ins_deel_omschrijving,
z1.keur_datum,
fac.safe_to_date (z2.waarde, 'dd-mm-yyyy') a,
z1.next_keur,
fac.safe_to_date (z3.waarde, 'dd-mm-yyyy') b,
z1.keuringsinstantie,
z6.waarde e
FROM (SELECT l.alg_locatie_omschrijving werkplaats,
td.ins_discipline_omschrijving discipline,
td.ins_discipline_key discipline_key,
sg.ins_srtgroep_omschrijving groep,
sg.ins_srtgroep_key groep_key,
sd.ins_srtdeel_code objectsoortcode,
sd.ins_srtdeel_omschrijving objectsoort,
sd.ins_srtdeel_key objectsoort_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_verwijder,
y.keur_datum,
y.next_keur,
y.keuringsinstantie
FROM ( SELECT DISTINCT
x.ins_srtdeel_key,
MAX (x.k2) keur_datum,
MAX (x.k3) next_keur,
MAX (x.k6) keuringsinstantie
FROM (SELECT sd.ins_srtdeel_key,
k.ins_kenmerk_key k2,
NULL k3,
NULL k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key =
52 -- Datum gekeurd/discipline
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'D'
AND k.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
k.ins_kenmerk_key k2,
NULL k3,
NULL k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key =
52 -- Datum gekeurd/groep
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'G'
AND k.ins_srtinstallatie_key =
sg.ins_srtgroep_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
k.ins_kenmerk_key k2,
NULL k3,
NULL k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key =
52 -- Datum gekeurd/objectsoort
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'S'
AND k.ins_srtinstallatie_key =
sd.ins_srtdeel_key
UNION ALL -- Datum volgende keuring
SELECT sd.ins_srtdeel_key,
NULL k2,
k.ins_kenmerk_key k3,
NULL k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key =
75 -- Datum volgende keuring/discipline
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'D'
AND k.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
NULL k2,
k.ins_kenmerk_key k3,
NULL k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key =
75 -- Datum volgende keuring/groep
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'G'
AND k.ins_srtinstallatie_key =
sg.ins_srtgroep_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
NULL k2,
k.ins_kenmerk_key k3,
NULL k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key =
75 -- Datum volgende keuring/soort
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'S'
AND k.ins_srtinstallatie_key =
sd.ins_srtdeel_key
UNION ALL -- Keuringsinstantie
SELECT sd.ins_srtdeel_key,
NULL k2,
NULL k3,
k.ins_kenmerk_key k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key IN
(1153, 1325) -- Keuringsinstantie/discipline
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'D'
AND k.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
NULL k2,
NULL k3,
k.ins_kenmerk_key k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key IN
(1153, 1325) -- Keuringsinstantie/groep
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'G'
AND k.ins_srtinstallatie_key =
sg.ins_srtgroep_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
NULL k2,
NULL k3,
k.ins_kenmerk_key k6
FROM ins_v_aanwezigsrtkenmerk sk,
ins_v_aanwezigkenmerk k,
ins_srtdeel sd
WHERE sk.ins_srtkenmerk_key IN
(1153, 1325) -- Keuringsinstantie/soort
AND sk.ins_srtkenmerk_key =
k.ins_srtkenmerk_key
AND k.ins_kenmerk_niveau =
'S'
AND k.ins_srtinstallatie_key =
sd.ins_srtdeel_key)
x
GROUP BY x.ins_srtdeel_key) y,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_locatie l
WHERE y.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key =
sg.ins_srtgroep_key
AND sg.ins_discipline_key =
td.ins_discipline_key
AND d.ins_alg_locatie_key =
l.alg_locatie_key(+)) z1
LEFT JOIN
(SELECT kd.ins_deel_key,
kd.ins_kenmerk_key,
kd.ins_kenmerkdeel_waarde waarde
FROM ins_v_aanwezigkenmerkdeel kd) z2
ON z1.ins_deel_key = z2.ins_deel_key
AND z1.keur_datum = z2.ins_kenmerk_key
LEFT JOIN
(SELECT kd.ins_deel_key,
kd.ins_kenmerk_key,
kd.ins_kenmerkdeel_waarde waarde
FROM ins_v_aanwezigkenmerkdeel kd) z3
ON z1.ins_deel_key = z3.ins_deel_key
AND z1.next_keur = z3.ins_kenmerk_key
LEFT JOIN
(SELECT kd.ins_deel_key,
kd.ins_kenmerk_key,
kd.ins_kenmerkdeel_waarde waarde
FROM ins_v_aanwezigkenmerkdeel kd) z6
ON z1.ins_deel_key = z6.ins_deel_key
AND z1.keuringsinstantie = z6.ins_kenmerk_key
WHERE z1.ins_deel_verwijder IS NULL
ORDER BY 1,
2,
3,
7)
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| rc.objectsoort_key
|| '|'
|| rc.objectsoortcode
|| '|'
|| rc.ins_deel_key
|| '|'
|| rc.ins_deel_omschrijving
|| '] ';
-- Toevoegen controle; gebruik [a] de meest specifieke soort en
-- [b] de minst recente mode!
v_errormsg := 'Fout bij bepalen soort controle';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtcontrole sc
WHERE UPPER (TRIM (sc.ins_srtcontrole_omschrijving)) =
SUBSTR (
UPPER (rc.objectsoortcode) || '-' || c_controle_soort,
1,
60
)
AND ( (sc.ins_srtinstallatie_key = rc.objectsoort_key
AND sc.ins_srtcontrole_niveau = 'S')
OR (sc.ins_srtinstallatie_key = rc.groep_key
AND sc.ins_srtcontrole_niveau = 'G')
OR (sc.ins_srtinstallatie_key = rc.discipline_key
AND sc.ins_srtcontrole_niveau = 'D'));
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen soort controle';
INSERT INTO ins_srtcontrole (
ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode
)
VALUES (
rc.objectsoort_key,
'S',
SUBSTR (
UPPER (rc.objectsoortcode)
|| '-'
|| c_controle_soort,
1,
60
),
c_controle_periode -- Default een jaar!
)
RETURNING ins_srtcontrole_key INTO v_srtcontrole_id;
v_srtcontrole_id := 'S' || v_srtcontrole_id;
fac.imp_writelog (
'CONN44',
44,
'I',
'INS-Objecten/soort controle toegevoegd: '
|| SUBSTR (
UPPER (rc.objectsoortcode) || '-' || c_controle_soort,
1,
60
)
|| ' voor '
|| rc.objectsoort,
''
);
COMMIT;
v_count_1 := v_count_1 + 1;
ELSE
SELECT MAX(sc.ins_srtcontrole_niveau
|| TO_CHAR (sc.ins_srtcontrole_key))
INTO v_srtcontrole_id
FROM ins_srtcontrole sc
WHERE UPPER (TRIM (sc.ins_srtcontrole_omschrijving)) =
SUBSTR (
UPPER (rc.objectsoortcode)
|| '-'
|| c_controle_soort,
1,
60
)
AND ( (sc.ins_srtinstallatie_key = rc.objectsoort_key
AND sc.ins_srtcontrole_niveau = 'S')
OR (sc.ins_srtinstallatie_key = rc.groep_key
AND sc.ins_srtcontrole_niveau = 'G')
OR (sc.ins_srtinstallatie_key = rc.discipline_key
AND sc.ins_srtcontrole_niveau = 'D'));
END IF;
-- Als volgende in toekomst, dan laatste=volgende - 1 jaar; anders is laatste=laatste
IF rc.b > SYSDATE
THEN
laatste :=
TO_DATE (TO_CHAR (rc.b, 'dd-mm') || '-2010', 'dd-mm-yyyy');
ELSE -- b <= SYSDATE
laatste := rc.a;
END IF;
IF (laatste IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen controle mode';
SELECT MIN (ins_controlemode_key)
INTO v_controlemode_key
FROM ins_controlemode;
v_errormsg := 'Fout bij toevoegen controle';
INSERT INTO ins_deelsrtcontrole (ins_deel_key,
ins_srtcontrole_key,
ins_deelsrtcontrole_datum,
ins_controlemode_key,
ins_deelsrtcontrole_opmerking)
VALUES (rc.ins_deel_key,
fac.safe_to_number (SUBSTR (v_srtcontrole_id, 2)),
laatste,
v_controlemode_key,
'');
COMMIT;
v_count_2 := v_count_2 + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog ('CONN44',
44,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (
'CONN44',
44,
'S',
'INS-Objecten/aantal beschouwd: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
'CONN44',
44,
'S',
'INS-Controlesoorten/aantal toegevoegd: ' || TO_CHAR (v_count_1),
''
);
fac.imp_writelog (
'CONN44',
44,
'S',
'INS-Controles/aantal toegevoegd: ' || TO_CHAR (v_count_2),
''
);
COMMIT;
END;
/
BEGIN adm.systrackscript('$Workfile: CONN44.sql $', '$Revision: 1 $', 1); END;
/
SPOOL OFF
@conn.sql