diff --git a/CONN/Once/CONN44.sql b/CONN/Once/CONN44.sql new file mode 100644 index 000000000..eacdbd271 --- /dev/null +++ b/CONN/Once/CONN44.sql @@ -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