/* Formatted on 24/1/2024 15:33:01 (QP5 v5.336) */ -- -- $Id$ -- -- Script containing customer specific sql statements for the FACILITOR database -- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust) -- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group) -- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM' -- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt. -- (dit in tegenstelling tot sample_xxxx.sql) DEFINE thisfile = 'BAUS.SQL' DEFINE dbuser = 'BAUS' SET ECHO ON SET DEFINE ON COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT; WHENEVER SQLERROR CONTINUE; SELECT adm.getscriptspoolfile ('&thisfile') AS fcltlogfile FROM DUAL; SPOOL &fcltlogfile WHENEVER SQLERROR EXIT; SELECT adm.checkscriptcust ('&dbuser') AS fcltcusttxt FROM DUAL; WHENEVER SQLERROR CONTINUE; --------------------------------------- PROMPT &fcltcusttxt --------------------------------------- SET DEFINE OFF ------ payload begin ------ CREATE OR REPLACE VIEW BAUS_V_RAP_TAKEN ( ins_deel_key, ins_deel_omschrijving, ins_deel_opmerking, inspectie, laatste_controle, volgende_controle, status, verantwoordelijke ) AS SELECT ctr.ins_deel_key, ctr.ins_deel_omschrijving, ctr.ins_deel_opmerking, ctr.ins_srtcontrole_omschrijving, TRUNC (last_insp.ins_deelsrtcontrole_datum) laatste_insp, TRUNC (ctr.ins_deelsrtcontrole_datum) volgende_insp, ctr.status, d.prs_dienst_omschrijving FROM (SELECT d.ins_srtcontrole_key, d.ins_deel_key, d.ins_srtdeel_omschrijving || ' ' || d.ins_deel_omschrijving ins_deel_omschrijving, d.ins_deel_opmerking, d.ins_srtcontrole_omschrijving, fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1) ins_deelsrtcontrole_datum, '' AS ctrmode, prs_perslid_naam_full perslid, '' AS status FROM (SELECT sc.ins_srtcontrole_key, d.ins_deel_key, d.ins_deel_omschrijving, d.ins_deel_opmerking, sc.ins_srtcontrole_periode, sd.ins_srtdeel_omschrijving, sc.ins_srtcontrole_omschrijving, pfa.prs_perslid_key, pfa.prs_perslid_naam_full FROM ins_srtcontrole sc, ins_discipline di, ins_v_aanwezigsrtgroep sg, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigdeel d, prs_perslid p, prs_v_perslid_fullnames_all pfa WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key AND sg.ins_srtgroep_key = sd.ins_srtgroep_key AND di.ins_discipline_key = sg.ins_discipline_key AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) >= SYSDATE AND p.prs_perslid_key = 101 AND pfa.prs_perslid_key = 101) d LEFT OUTER JOIN ins_srtcontroledl_xcp xcp ON xcp.ins_deel_key = d.ins_deel_key AND xcp.ins_srtcontrole_key = d.ins_srtcontrole_key WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode, d.ins_srtcontrole_periode) > 0 AND fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1) <= (SYSDATE + 42) AND d.ins_deel_key NOT IN --- als een inspectie al is ingepland weegt dat zwaarder dan de oorspronkelijke datum, object komt op de lijst als plandatum komende maand is (SELECT ins_deel_key FROM ins_v_udr_deelinspect ins, ins_deel d WHERE ins_deelsrtcontrole_plandatum IS NOT NULL AND ins_deelsrtcontrole_datum IS NULL AND d.ins_deel_key = ins.deel_key AND d.ins_deel_verwijder IS NULL) UNION ALL SELECT ins.ins_srtcontrole_key, d.ins_deel_key, sd.ins_srtdeel_omschrijving || ' ' || d.ins_deel_omschrijving ins_deel_omschrijving, d.ins_deel_opmerking, ins.srtcontrole_omschrijving, ins_deelsrtcontrole_plandatum, '' ctrmode, perslid, deelsrtcontrole_status FROM ins_v_udr_deelinspect ins, ins_deel d, ins_srtdeel sd WHERE ins_deelsrtcontrole_plandatum IS NOT NULL AND ins_deelsrtcontrole_datum IS NULL AND d.ins_deel_key = ins.deel_key AND d.ins_deel_verwijder IS NULL AND sd.ins_srtdeel_key = d.ins_srtdeel_key AND actief = 'ja' AND ins_deelsrtcontrole_plandatum <= (SYSDATE + 42) -- AND ins_deelsrtcontrole_plandatum >= SYSDATE ) ctr, ( SELECT MAX (sc.ins_deelsrtcontrole_datum) ins_deelsrtcontrole_datum, sc.ins_deel_key, MAX (sc.ins_deelsrtcontrole_key) ins_deelsrtcontrole_key FROM ins_deelsrtcontrole sc WHERE sc.ins_deelsrtcontrole_status = 6 GROUP BY sc.ins_deel_key) last_insp, (SELECT c.ins_srtcontrole_key, d.prs_dienst_omschrijving FROM ins_srtcontrole c, prs_dienst d WHERE d.prs_dienst_key = c.prs_dienst_key) d WHERE ctr.ins_deel_key = last_insp.ins_deel_key(+) AND ctr.ins_srtcontrole_key = d.ins_srtcontrole_key(+) AND TRUNC (ctr.ins_deelsrtcontrole_datum) < TRUNC (SYSDATE + 42); CREATE OR REPLACE PROCEDURE baus_import_taak_km (p_import_key IN NUMBER) AS BEGIN NULL; END baus_import_taak_km; / CREATE OR REPLACE PROCEDURE baus_update_taak_km (p_import_key IN NUMBER) IS v_aanduiding VARCHAR2 (200); v_errorhint VARCHAR2 (1000); v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER; CURSOR c IS SELECT i.fac_import_key, fac.safe_to_number (i.fac_imp_csv_col01) ins_srtkenmerk_key, fac.safe_to_number (i.fac_imp_csv_col02) ins_srtinstallatie_key, i.fac_imp_csv_col03 ins_kenmerk_niveau, -- is altijd C i.fac_imp_csv_col04 ins_kenmerk_bewerkniveau, -- is altijd D fac.safe_to_number (i.fac_imp_csv_col05) ins_kenmerkvolgnummer, i.fac_imp_csv_col06 ins_kenmerk_omschrijving, i.fac_imp_csv_col07 ins_kenmerk_regexp, i.fac_imp_csv_col08 ins_kenmerk_default FROM fac_imp_csv i WHERE i.fac_import_key = p_import_key; BEGIN FOR rec IN c LOOP BEGIN v_count := 0; SELECT COUNT (*) INTO v_count FROM INS_KENMERK k WHERE k.ins_srtkenmerk_key = rec.ins_srtkenmerk_key AND k.ins_srtinstallatie_key = rec.ins_srtinstallatie_key AND ( k.ins_kenmerk_omschrijving = rec.ins_kenmerk_omschrijving -- als er een alternatieve omschrijving is OR ( k.ins_kenmerk_omschrijving IS NULL AND rec.ins_kenmerk_omschrijving IS NULL)) -- of juist niet AND k.ins_kenmerk_niveau = 'C' AND k.ins_kenmerk_bewerkniveau = 'D'; IF v_count = 0 AND UPPER (rec.ins_srtkenmerk_key) <> 'INS_SRTKENMERK_KEY' THEN BEGIN v_errorhint := 'Fout bij kenmerk voor taak ' || rec.ins_srtinstallatie_key; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer, ins_kenmerk_omschrijving, ins_kenmerk_regexp, ins_kenmerk_default) VALUES (rec.ins_srtkenmerk_key, rec.ins_srtinstallatie_key, 'C', 'D', rec.ins_kenmerkvolgnummer, rec.ins_kenmerk_omschrijving, rec.ins_kenmerk_regexp, rec.ins_kenmerk_default); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errorhint || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Kenmerk kan niet worden aangemaakt'); COMMIT; END; END IF; END; END LOOP; -- we ruimen de import tabel direct weer netjes op aangezien dit een generieke importtabel is DELETE FAC_IMP_CSV i WHERE i.fac_import_key = p_import_key; END baus_update_taak_km; / CREATE OR REPLACE VIEW BAUS_V_RAP_GEPLANDE_TAKEN ( DEEL_KEY, DISCIPLINE, SOORT, GROEP, SOORTCODE, OMSCHRIJVING, PLAATSEIGENAAR, PLAATSEIGENAARTYPE, PLAATSAANDUIDING, EIGENAAR, EIGENAAR_KEY, OPMERKING, REGIO, DISTRICT, LOCATIE_CODE, LOCATIE_OMSCHRIJVING, LOCATIE_PLAATS, GEBOUWCODE, GEBOUW, TERREINSECTORCODE, TERREINSECTOR, VERDIEPINGCODE, RUIMTENR, WERKPLEKVOLGNR, WERKPLEK, UITLEENBAAR, UITGELEEND, RES_OPMERKING, BEHEERDER, VERVALDATUM, ACTIEF, AANTAL, FCLT_3D_DISCIPLINE_KEY, FCLT_3D_AFDELING_KEY, FCLT_3D_LOCATIE_KEY, INS_DEELSRTCONTROLE_KEY, INS_SRTCONTROLE_KEY, CTR_DISCIPLINE_OMSCHRIJVING, SRTCONTROLE_OMSCHRIJVING, INS_DEELSRTCONTROLE_DATUM, CONTROLEMODE_OMSCHRIJVING, INS_DEELSRTCONTROLE_OPMERKING, PERSLID, INS_DEELSRTCONTROLE_DATUM_ORG, INS_DEELSRTCONTROLE_PLANDATUM, DEELSRTCONTROLE_STATUS, INS_DEELSRTCONTROLE_STATUS, VERANTWOORDELIJKE, DOCUMENT_VEREIST, DOCUMENT_BIJGESLOTEN, BEDRIJF, INSTRUCTIES ) AS SELECT udr.deel_key, udr.discipline, udr.soort, udr.groep, udr.soortcode, udr.omschrijving, udr.plaatseigenaar, udr.plaatseigenaartype, udr.plaatsaanduiding, udr.eigenaar, udr.eigenaar_key, udr.opmerking, udr.regio, udr.district, udr.locatie_code, udr.locatie_omschrijving, udr.locatie_plaats, udr.gebouwcode, udr.gebouw, udr.terreinsectorcode, udr.terreinsector, udr.verdiepingcode, udr.ruimtenr, udr.werkplekvolgnr, udr.werkplek, udr.uitleenbaar, udr.uitgeleend, udr.res_opmerking, udr.beheerder, udr.vervaldatum, udr.actief, udr.aantal, udr.fclt_3d_discipline_key, udr.fclt_3d_afdeling_key, udr.fclt_3d_locatie_key, udr.ins_deelsrtcontrole_key, udr.ins_srtcontrole_key, udr.ctr_discipline_omschrijving, udr.srtcontrole_omschrijving, udr.ins_deelsrtcontrole_datum, udr.controlemode_omschrijving, udr.ins_deelsrtcontrole_opmerking, udr.perslid, udr.ins_deelsrtcontrole_datum_org, udr.ins_deelsrtcontrole_plandatum, udr.deelsrtcontrole_status, udr.ins_deelsrtcontrole_status, dienst.prs_dienst_omschrijving, COALESCE (doc.document_vereist, 'Nee') document_vereist, COALESCE (doc.document_ontvangen, 'N.v.t.') document_bijgesloten, bedrijf.bedrijf, instructie.instructies FROM ins_v_udr_deelinspect udr, (SELECT sc.ins_srtcontrole_key, 'Ja' document_vereist, COALESCE (DECODE (kw.ins_kmdeelsrtcontr_waarde, 1, 'Ja'), 'Nee') AS document_ontvangen FROM ins_srtkenmerk sk, ins_kenmerk k, ins_srtcontrole sc, ins_kmdeelsrtcontr kw WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND k.ins_kenmerk_bewerkniveau = 'D' AND k.ins_kenmerk_niveau = 'C' AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key AND k.ins_kenmerk_verwijder IS NULL AND sk.ins_srtkenmerk_key = 161 AND kw.ins_kenmerk_key(+) = k.ins_kenmerk_key AND UPPER (k.ins_kenmerk_omschrijving) = 'DOCUMENT ONTVANGEN') doc, ( SELECT d.ins_deel_key, LISTAGG (b.prs_bedrijf_naam, CHR (10)) ---- scheidingsteken een enter WITHIN GROUP (ORDER BY d.ins_deel_key) bedrijf FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd, ins_deel d, prs_bedrijf b WHERE sk.ins_srtkenmerk_key = 41 AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key AND k.ins_kenmerk_key = kd.ins_kenmerk_key AND kd.ins_deel_key = d.ins_deel_key AND k.ins_kenmerk_bewerkniveau = 'D' AND k.ins_kenmerk_verwijder IS NULL AND b.prs_bedrijf_key = fac.safe_to_number (kd.ins_kenmerkdeel_waarde) GROUP BY d.ins_deel_key) bedrijf, ( SELECT sc.ins_srtcontrole_key, LISTAGG ( k.ins_kenmerk_omschrijving || ' ' || REPLACE (k.ins_kenmerk_default, '
', CHR (10)), CHR (10) || CHR (10)) WITHIN GROUP (ORDER BY sc.ins_srtcontrole_key) instructies FROM ins_srtkenmerk sk, ins_kenmerk k, ins_srtcontrole sc WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND k.ins_kenmerk_bewerkniveau = 'D' AND k.ins_kenmerk_niveau = 'C' AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key AND k.ins_kenmerk_verwijder IS NULL AND sk.ins_srtkenmerk_key = 61 GROUP BY sc.ins_srtcontrole_key) instructie, (SELECT c.ins_srtcontrole_key, d.prs_dienst_omschrijving FROM ins_srtcontrole c, prs_dienst d WHERE d.prs_dienst_key = c.prs_dienst_key) dienst WHERE bedrijf.ins_deel_key(+) = udr.deel_key AND instructie.ins_srtcontrole_key(+) = udr.ins_srtcontrole_key AND doc.ins_srtcontrole_key(+) = udr.ins_srtcontrole_key AND dienst.ins_srtcontrole_key(+) = udr.ins_srtcontrole_key; CREATE OR REPLACE VIEW BAUS_V_RAP_UDR_TAKEN AS SELECT ig.discipline, ig.soort, ig.groep, ig.soortcode, ig.ins_deel_key, ig.omschrijving object, ig.opmerking, ig.locatie_omschrijving locatie, ig.gebouw, ig.ruimtenr, ig.perslid persoon, ig.ins_srtcontrole_key, ig.srtcontrole_omschrijving taak, ig.taaksoort, ig.ins_deelsrtcontrole_key, ig.ins_deelsrtcontrole_datum_org orginele_datum, ig.ins_deelsrtcontrole_plandatum geplande_uitvoerdatum, ig.ins_deelsrtcontrole_datum inspectiedatum, ig.controlemode_omschrijving, ig.ins_deelsrtcontrole_opmerking inspectie_opmerking, ins_deelsrtcontrole_status, ins_deelsrtcontrole_status_omschr, deelsrtcontrole_result, CASE ins_deelsrtcontrole_status WHEN 0 THEN TO_CHAR (ig.volgendedatum, 'MM') WHEN 5 THEN TO_CHAR (ig.volgende_keer, 'MM') WHEN 6 THEN TO_CHAR (ig.volgende_keer, 'MM') ELSE TO_CHAR (ig.volgendedatum, 'MM') END maand, CASE ins_deelsrtcontrole_status WHEN 0 THEN TO_CHAR (ig.volgendedatum, 'YYYY') WHEN 5 THEN TO_CHAR (ig.volgende_keer, 'YYYY') WHEN 6 THEN TO_CHAR (ig.volgende_keer, 'YYYY') ELSE TO_CHAR (ig.volgendedatum, 'YYYY') END jaar, CASE ins_deelsrtcontrole_status WHEN 0 THEN TO_CHAR (ig.volgendedatum, 'YYYY-MM') WHEN 5 THEN TO_CHAR (ig.volgende_keer, 'YYYY-MM') WHEN 6 THEN TO_CHAR (ig.volgende_keer, 'YYYY-MM') ELSE TO_CHAR (ig.volgendedatum, 'YYYY-MM') END jaarmaand, ig.vervaldatum, CASE ins_deelsrtcontrole_status WHEN 0 THEN TRUNC (ig.volgendedatum) WHEN 5 THEN TRUNC (ig.volgende_keer) WHEN 6 THEN TRUNC (ig.volgende_keer) ELSE ig.volgendedatum END eerstvolgende_actie, dienst.prs_dienst_omschrijving, COALESCE (doc_vereist.document_vereist, 'Nee') document_vereist, CASE WHEN COALESCE (doc_vereist.document_vereist, 'Nee') = 'Nee' THEN 'N.v.t.' ELSE COALESCE (doc.document_ontvangen, 'Nee') END document_bijgesloten, bedrijf.bedrijf, instructie.instructies, CASE WHEN ins_deelsrtcontrole_status = 6 AND TRUNC (ins_deelsrtcontrole_datum_org) < TRUNC (ins_deelsrtcontrole_datum) THEN 'Te laat' WHEN ins_deelsrtcontrole_status = 6 AND TRUNC (ins_deelsrtcontrole_datum_org) >= TRUNC (ins_deelsrtcontrole_datum) THEN 'Op tijd' WHEN ins_deelsrtcontrole_status = 5 AND TRUNC (ins_deelsrtcontrole_datum_org) < TRUNC (ins_deelsrtcontrole_datum) THEN 'Te laat' WHEN ins_deelsrtcontrole_status = 5 AND TRUNC (ins_deelsrtcontrole_datum_org) >= TRUNC (ins_deelsrtcontrole_datum) THEN 'Op tijd' WHEN ins_deelsrtcontrole_status = 0 AND TRUNC (ins_deelsrtcontrole_datum_org) > TRUNC (SYSDATE) THEN 'Op tijd' WHEN ins_deelsrtcontrole_status = 0 AND TRUNC (ins_deelsrtcontrole_datum_org) <= TRUNC (SYSDATE) THEN 'Te laat' END optijd FROM (WITH comps (ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_datum, volgendedatum, volgende_keer, discipline, soort, groep, soortcode, omschrijving, opmerking, locatie_omschrijving, gebouw, ruimtenr, srtcontrole_omschrijving, taaksoort, ins_deelsrtcontrole_datum_org, controlemode_omschrijving, ins_deelsrtcontrole_opmerking, perslid, ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_status, ins_deelsrtcontrole_status_omschr, ins_controlemode_success, deelsrtcontrole_result, vervaldatum, ins_deelsrtcontrole_key) AS (SELECT * FROM (SELECT di.deel_key ins_deel_key, xcp.ins_srtcontrole_key, di.ins_deelsrtcontrole_datum, COALESCE ( di.ins_deelsrtcontrole_plandatum, CASE WHEN di.ins_deelsrtcontrole_status IN (2, 3) AND di.ins_deelsrtcontrole_datum_org IS NULL THEN -- Gestart(2) en de allereerste inspectie (ins_deelsrtcontrole_datum_org is NULL). CASE WHEN xcp.ctr_controle_type = 1 THEN -- Controle(1). CASE WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak THEN xcp.ins_srtcontroledl_xcp_startdat ELSE xcp.ins_deel_aanmaak END ELSE -- Vervanging(2), Certificering(3). CASE WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak THEN xcp.ins_srtcontroledl_xcp_startdat ELSE fac.nextcyclusdate ( COALESCE ( NULL, GREATEST ( COALESCE ( xcp.ins_srtcontroledl_xcp_startdat, xcp.ins_deel_aanmaak), COALESCE ( xcp.ins_deel_aanmaak, xcp.ins_srtcontroledl_xcp_startdat))), xcp.ins_srtcontrole_mode, xcp.ins_srtcontrole_eenheid, xcp.ins_srtcontrole_periode, xcp.ins_srtcontrole_bits, 1, -- steps. De eerste inspectie is nog niet geweest dus 1 periode verder dan startdatum/aanmaakdatum. 0) -- Er geldt dat (ctr_ismjob = 0) END END WHEN di.ins_deelsrtcontrole_status IN (2, 3) AND di.ins_deelsrtcontrole_datum_org IS NOT NULL THEN -- Gestart(2) en niet de allereerste inspectie. di.ins_deelsrtcontrole_datum_org ELSE -- Status is Gereed gemeld(5) of Voltooid(6). CASE xcp.ins_srtcontrole_mode WHEN 0 THEN -- Moment mode: ga uit van de originele berekende inspectiedatum. di.ins_deelsrtcontrole_datum_org ELSE -- Interval mode: ga uit van de werkelijke inspectiedatum. di.ins_deelsrtcontrole_datum END END) volgendedatum, fac.nextcyclusdatedeel ( di.deel_key, xcp.ins_srtcontrole_key, 0) volgende_keer, discipline, soort, groep, soortcode, omschrijving, opmerking, locatie_omschrijving, gebouw, ruimtenr, srtcontrole_omschrijving, ctr_discipline_omschrijving taaksoort, ins_deelsrtcontrole_datum_org, controlemode_omschrijving, ins_deelsrtcontrole_opmerking, perslid, ins_deelsrtcontrole_plandatum, di.ins_deelsrtcontrole_status, CASE di.ins_deelsrtcontrole_status WHEN 0 THEN lcl.L ( 'lcl_ins_controle_pending') WHEN 2 THEN lcl.L ( 'lcl_ins_controle_gestart') WHEN 3 THEN lcl.L ( 'lcl_ins_controle_ter_uitvoer') WHEN 5 THEN lcl.L ( 'lcl_ins_controle_afgemeld') WHEN 6 THEN lcl.L ( 'lcl_ins_controle_afgerond') END deelsrtcontrole_status, COALESCE ( (SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT di2.ins_controlemode_key FROM ins_deelsrtcontrole di2 WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)), -1) ins_controlemode_success, CASE WHEN ((SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT di2.ins_controlemode_key FROM ins_deelsrtcontrole di2 WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) = 1) THEN lcl.L ( 'lcl_ins_controlemode_approved') ELSE lcl.L ( 'lcl_ins_controlemode_deprecated') END resultaat, xcp.ins_srtcontrole_eind vervaldatum, di.ins_deelsrtcontrole_key FROM ins_v_udr_deelinspect di, ins_v_defined_inspect_xcp xcp, ctr_disc_params dp WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key AND di.deel_key = xcp.ins_deel_key AND xcp.ctr_discipline_key = dp.ctr_ins_discipline_key AND dp.ctr_disc_params_ismjob = 0 -- AND xcp.ins_srtcontrole_eenheid > 2 AND xcp.ins_scenario_key = 1 AND xcp.ins_srtcontrole_periode > 0 AND di.ins_deelsrtcontrole_key = (SELECT MAX (ins_deelsrtcontrole_key) FROM ins_deelsrtcontrole id2 WHERE id2.ins_deel_key = di.deel_key AND id2.ins_srtcontrole_key = di.ins_srtcontrole_key AND id2.ins_scenario_key = 1) UNION ALL --- dit zijn de niet geplande taken? SELECT d.deel_key ins_deel_key, xcp.ins_srtcontrole_key, NULL, CASE WHEN xcp.ctr_controle_type = 1 THEN -- Controle(1). CASE WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak THEN xcp.ins_srtcontroledl_xcp_startdat ELSE xcp.ins_deel_aanmaak END ELSE -- Vervanging(2), Certificering(3). CASE WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak THEN xcp.ins_srtcontroledl_xcp_startdat ELSE fac.nextcyclusdate ( COALESCE ( NULL, GREATEST ( COALESCE ( xcp.ins_srtcontroledl_xcp_startdat, xcp.ins_deel_aanmaak), COALESCE ( xcp.ins_deel_aanmaak, xcp.ins_srtcontroledl_xcp_startdat))), xcp.ins_srtcontrole_mode, xcp.ins_srtcontrole_eenheid, xcp.ins_srtcontrole_periode, xcp.ins_srtcontrole_bits, 1, -- steps. De eerste inspectie is nog niet geweest dus 1 periode verder dan startdatum/aanmaakdatum. 0) -- Er geldt dat (ctr_ismjob = 0) END END volgendedatum, fac.nextcyclusdatedeel ( d.deel_key, xcp.ins_srtcontrole_key, 0) volgende_keer, d.discipline, d.soort, d.groep, d.soortcode, d.omschrijving, d.opmerking, d.locatie_omschrijving, d.gebouw, d.ruimtenr, (SELECT isc.ins_srtcontrole_omschrijving FROM ins_srtcontrole isc WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key) srtcontrole_omschrijving, (SELECT cd.ins_discipline_omschrijving FROM ctr_discipline cd, ins_srtcontrole isc WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key AND isc.ctr_discipline_key = cd.ins_discipline_key) taaksoort, ins_deelsrtcontrole_datum_org, NULL controlemode_omschrijving, ins_deelsrtcontrole_opmerking, NULL perslid, ins_deelsrtcontrole_plandatum, --- -1 ins_deelsrtcontrole_status, ins_deelsrtcontrole_status, lcl.L ('lcl_ins_controlemode_notplaned') deelsrtcontrole_status, 0 ins_controlemode_success, '' resultaat, xcp.ins_srtcontrole_eind vervaldatum, NULL ins_deelsrtcontrole_key FROM ins_v_udr_deel d, ins_deelsrtcontrole idsc, ins_v_defined_inspect_xcp xcp, ctr_disc_params dp WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+) AND xcp.ins_deel_key = idsc.ins_deel_key(+) AND xcp.ins_scenario_key = idsc.ins_scenario_key(+) AND xcp.ins_deel_key = d.deel_key AND xcp.ctr_discipline_key = dp.ctr_ins_discipline_key AND dp.ctr_disc_params_ismjob = 0 -- AND xcp.ins_srtcontrole_eenheid > 2 AND xcp.ins_scenario_key = 1 AND idsc.ins_deel_key IS NULL AND idsc.ins_srtcontrole_key IS NULL AND xcp.ins_srtcontrole_periode > 0 AND ( idsc.ins_deelsrtcontrole_key IS NULL OR idsc.ins_deelsrtcontrole_key = (SELECT MAX ( ins_deelsrtcontrole_key) FROM ins_deelsrtcontrole id2 WHERE id2.ins_deel_key = d.deel_key AND id2.ins_srtcontrole_key = xcp.ins_srtcontrole_key AND id2.ins_scenario_key = 1)))) SELECT * FROM comps) ig, ins_deel d, (SELECT kw.ins_deelsrtcontrole_key, DECODE (kw.ins_kmdeelsrtcontr_waarde, 1, 'Ja') AS document_ontvangen FROM ins_srtkenmerk sk, ins_kenmerk k, ins_srtcontrole sc, ins_kmdeelsrtcontr kw WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND k.ins_kenmerk_bewerkniveau = 'D' AND k.ins_kenmerk_niveau = 'C' AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key AND k.ins_kenmerk_verwijder IS NULL AND sk.ins_srtkenmerk_key = 161 AND kw.ins_kenmerk_key = k.ins_kenmerk_key AND UPPER (k.ins_kenmerk_omschrijving) = 'DOCUMENT ONTVANGEN') doc, (SELECT 'Ja' document_vereist, sc.ins_srtcontrole_key FROM ins_srtkenmerk sk, ins_kenmerk k, ins_srtcontrole sc WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND k.ins_kenmerk_bewerkniveau = 'D' AND k.ins_kenmerk_niveau = 'C' AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key AND k.ins_kenmerk_verwijder IS NULL AND sk.ins_srtkenmerk_key = 161 AND UPPER (k.ins_kenmerk_omschrijving) = 'DOCUMENT ONTVANGEN') doc_vereist, ( SELECT d.ins_deel_key, LISTAGG (b.prs_bedrijf_naam, CHR (10)) ---- scheidingsteken een enter WITHIN GROUP (ORDER BY d.ins_deel_key) bedrijf FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd, ins_deel d, prs_bedrijf b WHERE sk.ins_srtkenmerk_key = 41 AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key AND k.ins_kenmerk_key = kd.ins_kenmerk_key AND kd.ins_deel_key = d.ins_deel_key AND k.ins_kenmerk_bewerkniveau = 'D' AND k.ins_kenmerk_verwijder IS NULL AND b.prs_bedrijf_key = fac.safe_to_number (kd.ins_kenmerkdeel_waarde) GROUP BY d.ins_deel_key) bedrijf, ( SELECT sc.ins_srtcontrole_key, LISTAGG ( k.ins_kenmerk_omschrijving || ' ' || REPLACE (k.ins_kenmerk_default, '
', CHR (10)), CHR (10) || CHR (10)) WITHIN GROUP (ORDER BY sc.ins_srtcontrole_key) instructies FROM ins_srtkenmerk sk, ins_kenmerk k, ins_srtcontrole sc WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND k.ins_kenmerk_bewerkniveau = 'D' AND k.ins_kenmerk_niveau = 'C' AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key AND k.ins_kenmerk_verwijder IS NULL AND sk.ins_srtkenmerk_key = 61 GROUP BY sc.ins_srtcontrole_key) instructie, (SELECT c.ins_srtcontrole_key, d.prs_dienst_omschrijving FROM ins_srtcontrole c, prs_dienst d WHERE d.prs_dienst_key = c.prs_dienst_key) dienst WHERE (ig.vervaldatum IS NULL OR ig.vervaldatum > ig.volgendedatum) AND d.ins_deel_key = ig.ins_deel_key AND d.ins_deel_verwijder IS NULL AND ( d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > ig.volgendedatum) AND bedrijf.ins_deel_key(+) = ig.ins_deel_key AND instructie.ins_srtcontrole_key(+) = ig.ins_srtcontrole_key AND doc_vereist.ins_srtcontrole_key(+) = ig.ins_srtcontrole_key AND doc.ins_deelsrtcontrole_key(+) = ig.ins_deelsrtcontrole_key AND dienst.ins_srtcontrole_key(+) = ig.ins_srtcontrole_key; ------ payload end ------ SET DEFINE OFF BEGIN adm.systrackscriptId ( '$Id$', 0); END; / COMMIT; SET ECHO OFF SPOOL OFF SET DEFINE ON PROMPT Logfile of this upgrade is: &fcltlogfile