-- -- $Id$ -- -- Script containing customer specific db-configuration for RWSN. DEFINE thisfile = 'RWSN.SQL' DEFINE dbuser = '^RWSN' 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 ------ --============================================================================= -- NOTIFICATIEJOBS ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -- CUST01 Notificatie voor kwaliteitscontroles na afloop (after sales): 7 dgn -- Concept -- Is eenmalig in combinatie met het notificatie-interval: meldingen/reserveringen die -- in aanmerking komen voor KTO en in de afgelopen 7dagen zijn afgemeld/geleverd worden -- in de notificatiequeueu gezet. Deze notificatiejob MOET DUS EEN INTERVAL -- GEBRUIKEN DAT NIET KORTER IS DAN 7 dagen! -- Maakt gebruik van wat vaste key voor KTO verzonden -kenmerk -- Er is geen onderscheid tussen KCC en FCC, de XSL onderscheidt eventueel -- De percentage en drempelwaarde voor de steekproef worden bepaald uit de gegevens -- bij de kostensoort. -- Vooralsnog kent FCC geen KTO's omdat kenmerk niet bij FCC meldingen aangemaakt is. -- De procedure rwsn_select_kto_kandidaten bepaalt voor welke meldingen een KTO -- verzonden wordt. /* Formatted on 23-7-2010 12:52:33 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_noti_qcard ( code, sender, receiver, text, key, xkey ) AS SELECT 'CUST01', NULL, m.prs_perslid_key, 'Verzoek om mee te werken aan Klanttevredenheidsonderzoek', m.mld_melding_key, NULL FROM mld_melding m, mld_kenmerk k, mld_kenmerkmelding km, ins_tab_discipline d, mld_stdmelding s WHERE s.mld_ins_discipline_key = d.ins_discipline_key AND m.mld_stdmelding_key = s.mld_stdmelding_key AND m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 121 AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > SYSDATE - 7 UNION ALL SELECT 'CUST03', NULL, rrr.res_rsv_ruimte_contact_key, 'Verzoek om mee te werken aan Klanttevredenheidsonderzoek', rrr.res_reservering_key, rrr.res_rsv_ruimte_key FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_kenmerk k, res_kenmerkwaarde kw, ins_tab_discipline d WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key AND kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 22 AND rrr.res_rsv_ruimte_tot > SYSDATE - 7; ------------------------------------------------------------------------------- -- Notificatie voor IKD contracten die in rappel komen. -- Voorwaarde is dat active verlenging (key 21) op JA staat. ------------------------------------------------------------------------------- CREATE OR REPLACE VIEW rwsn_v_noti_contract_reminder ( code, sender, receiver, text, key, par1, par2, xkey ) AS SELECT 'CNTMAI', '', fac.safe_to_number (kc2.cnt_kenmerkcontract_waarde), 'Rappel: Contract ' || c.cnt_contract_nummer_intern || ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')' || ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY') || ' worden verlengd of opgezegd.', c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL FROM cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc1, cnt_kenmerk k1, cnt_kenmerkcontract kc2, cnt_kenmerk k2, prs_bedrijf b WHERE c.cnt_contract_key = kc1.cnt_contract_key AND kc1.cnt_kenmerk_key = k1.cnt_kenmerk_key AND k1.cnt_srtkenmerk_key = 21 -- Actie nodig bij verlenging AND UPPER (kc1.cnt_kenmerkcontract_waarde) = 'JA' AND c.cnt_contract_key = kc2.cnt_contract_key AND kc2.cnt_kenmerk_key = k2.cnt_kenmerk_key AND k2.cnt_srtkenmerk_key = 63 -- Contracttoezichthouder AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND TRUNC (cnt.cnt_getrappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE); --============================================================================= -- IMPORTFUNCTIES ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -- IMPORTFUNCTIES - IDM_ORG ------------------------------------------------------------------------------- /* Formatted on 20-10-2017 15:48:512 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE rwsn_import_idm_org (p_import_key IN NUMBER) AS CURSOR c_cursor IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; v_newline VARCHAR2 (1000); -- Import line v_fielddelimitor VARCHAR2 (1); -- Field seperator v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); -- De importvelden v_begindatum VARCHAR2 (100); v_einddatum VARCHAR2 (100); v_naam VARCHAR2 (100); v_omschrijving VARCHAR2 (100); v_parent VARCHAR2 (100); v_count NUMBER := 0; header_found BOOLEAN; endmrk_found BOOLEAN; BEGIN -- Init header_found := FALSE; endmrk_found := FALSE; v_fielddelimitor := ';'; -- Clear my previous imported rows DELETE FROM rwsn_imp_idm_org WHERE COALESCE (imp_log_run, -1) <> p_import_key; COMMIT; FOR rec1 IN c_cursor LOOP BEGIN v_newline := rec1.fac_imp_file_line; IF SUBSTR (v_newline, 1, 3) = '' THEN -- EF BB BF aangetroffen fac.imp_writelog (p_import_key, 'W', 'Byte Order Mark aangetroffen', 'Bestand heeft onbehandeld UTF-8 formaat.'); v_newline := SUBSTR (v_newline, 4); END IF; fac.imp_getfield (v_newline, v_fielddelimitor, v_naam); fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving); fac.imp_getfield (v_newline, v_fielddelimitor, v_parent); fac.imp_getfield (v_newline, v_fielddelimitor, v_begindatum); fac.imp_getfield (v_newline, v_fielddelimitor, v_einddatum); -- Skip until a valid header is found IF v_naam = 'OrganisatieEenheidCode' AND v_omschrijving = 'OrganisatieEenheidNaam' AND v_parent = 'BovenliggendeOrganisatieEenheidCode' AND v_begindatum = 'DatumIngangGeldigheid' AND v_einddatum = 'DatumEindeGeldigheid' THEN -- Sla de kopregel over. header_found := TRUE; ELSIF (header_found) THEN IF UPPER (v_naam) = '==EINDE==' AND fac.safe_to_number (v_omschrijving) = v_count THEN endmrk_found := TRUE; ELSIF (NOT endmrk_found) THEN INSERT INTO rwsn_imp_idm_org (afdelingscode, omschrijving, parentcode, begindatum, einddatum, imp_log_run) VALUES (SUBSTR (v_naam, 1, 10), SUBSTR (v_omschrijving, 1, 60), SUBSTR (v_parent, 1, 10), TO_DATE (SUBSTR (v_begindatum, 1, 8), 'YYYYMMDD'), TO_DATE (SUBSTR (v_einddatum, 1, 8), 'YYYYMMDD'), p_import_key); v_count := v_count + 1; END IF; END IF; COMMIT; END; END LOOP; IF (NOT header_found) THEN fac.imp_writelog (p_import_key, 'E', 'Geen geldige header aangetroffen', 'Bestand is geen geldig IDM_ORG importbestand.'); END IF; IF (header_found AND NOT endmrk_found) THEN fac.imp_writelog (p_import_key, 'E', 'Geen geldige eindmarkering aangetroffen', 'Bestand is geen geldig IDM_ORG importbestand.'); -- Maak importtabel leeg om te voorkomen dat foutieve bestanden worden ingelezen. DELETE FROM rwsn_imp_idm_org; END IF; -- Clear my previous imported rows DELETE FROM fac_imp_file WHERE fac_import_key = p_import_key; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, ''); -- Maak importtabel leeg om te voorkomen dat foutieve bestanden worden ingelezen. DELETE FROM rwsn_imp_idm_org; END; / CREATE OR REPLACE PROCEDURE rwsn_update_idm_org (p_import_key IN NUMBER) AS -- Let op: -- De afdelingsboom is N levels diep -- Levels 1 en 2 leiden tot RWS niveau binnen Verkeer en Waterstaat en zijn verder irrelevant -- We beschouwen niveau 3 t/m 10 (nu) en slaan dat plat tot 3 t/m 7, d.i. de lagere niveaus -- komen naast hun parent te hangen, vooralsnog. (to be confirmed) -- Vooraf worden de gelijknamige kostenplaatsen aangemaakt, die zijn plat, en worden verwezen -- door de afdelingen -- Danny Alvares 24/9/2008 Trusted-ID/Verkeer en Waterstaat: -- enkel organisaties die actief zijn worden opgenomen in het CSV bestand; -- organisaties die een 'DatumEindeGeldigheid' hebben die in het verleden ligt worden -- eruit gefilterd. Als de organisatie eenheid overgenomen in Facilitor niet meer voorkomt -- in het CSV bestand is dus de organisatie eenheid komen te vervallen. -- -- RWSN#20028: Gewijzigd uitgangspunt om afbeelding in SAP voortaan -- stuctureel gelijk te houden met die in IDM en daarmee Facilitor. -- Hierbij geldt dat er slechts 5 niveaus zijn (excl. het bedrijf): -- 1. Dienst/HID -- 2. Directie -- 3. Afdeling -- 4. Team -- 5. Cluster -- Mochten er toch nog "lagere" regionen bestaan, dan worden deze -- toegevoegd worden op het cluster-niveau. CURSOR cafdelingsboom IS SELECT LEVEL idm_lev, DECODE (LEVEL, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 5) fac_lev, afdelingscode, omschrijving, parentcode, begindatum, einddatum FROM rwsn_imp_idm_org WHERE afdelingscode IS NOT NULL -- Geen lege regels CONNECT BY PRIOR afdelingscode = parentcode START WITH parentcode = '00000000' ORDER BY LEVEL; c_rws_bedrijf_key NUMBER := 2; -- Key van RWS-bedrijf c_knmi_bedrijf_key NUMBER := 3; -- Key van KNMI-bedrijf c_km_vervaldatum VARCHAR2 (30) := 'VERVALDATUM'; -- VERVALDATUM-kenmerk v_errormsg VARCHAR2 (1000) := ''; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (1000) := ''; v_count NUMBER; currentversion fac_module.fac_module_version%TYPE; l_vervalkm_key NUMBER (10); -- Key van VERVALDATUM-kenmerk lkostenplaatskey prs_kostenplaats.prs_kostenplaats_key%TYPE; lafdelingkey NUMBER (10); l_cur_lev NUMBER (10); l_cur_parentkey NUMBER (10); l_new_parentkey NUMBER (10); l_new_parparcode VARCHAR2 (10); l_vervalkl_key NUMBER (10); -- Key van VERVALDATUM-kenmerklink l_vervalkl_waarde DATE; -- Waarde van VERVALDATUM-kenmerklink l_impcountact NUMBER; l_impcountpas NUMBER; l_oldcountkp NUMBER; l_oldcountafd NUMBER; l_vervcountkp NUMBER; l_reancountkp NUMBER; l_vervcountafd NUMBER; l_reancountafd NUMBER; l_newcountkp NUMBER; l_newcountafd NUMBER; BEGIN SELECT MAX (fac_module_version) INTO currentversion FROM fac_module; fac.imp_writelog (p_import_key, 'I', 'Facilitor IDM_ORG import version ' || currentversion, '$Revision$'); -- How many active/passive records are imported? SELECT COUNT ( * ) INTO l_impcountact FROM rwsn_imp_idm_org WHERE einddatum > TRUNC (SYSDATE); --Altijd 0, want einddatum altijd op 31-12-9999! SELECT COUNT ( * ) INTO l_impcountpas FROM rwsn_imp_idm_org WHERE einddatum < TRUNC (SYSDATE); -- How many active records are now present? SELECT COUNT ( * ) INTO l_oldcountkp FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_module = 'PRS' AND prs_kostenplaats_eind IS NOT NULL AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'; SELECT COUNT ( * ) INTO l_oldcountafd FROM prs_afdeling a WHERE a.prs_afdeling_verwijder IS NULL AND UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%' AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import! (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = l_vervalkm_key AND prs_link_key = a.prs_afdeling_key); -- Check #regels, stop als onvoldoende (= bestaand maar ongeldig bestand) IF l_impcountact + l_impcountpas = 0 THEN fac.imp_writelog (p_import_key, 'E', 'Het importbestand is ongeldig. Import afgebroken.', ''); RETURN; END IF; -- Bestaat afdelingskenmerk VERVALDATUM? BEGIN SELECT prs_kenmerk_key INTO l_vervalkm_key FROM prs_kenmerk WHERE prs_kenmerk_niveau = 'A' AND prs_kenmerk_upper = c_km_vervaldatum; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog (p_import_key, 'E', 'Afdelingskenmerk VERVALDATUM niet gedefinieerd. Import afgebroken.', ''); RETURN; END; -- Oude ellende schonen, in principe eenmalig, want nooit meer VERVALLLEN -- met 3 L's! /* SELECT kp.* FROM prs_kostenplaats kp WHERE kp.prs_kostenplaats_verwijder IS NULL AND kp.prs_kostenplaats_module = 'PRS' AND kp.prs_kostenplaats_omschrijving LIKE 'VERVALLLEN: %'; UPDATE prs_kostenplaats kp SET kp.prs_kostenplaats_eind = TRUNC (SYSDATE, 'yyyy') WHERE kp.prs_kostenplaats_verwijder IS NULL AND kp.prs_kostenplaats_module = 'PRS' AND kp.prs_kostenplaats_omschrijving LIKE 'VERVALLLEN: %'; */ UPDATE prs_kostenplaats kp SET kp.prs_kostenplaats_verwijder = SYSDATE WHERE kp.prs_kostenplaats_verwijder IS NULL AND kp.prs_kostenplaats_module = 'PRS' AND kp.prs_kostenplaats_omschrijving LIKE 'VERVALLLEN: %'; -- Zet kostenplaatsen op VERVALLEN; de rest handmatig verder maar regelen! -- Kostenplaatsen zonder einddatum met rust laten (=handmatig aangemaakt)! v_errormsg := 'Fout inactiveren kostenplaatsen.'; SELECT COUNT ( * ) INTO l_vervcountkp FROM prs_kostenplaats kp WHERE kp.prs_kostenplaats_verwijder IS NULL AND kp.prs_kostenplaats_module = 'PRS' AND kp.prs_kostenplaats_eind > TRUNC (SYSDATE) -- Met einddatum in toekomst AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%' AND NOT EXISTS (SELECT 1 FROM rwsn_imp_idm_org WHERE UPPER (afdelingscode) = kp.prs_kostenplaats_upper); UPDATE prs_kostenplaats kp SET kp.prs_kostenplaats_eind = TRUNC (SYSDATE), -- Per vandaag vervallen kp.prs_kostenplaats_omschrijving = SUBSTR ('VERVALLEN: ' || COALESCE (prs_kostenplaats_omschrijving, '-'), 1, 60) WHERE kp.prs_kostenplaats_verwijder IS NULL AND kp.prs_kostenplaats_module = 'PRS' AND kp.prs_kostenplaats_eind > TRUNC (SYSDATE) -- Met einddatum in toekomst AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%' AND NOT EXISTS (SELECT 1 FROM rwsn_imp_idm_org WHERE UPPER (afdelingscode) = kp.prs_kostenplaats_upper); SELECT COUNT ( * ) INTO l_reancountkp FROM prs_kostenplaats kp WHERE kp.prs_kostenplaats_verwijder IS NULL AND kp.prs_kostenplaats_module = 'PRS' AND kp.prs_kostenplaats_eind < SYSDATE -- Met einddatum in verleden AND UPPER (kp.prs_kostenplaats_omschrijving) LIKE 'VERVALLEN:%' AND EXISTS (SELECT 1 FROM rwsn_imp_idm_org WHERE UPPER (afdelingscode) = kp.prs_kostenplaats_upper); COMMIT; -- Zet afdelingen op VERVALLEN; de rest handmatig verder maar regelen! v_errormsg := 'Fout inactiveren afdelingen.'; SELECT COUNT ( * ) INTO l_vervcountafd FROM prs_afdeling a WHERE a.prs_afdeling_verwijder IS NULL AND UPPER (a.prs_afdeling_omschrijving) NOT LIKE 'VERVALLEN:%' AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import! (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = l_vervalkm_key AND prs_link_key = a.prs_afdeling_key) AND NOT EXISTS (SELECT 1 FROM rwsn_imp_idm_org WHERE UPPER (afdelingscode) = a.prs_afdeling_upper); UPDATE prs_afdeling a SET a.prs_afdeling_omschrijving = SUBSTR ('VERVALLEN: ' || COALESCE (prs_afdeling_omschrijving, '-'), 1, 60) WHERE a.prs_afdeling_verwijder IS NULL AND UPPER (a.prs_afdeling_omschrijving) NOT LIKE 'VERVALLEN:%' AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import! (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = l_vervalkm_key AND prs_link_key = a.prs_afdeling_key) AND NOT EXISTS (SELECT 1 FROM rwsn_imp_idm_org WHERE UPPER (afdelingscode) = a.prs_afdeling_upper); SELECT COUNT ( * ) INTO l_reancountafd FROM prs_afdeling a WHERE a.prs_afdeling_verwijder IS NULL AND UPPER (a.prs_afdeling_omschrijving) LIKE 'VERVALLEN:%' AND EXISTS -- Afdeling met vervaldatum (in verleden), dus IDM_ORG-import! (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = l_vervalkm_key AND prs_link_key = a.prs_afdeling_key) AND EXISTS (SELECT 1 FROM rwsn_imp_idm_org WHERE UPPER (afdelingscode) = a.prs_afdeling_upper); COMMIT; FOR rc IN cafdelingsboom LOOP v_aanduiding := '[' || TO_CHAR (rc.fac_lev) || '|' || rc.afdelingscode || '|' || rc.omschrijving || '|' || rc.parentcode || '] '; -- Bestaat de kostenplaats al? v_errormsg := 'Fout bepalen kostenplaats'; BEGIN SELECT prs_kostenplaats_key INTO lkostenplaatskey FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_upper = rc.afdelingscode; EXCEPTION WHEN NO_DATA_FOUND THEN lkostenplaatskey := -1; END; -- Bestaat de afdeling al? v_errormsg := 'Fout bepalen afdeling'; BEGIN SELECT a.prs_afdeling_key, ab.niveau, a.prs_afdeling_parentkey INTO lafdelingkey, l_cur_lev, l_cur_parentkey FROM prs_afdeling a, prs_v_afdeling_boom ab -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)! WHERE a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_key = ab.prs_afdeling_key AND a.prs_afdeling_upper = rc.afdelingscode; EXCEPTION WHEN NO_DATA_FOUND THEN lafdelingkey := -1; l_cur_lev := -1; l_cur_parentkey := -1; END; l_new_parentkey := -1; DBMS_OUTPUT.put_line (rc.afdelingscode); v_errormsg := 'Fout toevoegen/bijwerken kostenplaats.'; BEGIN IF lkostenplaatskey = -1 THEN v_errormsg := 'Fout toevoegen kostenplaats'; INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module, prs_kostenplaats_begin, prs_kostenplaats_eind) VALUES (rc.afdelingscode, rc.omschrijving, 'PRS', rc.begindatum, rc.einddatum) RETURNING prs_kostenplaats_key INTO lkostenplaatskey; ELSE -- Bijwerken kostenplaats met omschrijving het hoogst in de boom! v_errormsg := 'Fout bijwerken kostenplaats'; SELECT COUNT ( * ) INTO v_count FROM ( SELECT LEVEL idm_lev, DECODE (LEVEL, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 5) fac_lev, afdelingscode, omschrijving, parentcode, begindatum, einddatum FROM rwsn_imp_idm_org WHERE afdelingscode IS NOT NULL -- Geen lege regels CONNECT BY PRIOR afdelingscode = parentcode START WITH parentcode = '00000000' ORDER BY LEVEL) x WHERE x.omschrijving = rc.omschrijving AND x.fac_lev < rc.fac_lev; IF v_count = 0 THEN UPDATE prs_kostenplaats SET prs_kostenplaats_omschrijving = rc.omschrijving, prs_kostenplaats_begin = rc.begindatum, prs_kostenplaats_eind = rc.einddatum WHERE prs_kostenplaats_key = lkostenplaatskey; END IF; 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 (p_import_key, 'W', v_errormsg, rc.afdelingscode || '/' || rc.omschrijving); END; -- Alle niveaus zitten in cursor tbv. bovenstaande kostenplaatsen, maar -- bij de mapping naar Facilitor-afdelingen pakken we de IDM-afdelingen -- vanaf 3 (= Facilitor Afdeling-1). IF rc.idm_lev >= 3 AND lkostenplaatskey <> -1 THEN IF lafdelingkey = -1 -- Nieuwe afdeling -> toevoegen! THEN BEGIN v_errormsg := 'Fout toevoegen afdeling'; IF rc.fac_lev = 1 -- Ingelezen afdeling betreft Afdeling-1! THEN --IF rc.afdelingscode = '63562065' IF rc.omschrijving LIKE 'KNMI%' -- Toekomstvaster dan code? THEN INSERT INTO prs_afdeling (prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key, prs_afdeling_parentkey, prs_kostenplaats_key) VALUES (rc.afdelingscode, rc.omschrijving, c_knmi_bedrijf_key, -- KNMI-key! NULL, lkostenplaatskey) RETURNING prs_afdeling_key INTO lafdelingkey; ELSE -- RWS INSERT INTO prs_afdeling (prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key, prs_afdeling_parentkey, prs_kostenplaats_key) VALUES (rc.afdelingscode, rc.omschrijving, c_rws_bedrijf_key, -- RWS-key! NULL, lkostenplaatskey) RETURNING prs_afdeling_key INTO lafdelingkey; END IF; -- RWSN#27015: Kostenplaatsgroep aanmaken als deze nog niet -- bestaat! INSERT INTO prs_kostenplaatsgrp (prs_kostenplaatsgrp_oms) SELECT afd.prs_afdeling_naam FROM prs_afdeling afd, prs_kostenplaats kpn WHERE afd.prs_afdeling_key = lafdelingkey AND afd.prs_kostenplaats_key = kpn.prs_kostenplaats_key AND NOT EXISTS (SELECT 1 FROM prs_kostenplaatsgrp WHERE prs_kostenplaatsgrp_oms = afd.prs_afdeling_naam); ELSIF rc.idm_lev <= 7 -- Afdeling op Facilitor-niveau 2 t/m 5! THEN -- Bepaal key van parent! SELECT prs_afdeling_key INTO l_new_parentkey FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)! WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = rc.parentcode; INSERT INTO prs_afdeling (prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key, prs_afdeling_parentkey, prs_kostenplaats_key) VALUES (rc.afdelingscode, rc.omschrijving, NULL, l_new_parentkey, lkostenplaatskey) RETURNING prs_afdeling_key INTO lafdelingkey; ELSE -- Omhoog geschoven afdeling op Facilitor-niveau 5! -- Bepaal code van parent van parent! SELECT parentcode INTO l_new_parparcode FROM rwsn_imp_idm_org WHERE afdelingscode = rc.parentcode; -- Bepaal key van parent van (soms zelf verschoven) parent! SELECT prs_afdeling_key INTO l_new_parentkey FROM prs_afdeling WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = l_new_parparcode; -- Doordat cursor van hoog naar laag door organisatie loopt, -- komen afdelingen vanaf IDM-niveau 8 keurig onder de gewenste -- Afdeling-4 te hangen. INSERT INTO prs_afdeling (prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key, prs_afdeling_parentkey, prs_kostenplaats_key) VALUES (rc.afdelingscode, rc.omschrijving, NULL, l_new_parentkey, lkostenplaatskey) RETURNING prs_afdeling_key INTO lafdelingkey; END IF; fac.imp_writelog (p_import_key, 'I', 'Afdeling toegevoegd', v_aanduiding); 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 (p_import_key, 'W', v_errormsg, v_aanduiding); END; ELSE -- Bestaande afdeling -> bijwerken (misschien)! BEGIN -- Zonodig bijwerken omschrijving (deze kon eerder vervallen -- zijn) en/of omhangen naar de juiste plek in de boom. v_errormsg := 'Fout bijwerken afdeling'; IF rc.fac_lev = 1 -- Ingelezen afdeling betreft Afdeling-1! THEN --IF rc.afdelingscode = '63562065' IF rc.omschrijving LIKE 'KNMI%' -- Toekomstvaster dan code? THEN UPDATE prs_afdeling SET prs_afdeling_omschrijving = rc.omschrijving, prs_bedrijf_key = c_knmi_bedrijf_key, -- KNMI-key! prs_afdeling_parentkey = NULL WHERE prs_afdeling_key = lafdelingkey AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.omschrijving -- Oms. gewijzigd? OR prs_afdeling_parentkey IS NOT NULL); -- Niveau gewijzigd? ELSE UPDATE prs_afdeling SET prs_afdeling_omschrijving = rc.omschrijving, prs_bedrijf_key = c_rws_bedrijf_key, -- RWS-key! prs_afdeling_parentkey = NULL WHERE prs_afdeling_key = lafdelingkey AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.omschrijving -- Oms. gewijzigd? OR prs_afdeling_parentkey IS NOT NULL); -- Niveau gewijzigd? END IF; -- RWSN#27015: Kostenplaatsgroep aanmaken als deze nog niet -- bestaat! INSERT INTO prs_kostenplaatsgrp (prs_kostenplaatsgrp_oms) SELECT afd.prs_afdeling_naam FROM prs_afdeling afd, prs_kostenplaats kpn WHERE afd.prs_afdeling_key = lafdelingkey AND afd.prs_kostenplaats_key = kpn.prs_kostenplaats_key AND NOT EXISTS (SELECT 1 FROM prs_kostenplaatsgrp WHERE prs_kostenplaatsgrp_oms = afd.prs_afdeling_naam); ELSIF rc.idm_lev <= 7 -- Afdeling op Facilitor-niveau 2 t/m 5! THEN -- Bepaal key van parent! SELECT prs_afdeling_key INTO l_new_parentkey FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)! WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = rc.parentcode; UPDATE prs_afdeling SET prs_afdeling_omschrijving = rc.omschrijving, prs_bedrijf_key = NULL, prs_afdeling_parentkey = l_new_parentkey WHERE prs_afdeling_key = lafdelingkey AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.omschrijving -- Oms. gewijzigd? OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey -- Parent gewijzigd? OR prs_kostenplaats_key <> lkostenplaatskey); -- Kostenplaats gewijzigd? ELSE -- Omhoog geschoven afdeling op Facilitor-niveau 5! -- Bepaal code van parent van parent! SELECT parentcode INTO l_new_parparcode FROM rwsn_imp_idm_org WHERE afdelingscode = rc.parentcode; -- Bepaal key van parent van (soms zelf verschoven) parent! SELECT prs_afdeling_key INTO l_new_parentkey FROM prs_afdeling WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = l_new_parparcode; -- Doordat cursor van hoog naar laag door organisatie loopt, -- komen afdelingen vanaf IDM-niveau 8 keurig onder de gewenste -- Afdeling-4 te hangen. UPDATE prs_afdeling SET prs_afdeling_omschrijving = rc.omschrijving, prs_bedrijf_key = NULL, prs_afdeling_parentkey = l_new_parentkey, prs_kostenplaats_key = lkostenplaatskey WHERE prs_afdeling_key = lafdelingkey AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.omschrijving -- Oms. gewijzigd? OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey -- Parent gewijzigd? OR prs_kostenplaats_key <> lkostenplaatskey); -- Kostenplaats gewijzigd? END IF; IF rc.fac_lev <> l_cur_lev OR l_new_parentkey <> l_cur_parentkey THEN fac.imp_writelog (p_import_key, 'I', 'Afdeling omgehangen naar level=' || TO_CHAR (rc.fac_lev), v_aanduiding); 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 (p_import_key, 'W', v_errormsg, v_aanduiding); END; END IF; IF rc.einddatum IS NOT NULL THEN BEGIN -- Heeft afdeling reeds een VERVALDATUM-waarde? v_errormsg := 'Fout bepalen einddatum'; SELECT kl.prs_kenmerklink_key, TO_DATE (kl.prs_kenmerklink_waarde, 'dd-mm-yyyy') INTO l_vervalkl_key, l_vervalkl_waarde FROM prs_v_aanwezigkenmerklink kl WHERE kl.prs_link_key = lafdelingkey AND kl.prs_kenmerk_key = l_vervalkm_key; -- Indien gewijzigd, dan deze waarde bijwerken! IF rc.einddatum != l_vervalkl_waarde THEN v_errormsg := 'Fout bijwerken einddatum'; UPDATE prs_kenmerklink SET prs_kenmerklink_waarde = TO_CHAR (rc.einddatum, 'dd-mm-yyyy') WHERE prs_kenmerklink_key = l_vervalkl_key; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN v_errormsg := 'Fout toevoegen einddatum'; INSERT INTO prs_kenmerklink (prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde) VALUES (lafdelingkey, 'A', l_vervalkm_key, TO_CHAR (rc.einddatum, 'dd-mm-yyyy')); END; END IF; COMMIT; END IF; END LOOP; -- RWSN#27015: Zorg dat alle afdelingskostenplaatsen in de juiste groep -- blijven of komen te zitten! UPDATE prs_kostenplaats kp SET kp.prs_kostenplaatsgrp_key = (SELECT kpg.prs_kostenplaatsgrp_key FROM prs_afdeling afdx, prs_v_afdeling_boom ab, prs_afdeling afd1, prs_kostenplaatsgrp kpg WHERE afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key AND afdx.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key AND afd1.prs_afdeling_naam = kpg.prs_kostenplaatsgrp_oms) WHERE NOT EXISTS (SELECT 1 FROM prs_afdeling afdx, prs_v_afdeling_boom ab, prs_afdeling afd1, prs_kostenplaatsgrp kpg WHERE afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key AND afdx.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key AND afd1.prs_afdeling_naam = kpg.prs_kostenplaatsgrp_oms AND kpg.prs_kostenplaatsgrp_key = kp.prs_kostenplaatsgrp_key); COMMIT; -- Je zou nu (uitbreiding) de kostenplaatsen en afdelingen echt kunnen verwijderen -- als er geen verplichtingen meer bij zijn. Dit lijkt me nader te specificeren. -- Kan functioneel zo eenvoudig zijn als delete where omschrijving like 'VERVALLEN: ' -- Dit zou ook een separate purge kunnen zijn. Kortom: afstemmen. -- For summary only. SELECT COUNT ( * ) INTO l_newcountkp FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_module = 'PRS' AND prs_kostenplaats_eind IS NOT NULL AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'; SELECT COUNT ( * ) INTO l_newcountafd FROM prs_afdeling a WHERE a.prs_afdeling_verwijder IS NULL AND UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%' AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import! (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = l_vervalkm_key AND prs_link_key = a.prs_afdeling_key); fac.imp_writelog ( p_import_key, 'S', 'Aantal afdelingen/kostenplaatsen in importbestand(en): ' || TO_CHAR (l_impcountact) || ' (actief) + ' || TO_CHAR (l_impcountpas) || ' (vervallen) = ' || TO_CHAR (l_impcountact + l_impcountpas), '' ); fac.imp_writelog ( p_import_key, 'S', 'Aantal kostenplaatsen vooraf: ' || TO_CHAR (l_oldcountkp) || ' nu: ' || TO_CHAR (l_newcountkp), '' ); fac.imp_writelog ( p_import_key, 'S', 'Aantal kostenplaatsen vervallen: ' || TO_CHAR (l_vervcountkp) || ' gereanimeerd: ' || TO_CHAR (l_reancountkp), '' ); fac.imp_writelog ( p_import_key, 'S', 'Aantal afdelingen vooraf: ' || TO_CHAR (l_oldcountafd) || ' nu: ' || TO_CHAR (l_newcountafd), '' ); fac.imp_writelog ( p_import_key, 'S', 'Aantal afdelingen vervallen: ' || TO_CHAR (l_vervcountafd) || ' gereanimeerd: ' || TO_CHAR (l_reancountafd), '' ); 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Import afgebroken'); END; / ------------------------------------------------------------------------------- -- IMPORTFUNCTIES - IDM_PERS ------------------------------------------------------------------------------- --AanmeldNaam duijkersm --E-mailAdres mart.duijkers@rws.nl --RoepNaam Mart --VoorNamen Martinus --Voorletters M.G.A. --GeslachtsNaam Duijkers --GeslachtsNaamVoorvoegsel --PartnerGeslachtsNaam --PartnerGeslachtsNaamVoorvoegsel --NaamGegevens Dhr. ing. M.G.A. Duijkers --AanduidingNaamGebruik 5 --TelefoonNummer 070-4281611 --TelefoonNummerBgg 070-4271655 --MobielNummer 06-10340945 --AcademischeTitelsVoor ing. --AcademischeTitelsNa --BurgerServiceNummer 14021067 --RijksIdentificatieNummer 999..9 --FunctieOmschrijving --FormatieplaatsOmschrijving Adviseur / Specialistisch Medewerker --DatumIngangGeldigheid 20060101 --DatumEindeGeldigheid 99991231 --OrganisatieEenheidCode 60008460 --Geslacht m --DienstverbandGUID {C336066B-615B-4C0B-9969-E95CEE5E9D95} --DienstverbandID 00005063 --BezoekAdresNaam Derde Werelddreef --BezoekAdresNummer 1B --BezoekAdresPostcode 2622 HA --BezoekAdresPlaats Delft /* Formatted on 20-10-2017 16:24:36 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE rwsn_import_idm_pers (p_import_key IN NUMBER) AS CURSOR c_cursor IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; v_newline VARCHAR2 (1000); -- Import line v_fielddelimitor VARCHAR2 (1); -- Field seperator v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_skipfield VARCHAR2 (100); v_aanduiding VARCHAR2 (200) := ''; -- De importvelden. Pas op: de headertekst komt ook in deze velden, dus moet vaak langer dan nodig! v_perslid_oslogin VARCHAR2 (200); -- aanmeldnaam v_perslid_email VARCHAR2 (255); v_perslid_voornaam VARCHAR2 (100); -- roepnaam -- voornamen v_perslid_voorletters VARCHAR2 (100); -- voorletters v_perslid_naam VARCHAR2 (100); -- geslachtsnaam v_perslid_tussenvoegsel VARCHAR2 (100); -- geslachtsnaamvoorvoegsels v_partnernaam VARCHAR2 (100); v_partnertussenvoegsel VARCHAR2 (100); -- naamgegevens (fullname) v_aanduidingnaamgebruik VARCHAR2 (100); v_perslid_telefoonnr VARCHAR2 (100); -- v_perslid_mobielnr VARCHAR2 (100); v_perslid_titel VARCHAR2 (100); -- v_perslid_nr VARCHAR2 (100); v_rin VARCHAR2 (100); -- v_srtperslid_omschrijving VARCHAR2 (100); -- v_perslid_begindatum VARCHAR2 (100); v_perslid_einddatum VARCHAR2 (100); v_afdeling_naam VARCHAR2 (100); -- geslacht v_dienstverbandguid VARCHAR2 (100); v_dienstverbandid VARCHAR2 (100); v_bezoekadresnaam VARCHAR2 (100); v_bezoekadresnummer VARCHAR2 (100); v_bezoekadrespostcode VARCHAR2 (100); v_bezoekadresplaats VARCHAR2 (100); -- v_count NUMBER := 0; header_found BOOLEAN; endmrk_found BOOLEAN; BEGIN -- Init header_found := FALSE; endmrk_found := FALSE; v_fielddelimitor := ';'; -- Clear my previous imported rows DELETE FROM rwsn_imp_idm_pers WHERE COALESCE (imp_log_run, -1) <> p_import_key; COMMIT; FOR rec1 IN c_cursor LOOP BEGIN v_newline := rec1.fac_imp_file_line; IF SUBSTR (v_newline, 1, 3) = '' THEN -- EF BB BF aangetroffen fac.imp_writelog (p_import_key, 'W', 'Byte Order Mark aangetroffen', 'Bestand heeft onbehandeld UTF-8 formaat.'); v_newline := SUBSTR (v_newline, 4); END IF; v_aanduiding := SUBSTR (v_newline, 1, 50); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_oslogin); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_email); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_voornaam); -- Roepnaam fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); -- Voornamen fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_voorletters); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_naam); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_tussenvoegsel); -- Voorvoegsels fac.imp_getfield (v_newline, v_fielddelimitor, v_partnernaam); fac.imp_getfield (v_newline, v_fielddelimitor, v_partnertussenvoegsel); fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); --NaamGegevens fac.imp_getfield (v_newline, v_fielddelimitor, v_aanduidingnaamgebruik); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_telefoonnr); fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); -- TelefoonnummerBgg fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_mobielnr); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_titel); fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); -- TitelsNa fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_nr); -- BurgerServiceNummer fac.imp_getfield (v_newline, v_fielddelimitor, v_rin); -- RijksIdentificatieNummer fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); -- FunctieOmschrijving fac.imp_getfield (v_newline, v_fielddelimitor, v_srtperslid_omschrijving); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_begindatum); fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_einddatum); fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam); fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); -- Geslacht fac.imp_getfield (v_newline, v_fielddelimitor, v_dienstverbandguid); fac.imp_getfield (v_newline, v_fielddelimitor, v_dienstverbandid); fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoekadresnaam); fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoekadresnummer); fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoekadrespostcode); fac.imp_getfield (v_newline, v_fielddelimitor, v_bezoekadresplaats); -- Skip until a valid header is found IF v_perslid_oslogin = 'AanmeldNaam' AND v_rin = 'RijksIdentificatieNummer' AND v_bezoekadresplaats = 'BezoekAdresPlaats' THEN -- Sla de kopregel over. header_found := TRUE; ELSIF (header_found) THEN IF UPPER (v_perslid_oslogin) = '==EINDE==' AND fac.safe_to_number (v_perslid_email) = v_count THEN endmrk_found := TRUE; ELSIF (NOT endmrk_found) THEN INSERT INTO rwsn_imp_idm_pers (afdelingscode, persoonachternaam, tussenvoegsel, voorletters, voornaam, aanduidingnaamgebruik, telefoonnummer, functie, personeelsnummer, rin, titel, loginnaam, email, mobielnummer, begindatum, einddatum, dienstverbandguid, dienstverbandid, bezoekadresnaam, bezoekadresnummer, bezoekadrespostcode, bezoekadresplaats, partnernaam, partnertussenvoegsel, imp_log_run) VALUES (SUBSTRB (v_afdeling_naam, 1, 10), SUBSTRB (v_perslid_naam, 1, 30), SUBSTRB (v_perslid_tussenvoegsel, 1, 15), SUBSTRB (v_perslid_voorletters, 1, 10), SUBSTRB (v_perslid_voornaam, 1, 30), SUBSTRB (v_aanduidingnaamgebruik, 1, 10), SUBSTRB (v_perslid_telefoonnr, 1, 15), SUBSTRB (v_srtperslid_omschrijving, 1, 29), SUBSTRB (v_perslid_nr, 1, 16), SUBSTRB (v_rin, 1, 30), SUBSTRB (v_perslid_titel, 1, 6), SUBSTRB (v_perslid_oslogin, 1, 200), SUBSTRB (v_perslid_email, 1, 255), SUBSTRB (REPLACE (v_perslid_mobielnr, '-', ''), 1, 15), TO_DATE (SUBSTRB (v_perslid_begindatum, 1, 8), 'YYYYMMDD'), TO_DATE (SUBSTRB (v_perslid_einddatum, 1, 8), 'YYYYMMDD'), SUBSTRB (v_dienstverbandguid, 1, 40), SUBSTRB (v_dienstverbandid, 1, 30), SUBSTRB (v_bezoekadresnaam, 1, 35), SUBSTRB (v_bezoekadresnummer, 1, 10), SUBSTRB (v_bezoekadrespostcode, 1, 12), SUBSTRB (v_bezoekadresplaats, 1, 30), SUBSTRB (v_partnernaam, 1, 30), SUBSTRB (v_partnertussenvoegsel, 1, 15), p_import_key); v_count := v_count + 1; END IF; END IF; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_aanduiding); COMMIT; v_count := v_count + 1; END; END LOOP; IF (NOT header_found) THEN fac.imp_writelog (p_import_key, 'E', 'Geen geldige header aangetroffen', 'Bestand is geen geldig IDM_PERS importbestand.'); END IF; IF (header_found AND NOT endmrk_found) THEN fac.imp_writelog (p_import_key, 'E', 'Geen geldige eindmarkering aangetroffen', 'Bestand is geen geldig IDM_PERS importbestand.'); -- Maak importtabel leeg om te voorkomen dat foutieve bestanden worden ingelezen. DELETE FROM rwsn_imp_idm_pers; END IF; -- Clear my previous imported rows DELETE FROM fac_imp_file WHERE fac_import_key = p_import_key; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_aanduiding); -- Maak importtabel leeg om te voorkomen dat foutieve bestanden worden ingelezen. DELETE FROM rwsn_imp_idm_pers; END; / -- RWSN#27455: Aanpassing IDM-koppeling (van BSN naar RIN)!!! /* Formatted on 19-12-2013 10:28:32 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PROCEDURE rwsn_update_idm_pers (p_import_key IN NUMBER) AS /* Globale werking: Op basis van het IDM importbestand - worden personen toegevoegd aan (vereist) bestaande afdelingen - worden onderwijl functie aangemaakt, zonodig - worden werkplekken gedefinieerd zomogelijk (vertaaltabel) - worden vervallen personen verwijderd */ -- Constanten c_verdieping_omschr_default VARCHAR2 (16) := 'Begane grond'; c_srtruimte_default INTEGER := 1; c_ruimte_code VARCHAR2 (3) := '001'; c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend'; c_werkplek_volgnr_default INTEGER := 1; -- Altijd werkplek met deze notatie! c_prs_werkplek_omschrijving VARCHAR2 (16) := '1'; -- Altijd werkplek met deze notatie! c_default_profiel_key NUMBER (10) := 1; c_rin_kkey NUMBER (10) := 1160; c_commitbuffer NUMBER := 1000; -- om de zoveel committen v_buffercount NUMBER := 0; -- Personen die moeten vervallen zijn personen die: -- - volgens de importregels zijn ingevoerd (ignore handmatige) -- - in de import voorkomen en een einddatum hebben die voorbij is -- - niet in de import voorkomen -- - nog niet vervallen waren -- RIN uit de importtabel mapt op kenmerk met key=1160 -- dienstverbandid uit de importtabel (SAPHRnummer) mapt op prs_perslid_nr CURSOR c_prs_del IS WITH ppb -- Geimporteerde personen per bedrijf (RWS/KNMI)! AS ( SELECT ab.prs_bedrijf_key, COUNT (*) aantal FROM rwsn_imp_idm_pers idm, prs_afdeling a, prs_v_afdeling_boom ab WHERE idm.afdelingscode = a.prs_afdeling_naam AND a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_key = ab.prs_afdeling_key GROUP BY ab.prs_bedrijf_key) SELECT p.prs_perslid_key, pf.prs_perslid_naam_full, kl.prs_kenmerklink_waarde rin FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling_boom ab, prs_v_aanwezigkenmerklink kl WHERE p.prs_perslid_verwijder IS NULL -- is niet al verwijderd AND p.prs_perslid_key = pf.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey -- is ooit geimporteerd AND NOT EXISTS -- komt niet voor in import (SELECT 1 FROM rwsn_imp_idm_pers WHERE UPPER (rin) = UPPER (kl.prs_kenmerklink_waarde)) AND EXISTS (SELECT 1 FROM ppb WHERE ppb.aantal > DECODE (ppb.prs_bedrijf_key, 3, 250, 5000) -- KNMI minimaal 250 en RWS minimaal 5000! AND ppb.prs_bedrijf_key = ab.prs_bedrijf_key) UNION SELECT p.prs_perslid_key, pf.prs_perslid_naam_full, kl.prs_kenmerklink_waarde rin FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling_boom ab, prs_v_aanwezigkenmerklink kl WHERE p.prs_perslid_verwijder IS NULL -- is niet al verwijderd AND p.prs_perslid_key = pf.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey -- is ooit geimporteerd AND NOT EXISTS -- is beeindigd volgens import (geen persoon-regels met einddatum in toekomst) (SELECT 1 FROM rwsn_imp_idm_pers WHERE UPPER (rin) = UPPER (kl.prs_kenmerklink_waarde) AND COALESCE (einddatum, SYSDATE + 1) > SYSDATE) AND EXISTS (SELECT 1 FROM ppb WHERE ppb.aantal > DECODE (ppb.prs_bedrijf_key, 3, 250, 5000) -- KNMI minimaal 250 en RWS minimaal 5000! AND ab.prs_bedrijf_key = ppb.prs_bedrijf_key) ORDER BY 3, 1; -- Personen die nieuw of gewijzigd zijn. -- Reeds eerder verwijderde personen kunnen worden gereactiveerd. -- Dubbele dienstverbanden wordt achter elkaar ingelezen en overschrijven -- elkaar dus. -- In de volgorde is de laatste einddatum het laatst aan de beurt. Dit is -- vaak het permanente contract tot jaar 9999. -- Nieuwe én bestaande KNMI-ers worden/blijven geplaatst in 'DefaultKNMI'- -- groep en alléén nieuwe KNMI-ers wordt de 'DefaultKNMI'-groep afgenomen! CURSOR c_prs_upd IS SELECT p.prs_perslid_key, idm.locatiecode alg_locatie_code, idm.afdelingscode prs_afdeling_naam, idm.persoonachternaam prs_perslid_naam, idm.tussenvoegsel prs_perslid_tussenvoegsel, idm.voorletters prs_perslid_voorletters, idm.voornaam prs_perslid_voornaam, idm.telefoonnummer prs_perslid_telefoonnr, idm.functie prs_srtperslid_omschrijving, idm.rin, idm.personeelsnummer personeelsnummer, idm.titel prs_perslid_titel, p.prs_perslid_verwijder, idm.begindatum, idm.einddatum, idm.mobielnummer, idm.email, idm.loginnaam, idm.dienstverbandguid, idm.dienstverbandid, idm.bezoekadresnaam, idm.bezoekadresnummer, idm.bezoekadrespostcode, idm.bezoekadresplaats, idm.aanduidingnaamgebruik, idm.partnertussenvoegsel, idm.partnernaam, DECODE (a.prs_afdeling_naam, NULL, 0, 1) knmi FROM rwsn_imp_idm_pers idm, (SELECT kl.prs_kenmerklink_waarde rin, p.prs_perslid_key, p.prs_perslid_verwijder, p.prs_afdeling_key FROM prs_perslid p, prs_v_aanwezigkenmerklink kl WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey) p, (SELECT a.prs_afdeling_naam FROM prs_afdeling a, prs_v_afdeling_boom ab WHERE prs_afdeling_verwijder IS NULL AND a.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = 3) a -- KNMI WHERE idm.einddatum > SYSDATE AND idm.rin = p.rin(+) AND idm.afdelingscode = a.prs_afdeling_naam(+) ORDER BY idm.rin, idm.einddatum, prs_perslid_key DESC; v_perslid_key NUMBER (10); v_prs_key_cnt NUMBER (10); v_srtperslid_key NUMBER (10); v_afdeling_key NUMBER (10); v_srtperslid_omschr VARCHAR2 (30); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); v_count NUMBER (10); v_update BOOLEAN; v_perslid_count_imp NUMBER; v_perslid_count_fclt NUMBER; v_perslid_newcount_fclt NUMBER; currentversion fac_module.fac_module_version%TYPE; v_newgebouwkey NUMBER; lnaampresentatie VARCHAR2 (100); ltussenvoegselpres VARCHAR2 (100); lemail VARCHAR2 (100); llogin1 VARCHAR2 (100); llogin2 VARCHAR2 (100); -- Bepaal het gebouw behorende bij postcode en nummer (best guess!) -- Return -1 als het niet bepaald kan worden FUNCTION getgebouwkey (postcode IN VARCHAR2, nummer IN VARCHAR2) RETURN NUMBER IS llocatiekey alg_locatie.alg_locatie_key%TYPE; lgebouwkey alg_gebouw.alg_gebouw_key%TYPE; BEGIN IF postcode IS NULL THEN RETURN -1; END IF; SELECT NVL (MIN (alg_locatie_key), -1) INTO llocatiekey FROM mld_adres m WHERE m.mld_adres_bezoek_postcode = postcode AND UPPER (SUBSTR (RTRIM (m.mld_adres_bezoek_adres), INSTR (RTRIM (m.mld_adres_bezoek_adres), ' ', -1) + 1)) = UPPER (nummer) ; IF llocatiekey <> -1 THEN SELECT NVL (MIN (alg_gebouw_key), -1) INTO lgebouwkey FROM alg_gebouw WHERE alg_gebouw_verwijder IS NULL AND alg_locatie_key = llocatiekey; ELSE lgebouwkey := -1; END IF; RETURN lgebouwkey; END; -- Het login veld in het importbestand heeft de onzalige eigenschap -- dat er soms meerdere in staan, gescheiden door een , (komma) -- Deze functie vertaalt dit veld tot een goede login -- Op dit moment is dat het eerste adres. Tenzij de bestaande login voorkomt -- in de lijst. PROCEDURE handle_login (plogin IN VARCHAR2, p_perslid_key IN NUMBER, login1 OUT VARCHAR2, login2 OUT VARCHAR2) IS l_login_str rwsn_imp_idm_pers.loginnaam%TYPE; BEGIN l_login_str := UPPER(plogin); IF p_perslid_key IS NOT NULL THEN -- bestaand persoon SELECT prs_perslid_oslogin, prs_perslid_oslogin2 INTO login1, login2 FROM prs_perslid WHERE prs_perslid_key = p_perslid_key; IF login1 = login2 THEN login2 := NULL; END IF; IF login1 IS NOT NULL AND INSTR(','||l_login_str||',', ','||login1||',') > 0 THEN -- 1e login is niet leeg en is gevonden in login lijst -- we hoeven niets te doen NULL; ELSE -- 1e login is niet gevonden of is leeg -- controleer of er meerdere logins op de regel staan IF INSTR (l_login_str, ',') > 0 THEN login1 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1); ELSE login1 := l_login_str; END IF; IF login1 = login2 THEN login2 := NULL; END IF; END IF; IF login2 IS NOT NULL AND INSTR(','||l_login_str||',', ','||login2||',') > 0 THEN -- 2e login is niet leeg en is gevonden in login lijst -- we hoeven niets te doen NULL; ELSE -- 2e login is niet gevonden of is leeg login2 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1); IF login1 = login2 THEN -- ga op zoek naar de volgende l_login_str := SUBSTR(l_login_str, INSTR (l_login_str, ',')+1); IF INSTR (l_login_str, ',') > 0 THEN login2 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1); ELSE login2 := l_login_str; END IF; END IF; END IF; ELSE IF INSTR (l_login_str, ',') > 0 THEN login1 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1); l_login_str := SUBSTR(l_login_str, INSTR (l_login_str, ',')+1); IF INSTR (l_login_str, ',') > 0 THEN login2 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1); ELSE login2 := l_login_str; END IF; ELSE login1 := l_login_str; login2 := null; END IF; END IF; END; -- Het emailveld in het importbestand heeft de onzalige eigenschap -- dat er soms meerdere in staan, gescheiden door een , (komma) -- Deze functie vertaalt dit veld tot een goed emailadressen -- Op dit moment nemen we alle email adressen over zodat de -- gebruiker meerdere mailtjes krijgt. FUNCTION handle_email (pemail IN VARCHAR2) RETURN VARCHAR2 IS rstr rwsn_imp_idm_pers.email%TYPE; BEGIN rstr := pemail; RETURN rstr; END; -- Procedure die alles regelt voor de locatie van persoon, varierend van: -- NIKS (als plaats ongeldig is of huidige situatie al goed is) -- ZETTEN OP EEN BESTAANDE WERKPLEK -- VERDIEPING/RUIMTE/WERKPLEK AANMAKEN EN TOEKENNEN PROCEDURE handle_location (pkey IN NUMBER, pgebouwkey IN VARCHAR2, prin IN VARCHAR2) IS lv_errormsg VARCHAR2 (1000); lv_errorhint VARCHAR2 (1000); lv_nr_werkplek NUMBER; lv_verdieping_key NUMBER (10); lv_ruimte_key NUMBER (10); lv_werkplek_key NUMBER (10); BEGIN lv_errormsg := 'Toekennen van een plaats'; IF pgebouwkey = -1 THEN lv_errorhint := 'Onbekend gebouw voor persoon/RIN: ' || prin; fac.imp_writelog (p_import_key, 'W', lv_errormsg, lv_errorhint); RETURN; END IF; -- komt nieuwe werkplek al voor bij bestaande werkplekken (virtueel of niet)? -- heeft persoon al bestaande werkplek in gebouw (virtueel of niet)? SELECT COUNT (*) INTO lv_nr_werkplek FROM prs_perslidwerkplek pw, prs_werkplek w, alg_ruimte r, alg_verdieping v WHERE pw.prs_perslid_key = pkey AND pw.prs_werkplek_key = w.prs_werkplek_key --RWSN#8617:AND COALESCE (w.prs_werkplek_virtueel, 0) <> 1 AND w.prs_alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = pgebouwkey; IF lv_nr_werkplek > 0 THEN -- persoon heeft bestaande werkplek in gebouw (virtueel of niet)! lv_errorhint := 'Ongewijzigd gebouw voor persoon/RIN: ' || prin; fac.imp_writelog (p_import_key, 'I', lv_errormsg, lv_errorhint); RETURN; END IF; -- verwijder bestaande werkplekken. -- HdZ (6-8-2009: werkplekken mogen niet worden verwijderd via koppeling. -- werkplekken worden nog vaak handmatig aangemaakt. --DELETE prs_perslidwerkplek WHERE prs_perslid_key = pkey; -- Er moet wat gebeuren, plaatsen of verplaatsen. -- Vooralsnog even (bij)plaatsen. -- De gebouwkey is bekend, dus gebouw ook. -- Dan zoeken we naar laagste verdieping en laagste ruimtenr. -- En dan maken we daar werkplek aan. IF lv_nr_werkplek = 0 THEN -- persoon heeft nog geen werkplek BEGIN lv_errormsg := 'Bepalen verdieping'; SELECT alg_verdieping_key INTO lv_verdieping_key FROM alg_v_aanwezigverdieping WHERE alg_gebouw_key = pgebouwkey AND alg_verdieping_upper like '%BEGANE GROND%'; EXCEPTION WHEN NO_DATA_FOUND THEN v_errorhint := 'Begane grond toevoegen voor persoon/RIN: ' || prin; INSERT INTO alg_verdieping (alg_gebouw_key, alg_verdieping_omschrijving, alg_verdieping_volgnr, alg_verdieping_code) VALUES (pgebouwkey, c_verdieping_omschr_default, 0, '0') RETURNING alg_verdieping_key INTO lv_verdieping_key; END; -- lv_verdieping_key bekend BEGIN -- zoek laagste=alfabetisch eerste ruimte op verdieping SELECT alg_ruimte_key INTO lv_ruimte_key FROM alg_v_aanwezigruimte WHERE alg_verdieping_key = lv_verdieping_key AND alg_ruimte_nr = (SELECT MIN (alg_ruimte_nr) FROM alg_v_aanwezigruimte WHERE alg_verdieping_key = lv_verdieping_key); EXCEPTION WHEN NO_DATA_FOUND THEN v_errorhint := 'Ruimte toevoegen voor persoon/RIN: ' || prin; -- AANNAME: srtruimte 1 moet bestaan INSERT INTO alg_ruimte (alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr, alg_ruimte_omschrijving) VALUES (lv_verdieping_key, c_srtruimte_default, c_ruimte_code, c_ruimte_omschr_default) RETURNING alg_ruimte_key INTO lv_ruimte_key; END; -- lv_ruimte_key bekend BEGIN SELECT prs_werkplek_key INTO lv_werkplek_key FROM prs_werkplek WHERE prs_alg_ruimte_key = lv_ruimte_key AND prs_werkplek_volgnr = c_werkplek_volgnr_default; EXCEPTION WHEN NO_DATA_FOUND THEN v_errorhint := 'Werkplek toevoegen voor persoon/RIN: ' || prin; INSERT INTO prs_werkplek (prs_werkplek_volgnr, prs_werkplek_omschrijving, prs_alg_ruimte_key, prs_werkplek_virtueel) VALUES (c_werkplek_volgnr_default, c_prs_werkplek_omschrijving, lv_ruimte_key, 0) RETURNING prs_werkplek_key INTO lv_werkplek_key; END; -- lv_werkplek_key bekend INSERT INTO prs_perslidwerkplek (prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_bezetting) VALUES (pkey, lv_werkplek_key, 0); END IF; END; PROCEDURE update_adres AS CURSOR cadressen IS SELECT DISTINCT substr(bezoekadresplaats || '-' || bezoekadresnaam,1,30) adres_naam, substr(bezoekadresnaam || ' ' || bezoekadresnummer,1,35) adres_bezoek_adres, substr(bezoekadrespostcode,1,12) adres_bezoek_postcode, substr(bezoekadresplaats, 1, 30) adres_bezoek_plaats FROM rwsn_imp_idm_pers WHERE bezoekadrespostcode IS NOT NULL; ladreskey NUMBER (10); l_newcount NUMBER; l_impcount NUMBER; v_errormsg VARCHAR (200); oracle_err_mes VARCHAR2 (150); currentversion fac_module.fac_module_version%TYPE; BEGIN FOR rc IN cadressen LOOP -- Bestaat deze al? -- Er is geen key, dus checken we op alle velden -- Een update is dus nvt BEGIN SELECT mld_adres_key INTO ladreskey FROM mld_adres WHERE mld_adres_naam = rc.adres_naam AND mld_adres_bezoek_postcode = rc.adres_bezoek_postcode AND mld_adres_bezoek_adres = rc.adres_bezoek_adres AND mld_adres_bezoek_plaats = rc.adres_bezoek_plaats; EXCEPTION WHEN NO_DATA_FOUND THEN ladreskey := -1; END; --DBMS_OUTPUT.put_line (rc.adres_naam); IF ladreskey = -1 THEN INSERT INTO mld_adres (mld_adres_naam, mld_adres_bezoek_adres, mld_adres_bezoek_postcode, mld_adres_bezoek_plaats, mld_adres_afleveradres ) VALUES (rc.adres_naam, rc.adres_bezoek_adres, rc.adres_bezoek_postcode, rc.adres_bezoek_plaats, 1); fac.imp_writelog (p_import_key, 'I', 'Adres is toegevoegd', rc.adres_naam); END IF; END LOOP; -- Zoek de locatiekey bij het adres op basis van postcode -- Als er meerdere locaties matchen pak ik de oudste (=grootste?) UPDATE mld_adres SET alg_locatie_key = (SELECT MIN (l.alg_locatie_key) FROM alg_locatie l WHERE l.alg_locatie_postcode = mld_adres_bezoek_postcode AND UPPER (SUBSTR (RTRIM (l.alg_locatie_adres), INSTR (RTRIM (l.alg_locatie_adres), ' ', -1))) = UPPER (SUBSTR (mld_adres_bezoek_adres, INSTR (mld_adres_bezoek_adres, ' ', -1))) AND l.alg_locatie_verwijder IS NULL) WHERE mld_adres_verwijder IS NULL AND alg_locatie_key IS NULL; END; PROCEDURE update_dienstverbandguid(p_prs_perslid_key IN NUMBER, p_dienstverbandguid IN VARCHAR2) AS v_prs_kenmerk_key NUMBER; v_prs_kenmerklink_key NUMBER; BEGIN BEGIN -- check for dienstverbandguid kenmerk SELECT prs_kenmerk_key INTO v_prs_kenmerk_key FROM prs_v_aanwezigkenmerk WHERE prs_kenmerk_omschrijving = 'DienstverbandGUID'; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO prs_kenmerk ( PRS_KENMERK_NIVEAU , PRS_KENMERK_VOLGNR , PRS_KENMERK_OMSCHRIJVING , PRS_KENMERK_KENMERKTYPE , PRS_KENMERK_LENGTE) VALUES ( 'P' , 10 , 'DienstverbandGUID' , 'C' , 49 ) RETURNING prs_kenmerk_key INTO v_prs_kenmerk_key; END; BEGIN SELECT prs_kenmerklink_key INTO v_prs_kenmerklink_key FROM prs_kenmerklink WHERE prs_kenmerk_key = v_prs_kenmerk_key AND prs_link_key = p_prs_perslid_key AND prs_kenmerklink_niveau = 'P'; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO PRS_KENMERKLINK ( PRS_LINK_KEY , PRS_KENMERKLINK_NIVEAU , PRS_KENMERK_KEY , PRS_KENMERKLINK_WAARDE) VALUES ( p_prs_perslid_key , 'P' , v_prs_kenmerk_key , p_dienstverbandguid); END; UPDATE prs_kenmerklink SET prs_kenmerklink_waarde = p_dienstverbandguid WHERE prs_kenmerklink_key = v_prs_kenmerklink_key; END; ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- -- MAIN PROCEDURE ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- BEGIN SELECT MAX (fac_module_version) INTO currentversion FROM fac_module; fac.imp_writelog (p_import_key, 'I', 'Facilitor IDM_PERS import version ' || currentversion, '$Revision$'); -- #Import SELECT COUNT (*) INTO v_perslid_count_imp FROM rwsn_imp_idm_pers; -- Informatieve logging, zien we gelijk hoe laat het was fac.imp_writelog (p_import_key, 'S', 'Aantal ingelezen personen: ' || TO_CHAR (v_perslid_count_imp), ''); -- #Actieve personen mèt RIN SELECT COUNT (*) INTO v_perslid_count_fclt FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey; -- Check het aantal regels, stop als onvoldoende (=bestaand maar ongeldig bestand) IF v_perslid_count_imp = 0 THEN fac.imp_writelog (p_import_key, 'E', 'Het importbestand is ongeldig. Import afgebroken', ''); RETURN; END IF; update_adres (); -- Begin met het ontmantelen van vervallen personen FOR rec_prs_del IN c_prs_del LOOP BEGIN v_perslid_key := rec_prs_del.prs_perslid_key; v_errormsg := 'Verwijderen van persoon NIET gelukt'; v_errorhint := 'Heeft persoon met key ' || TO_CHAR (v_perslid_key) || ' historie?'; SELECT SUM (aant) INTO v_count FROM (SELECT COUNT ( * ) aant FROM prs_v_verplichting_refcheck WHERE prs_perslid_key = v_perslid_key UNION ALL SELECT COUNT ( * ) aant FROM cnt_v_aanwezigcontract WHERE cnt_contract_status = 0 -- NIET Gesloten! AND cnt_contract_looptijd_tot >= SYSDATE AND cnt_prs_perslid_key = v_perslid_key UNION ALL SELECT COUNT ( * ) aant FROM fac_tracking WHERE prs_perslid_key = v_perslid_key); IF v_count = 0 THEN -- Persoon heeft geen enkele (actuele of historische) verplichting v_errorhint := 'Verwijderen van persoon met key ' || TO_CHAR (v_perslid_key); PRS.delete_perslid (p_import_key, v_perslid_key); fac.imp_writelog (p_import_key, 'I', 'Persoon verwijderd; RIN: ' || rec_prs_del.rin, ''); ELSE -- Controleer of er ACTUELE verplichtingen zijn SELECT COUNT (*) INTO v_count FROM prs_v_verplichting_keys pv WHERE pv.prs_perslid_key = v_perslid_key; IF v_count > 0 THEN UPDATE prs_perslid SET prs_perslid_naam = SUBSTR ('INACTIEF:' || prs_perslid_naam, 1, 30), prs_perslid_email = NULL, prs_perslid_oslogin = NULL WHERE prs_perslid_key = v_perslid_key AND prs_perslid_naam NOT LIKE 'INACTIEF:%'; fac.imp_writelog (p_import_key, 'I', 'Persoon INACTIEF; RIN: ' || rec_prs_del.rin, ''); ELSE -- Er zijn geen actieve verplichtingen, wel historische BEGIN UPDATE prs_perslid SET prs_perslid_verwijder = SYSDATE WHERE prs_perslid_key = v_perslid_key; fac.imp_writelog (p_import_key, 'I', 'Persoon verwijderd; RIN: ' || rec_prs_del.rin, ''); EXCEPTION WHEN OTHERS THEN -- Kennelijk heeft persoon toch ernstige verplichtingen v_errorhint := 'Persoon heeft nog (max. ' || TO_CHAR (v_count) || ') verplichtingen; RIN: ' || rec_prs_del.rin; fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint); END; END IF; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'Delete exception ' || oracle_err_mes; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); END; END LOOP; COMMIT; -- Ga verder met het toevoegen of bijwerken FOR rec_prs_upd IN c_prs_upd LOOP BEGIN -- Init v_update := TRUE; -- wordt PER RECORD false bij funest gebrek aan vervulde randvoorwaarden v_afdeling_key := 0; v_srtperslid_key := 0; v_perslid_key := 0; v_errormsg := 'Fout bepalen randvoorwaarden'; -- *** Controle verplichte gegevens + ophalen extra informatie *** -- Controle: RIN IF rec_prs_upd.rin IS NULL THEN v_errorhint := 'Persoon heeft geen RIN; achternaam: ' || rec_prs_upd.prs_perslid_naam; fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint); v_update := FALSE; END IF; -- Controle: PRS_PERSLID_NAAM IF v_update AND rec_prs_upd.prs_perslid_naam IS NULL THEN v_errorhint := 'Persoon heeft geen achternaam; RIN: ' || rec_prs_upd.rin; fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint); v_update := FALSE; END IF; -- Controle: Persoon reactiveren of is er al een actieve persoon met dezelfde RIN? IF v_update AND rec_prs_upd.prs_perslid_verwijder IS NOT NULL THEN v_errorhint := 'Bepalen reactivatie persoon/RIN: ' || rec_prs_upd.rin; -- Is er al een actieve persoon met dezelfde RIN? SELECT COUNT (p.prs_perslid_key) INTO v_prs_key_cnt FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey AND kl.prs_kenmerklink_waarde LIKE rec_prs_upd.rin AND p.prs_perslid_key != rec_prs_upd.prs_perslid_key; IF v_prs_key_cnt > 0 THEN -- Waarde(n) gevonden, dus is er al een actieve persoon met dezelfde RIN! -- => Geen update v_update := FALSE; ELSE -- Kennelijk is er geen actieve persoon met dezelfde RIN! -- => Wel update (prs_perslid_verwijder op NULL zetten) fac.imp_writelog (p_import_key, 'I', 'Persoon reactiveren; RIN: ' || rec_prs_upd.rin, ''); END IF; END IF; -- Controle: PRS_AFDELING_NAAM v_errorhint := 'De afdeling kan niet bepaald worden ' || rec_prs_upd.prs_afdeling_naam; IF v_update THEN BEGIN -- Bepaal de afdelingskey; afdelingen worden met een andere import beheerd SELECT prs_afdeling_key INTO v_afdeling_key FROM prs_afdeling WHERE prs_afdeling_naam = rec_prs_upd.prs_afdeling_naam AND prs_afdeling_verwijder IS NULL; EXCEPTION WHEN NO_DATA_FOUND THEN v_update := FALSE; v_errorhint := 'Afdeling ' || rec_prs_upd.prs_afdeling_naam || ' bestaat niet; persoon/RIN: ' || rec_prs_upd.rin; -- Kennelijk is de afdeling niet gevonden fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint); WHEN OTHERS THEN v_update := FALSE; v_errorhint := 'Kan Afdeling ' || rec_prs_upd.prs_afdeling_naam || ' niet eenduidig bepalen?!'; fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint); END; END IF; v_errorhint := 'Bepaling functie'; -- Controle: PRS_SRTPERSLID_OMSCHRIJVING IF v_update THEN BEGIN v_srtperslid_omschr := rec_prs_upd.prs_srtperslid_omschrijving; -- Bepaal de key van de functie SELECT prs_srtperslid_key INTO v_srtperslid_key FROM prs_srtperslid WHERE prs_srtperslid_upper = UPPER (v_srtperslid_omschr) AND prs_srtperslid_verwijder IS NULL; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog (p_import_key, 'I', 'Functie ' || v_srtperslid_omschr || ' toegevoegd', v_errorhint); -- Functie bestaat kennelijk niet, maak 'm maar aan INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving) VALUES (v_srtperslid_omschr); -- Wat is de key van deze nieuwe geworden? SELECT prs_srtperslid_key INTO v_srtperslid_key FROM prs_srtperslid WHERE prs_srtperslid_omschrijving = v_srtperslid_omschr AND prs_srtperslid_verwijder IS NULL; WHEN OTHERS THEN v_errorhint := 'Functie ' || v_srtperslid_omschr || ' kan niet bepaald worden; persoon/RIN: ' || rec_prs_upd.rin; v_update := FALSE; END; END IF; IF rec_prs_upd.partnernaam IS NULL THEN -- als de partnernaam niet gevuld is dan kunnen we deze ook niet gebruiken. lnaampresentatie := rec_prs_upd.prs_perslid_naam; ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel; ELSE -- Bepaal de te gebruiken achternaamformattering CASE LPAD (rec_prs_upd.aanduidingnaamgebruik, 1, '0') WHEN '0' THEN BEGIN -- code 0 = [aanhef, titel, voorletters,] voorvoegsels, achternaam -- Opgem. naam Mevr. T. de Haan lnaampresentatie := rec_prs_upd.prs_perslid_naam; ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel; END; WHEN '1' THEN BEGIN --Code 1 = [aanhef, titel, voorletters,] 2e voorvoegsels, 2e naam(partnernaam) voorvoegsels, achternaam --Opgem. naam Mevr. T. Bronsgeest-de Haan lnaampresentatie := rec_prs_upd.partnernaam || '-' || rec_prs_upd.prs_perslid_tussenvoegsel || ' ' || rec_prs_upd.prs_perslid_naam; ltussenvoegselpres := rec_prs_upd.partnertussenvoegsel; END; WHEN '2' THEN BEGIN --Code 2 = [aanhef, titel, voorletters,] voorvoegsels, achternaam, 2e voorvoegsels, 2e naam(partnernaam) --Opgem. naam Mevr. T. de Haan-Bronsgeest lnaampresentatie := rec_prs_upd.prs_perslid_naam || '-' || rec_prs_upd.partnertussenvoegsel || ' ' || rec_prs_upd.partnernaam; ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel; END; WHEN '3' THEN BEGIN --code 3 = [aanhef, titel, voorletters,] 2e voorvoegsels, 2e naam(partnernaam) --Opgem. naam Mevr. T. Bronsgeest lnaampresentatie := rec_prs_upd.partnernaam; ltussenvoegselpres := rec_prs_upd.partnertussenvoegsel; END; ELSE BEGIN -- code 0 = [aanhef, titel, voorletters,] voorvoegsels, achternaam -- Opgem. naam Mevr. T. de Haan lnaampresentatie := rec_prs_upd.prs_perslid_naam; ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel; fac.imp_writelog (p_import_key, 'W', 'Ongedefinieerd naamformattering (AanduidingNaamGebruik) ' || rec_prs_upd.aanduidingnaamgebruik, 'Default (0) wordt gehanteerd.'); END; END CASE; END IF; lnaampresentatie := substrb (lnaampresentatie,1,30); v_errorhint := 'E-mail'; lemail := handle_email (rec_prs_upd.email); v_errorhint := 'Aanmeldnaam'; handle_login (rec_prs_upd.loginnaam, rec_prs_upd.prs_perslid_key, llogin1, llogin2); -- *** Daadwerkelijk insert/update prs_perslid *** IF v_update THEN BEGIN IF rec_prs_upd.prs_perslid_key IS NULL THEN v_errormsg := 'Persoon kan niet worden toegevoegd'; INSERT INTO prs_perslid (prs_perslid_naam, prs_perslid_tussenvoegsel, prs_perslid_voorletters, prs_perslid_voornaam, prs_perslid_telefoonnr, prs_perslid_nr, prs_perslid_titel, prs_srtperslid_key, prs_afdeling_key, prs_perslid_oslogin, prs_perslid_oslogin2, prs_perslid_mobiel, prs_perslid_email, prs_perslid_ingangsdatum, prs_perslid_einddatum, fac_profiel_key ) VALUES (lnaampresentatie, ltussenvoegselpres, rec_prs_upd.prs_perslid_voorletters, rec_prs_upd.prs_perslid_voornaam, rec_prs_upd.prs_perslid_telefoonnr, rec_prs_upd.dienstverbandid, rec_prs_upd.prs_perslid_titel, v_srtperslid_key, v_afdeling_key, llogin1, llogin2, rec_prs_upd.mobielnummer, lemail, rec_prs_upd.begindatum, rec_prs_upd.einddatum, c_default_profiel_key ) RETURNING prs_perslid_key INTO v_perslid_key; v_errormsg := 'Fout toevoegen RIN'; INSERT INTO prs_kenmerklink (prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde) VALUES (v_perslid_key, 'P', c_rin_kkey, rec_prs_upd.rin); fac.imp_writelog (p_import_key, 'I', 'Nieuw persoon toegevoegd', 'Naam/RIN: ' || ltussenvoegselpres || ' ' || lnaampresentatie || '/' || rec_prs_upd.rin); -- Nieuwe KNMI-ers de _Default-groep afnemen en plaatsen in -- de DefaultKNMI-groep! IF rec_prs_upd.knmi = 1 THEN v_errormsg := 'Fout afnemen _Default'; DELETE FROM fac_gebruikersgroep WHERE fac_groep_key = 1 AND prs_perslid_key = v_perslid_key; v_errormsg := 'Fout toekennen DefaultKNMI'; INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) VALUES (3, v_perslid_key); END IF; ELSE v_errormsg := 'Persoon kan niet worden gewijzigd'; UPDATE prs_perslid SET prs_perslid_naam = lnaampresentatie, prs_perslid_tussenvoegsel = ltussenvoegselpres, prs_perslid_voorletters = rec_prs_upd.prs_perslid_voorletters, prs_perslid_voornaam = NVL (rec_prs_upd.prs_perslid_voornaam, prs_perslid_voornaam), prs_perslid_telefoonnr = rec_prs_upd.prs_perslid_telefoonnr, prs_perslid_nr = rec_prs_upd.dienstverbandid, prs_perslid_titel = rec_prs_upd.prs_perslid_titel, prs_srtperslid_key = v_srtperslid_key, prs_afdeling_key = v_afdeling_key, prs_perslid_oslogin = llogin1, prs_perslid_oslogin2 = COALESCE (prs_perslid_oslogin2, llogin2), -- RWSN#21033! prs_perslid_mobiel = rec_prs_upd.mobielnummer, prs_perslid_email = lemail, prs_perslid_ingangsdatum = rec_prs_upd.begindatum, prs_perslid_einddatum = rec_prs_upd.einddatum, prs_perslid_verwijder = NULL, prs_perslid_inactief = NULL WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key AND ( prs_perslid_naam <> lnaampresentatie OR NVL (prs_perslid_tussenvoegsel, '-') <> NVL (ltussenvoegselpres, '-') OR NVL (prs_perslid_voorletters, '-') <> NVL (rec_prs_upd.prs_perslid_voorletters, '-') OR NVL (prs_perslid_voornaam, '-') <> NVL (rec_prs_upd.prs_perslid_voornaam, '-') OR NVL (prs_perslid_telefoonnr, '-') <> NVL (rec_prs_upd.prs_perslid_telefoonnr, '-') OR NVL (prs_perslid_titel, '-') <> NVL (rec_prs_upd.prs_perslid_titel, '-') OR prs_srtperslid_key <> v_srtperslid_key OR prs_afdeling_key <> v_afdeling_key OR NVL (prs_perslid_oslogin, '-') <> NVL (llogin1, '-') OR (prs_perslid_oslogin2 IS NULL AND llogin2 IS NOT NULL) -- RWSN#21033! OR NVL (prs_perslid_oslogin2, '-') <> NVL (llogin2, '-') OR NVL (prs_perslid_mobiel, '-') <> NVL (rec_prs_upd.mobielnummer, '-') OR NVL (prs_perslid_email, '-') <> NVL (lemail, '-') OR NVL (prs_perslid_ingangsdatum, to_date('01012000', 'ddmmyyyy')) <> NVL (rec_prs_upd.begindatum, to_date('01012000', 'ddmmyyyy')) OR NVL (prs_perslid_einddatum, to_date('01012000', 'ddmmyyyy')) <> NVL (rec_prs_upd.einddatum, to_date('01012000', 'ddmmyyyy')) OR NVL (prs_perslid_nr, '-') <> NVL (rec_prs_upd.dienstverbandid, '-') OR rec_prs_upd.prs_perslid_verwijder IS NOT NULL ); v_perslid_key := rec_prs_upd.prs_perslid_key; -- Bestaande KNMI-ers evt. de _Default-groep weer afnemen en -- behouden in de DefaultKNMI-groep! IF rec_prs_upd.knmi = 1 THEN v_errormsg := 'Fout afnemen _Default'; DELETE FROM fac_gebruikersgroep WHERE fac_groep_key = 1 AND prs_perslid_key = v_perslid_key; v_errormsg := 'Fout behouden DefaultKNMI'; INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT 3, v_perslid_key FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep WHERE fac_groep_key = 3 AND prs_perslid_key = v_perslid_key); END IF; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' - ' || oracle_err_mes; v_errorhint := 'Persoon/RIN: ' || rec_prs_upd.rin; v_update := FALSE; fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint); END; END IF; -- v_perslid_key is nu zeker bekend; zoniet, dan is v_update dus FALSE -- en gaan we niet verder aanpassen/aanmaken IF v_perslid_key <> 0 THEN -- RWSN#24870: Per RWSN49 vervallen. -- ---------------------------------------------------------- -- DID-stuff: autorisatie van personen op basis van dienst!!! -- En, ALLEEN als persoon een login heeft (niet altijd zo)!!! -- ---------------------------------------------------------- -- RWSN#24870-einde! v_errorhint := 'Update dienstverbandguid persoon/RIN: ' || rec_prs_upd.rin; update_dienstverbandguid(v_perslid_key, rec_prs_upd.dienstverbandguid); v_errorhint := 'Locatiebepaling persoon/RIN: ' || rec_prs_upd.rin; IF rec_prs_upd.bezoekadrespostcode IS NOT NULL THEN v_newgebouwkey := getgebouwkey (rec_prs_upd.bezoekadrespostcode, rec_prs_upd.bezoekadresnummer); handle_location (v_perslid_key, v_newgebouwkey, rec_prs_upd.rin); END IF; v_buffercount := v_buffercount + 1; IF v_buffercount >= c_commitbuffer THEN COMMIT; v_buffercount := 0; END IF; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Local exception ' || oracle_err_mes; fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint); END; END LOOP; COMMIT; /* -- KNMI-ers afnemen _Default-groep! DELETE FROM fac_gebruikersgroep gg WHERE gg.fac_groep_key = 1 -- _Default AND EXISTS (SELECT 1 FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab WHERE p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = 3 -- KNMI AND p.prs_perslid_key = gg.prs_perslid_key); COMMIT; -- KNMI-ers toekennen DefaultKNMI-groep! INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT 3, p.prs_perslid_key -- DefaultKNMI FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab WHERE p.prs_perslid_oslogin IS NOT NULL AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = 3 -- KNMI AND NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep WHERE fac_groep_key = 3 -- KNMI AND prs_perslid_key = p.prs_perslid_key); COMMIT; -- RWS-ers afnemen DefaultKNMI-groep! DELETE FROM fac_gebruikersgroep gg WHERE gg.fac_groep_key = 3 -- DefaultKNMI AND NOT EXISTS (SELECT 1 FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab WHERE p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = 3 -- KNMI AND p.prs_perslid_key = gg.prs_perslid_key); COMMIT; */ SELECT COUNT ( * ) INTO v_perslid_newcount_fclt FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey; fac.imp_writelog (p_import_key, 'S', 'Aantal actieve personen met RIN vooraf: ' || TO_CHAR (v_perslid_count_fclt) || ' nu: ' || TO_CHAR (v_perslid_newcount_fclt), ''); SELECT COUNT ( * ) INTO v_perslid_newcount_fclt -- misbruik FROM prs_v_aanwezigperslid p WHERE NOT EXISTS (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = c_rin_kkey); fac.imp_writelog (p_import_key, 'S', 'Aantal actieve personen zonder RIN (nu): ' || TO_CHAR (v_perslid_newcount_fclt), ''); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Global exception ' || oracle_err_mes; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); END; / CREATE OR REPLACE PROCEDURE rwsn_import_derden (p_import_key IN NUMBER) AS v_errormsg VARCHAR2 (1000) := '-'; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN -- Generieke import. -- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE. --'%"PersoneelsID";"Loginnaam";"Achternaam";"Tussenvoegsel";"Voorletters";"Voornaam";"Afdelingscode";"Functie";"Email";"Telefoonnr";"Mobiel";"Gebouwcode"%'); --'%PersoneelsID;Loginnaam;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Afdelingscode;Functie;Email;Telefoonnr;Mobiel;Gebouwcode%'); prs.import_perslid ( p_import_key, '0;0;0;0;0;0;7;3;4;6;' || '5;0;0;0;0;10;11;9;0;0;' || '8;2;0;0;0;0;1;12;0;0;' || '0;0;0;0;0;0;0;0;0;0;' || '0;0;0;0;0;0', '%PersoneelsID;Loginnaam;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Afdelingscode;Functie;Email;Telefoonnr;Mobiel;Gebouwcode%'); -- Klantspecifieke aanpassingen. -- Als geen Functie aangeleverd, dan deze hard op 'Onbekend' zetten. UPDATE fac_imp_perslid SET prs_srtperslid_omschrijving = 'Onbekend' WHERE prs_srtperslid_omschrijving IS NULL; -- Locatie/Gebouw/Verdieping/Ruimte bepalen via Kenmerk2-kolom -> Gebouw en daaronder -- Ruimte '_000' op de verdieping met het laagste volgnummer! -- Als persoon al een WP heeft op import-locatie, dan is dat de juiste en blijft deze -- (handmatig gecorrigeerde WP) ongewijzigd. In alle andere gevallen verhuist persoon -- naar Ruimte '_000' op de meegegeven locatie. -- Eventuele WPs onder andere locaties dan import-locatie blijven ook ongewijzigd! UPDATE fac_imp_perslid i SET i.alg_locatie_code = (SELECT il.alg_locatie_code FROM alg_v_aanweziggebouw ig, alg_locatie il WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND ig.alg_locatie_key = il.alg_locatie_key AND NOT EXISTS (SELECT 1 FROM alg_v_aanweziggebouw WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND alg_locatie_key < il.alg_locatie_key)), i.alg_gebouw_code = (SELECT ig.alg_gebouw_code FROM alg_v_aanweziggebouw ig, alg_locatie il WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND ig.alg_locatie_key = il.alg_locatie_key AND NOT EXISTS (SELECT 1 FROM alg_v_aanweziggebouw WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND alg_locatie_key < il.alg_locatie_key)), i.alg_verdieping_volgnr = (SELECT iv.alg_verdieping_volgnr FROM alg_v_aanweziggebouw ig, alg_locatie il, alg_verdieping iv, alg_v_aanwezigruimte ir WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND ig.alg_locatie_key = il.alg_locatie_key AND NOT EXISTS (SELECT 1 FROM alg_v_aanweziggebouw WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND alg_locatie_key < il.alg_locatie_key) AND ig.alg_gebouw_key = iv.alg_gebouw_key AND iv.alg_verdieping_key = ir.alg_verdieping_key AND ir.alg_ruimte_nr = '_000' AND NOT EXISTS (SELECT 1 FROM alg_v_aanwezigruimte r, alg_verdieping v WHERE r.alg_ruimte_nr = '_000' AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = iv.alg_gebouw_key AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr)), i.alg_ruimte_nr = (SELECT ir.alg_ruimte_nr FROM alg_v_aanweziggebouw ig, alg_locatie il, alg_verdieping iv, alg_v_aanwezigruimte ir WHERE ig.alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND ig.alg_locatie_key = il.alg_locatie_key AND NOT EXISTS (SELECT 1 FROM alg_v_aanweziggebouw WHERE alg_gebouw_upper = UPPER (i.prs_kenmerk2) AND alg_locatie_key < il.alg_locatie_key) AND ig.alg_gebouw_key = iv.alg_gebouw_key AND iv.alg_verdieping_key = ir.alg_verdieping_key AND ir.alg_ruimte_nr = '_000' AND NOT EXISTS (SELECT 1 FROM alg_v_aanwezigruimte r, alg_verdieping v WHERE r.alg_ruimte_nr = '_000' AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = iv.alg_gebouw_key AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr)); COMMIT; -- Resulteert in nette foutmelding als ruimte niet kan worden bepaald. UPDATE fac_imp_perslid SET alg_verdieping_volgnr = 0 WHERE alg_gebouw_code IS NOT NULL AND alg_verdieping_volgnr IS NULL; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') '; fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Inleesproces derden afgebroken!'); END rwsn_import_derden; / CREATE OR REPLACE PROCEDURE rwsn_update_derden (p_import_key IN NUMBER) AS -- Maximale afname van Derden-medewerkers na import tov. huidig aantal (met -- een personeelsnummer)! c_max_delta_percentage NUMBER (10) := 25; -- 25%! c_pid_kkey NUMBER (10) := 1161; -- Ruimte waar personen in worden geplaatst (indien nog niet geplaatst in andere ruimte) c_ruimte_nr VARCHAR2 (10) := '_000'; v_errormsg VARCHAR2 (1000) := '-'; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_bedrijf_count NUMBER (10); v_bedrijf_key NUMBER (10); v_groep_key NUMBER (10); v_count_prs_import NUMBER (10); -- #actieve personen na import! v_count_prs_actual NUMBER (10); -- #actieve personen voor import! v_count_tot NUMBER (10); v_count_err NUMBER (10); v_count NUMBER (10); v_srtperslid_key NUMBER (10); v_afdeling_key NUMBER (10); v_perslid_key NUMBER (10); v_locatie_key NUMBER (10); v_gebouw_key NUMBER (10); v_verdieping_key NUMBER (10); v_ruimte_key NUMBER (10); -- Personen met ID onder Derden-bedrijf die nieuw of bestaand zijn! -- Dubbele dienstverbanden wordt achter elkaar ingelezen en overschrijven -- elkaar dus. -- Nieuwe én bestaande Derden worden/blijven geplaatst in 'Default'- -- groep en de '_Default'-groep wordt afgenomen! CURSOR c_prs_upd (p_bedrijf_key NUMBER) IS SELECT '[' || x.prs_kenmerk1 || '|' || x.prs_perslid_email || '] ' aanduiding, x.prs_srtperslid_omschrijving, x.prs_afdeling_naam, x.prs_perslid_naam, x.prs_perslid_tussenvoegsel, x.prs_perslid_voorletters, x.prs_perslid_voornaam, x.prs_perslid_telefoonnr, x.prs_perslid_mobiel, x.prs_perslid_email, x.prs_perslid_oslogin, x.alg_locatie_code, x.alg_gebouw_code, x.alg_verdieping_volgnr, x.alg_ruimte_nr, x.prs_kenmerk1, -- PID x.prs_kenmerk2, -- Gebouwcode kl.prs_link_key prs_perslid_key FROM (SELECT i.* FROM fac_imp_perslid i, prs_afdeling a, prs_v_afdeling_boom ab WHERE i.prs_kenmerk1 IS NOT NULL -- Personen met ID AND UPPER (i.prs_afdeling_naam) = a.prs_afdeling_upper AND a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = p_bedrijf_key) x LEFT JOIN prs_v_aanwezigkenmerklink kl ON UPPER (x.prs_kenmerk1) = UPPER (kl.prs_kenmerklink_waarde) AND kl.prs_kenmerk_key = c_pid_kkey ORDER BY x.prs_kenmerk1; -- Verwijderen personen met ID onder Derden-bedrijf niet in import! CURSOR c_prs_del (p_bedrijf_key NUMBER) IS SELECT '[' || kl.prs_kenmerklink_waarde || '|' || p.prs_perslid_email || '] ' aanduiding, p.prs_perslid_key FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl, prs_v_afdeling_boom ab WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_pid_kkey -- Personen met ID AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = p_bedrijf_key AND NOT EXISTS (SELECT 1 FROM fac_imp_perslid WHERE UPPER (prs_kenmerk1) = UPPER (kl.prs_kenmerklink_waarde)) ORDER BY p.prs_perslid_key; BEGIN -- Check configuratie tbv. Derden incl. beveiliging dat deze Derden géén -- RWS-ers of KNMI-ers zijn! SELECT COUNT (DISTINCT ab.prs_bedrijf_key), MIN (ab.prs_bedrijf_key), MIN (g.fac_groep_key) INTO v_bedrijf_count, v_bedrijf_key, v_groep_key FROM fac_imp_perslid i, prs_afdeling a, prs_v_afdeling_boom ab, prs_v_aanwezigbedrijf b, fac_v_aanwezigusrdata ud, fac_groep g WHERE i.prs_kenmerk1 IS NOT NULL AND i.prs_afdeling_naam = a.prs_afdeling_naam AND a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = b.prs_bedrijf_key AND b.prs_bedrijf_intern = 1 -- Intern bedrijf AND b.prs_bedrijf_key NOT IN (2, 3) -- Geen RWS/KNMI AND TO_CHAR (b.prs_bedrijf_key) = ud.fac_usrdata_code AND ud.fac_usrtab_key = 6 -- DerdenBedr2Rol AND ud.fac_usrdata_omschr = TO_CHAR (g.fac_groep_key) AND g.fac_groep_aanmaak > TO_DATE ('01102018', 'ddmmyyyy'); -- Bepaal aantal actieve personen in FACILITOR na import (onder Derden-bedrijf)! SELECT COUNT (DISTINCT i.prs_kenmerk1) INTO v_count_prs_import FROM fac_imp_perslid i WHERE i.prs_kenmerk1 IS NOT NULL; -- Bepaal aantal actieve personen in FACILITOR voor import (onder Derden-bedrijf)! SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * )) INTO v_count_prs_actual FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab WHERE p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = v_bedrijf_key AND EXISTS (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = c_pid_kkey AND prs_link_key = p.prs_perslid_key); IF (v_bedrijf_count = 0) THEN fac.imp_writelog ( p_import_key, 'E', 'Derden-bedrijf niet (correct) geconfigureerd (in Eigen tabel met key=6)!', 'Importproces personen afgebroken!'); ELSIF (v_bedrijf_count > 1) THEN fac.imp_writelog ( p_import_key, 'E', 'Afdelingen/personen vallen niet allemaal onder hetzelfde Derden-bedrijf!', 'Importproces personen afgebroken!'); ELSIF (TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage)) THEN fac.imp_writelog ( p_import_key, 'E', 'Verschil tussen huidig aantal en te importeren aantal personen te groot!', '- max. verschilpercentage = [' || TO_CHAR (c_max_delta_percentage) || '%]' || CHR (13) || CHR (10) || '- #personen/import = [' || TO_CHAR (v_count_prs_import) || ']' || CHR (13) || CHR (10) || '- #personen/huidig = [' || TO_CHAR (v_count_prs_actual) || ']'); ELSE v_count_tot := 0; v_count_err := 0; -- Personen met ID onder Derden-bedrijf die nieuw of bestaand zijn! FOR rec IN c_prs_upd (v_bedrijf_key) LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout bepalen functie'; SELECT COUNT ( * ) INTO v_count FROM prs_srtperslid WHERE prs_srtperslid_verwijder IS NULL AND UPPER (prs_srtperslid_omschrijving) = UPPER (rec.prs_srtperslid_omschrijving); IF (v_count = 0) THEN v_errormsg := 'Fout toevoegen functie'; INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving) VALUES (rec.prs_srtperslid_omschrijving) RETURNING prs_srtperslid_key INTO v_srtperslid_key; ELSE SELECT prs_srtperslid_key INTO v_srtperslid_key FROM prs_srtperslid WHERE prs_srtperslid_verwijder IS NULL AND UPPER (prs_srtperslid_omschrijving) = UPPER (rec.prs_srtperslid_omschrijving); END IF; v_errormsg := 'Fout bepalen afdeling'; SELECT a.prs_afdeling_key INTO v_afdeling_key FROM prs_afdeling a, prs_v_afdeling_boom ab WHERE a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = v_bedrijf_key AND UPPER (a.prs_afdeling_naam) = UPPER (rec.prs_afdeling_naam); v_perslid_key := rec.prs_perslid_key; IF (v_perslid_key IS NULL) THEN v_errormsg := 'Fout toevoegen persoon'; INSERT INTO prs_perslid (prs_perslid_module, prs_srtperslid_key, prs_afdeling_key, prs_perslid_naam, prs_perslid_tussenvoegsel, prs_perslid_voorletters, prs_perslid_voornaam, --prs_perslid_titel, prs_perslid_telefoonnr, prs_perslid_mobiel, prs_perslid_email, --prs_perslid_nr, prs_perslid_oslogin) VALUES ('PRS', v_srtperslid_key, v_afdeling_key, rec.prs_perslid_naam, rec.prs_perslid_tussenvoegsel, rec.prs_perslid_voorletters, rec.prs_perslid_voornaam, --rec.prs_perslid_titel, rec.prs_perslid_telefoonnr, rec.prs_perslid_mobiel, rec.prs_perslid_email, --rec.prs_perslid_nr, rec.prs_perslid_oslogin) RETURNING prs_perslid_key INTO v_perslid_key; v_errormsg := 'Fout toevoegen PID'; INSERT INTO prs_kenmerklink (prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde) VALUES (v_perslid_key, 'P', c_pid_kkey, rec.prs_kenmerk1); ELSE v_errormsg := 'Fout bijwerken persoon'; UPDATE prs_perslid SET prs_srtperslid_key = v_srtperslid_key, prs_afdeling_key = v_afdeling_key, prs_perslid_naam = rec.prs_perslid_naam, prs_perslid_tussenvoegsel = rec.prs_perslid_tussenvoegsel, prs_perslid_voorletters = rec.prs_perslid_voorletters, prs_perslid_voornaam = rec.prs_perslid_voornaam, --prs_perslid_titel = rec.prs_perslid_titel, prs_perslid_telefoonnr = rec.prs_perslid_telefoonnr, prs_perslid_mobiel = rec.prs_perslid_mobiel, prs_perslid_email = rec.prs_perslid_email, --prs_perslid_nr = rec.prs_perslid_nr, prs_perslid_oslogin = rec.prs_perslid_oslogin WHERE prs_perslid_key = v_perslid_key; END IF; COMMIT; -- Derden evt. de _Default-groep (weer) afnemen en behouden in de -- in de geconfigureerde Default-groep! v_errormsg := 'Fout afnemen _Default'; DELETE FROM fac_gebruikersgroep WHERE fac_groep_key = 1 AND prs_perslid_key = v_perslid_key; v_errormsg := 'Fout behouden Default'; INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT v_groep_key, v_perslid_key FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep WHERE fac_groep_key = v_groep_key AND prs_perslid_key = v_perslid_key); COMMIT; -- Als geen Gebouw aangeleverd, dan wordt onderstaande overgeslagen. IF (rec.prs_kenmerk2 IS NOT NULL) THEN v_locatie_key := NULL; v_gebouw_key := NULL; v_verdieping_key := NULL; v_ruimte_key := NULL; v_errormsg := 'Fout bepalen locatie'; SELECT alg_locatie_key INTO v_locatie_key FROM alg_v_aanweziglocatie WHERE UPPER (alg_locatie_code) = UPPER (rec.alg_locatie_code); v_errormsg := 'Fout bepalen gebouw'; SELECT alg_gebouw_key INTO v_gebouw_key FROM alg_v_aanweziggebouw WHERE UPPER (alg_gebouw_code) = UPPER (rec.alg_gebouw_code) AND alg_locatie_key = v_locatie_key; v_errormsg := 'Fout bepalen verdieping'; SELECT alg_verdieping_key INTO v_verdieping_key FROM alg_v_aanwezigverdieping WHERE UPPER (alg_verdieping_volgnr) = UPPER (rec.alg_verdieping_volgnr) AND alg_gebouw_key = v_gebouw_key; v_errormsg := 'Fout bepalen ruimte'; SELECT alg_ruimte_key INTO v_ruimte_key FROM alg_v_aanwezigruimte WHERE UPPER (alg_ruimte_nr) = UPPER (rec.alg_ruimte_nr) AND alg_verdieping_key = v_verdieping_key; v_errormsg := 'Fout bepalen of persoon in gebouw een werkplek heeft'; SELECT COUNT ( * ) INTO v_count FROM prs_perslidwerkplek pw, prs_werkplek w, alg_ruimte r, alg_verdieping v WHERE pw.prs_werkplek_key = w.prs_werkplek_key AND w.prs_alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = v_gebouw_key AND pw.prs_perslid_key = v_perslid_key; -- Als persoon in gebouw reeds een werkplek heeft, dan wordt -- onderstaande overgeslagen. IF (v_count = 0) THEN v_errormsg := 'Fout verhuizen naar nieuwe werkplek'; PRS.movetoruimte (v_perslid_key, v_ruimte_key, 'G'); END IF; END IF; EXCEPTION WHEN OTHERS THEN v_count_err := v_count_err + 1; 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 (p_import_key, 'E', rec.aanduiding || v_errormsg, 'Bijwerken personen'); END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'Derden/#verwerkte regels zonder foutmelding: ' || TO_CHAR (v_count_tot - v_count_err), ''); fac.imp_writelog (p_import_key, 'S', 'Derden/#verwerkte regels met foutmelding: ' || TO_CHAR (v_count_err), ''); COMMIT; /* v_errormsg := 'Fout verwijderen persoon'; -- Verwijderen personen met ID onder Derden-bedrijf niet in import! FOR rec IN c_prs_del (v_bedrijf_key) LOOP BEGIN prs.delete_perslid (p_import_key, rec.prs_perslid_key); 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 (p_import_key, 'E', rec.aanduiding || v_errormsg, 'Verwijderen personen'); END; END LOOP; */ END IF; END rwsn_update_derden; / -- RWSN#71458: IDM_BGH-import (tbv. ICT-bestelportaal)! CREATE OR REPLACE PROCEDURE rwsn_import_idm_bgh (p_import_key IN NUMBER) AS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (4000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_found BOOLEAN; endmrk_found BOOLEAN; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR2 (200); -- De importvelden: v_rin VARCHAR2 (255); -- C30 v_accountname VARCHAR2 (255); -- C30 v_emailaddress VARCHAR2 (255); -- C200 v_userdeffunction VARCHAR2 (255); -- C60 v_startdate VARCHAR2 (255); -- D v_startdate_d DATE; v_enddate VARCHAR2 (255); -- D v_enddate_d DATE; v_orgunitid VARCHAR2 (255); -- C10 v_orgunitname VARCHAR2 (255); -- C60 v_parentorgunitid VARCHAR2 (255); -- C10 CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM rwsn_imp_idm_bgh WHERE COALESCE (imp_log_run, -1) <> p_import_key; COMMIT; header_found := FALSE; endmrk_found := FALSE; v_count_tot := 0; v_count_import := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; IF SUBSTR (v_newline, 1, 3) = '' THEN -- EF BB BF aangetroffen fac.imp_writelog (p_import_key, 'W', 'Byte Order Mark aangetroffen', 'Bestand heeft onbehandeld UTF-8 formaat.'); v_newline := SUBSTR (v_newline, 4); END IF; v_errormsg := 'Fout opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_rin); fac.imp_getfield (v_newline, c_delim, v_accountname); fac.imp_getfield (v_newline, c_delim, v_emailaddress); fac.imp_getfield (v_newline, c_delim, v_userdeffunction); fac.imp_getfield (v_newline, c_delim, v_startdate); fac.imp_getfield (v_newline, c_delim, v_enddate); fac.imp_getfield (v_newline, c_delim, v_orgunitid); fac.imp_getfield (v_newline, c_delim, v_orgunitname); fac.imp_getfield (v_newline, c_delim, v_parentorgunitid); v_aanduiding := '[' || v_rin || '|' || v_emailaddress || '|' || v_orgunitid || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (NOT header_found) THEN IF UPPER (v_rin) = 'RIN' AND UPPER (v_accountname) = 'ACCOUNTNAME' AND UPPER (v_emailaddress) = 'EMAILADDRESS' AND UPPER (v_userdeffunction) = 'USERDEFFUNCTION' AND UPPER (v_startdate) = 'STARTDATE' AND UPPER (v_enddate) = 'ENDDATE' AND UPPER (v_orgunitid) = 'ORGUNITID' AND UPPER (v_orgunitname) = 'ORGUNITNAME' AND UPPER (v_parentorgunitid) = 'PARENTORGUNITID' THEN header_found := TRUE; END IF; ELSE IF UPPER (v_rin) = '==EINDE==' AND fac.safe_to_number (v_accountname) = v_count_tot THEN endmrk_found := TRUE; ELSIF (NOT endmrk_found) THEN v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'RIN ongeldig; ongedefinieerd of te lang'; v_rin := TRIM (v_rin); IF v_rin IS NULL OR LENGTH (v_rin) > 30 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel overgeslagen!'); END IF; -- v_errormsg := 'Accountname ongeldig; ongedefinieerd of te lang'; v_accountname := TRIM (v_accountname); IF v_accountname IS NULL OR LENGTH (v_accountname) > 30 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel overgeslagen!'); END IF; -- v_errormsg := 'Emailaddress ongeldig; ongedefinieerd of te lang'; v_emailaddress := TRIM (v_emailaddress); IF v_emailaddress IS NULL OR LENGTH (v_emailaddress) > 200 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel overgeslagen!'); END IF; -- v_errormsg := 'Userdeffunction te lang'; v_userdeffunction := TRIM (v_userdeffunction); IF LENGTH (v_userdeffunction) > 60 THEN v_userdeffunction := SUBSTR (v_userdeffunction, 1, 60); fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Userdeffunction afgekapt!'); END IF; -- v_errormsg := 'Startdate ongeldig'; v_startdate:= TRIM (v_startdate); v_startdate_d := fac.safe_to_date (SUBSTR (v_startdate, 1, 10), 'yyyy-mm-dd'); IF v_startdate IS NOT NULL AND v_startdate_d IS NULL THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Startdate genegeerd'); END IF; -- v_errormsg := 'Enddate ongeldig'; v_enddate:= TRIM (v_enddate); v_enddate_d := fac.safe_to_date (SUBSTR (v_enddate, 1, 10), 'yyyy-mm-dd'); IF v_enddate IS NOT NULL AND v_enddate_d IS NULL THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Enddate genegeerd'); END IF; -- v_errormsg := 'Orgunitid ongeldig; ongedefinieerd of te lang'; v_orgunitid := TRIM (v_orgunitid); IF v_orgunitid IS NULL OR LENGTH (v_orgunitid) > 10 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel overgeslagen!'); END IF; -- v_errormsg := 'Orgunitname te lang'; v_orgunitname := TRIM (v_orgunitname); IF v_orgunitname IS NULL OR LENGTH (v_orgunitname) > 60 THEN v_orgunitname := SUBSTR (v_orgunitname, 1, 60); fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Orgunitname afgekapt!'); END IF; -- v_errormsg := 'Parentorgunitid te lang'; v_parentorgunitid := TRIM (v_parentorgunitid); IF LENGTH (v_parentorgunitid) > 10 THEN v_parentorgunitid := SUBSTR (v_parentorgunitid, 1, 10); fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Parentorgunitid afgekapt!'); END IF; -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout wegschrijven importregel'; INSERT INTO rwsn_imp_idm_bgh (rin, accountname, emailaddress, userdeffunction, startdate, enddate, orgunitid, orgunitname, parentorgunitid, imp_log_run) VALUES (v_rin, v_accountname, v_emailaddress, v_userdeffunction, v_startdate_d, v_enddate_d, v_orgunitid, v_orgunitname, v_parentorgunitid, p_import_key); COMMIT; v_count_import := v_count_import + 1; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END IF; END IF; END IF; END; END LOOP; IF (NOT header_found) THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!'); ELSIF (NOT endmrk_found) THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen geldige eindmarkering aangetroffen!'); -- Maak importtabel leeg om te voorkomen dat foutieve bestanden worden ingelezen. DELETE FROM rwsn_imp_idm_bgh; ELSE fac.imp_writelog (p_import_key, 'S', 'IDM-budgethouders/#ingelezen importregels: ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog (p_import_key, 'S', 'IDM-budgethouders/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), ''); END IF; COMMIT; -- Clear my previous imported rows DELETE FROM fac_imp_file WHERE fac_import_key = p_import_key; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces IDM_BGH afgebroken!'); -- Maak importtabel leeg om te voorkomen dat foutieve bestanden worden ingelezen. DELETE FROM rwsn_imp_idm_bgh; END rwsn_import_idm_bgh; / /* SELECT ab.prs_bedrijf_key, kp.prs_kostenplaats_key, COUNT ( * ) FROM prs_v_aanwezigkostenplaats kp, prs_afdeling a, prs_v_afdeling_boom ab WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key AND a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_key = ab.prs_afdeling_key GROUP BY ab.prs_bedrijf_key, kp.prs_kostenplaats_key; */ CREATE OR REPLACE PROCEDURE rwsn_update_idm_bgh (p_import_key IN NUMBER) AS c_rin_kkey NUMBER (10) := 1160; v_errormsg VARCHAR2 (1000) := '-'; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_count NUMBER (10); v_count_upd NUMBER (10); v_count_del NUMBER (10); -- Toekennen budgethouder-autorisaties! CURSOR c_bgh_upd IS SELECT p.prs_perslid_key, p.prs_perslid_email, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr FROM rwsn_imp_idm_bgh x, (SELECT kl.prs_kenmerklink_waarde rin, p.prs_perslid_key, p.prs_perslid_email FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey) p, prs_afdeling a, prs_kostenplaats kp WHERE 1 = 1 --x.enddate > SYSDATE? AND x.rin = p.rin AND UPPER (x.orgunitid) = a.prs_afdeling_upper AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key ORDER BY 1; -- Afnemen budgethouder-autorisaties! CURSOR c_bgh_del IS -- SELECT kp.prs_perslid_key, p.prs_perslid_email, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr -- FROM prs_kostenplaats kp, -- prs_afdeling a, -- (SELECT kl.prs_kenmerklink_waarde rin, p.prs_perslid_key, p.prs_afdeling_key, p.prs_perslid_email -- FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl -- WHERE p.prs_perslid_key = kl.prs_link_key -- AND kl.prs_kenmerk_key = c_rin_kkey) p -- WHERE 1 = 1 --COALESCE (kp.prs_kostenplaats_eind, SYSDATE) > TRUNC (SYSDATE)? -- AND kp.prs_kostenplaats_key != 6081 -- Kostenplaats EXTERNE niet/nooit iemand afnemen! -- AND kp.prs_perslid_key = p.prs_perslid_key -- Budgethouder van kostenplaats heeft RIN! -- AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key -- Afdelingskostenplaats! -- AND NOT EXISTS -- RIN van bestaande budgethouder niet/nergens (meer) in importbestand! -- (SELECT 1 -- FROM rwsn_imp_idm_bgh -- WHERE rin = p.rin) -- AND EXISTS -- Afdeling(skostenplaats) in importbestand heeft een budgethouder met RIN! -- (SELECT 1 -- FROM rwsn_imp_idm_bgh -- WHERE rin IS NOT NULL -- AND UPPER (orgunitid) = a.prs_afdeling_upper) --ORDER BY 1; SELECT p.prs_perslid_key, p.prs_perslid_email FROM fac_gebruikersgroep gg, prs_v_aanwezigperslid p WHERE gg.fac_groep_key = 422 -- ICT Contactpersoon AND gg.prs_perslid_key = p.prs_perslid_key AND NOT EXISTS -- ICT Contactpersoon, maar geen budgethouder! (SELECT 1 FROM prs_v_aanwezigkostenplaats WHERE prs_perslid_key = p.prs_perslid_key) ORDER BY 1; BEGIN v_count_upd := 0; FOR rec IN c_bgh_upd LOOP BEGIN v_aanduiding := '[' || TO_CHAR (rec.prs_perslid_key) || '|' || rec.prs_perslid_email || '|' || rec.prs_kostenplaats_nr || '] '; -- Budgethouders toekennen groep 422=ICT Contactpersoon algemeen! INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT 422, p.prs_perslid_key -- ICT Contactpersoon FROM prs_v_aanwezigperslid p WHERE prs_perslid_key = rec.prs_perslid_key AND NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep WHERE fac_groep_key = 422 -- ICT Contactpersoon AND prs_perslid_key = p.prs_perslid_key); -- Toekennen Leidinggevende-profiel, tenzij DBV-profiel en DBV-er! UPDATE prs_perslid SET fac_profiel_key = 3 -- Leidinggevende WHERE prs_perslid_key = rec.prs_perslid_key AND (COALESCE (fac_profiel_key, 1) != 4 -- DBV OR NOT EXISTS (SELECT 1 FROM prs_kostenplaatsgrp WHERE prs_perslid_key = rec.prs_perslid_key)); -- Toekennen als budgethouder bij kostenplaats! UPDATE prs_kostenplaats SET prs_perslid_key = rec.prs_perslid_key WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key; v_count_upd := v_count_upd + 1; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'IDM-budgethouders/#bijgewerkt: ' || TO_CHAR (v_count_upd), ''); COMMIT; v_count_del := 0; FOR rec IN c_bgh_del LOOP BEGIN v_aanduiding := '[' || TO_CHAR (rec.prs_perslid_key) || '|' || rec.prs_perslid_email || '] '; -- Budgethouder niet wissen bij kostenplaats, dat zou moeten gebeuren -- via c_bgh_upd-cursor! -- Budgethouders afnemen groep 422=ICT Contactpersoon algemeen! DELETE FROM fac_gebruikersgroep gg WHERE gg.fac_groep_key = 422 -- ICT Contactpersoon AND gg.prs_perslid_key = rec.prs_perslid_key; -- Afnemen Leidinggevende-profiel, tenzij DBV-profiel en DBV-er! UPDATE prs_perslid SET fac_profiel_key = 1 -- Default WHERE prs_perslid_key = rec.prs_perslid_key AND (COALESCE (fac_profiel_key, 1) != 4 -- DBV OR NOT EXISTS (SELECT 1 FROM prs_kostenplaatsgrp WHERE prs_perslid_key = rec.prs_perslid_key)); v_count_del := v_count_del + 1; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'IDM-budgethouders/#verwijderd: ' || TO_CHAR (v_count_del), ''); COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces IDM_BGH afgebroken!'); END rwsn_update_idm_bgh; / --============================================================================= -- EXPORTFUNCTIES ------------------------------------------------------------------------------- /* Formatted on 23-7-2010 12:48:12 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_export_kto_kandidaten ( result, result_order ) AS SELECT 'Meldingnummer;Vakgroep;Melding', 0 FROM DUAL UNION ALL SELECT '"' || m.mld_melding_key || '";"' || d.ins_discipline_omschrijving || '";"' || s.mld_stdmelding_omschrijving || '"', m.mld_melding_key FROM mld_melding m, mld_kenmerk k, mld_kenmerkmelding km, ins_tab_discipline d, mld_stdmelding s WHERE s.mld_ins_discipline_key = d.ins_discipline_key AND m.mld_stdmelding_key = s.mld_stdmelding_key AND m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 121 AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > SYSDATE - 7 UNION ALL SELECT '"' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || '";"' || d.ins_discipline_omschrijving || '";"' || rr.res_ruimte_nr || '"', 1000000 + rrr.res_rsv_ruimte_key FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_kenmerk k, res_kenmerkwaarde kw, ins_tab_discipline d WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key AND kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 22 AND rrr.res_rsv_ruimte_tot > SYSDATE - 7; /* Formatted on 28-6-2011 16:04:02 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PROCEDURE rwsn_select_kto_kandidaten ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2 ) AS CURSOR c_cluster_r IS SELECT ks.prs_kostensoort_key cluster_key, --prs_kostensoort_oms cluster_oms, COALESCE (fac.safe_to_number (prs_kostensoort_opmerking), 0) perc, COALESCE (fac.safe_to_number (prs_kostensoort_refcode), 0) drempel, COUNT (res_rsv_ruimte_key) aantal FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, ins_tab_discipline d, prs_kostensoort ks WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key AND d.prs_kostensoort_key = ks.prs_kostensoort_key AND rrr.res_rsv_ruimte_tot > SYSDATE - 7 AND rrr.res_rsv_ruimte_tot < SYSDATE GROUP BY ks.prs_kostensoort_key, --prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode; CURSOR c_lijst_r ( p_cluster_key NUMBER ) IS SELECT rrr.res_rsv_ruimte_key, k2.res_kenmerk_key, TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi') ts FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_discipline d, res_kenmerk k2, prs_perslid p WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key AND rrr.res_activiteit_key = k2.res_activiteit_key AND p.prs_perslid_email IS NOT NULL AND rrr.res_rsv_ruimte_tot > SYSDATE - 7 AND rrr.res_rsv_ruimte_tot < SYSDATE AND k2.res_srtkenmerk_key = 22 AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key AND d.prs_kostensoort_key = p_cluster_key ORDER BY DBMS_RANDOM.VALUE; CURSOR c_cluster_m IS SELECT ks.prs_kostensoort_key cluster_key, --prs_kostensoort_oms cluster_oms, COALESCE (fac.safe_to_number (prs_kostensoort_opmerking), 0) perc, COALESCE (fac.safe_to_number (prs_kostensoort_refcode), 0) drempel, COUNT (mld_melding_key) aantal FROM mld_melding m, mld_stdmelding std, mld_discipline d, prs_kostensoort ks, fac_tracking t WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.prs_kostensoort_key = ks.prs_kostensoort_key --AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > SYSDATE - 7 AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 22 AND t.fac_tracking_datum > SYSDATE - 7 GROUP BY ks.prs_kostensoort_key, --prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode; CURSOR c_lijst_m ( p_cluster_key NUMBER ) IS SELECT m.mld_melding_key, k1.mld_kenmerk_key, TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi') ts FROM mld_melding m, mld_stdmelding std, mld_discipline d, mld_kenmerk k1, prs_perslid p, mld_kenmerkmelding km, mld_kenmerk k2, fac_tracking t WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_discipline_key = k1.mld_stdmelding_key AND k1.mld_srtkenmerk_key = 121 AND d.prs_kostensoort_key = p_cluster_key AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_email IS NOT NULL AND m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = k2.mld_kenmerk_key AND k2.mld_srtkenmerk_key = 1 AND km.mld_kenmerkmelding_waarde = '1' --AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > SYSDATE - 7 AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 22 AND t.fac_tracking_datum > SYSDATE - 7 ORDER BY DBMS_RANDOM.VALUE; CURSOR c_cursor IS SELECT mld_melding_key, TO_CHAR (SUBSTR (mld_melding_omschrijving, 1, 4000)) mld_melding_omschrijving FROM mld_melding WHERE TO_CHAR (SUBSTR (mld_melding_omschrijving, 1, 4000)) IN ( SELECT TO_CHAR (SUBSTR (mld_melding_omschrijving, 1, 4000)) FROM mld_melding m, mld_stdmelding std, mld_discipline d, ins_srtdiscipline sd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sd.ins_srtdiscipline_prefix = 'KKT' GROUP BY TO_CHAR (SUBSTR (mld_melding_omschrijving, 1, 4000)) HAVING COUNT (TO_CHAR (SUBSTR (mld_melding_omschrijving, 1, 4000))) > 1) ORDER BY mld_melding_omschrijving, mld_melding_key; v_aantal_kto NUMBER; v_count_upd NUMBER; v_count NUMBER; v_errorhint VARCHAR (200); v_omschrijving VARCHAR (4000); v_errormsg VARCHAR (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN -- KTO's op meldingen v_errorhint := 'Doorloop de clusters'; FOR rec1 IN c_cluster_m LOOP BEGIN --DBMS_OUTPUT.put_line('cluster:' || rec1.cluster_oms); -- minimaal percentage of drempelwaarde moet ingevuld zijn. IF (rec1.perc IS NOT NULL OR rec1.drempel IS NOT NULL) AND rec1.aantal > 0 THEN v_aantal_kto := TRUNC ( (rec1.perc * rec1.aantal) / 100); IF v_aantal_kto < rec1.drempel THEN v_aantal_kto := rec1.drempel; END IF; v_count_upd := 1; FOR rec2 IN c_lijst_m (rec1.cluster_key) LOOP BEGIN IF v_count_upd <= v_aantal_kto THEN -- RWSN#18632: Uitsluiten dat dezelfde melding - rond 18:00? - -- 2x tbv. KTO wordt geselecteerd! -- Of na een extra run of na wijzigen schedule...! v_errorhint := 'Bepalen voorkomen kto timestamp'; SELECT COUNT ( * ) INTO v_count FROM mld_v_aanwezigkenmerkmelding WHERE mld_melding_key = rec2.mld_melding_key AND mld_kenmerk_key = rec2.mld_kenmerk_key; IF v_count = 0 THEN --DBMS_OUTPUT.put_line('melding:' || rec2.mld_melding_key); v_errorhint := 'Toevoegen kto timestamp kenmerk'; INSERT INTO mld_kenmerkmelding ( mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde ) VALUES ( rec2.mld_melding_key, rec2.mld_kenmerk_key, rec2.ts ); END IF; END IF; v_count_upd := v_count_upd + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Exception ' || oracle_err_mes; fac.writelog ( p_applname, 'E', v_errormsg, 'Aanmaken KTO: ' || rec2.mld_melding_key ); COMMIT; END; END LOOP; END IF; END; END LOOP; -- KTO's op reserveringen FOR rec1 IN c_cluster_r LOOP BEGIN --DBMS_OUTPUT.put_line('cluster:' || rec1.cluster_oms); -- minimaal percentage of drempelwaarde moet ingevuld zijn. IF (rec1.perc IS NOT NULL OR rec1.drempel IS NOT NULL) AND rec1.aantal > 0 THEN v_aantal_kto := TRUNC ( (rec1.perc * rec1.aantal) / 100); IF v_aantal_kto < rec1.drempel THEN v_aantal_kto := rec1.drempel; END IF; v_count_upd := 1; FOR rec2 IN c_lijst_r (rec1.cluster_key) LOOP BEGIN IF v_count_upd <= v_aantal_kto THEN -- RWSN#18632: Uitsluiten dat dezelfde reservering 2x tbv. KTO -- wordt geselecteerd! -- Of na een extra run of na wijzigen schedule...! v_errorhint := 'Bepalen voorkomen kto timestamp'; SELECT COUNT ( * ) INTO v_count FROM res_v_aanwezigkenmerkwaarde WHERE res_rsv_ruimte_key = rec2.res_rsv_ruimte_key AND res_kenmerk_key = rec2.res_kenmerk_key; IF v_count = 0 THEN --DBMS_OUTPUT.put_line('melding:' || rec2.mld_melding_key); v_errorhint := 'Toevoegen kto timestamp kenmerk'; INSERT INTO res_kenmerkwaarde ( res_rsv_ruimte_key, res_kenmerk_key, res_kenmerkreservering_waarde ) VALUES ( rec2.res_rsv_ruimte_key, rec2.res_kenmerk_key, rec2.ts ); END IF; END IF; v_count_upd := v_count_upd + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Exception ' || oracle_err_mes; fac.writelog ( p_applname, 'E', v_errormsg, 'Aanmaken KTO: ' || rec2.res_rsv_ruimte_key ); COMMIT; END; END LOOP; END IF; END; END LOOP; -- verwijder dubbel ontvangen kto's v_omschrijving := 'Quekeleque'; FOR rec1 IN c_cursor LOOP BEGIN -- DBMS_OUTPUT.put_line('melding key:' || rec1.mld_melding_key); IF v_omschrijving = rec1.mld_melding_omschrijving THEN -- DBMS_OUTPUT.put_line('verwijder melding key:' || rec1.mld_melding_key); DELETE mld_kenmerkmelding WHERE mld_melding_key = rec1.mld_melding_key; DELETE mld_melding WHERE mld_melding_key = rec1.mld_melding_key; ELSE -- DBMS_OUTPUT.put_line('niet gelijk melding key:' || rec1.mld_melding_key); v_omschrijving := rec1.mld_melding_omschrijving; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Exception ' || oracle_err_mes; fac.writelog ( p_applname, 'E', v_errormsg, 'Verwijderen dubbele KTO: ' || rec1.mld_melding_key ); COMMIT; END; END LOOP; END; / -- Procedure om aan te geven voor welke meldingen een kto verzonden moet worden. CREATE OR REPLACE PROCEDURE rwsn_export_kto_kandidaten ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2 ) AS v_errormsg VARCHAR (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN v_errormsg := 'Geen akties'; END; / CREATE OR REPLACE VIEW rwsn_v_export_idm_pers (result, result_order) AS SELECT 'AanmeldNaam;E-mailAdres;RoepNaam;VoorNamen;Voorletters;Geslacht;GeslachtsNaam;GeslachtsNaamVoorvoegsel;PartnerGeslachtsNaam;PartnerGeslachtsNaamVoorvoegsel;NaamGegevens;AanduidingNaamGebruik;TelefoonNummer;TelefoonNummerBgg;MobielNummer;AcademischeTitelsVoor;AcademischeTitelsNa;BurgerServiceNummer;RijksIdentificatieNummer;FunctieOmschrijving;FormatieplaatsOmschrijving;DatumIngangGeldigheid;DatumEindeGeldigheid;OrganisatieEenheidCode;DienstverbandGUID;DienstverbandID;BezoekAdresNaam;BezoekAdresNummer;BezoekAdresPostcode;BezoekAdresPlaats',0 from dual UNION ALL SELECT '"' || LOWER (p.prs_perslid_oslogin) || '";"' || p.prs_perslid_email || '";"' || p.prs_perslid_voornaam || '";"' || '?' || '";"' || p.prs_perslid_voorletters || '";"' || '?' || '";"' || p.prs_perslid_naam || '";"' || p.prs_perslid_tussenvoegsel || '";"' || '?' || '";"' || '?' || '";"' || pf.prs_perslid_naam_full || '";"' || '?' || '";"' || p.prs_perslid_telefoonnr || '";"' || '?' || '";"' || p.prs_perslid_mobiel || '";"' || p.prs_perslid_titel || '";"' || '?' || '";"' || '' || '";"' || '?' || '";"' || sp.prs_srtperslid_omschrijving || '";"' || TO_CHAR (p.prs_perslid_ingangsdatum, 'YYYYMMDD') || '";"' || TO_CHAR (p.prs_perslid_einddatum, 'YYYYMMDD') || '";"' || d.prs_afdeling_naam || '";"' || (SELECT kl.prs_kenmerklink_waarde FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1000 -- 'DienstverbandGUID' AND kl.prs_link_key = p.prs_perslid_key) || '";"' || (SELECT kl.prs_kenmerklink_waarde FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1160 -- 'RijksIdentificatieNummer' AND kl.prs_link_key = p.prs_perslid_key) || '";"' || prs_perslid_nr || '";"' || a.mld_adres_naam || '";"' || a.mld_adres_bezoek_adres || '";"' || a.mld_adres_bezoek_postcode || '";"' || a.mld_adres_bezoek_plaats || '"', p.prs_perslid_key FROM prs_perslid p, prs_v_perslid_fullnames pf, prs_srtperslid sp, prs_afdeling d, prs_perslidwerkplek pw, prs_werkplek w, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, mld_adres a WHERE p.prs_perslid_verwijder IS NULL AND p.prs_perslid_key = pf.prs_perslid_key AND p.prs_srtperslid_key = sp.prs_srtperslid_key(+) AND p.prs_afdeling_key = d.prs_afdeling_key(+) AND p.prs_perslid_key = pw.prs_perslid_key(+) AND pw.prs_werkplek_key = w.prs_werkplek_key(+) AND w.prs_alg_ruimte_key = r.alg_ruimte_key(+) AND r.alg_verdieping_key = v.alg_verdieping_key(+) AND v.alg_gebouw_key = g.alg_gebouw_key(+) AND g.alg_locatie_key = l.alg_locatie_key(+) AND l.alg_locatie_key = a.alg_locatie_key(+) AND substr(p.prs_perslid_oslogin,1,1) <> '_'; / CREATE OR REPLACE PROCEDURE rwsn_select_idm_pers ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2 ) AS v_errormsg VARCHAR (200); BEGIN v_errormsg := 'Lekker niets doen. View rwsn_v_export_idm_pers doet het werk'; END; / -- Procedure voor de exporteren gegevens personenimport naar IDM CREATE OR REPLACE PROCEDURE rwsn_export_idm_pers ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2 ) AS v_errormsg VARCHAR (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN v_errormsg := 'Geen akties'; END; / -- RWSN#14925: Per 5.2.2 notificatie naar externen via notificatiejob mogelijk -- (ipv. via dummy-export). -- Notificatiecode=MLDINF (speciale bon), maar 'Onderwerp' komt uit MLDNEW- of -- MLDAFM-code! -- RWSN#60670: Per RWSN67 uurlijks (ipv. alleen om 8, 12 en 16 uur)! CREATE OR REPLACE VIEW rwsn_v_noti_extern ( sender, receiver, text, code, key, xkey, xsender, xemail, xmobile, attachments ) AS SELECT NULL, NULL, REPLACE ( REPLACE ( REPLACE ( lcl.x ('fac_srtnotificatie_oms', sn.fac_srtnotificatie_key, sn.fac_srtnotificatie_oms), '##KEY##', TO_CHAR (x.mld_melding_key)), '##STDMLD##', TO_CHAR (x.mld_stdmelding_omschrijving)), '##DISC##', TO_CHAR (x.ins_discipline_omschrijving)), 'MLDINF', x.mld_melding_key, NULL, x.sender, x.receiver, NULL, DECODE ( x.fac_srtnotificatie_key, 22, 'MLD/M' || SUBSTR (LPAD (TO_CHAR (x.mld_melding_key), 7, '0'), 1, 4) || '___/M' || TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (y.mld_kenmerk_key) || '/*', NULL) FROM ( SELECT md.ins_srtdiscipline_key, md.ins_discipline_key, md.ins_discipline_omschrijving, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, m.mld_melding_key, md.ins_discipline_email sender, km.mld_kenmerkmelding_waarde receiver, MIN (t.fac_srtnotificatie_key) fac_srtnotificatie_key -- 22=MLDAFM wint! FROM mld_melding m, mld_stdmelding sm, mld_discipline md, mld_kenmerkmelding km, mld_kenmerk k, fac_tracking t, fac_notificatie_job nj WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerkmelding_verwijder IS NULL AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_verwijder IS NULL AND k.mld_srtkenmerk_key = 20 -- E-mail AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key IN (26, 22) -- MLDNEW/MLDAFM --AND t.fac_tracking_datum > -- DECODE ( -- TO_CHAR (SYSDATE + 5 / 1440, 'HH24'), -- '08', TO_DATE (TO_CHAR (SYSDATE - 1, 'dd-mm-yyyy') || ' 16:00', 'dd-mm-yyyy hh24:mi'), -- '12', TO_DATE (TO_CHAR (SYSDATE, 'dd-mm-yyyy') || ' 08:00', 'dd-mm-yyyy hh24:mi'), -- '16', TO_DATE (TO_CHAR (SYSDATE, 'dd-mm-yyyy') || ' 12:00', 'dd-mm-yyyy hh24:mi'), -- SYSDATE + 5 / 1440) AND nj.fac_notificatie_job_view = 'RWSN_V_NOTI_EXTERN' AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun GROUP BY md.ins_srtdiscipline_key, md.ins_discipline_key, md.ins_discipline_omschrijving, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, m.mld_melding_key, md.ins_discipline_email, km.mld_kenmerkmelding_waarde) x LEFT JOIN (SELECT mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_key FROM mld_kenmerk WHERE mld_kenmerk_verwijder IS NULL AND mld_srtkenmerk_key = 5100) y -- Bij afmelden mee te sturen bijlagen ON ((x.mld_stdmelding_key = y.mld_stdmelding_key AND y.mld_kenmerk_niveau = 'S') OR (x.ins_discipline_key = y.mld_stdmelding_key AND y.mld_kenmerk_niveau = 'D') OR (x.ins_srtdiscipline_key = y.mld_stdmelding_key AND y.mld_kenmerk_niveau = 'T')) LEFT JOIN fac_srtnotificatie sn ON x.fac_srtnotificatie_key = sn.fac_srtnotificatie_key; -- RWSN#31363: CUST10-noti naar externe bezoeker nav. registratie afspraak. /* Formatted on 14-2-2017 9:45:15 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_noti_ext_bezoeker ( code, sender, receiver, text, key, xkey, xsender, xemail, xmobile, attachments ) AS SELECT sn.fac_srtnotificatie_code, NULL, NULL, REPLACE ( REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (a.bez_afspraak_key)), '##DATIJD##', TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy hh24:mi')), a.bez_afspraak_key, NULL, NULL, kb.bez_kenmerkwaarde_waarde, NULL, NULL FROM fac_tracking t, bez_afspraak a, bez_bezoekers b, bez_kenmerkwaarde kb, fac_srtnotificatie sn, fac_notificatie_job nj WHERE t.fac_srtnotificatie_key = 14 -- BEZMUT AND t.fac_tracking_refkey = a.bez_afspraak_key AND a.bez_afspraak_key = b.bez_afspraak_key AND b.bez_bezoekers_key = kb.bez_bezoekers_key AND kb.bez_kenmerk_key = 1001 -- E-mail adres AND EXISTS -- Als waarde voor Notificeren-vinkje bestaat, dan gezet! (SELECT 1 FROM bez_kenmerkwaarde WHERE bez_kenmerkwaarde_verwijder IS NULL AND bez_kenmerk_key = 1002 -- Notificeren-vinkje AND bez_bezoekers_key = b.bez_bezoekers_key) AND sn.fac_srtnotificatie_code = 'CUST10' AND nj.fac_notificatie_job_view = 'RWSN_V_NOTI_EXT_BEZOEKER' AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun; --===================================================================================== -- export catering gegevens naar AAFM --------------------------------------------------------------------------------------- CREATE OR REPLACE VIEW rwsn_v_export_catering (result, result_order) AS SELECT '"prs_perslid_naam_full";' || '"prs_afdeling_naam";' || '"prs_afdeling_omschrijving";' || '"prs_kostenplaats_nr";' || '"prs_kostenplaats_omschrijving";' || '"res_reservering_key";' || '"res_rsv_ruimte_volgnr";' || '"res_rsv_artikel_key";' || '"res_artikel_nr";' || '"res_artikel_omschrijving";' || '"ins_discipline_omschrijving";' || '"res_rsv_artikel_aantal";' || '"res_rsv_artikel_prijs";' || '"res_rsv_artikel_inkoopprijs";' || '"res_rsv_artikel_levering";' || '"res_artikel_prijs";' || '"res_artikel_inkoopprijs";' || '"alg_locatie_code";' || '"alg_locatie_omschrijving";' || '"alg_gebouw_code";' || '"alg_gebouw_omschrijving";' || '"alg_verdieping_code";' || '"alg_verdieping_omschrijving";' || '"alg_ruimte_nr";' || '"alg_ruimte_omschrijving";' || '"res_rsv_artikel_verwijder";' || '"res_status_bo_key";', 0 FROM DUAL UNION ALL SELECT '"' ||pf.prs_perslid_naam_full || '";"' ||a.prs_afdeling_naam || '";"' ||a.prs_afdeling_omschrijving || '";"' ||k.prs_kostenplaats_nr || '";"' ||k.prs_kostenplaats_omschrijving || '";"' ||to_char(rrr.res_reservering_key) || '";"' ||to_char(rrr.res_rsv_ruimte_volgnr) || '";"' ||to_char(rra.res_rsv_artikel_key) || '";"' ||ra.res_artikel_nr || '";"' ||ra.res_artikel_omschrijving || '";"' ||d.ins_discipline_omschrijving || '";"' ||to_char(rra.res_rsv_artikel_aantal) || '";"' ||replace(to_char(rra.res_rsv_artikel_prijs), '.', ',') || '";"' ||replace(to_char(rra.res_rsv_artikel_inkoopprijs), '.', ',') || '";"' ||to_char(rra.res_rsv_artikel_levering, 'yyyymmdd hh24miss') || '";"' ||replace(to_char(ra.res_artikel_prijs), '.', ',') || '";"' ||replace(to_char(ra.res_artikel_inkoopprijs ), '.', ',') || '";"' ||alg_locatie_code || '";"' ||alg_locatie_omschrijving || '";"' ||alg_gebouw_code || '";"' ||alg_gebouw_omschrijving || '";"' ||alg_verdieping_code || '";"' ||alg_verdieping_omschrijving || '";"' ||alg_ruimte_nr || '";"' ||alg_ruimte_omschrijving || '";"' ||to_char(res_rsv_artikel_verwijder, 'yyyymmdd hh24miss') || '";"' ||to_char(rra.res_status_bo_key) || '"', res_rsv_artikel_key FROM res_rsv_ruimte rrr, res_rsv_artikel rra, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, res_artikel ra, ins_tab_discipline d, prs_perslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a, prs_kostenplaats k, ( SELECT MAX (ira.alg_ruimte_key) alg_ruimte_key, irrr.res_rsv_ruimte_key FROM res_rsv_ruimte irrr, res_ruimte_opstelling iro, res_ruimte irr, res_alg_ruimte ira WHERE irrr.res_ruimte_opstel_key = iro.res_ruimte_opstel_key AND iro.res_ruimte_key = irr.res_ruimte_key AND irr.res_ruimte_key = ira.res_ruimte_key GROUP BY irrr.res_rsv_ruimte_key) r2a WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+) AND r.alg_ruimte_key = COALESCE(r2a.alg_ruimte_key, rrr.alg_ruimte_key) AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND (rra.res_status_bo_key = 5 OR (rra.res_status_bo_key <> 6 AND rra.res_rsv_artikel_verwijder IS NOT NULL)) AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = d.ins_discipline_key AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_perslid_key = pf.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND rra.res_rsv_artikel_levering > to_date('20130115', 'yyyymmdd') AND rra.res_rsv_artikel_levering < to_date(to_char(sysdate, 'yyyymm') || '01', 'yyyymmdd') AND to_char(SYSDATE, 'dd') = '01'; CREATE OR REPLACE PROCEDURE rwsn_export_catering (p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2) AS v_errormsg VARCHAR (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN UPDATE res_rsv_artikel rra SET res_status_bo_key = 6 WHERE rra.res_rsv_artikel_key IN (SELECT result_order FROM rwsn_v_export_catering); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Exception ' || oracle_err_mes; fac.writelog (p_applname, 'E', v_errormsg, 'Catering op verwerkt(6) zetten'); COMMIT; END; / --============================================================================= -- VASTE RAPPORTAGES ------------------------------------------------------------------------------- CREATE OR REPLACE PACKAGE RWSN AS -- PACKAGES voor de RWSN specifieke rapportages TYPE t_cursor IS REF CURSOR; FUNCTION bepaal_dienst (p_prs_perslid_key IN number) RETURN VARCHAR2; FUNCTION bepaal_dienst2 (p_prs_perslid_key IN number) RETURN VARCHAR2; FUNCTION afgehandelddoor (p_mld_melding_key IN number) RETURN VARCHAR2; FUNCTION format_string_voor_rap (p_string IN VARCHAR2, p_lengte IN NUMBER) RETURN VARCHAR2; FUNCTION bepaal_doorlooptijd (p_sla number, p_ingevoerd date, p_uitgevoerd date) RETURN NUMBER; FUNCTION bepaal_rws_kantooruren (van_date IN DATE, tot_date IN DATE) RETURN NUMBER; PROCEDURE rap_maand_cdbreed (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_cdbreed_gereed (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_cdbreed_klachten (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_cdbreed_int (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_kwisg IN VARCHAR2); PROCEDURE rap_maand_cdbreed_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_fcc_lsu_int (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_kwisg IN VARCHAR2); PROCEDURE rap_maand_fcc_lsu (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_fcc_lsu_klachten (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_fcc_locatie (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_oper_cdbreed (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_mld_op_tijd (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_cdbreed_kwisg (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_maand_fcc_kwisg (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_meldbron_fcc_maand (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_meldbron_fcc_week (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_meldbron_kcc_maand (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_meldbron_kcc_week (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_omzet (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_omzetplus (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_omzetaccept (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_kto_resultaat (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_kto_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_kruis_cat_count (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_kruis_cat_price (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_cat_per_afd (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_cat_noshow_per_afd (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_cat_noshow_per_loc (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_bezreg_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_mldreg_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_mldreg_per_vakgrp (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_resreg_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_resreg_op_aanmaak (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE rap_noshow_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor); PROCEDURE cnd_accept_melding; END; / /* Formatted on 23-7-2010 15:06:16 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PACKAGE BODY rwsn AS -- -- Algemene procedures en functies. -- -- Bepaal de dienst van een persoon. De dienst is het hoogste afdelingsniveau. FUNCTION bepaal_dienst (p_prs_perslid_key IN NUMBER) RETURN VARCHAR2 IS v_prs_afdeling_key NUMBER; v_prs_afdeling_parentkey NUMBER; v_prs_afdeling_omschrijving VARCHAR2 (100); v_prs_perslid_upper VARCHAR2 (100); BEGIN SELECT prs_perslid_upper, prs_afdeling_key INTO v_prs_perslid_upper, v_prs_afdeling_key FROM prs_perslid p WHERE prs_perslid_key = p_prs_perslid_key; IF INSTR (v_prs_perslid_upper, 'EXTERN') > 0 THEN RETURN ('EXTERN'); END IF; v_prs_afdeling_parentkey := v_prs_afdeling_key; WHILE v_prs_afdeling_parentkey IS NOT NULL LOOP SELECT prs_afdeling_parentkey, prs_afdeling_omschrijving INTO v_prs_afdeling_parentkey, v_prs_afdeling_omschrijving FROM prs_afdeling WHERE prs_afdeling_key = v_prs_afdeling_parentkey; END LOOP; RETURN v_prs_afdeling_omschrijving; END bepaal_dienst; -- Bepaal de dienst van een persoon. De dienst is het hoogste afdelingsniveau. -- Echter, er zijn uitzonderingen en die zijn in tabel met key 341 vastgelegd. -- Indien ik dus in deze eigen tabel een afdeling vind, dan gebruik ik deze. FUNCTION bepaal_dienst2 (p_prs_perslid_key IN NUMBER) RETURN VARCHAR2 IS v_prs_afdeling_key NUMBER; v_prs_afdeling_parentkey NUMBER; v_prs_afdeling_omschrijving VARCHAR2 (100); v_prs_afdeling_naam VARCHAR2 (100); v_prs_perslid_upper VARCHAR2 (100); v_fac_usrdata_omschr VARCHAR2 (100); BEGIN SELECT prs_perslid_upper, prs_afdeling_key INTO v_prs_perslid_upper, v_prs_afdeling_key FROM prs_perslid p WHERE prs_perslid_key = p_prs_perslid_key; IF INSTR (v_prs_perslid_upper, 'EXTERN') > 0 THEN RETURN ('EXTERN'); END IF; v_prs_afdeling_parentkey := v_prs_afdeling_key; WHILE v_prs_afdeling_parentkey IS NOT NULL LOOP SELECT prs_afdeling_parentkey, prs_afdeling_omschrijving, prs_afdeling_naam, fac_usrdata_omschr INTO v_prs_afdeling_parentkey, v_prs_afdeling_omschrijving, v_prs_afdeling_naam, v_fac_usrdata_omschr FROM prs_afdeling a, (SELECT fac_usrdata_omschr, fac_usrdata_code FROM fac_usrdata WHERE fac_usrtab_key = 341) u WHERE prs_afdeling_key = v_prs_afdeling_parentkey AND a.prs_afdeling_naam = u.fac_usrdata_code(+); IF v_fac_usrdata_omschr IS NOT NULL THEN RETURN v_fac_usrdata_omschr; END IF; END LOOP; RETURN v_prs_afdeling_omschrijving; END bepaal_dienst2; FUNCTION afgehandelddoor (p_mld_melding_key NUMBER) RETURN VARCHAR2 AS v_srtdiscipline_prefix VARCHAR2 (30); v_result VARCHAR2 (30); v_count NUMBER; v_afmelder NUMBER; v_discipline NUMBER; BEGIN v_afmelder := fac.gettrackinguserkey ('MLDAFM', p_mld_melding_key); SELECT MAX (kl.prs_kenmerklink_waarde) INTO v_result FROM prs_kenmerklink kl WHERE kl.prs_link_key = v_afmelder AND kl.prs_kenmerk_key = 1060; IF v_result = '601' THEN RETURN 'FCC'; END IF; IF v_result = '602' THEN RETURN 'KCC'; END IF; BEGIN SELECT ins_srtdiscipline_prefix, d.ins_discipline_key INTO v_srtdiscipline_prefix, v_discipline FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND m.mld_melding_key = p_mld_melding_key; CASE v_srtdiscipline_prefix WHEN 'F' THEN RETURN 'FACILITAIR'; WHEN 'K' THEN SELECT MAX (UPPER (SUBSTR (fac_groep_omschrijving, 4, INSTR (fac_groep_omschrijving, '-') - 4))) INTO v_result FROM fac_groep g, fac_gebruikersgroep gg WHERE SUBSTR (fac_groep_omschrijving, 1, 3) = 'GM_' AND g.fac_groep_key = gg.fac_groep_key AND gg.prs_perslid_key = v_afmelder; RETURN v_result; END CASE; EXCEPTION WHEN OTHERS THEN RETURN 'ONBEKEND'; END; END afgehandelddoor; FUNCTION format_string_voor_rap (p_string IN VARCHAR2, p_lengte IN NUMBER) RETURN VARCHAR2 AS v_result VARCHAR2(4000); BEGIN v_result := REPLACE(p_string, CHR(13)); v_result := REPLACE(v_result, CHR(10)); v_result := REPLACE(v_result, CHR(34), '*'); v_result := REPLACE(v_result, CHR(39), '*'); v_result := REPLACE(v_result, ' ', ' '); v_result := REPLACE(v_result, ' ', ' '); v_result := REPLACE(v_result, ' ', ' '); v_result := TRIM(REPLACE(v_result, ' ', ' ')); IF LENGTH(v_result) > p_lengte THEN v_result := SUBSTR(v_result, 1, p_lengte) || '...'; END IF; RETURN v_result; END format_string_voor_rap; FUNCTION bepaal_doorlooptijd (p_sla NUMBER, p_ingevoerd DATE, p_uitgevoerd DATE) RETURN NUMBER IS v_doorlooptijd NUMBER; BEGIN v_doorlooptijd := fac.count_work_days_incltime (p_ingevoerd, p_uitgevoerd); IF (v_doorlooptijd - p_sla) <= 0 THEN RETURN 0; END IF; IF (v_doorlooptijd - p_sla) <= 5 THEN RETURN 1; END IF; IF (v_doorlooptijd - p_sla) <= 10 THEN RETURN 2; END IF; RETURN 3; END bepaal_doorlooptijd; FUNCTION bepaal_rws_kantooruren (van_date IN DATE, tot_date IN DATE) RETURN NUMBER IS c_kt_van NUMBER := 8; c_kt_tot NUMBER := 17.5; v_dl NUMBER; lbackwards BOOLEAN; v_van_date DATE; v_van_uur NUMBER; v_tot_date DATE; v_tot_uur NUMBER; v_loop_date DATE; v_count NUMBER; BEGIN v_dl := 0; IF (van_date > tot_date) THEN v_van_date := TO_DATE (TO_CHAR (tot_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi'); v_tot_date := TO_DATE (TO_CHAR (van_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi'); lbackwards := TRUE; ELSE v_van_date := TO_DATE (TO_CHAR (van_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi'); v_tot_date := TO_DATE (TO_CHAR (tot_date, 'yyyymmddhh24mi'), 'yyyymmddhh24mi'); lbackwards := FALSE; END IF; v_loop_date := TRUNC (van_date); IF ( ( ( (v_van_date - TRUNC (v_van_date)) * 24) - c_kt_van) < 0) THEN v_van_uur := c_kt_van; ELSE IF ( ( ( (v_van_date - TRUNC (v_van_date)) * 24) - c_kt_tot) < 0) THEN v_van_uur := (v_van_date - TRUNC (v_van_date)) * 24; ELSE v_van_uur := c_kt_tot; END IF; END IF; IF ( ( ( (v_tot_date - TRUNC (v_tot_date)) * 24) - c_kt_van) < 0) THEN v_tot_uur := c_kt_van; ELSE IF ( ( ( (v_tot_date - TRUNC (v_tot_date)) * 24) - c_kt_tot) < 0) THEN v_tot_uur := (v_tot_date - TRUNC (v_tot_date)) * 24; ELSE v_tot_uur := c_kt_tot; END IF; END IF; WHILE (v_loop_date <= v_tot_date) LOOP SELECT COUNT ( * ) INTO v_count FROM mld_vrije_dagen WHERE mld_vrije_dagen_datum = v_loop_date; IF (v_count = 0 AND TO_CHAR (v_loop_date, 'd') NOT IN ('1', '7')) THEN CASE WHEN TRUNC (v_van_date) = TRUNC (v_tot_date) THEN v_dl := v_dl + (v_tot_uur - v_van_uur); WHEN v_loop_date = TRUNC (v_van_date) THEN v_dl := v_dl + (c_kt_tot - v_van_uur); WHEN v_loop_date = TRUNC (v_tot_date) THEN v_dl := v_dl + (v_tot_uur - c_kt_van); ELSE v_dl := v_dl + (c_kt_tot - c_kt_van); END CASE; END IF; v_loop_date := v_loop_date + 1; END LOOP; IF lbackwards THEN RETURN 0 - v_dl; ELSE RETURN v_dl; END IF; END bepaal_rws_kantooruren; PROCEDURE rap_maand_cdbreed_int (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_kwisg IN VARCHAR2 ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; v_year_van := fac.safe_to_date ('01-01-' || TO_CHAR (v_datum_van, 'yyyy'), 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT 1 volgorde, onderdeel, vakgroep, SUM (n) n, SUM (bulki) bulki, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (abulki) abulki, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) open_buiten FROM (SELECT vakgroep, n, bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > v_datum_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, a, bulki abulki, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > v_datum_van AND mld_melding_afgemeld < v_datum_tot AND status = 'a' AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, n ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > v_year_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > v_year_van AND mld_melding_afgemeld < v_datum_tot AND kwisg LIKE p_kwisg AND status = 'a') GROUP BY vakgroep, onderdeel UNION ALL SELECT 2 volgorde, onderdeel, 'Totaal', SUM (n) n, SUM (bulki) bulki, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (abulki) abulki, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT vakgroep, n, bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > v_datum_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, a, bulki abulki, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > v_datum_van AND mld_melding_afgemeld < v_datum_tot AND status = 'a' AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, n ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > v_year_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE p_kwisg UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > v_year_van AND mld_melding_afgemeld < v_datum_tot AND kwisg LIKE p_kwisg AND status = 'a') GROUP BY onderdeel; END rap_maand_cdbreed_int; PROCEDURE rap_maand_cdbreed (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN rap_maand_cdbreed_int (user_key, p_datum_van, p_datum_tot, p_cursor, '%'); END rap_maand_cdbreed; PROCEDURE rap_maand_cdbreed_gereed (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; v_year_van := fac.safe_to_date ('01-01-' || TO_CHAR (v_datum_van, 'yyyy'), 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT 1 volgorde, onderdeel, vakgroep, SUM (n) n, SUM (bulki) bulki, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (abulki) abulki, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) open_buiten FROM (SELECT vakgroep, n, bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_datum > v_datum_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, a, bulki abulki, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_afgemeld > v_datum_van AND mld_melding_afgemeld < v_datum_tot AND status = 'a' AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, n ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_datum > v_year_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_afgemeld > v_year_van AND mld_melding_afgemeld < v_datum_tot AND kwisg LIKE '%' AND status = 'a') GROUP BY vakgroep, onderdeel UNION ALL SELECT 2 volgorde, onderdeel, 'Totaal', SUM (n) n, SUM (bulki) bulki, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (abulki) abulki, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT vakgroep, n, bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_datum > v_datum_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, a, bulki abulki, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_afgemeld > v_datum_van AND mld_melding_afgemeld < v_datum_tot AND status = 'a' AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, n ny, 0 a, 0 abulki, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_datum > v_year_van AND mld_melding_datum < v_datum_tot AND kwisg LIKE '%' UNION ALL SELECT vakgroep, 0 n, 0 bulki, 0 ny, 0 a, 0 abulki, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_planlooptijd d WHERE mld_melding_afgemeld > v_year_van AND mld_melding_afgemeld < v_datum_tot AND kwisg LIKE '%' AND status = 'a') GROUP BY onderdeel; END rap_maand_cdbreed_gereed; PROCEDURE rap_maand_cdbreed_klachten (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN rap_maand_cdbreed_int (user_key, p_datum_van, p_datum_tot, p_cursor, 'Klacht'); END rap_maand_cdbreed_klachten; PROCEDURE rap_maand_cdbreed_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; v_year_van := fac.safe_to_date ('01-01-' || TO_CHAR (v_datum_van, 'yyyy'), 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT 1 volgorde, dienst, onderdeel, vakgroep, SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) open_buiten FROM (SELECT dienst, vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT dienst, vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND status = 'a' UNION ALL SELECT dienst, vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot UNION ALL SELECT dienst, vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot UNION ALL SELECT dienst, vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND status = 'a') GROUP BY dienst, vakgroep, onderdeel UNION ALL SELECT 2 volgorde, dienst, onderdeel, 'Totaal', SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT dienst, vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT dienst, vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND status = 'a' UNION ALL SELECT dienst, vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot UNION ALL SELECT dienst, vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot UNION ALL SELECT dienst, vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND status = 'a') GROUP BY dienst, onderdeel UNION ALL SELECT 3 volgorde, dienst, 'Totaal', '', SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT dienst, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT dienst, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND status = 'a' UNION ALL SELECT dienst, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot UNION ALL SELECT dienst, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot UNION ALL SELECT dienst, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND status = 'a') GROUP BY dienst; END rap_maand_cdbreed_dienst; PROCEDURE rap_maand_fcc_lsu_int (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_kwisg IN VARCHAR2 ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; v_year_van := fac.safe_to_date ('01-01-' || TO_CHAR (v_datum_van, 'yyyy'), 'dd-mm-yyyy'); -- we maken een alias voor lsu en noemen deze dienst zodat we dezelfde stylesheet kunnen gebruiken. OPEN p_cursor FOR SELECT lsu dienst, onderdeel, vakgroep, SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) open_buiten FROM (SELECT lsu, vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg UNION ALL SELECT lsu, vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg AND status = 'a' UNION ALL SELECT lsu, vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg UNION ALL SELECT lsu, vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg UNION ALL SELECT lsu, vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg AND status = 'a') GROUP BY lsu, vakgroep, onderdeel UNION ALL SELECT lsu dienst, 'Totaal', '', SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT lsu, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg UNION ALL SELECT lsu, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg AND status = 'a' UNION ALL SELECT lsu, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg UNION ALL SELECT lsu, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg UNION ALL SELECT lsu, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' AND kwisg LIKE p_kwisg AND status = 'a') GROUP BY lsu; END rap_maand_fcc_lsu_int; PROCEDURE rap_maand_fcc_lsu (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN rap_maand_fcc_lsu_int (user_key, p_datum_van, p_datum_tot, p_cursor, '%'); END rap_maand_fcc_lsu; PROCEDURE rap_maand_fcc_lsu_klachten (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN rap_maand_fcc_lsu_int (user_key, p_datum_van, p_datum_tot, p_cursor, 'Klacht'); END rap_maand_fcc_lsu_klachten; -- RWSN#36576/Toevoeging 3 PROCEDURE rap_maand_fcc_locatie (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '12-08-2016' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; v_year_van := fac.safe_to_date ('01-01-' || TO_CHAR (v_datum_van, 'yyyy'), 'dd-mm-yyyy'); -- we maken een alias voor locatie en noemen deze dienst zodat we dezelfde stylesheet kunnen gebruiken. OPEN p_cursor FOR SELECT locatiecode dienst, onderdeel, vakgroep, SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) open_buiten FROM (SELECT locatiecode, vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' UNION ALL SELECT locatiecode, vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' AND status = 'a' UNION ALL SELECT locatiecode, vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND onderdeel = 'FB' UNION ALL SELECT locatiecode, vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' UNION ALL SELECT locatiecode, vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' AND status = 'a') GROUP BY locatiecode, vakgroep, onderdeel UNION ALL SELECT locatiecode dienst, 'Totaal', '', SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT locatiecode, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' UNION ALL SELECT locatiecode, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND onderdeel = 'FB' AND status = 'a' UNION ALL SELECT locatiecode, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot AND onderdeel = 'FB' UNION ALL SELECT locatiecode, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' UNION ALL SELECT locatiecode, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND onderdeel = 'FB' AND status = 'a') GROUP BY locatiecode; END rap_maand_fcc_locatie; PROCEDURE rap_oper_cdbreed (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT 1 volgorde, onderdeel, vakgroep, SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (t) t, SUM (t0) t0, SUM (t1) t1, SUM (t2) t2, SUM (t3) t3, SUM (g) g, SUM (g0) g0, SUM (g1) g1, SUM (g2) g2, SUM (g3) g3, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND(100 * ( ( (SUM (t) + SUM (g)) - (SUM (t0) + SUM (g0))) / DECODE (SUM (t) + SUM (g), 0, 0.00000001, SUM (t) + SUM (g)))) open_buiten FROM (SELECT vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > v_datum_van UNION ALL SELECT vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > v_datum_van AND status = 'a' UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, t, t0, t1, t2, t3, g, g0, g1, g2, g3, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE status = 'g' OR status = 't' UNION ALL SELECT vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > TO_DATE (TO_CHAR (v_datum_van, 'yyyy') || '01' || '01', 'yyyymmdd') UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > TO_DATE (TO_CHAR (v_datum_van, 'yyyy') || '01' || '01', 'yyyymmdd') AND status = 'a') GROUP BY vakgroep, onderdeel UNION ALL SELECT 2 volgorde, onderdeel, 'Totaal', SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (t) t, SUM (t0) t0, SUM (t1) t1, SUM (t2) t2, SUM (t3) t3, SUM (g) g, SUM (g0) g0, SUM (g1) g1, SUM (g2) g2, SUM (g3) g3, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND(100 * ( ( (SUM (t) + SUM (g)) - (SUM (t0) + SUM (g0))) / DECODE (SUM (t) + SUM (g), 0, 0.00000001, SUM (t) + SUM (g)))) FROM (SELECT vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > v_datum_van UNION ALL SELECT vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > v_datum_van AND status = 'a' UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, t, t0, t1, t2, t3, g, g0, g1, g2, g3, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE status = 'g' OR status = 't' UNION ALL SELECT vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum > TO_DATE (TO_CHAR (v_datum_van, 'yyyy') || '01' || '01', 'yyyymmdd') UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 t, 0 t0, 0 t1, 0 t2, 0 t3, 0 g, 0 g0, 0 g1, 0 g2, 0 g3, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld > TO_DATE (TO_CHAR (v_datum_van, 'yyyy') || '01' || '01', 'yyyymmdd') AND status = 'a') GROUP BY onderdeel; END rap_oper_cdbreed; PROCEDURE rap_mld_op_tijd (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT UPPER (onderdeel) onderdeel, UPPER (eenheid) eenheid, norm_eenheid norm, ROUND ( (SUM (optijd) / DECODE (SUM (tot), 0, 0.000001, SUM (tot))) * 100) tot, ROUND ( (SUM (jan_optijd) / DECODE (SUM (jan), 0, 0.000001, SUM (jan))) * 100) jan, ROUND ( (SUM (feb_optijd) / DECODE (SUM (feb), 0, 0.000001, SUM (feb))) * 100) feb, ROUND ( (SUM (maa_optijd) / DECODE (SUM (maa), 0, 0.000001, SUM (maa))) * 100) maa, ROUND ( (SUM (apr_optijd) / DECODE (SUM (apr), 0, 0.000001, SUM (apr))) * 100) apr, ROUND ( (SUM (mei_optijd) / DECODE (SUM (mei), 0, 0.000001, SUM (mei))) * 100) mei, ROUND ( (SUM (jun_optijd) / DECODE (SUM (jun), 0, 0.000001, SUM (jun))) * 100) jun, ROUND ( (SUM (jul_optijd) / DECODE (SUM (jul), 0, 0.000001, SUM (jul))) * 100) jul, ROUND ( (SUM (aug_optijd) / DECODE (SUM (aug), 0, 0.000001, SUM (aug))) * 100) aug, ROUND ( (SUM (sep_optijd) / DECODE (SUM (sep), 0, 0.000001, SUM (sep))) * 100) sep, ROUND ( (SUM (okt_optijd) / DECODE (SUM (okt), 0, 0.000001, SUM (okt))) * 100) okt, ROUND ( (SUM (nov_optijd) / DECODE (SUM (nov), 0, 0.000001, SUM (nov))) * 100) nov, ROUND ( (SUM (dec_optijd) / DECODE (SUM (dec), 0, 0.000001, SUM (dec))) * 100) dec FROM rwsn_v_rap_opl_mld_detail WHERE datum BETWEEN v_datum_van AND v_datum_tot GROUP BY onderdeel, eenheid, norm_eenheid UNION ALL SELECT UPPER (onderdeel), 'Totaal', norm_onderdeel norm, ROUND ( (SUM (optijd) / DECODE (SUM (tot), 0, 0.000001, SUM (tot))) * 100) tot, ROUND ( (SUM (jan_optijd) / DECODE (SUM (jan), 0, 0.000001, SUM (jan))) * 100) jan, ROUND ( (SUM (feb_optijd) / DECODE (SUM (feb), 0, 0.000001, SUM (feb))) * 100) feb, ROUND ( (SUM (maa_optijd) / DECODE (SUM (maa), 0, 0.000001, SUM (maa))) * 100) maa, ROUND ( (SUM (apr_optijd) / DECODE (SUM (apr), 0, 0.000001, SUM (apr))) * 100) apr, ROUND ( (SUM (mei_optijd) / DECODE (SUM (mei), 0, 0.000001, SUM (mei))) * 100) mei, ROUND ( (SUM (jun_optijd) / DECODE (SUM (jun), 0, 0.000001, SUM (jun))) * 100) jun, ROUND ( (SUM (jul_optijd) / DECODE (SUM (jul), 0, 0.000001, SUM (jul))) * 100) jul, ROUND ( (SUM (aug_optijd) / DECODE (SUM (aug), 0, 0.000001, SUM (aug))) * 100) aug, ROUND ( (SUM (sep_optijd) / DECODE (SUM (sep), 0, 0.000001, SUM (sep))) * 100) sep, ROUND ( (SUM (okt_optijd) / DECODE (SUM (okt), 0, 0.000001, SUM (okt))) * 100) okt, ROUND ( (SUM (nov_optijd) / DECODE (SUM (nov), 0, 0.000001, SUM (nov))) * 100) nov, ROUND ( (SUM (dec_optijd) / DECODE (SUM (dec), 0, 0.000001, SUM (dec))) * 100) dec FROM rwsn_v_rap_opl_mld_detail WHERE datum BETWEEN v_datum_van AND v_datum_tot GROUP BY onderdeel, norm_onderdeel UNION ALL SELECT 'Totaal', '', norm_totaal norm, ROUND ( (SUM (optijd) / DECODE (SUM (tot), 0, 0.000001, SUM (tot))) * 100) tot, ROUND ( (SUM (jan_optijd) / DECODE (SUM (jan), 0, 0.000001, SUM (jan))) * 100) jan, ROUND ( (SUM (feb_optijd) / DECODE (SUM (feb), 0, 0.000001, SUM (feb))) * 100) feb, ROUND ( (SUM (maa_optijd) / DECODE (SUM (maa), 0, 0.000001, SUM (maa))) * 100) maa, ROUND ( (SUM (apr_optijd) / DECODE (SUM (apr), 0, 0.000001, SUM (apr))) * 100) apr, ROUND ( (SUM (mei_optijd) / DECODE (SUM (mei), 0, 0.000001, SUM (mei))) * 100) mei, ROUND ( (SUM (jun_optijd) / DECODE (SUM (jun), 0, 0.000001, SUM (jun))) * 100) jun, ROUND ( (SUM (jul_optijd) / DECODE (SUM (jul), 0, 0.000001, SUM (jul))) * 100) jul, ROUND ( (SUM (aug_optijd) / DECODE (SUM (aug), 0, 0.000001, SUM (aug))) * 100) aug, ROUND ( (SUM (sep_optijd) / DECODE (SUM (sep), 0, 0.000001, SUM (sep))) * 100) sep, ROUND ( (SUM (okt_optijd) / DECODE (SUM (okt), 0, 0.000001, SUM (okt))) * 100) okt, ROUND ( (SUM (nov_optijd) / DECODE (SUM (nov), 0, 0.000001, SUM (nov))) * 100) nov, ROUND ( (SUM (dec_optijd) / DECODE (SUM (dec), 0, 0.000001, SUM (dec))) * 100) dec FROM rwsn_v_rap_opl_mld_detail WHERE datum BETWEEN v_datum_van AND v_datum_tot GROUP BY norm_totaal; END rap_mld_op_tijd; PROCEDURE rap_maand_cdbreed_kwisg (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; v_year_van := fac.safe_to_date ('01-01-' || TO_CHAR (v_datum_van, 'yyyy'), 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT 1 volgorde, onderdeel, kwisg vakgroep, SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) open_buiten FROM (SELECT kwisg, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT kwisg, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND status = 'a' UNION ALL SELECT kwisg, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot UNION ALL SELECT kwisg, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot UNION ALL SELECT kwisg, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND status = 'a') GROUP BY kwisg, onderdeel UNION ALL SELECT 2 volgorde, onderdeel, 'Totaal', SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND status = 'a' UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot UNION ALL SELECT vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'i' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, onderdeel, 'a' FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND status = 'a') GROUP BY onderdeel; END rap_maand_cdbreed_kwisg; PROCEDURE rap_maand_fcc_kwisg (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; v_year_van DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; v_year_van := fac.safe_to_date ('01-01-' || TO_CHAR (v_datum_van, 'yyyy'), 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT 1 volgorde, lsu, kwisg vakgroep, SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))) uitv_optijd, ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) open_buiten FROM (SELECT kwisg, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, lsu, 'i', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT kwisg, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, lsu, 'a', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND status = 'a' UNION ALL SELECT kwisg, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, lsu, 'a', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot UNION ALL SELECT kwisg, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, lsu, 'i', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot UNION ALL SELECT kwisg, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, lsu, 'a', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND status = 'a') WHERE onderdeel = 'FB' GROUP BY kwisg, lsu UNION ALL SELECT 2 volgorde, lsu, 'Totaal', SUM (n) n, SUM (ny) ny, SUM (zelfservice) zs, SUM (a) a, SUM (ay) ay, SUM (zelfafgemeld) za, SUM (a0) a0, SUM (a1) a1, SUM (a2) a2, SUM (a3) a3, SUM (o) o, SUM (o0) o0, SUM (o) - SUM (o0) o1, ROUND (100 * (SUM (a0) / DECODE (SUM (a), 0, 0.00000001, SUM (a)))), ROUND (100 * ( (SUM (o) - SUM (o0)) / DECODE (SUM (o), 0, 0.00000001, SUM (o)))) FROM (SELECT vakgroep, n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, zelfservice, 0 zelfafgemeld, lsu, 'i', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT vakgroep, 0 n, 0 ny, a, 0 ay, a0, a1, a2, a3, 0 o, 0 o0, 0 zelfservice, zelfafgemeld, lsu, 'a', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_datum_van AND v_datum_tot AND status = 'a' UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, n o, --DECODE (SIGN (sla_norm - v_datum_tot), -1, 0, 1) o0, DECODE (SIGN (sla_norm - fac.count_work_days_incltime (mld_melding_datum, v_datum_tot)), -1, 0, 1) o0, 0 zelfservice, 0 zelfafgemeld, lsu, 'a', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum < v_datum_tot AND mld_melding_afgemeld > v_datum_tot UNION ALL SELECT vakgroep, 0 n, n ny, 0 a, 0 ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, lsu, 'i', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_datum BETWEEN v_year_van AND v_datum_tot UNION ALL SELECT vakgroep, 0 n, 0 ny, 0 a, a ay, 0 a0, 0 a1, 0 a2, 0 a3, 0 o, 0 o0, 0 zelfservice, 0 zelfafgemeld, lsu, 'a', onderdeel FROM rwsn_v_rap_doorlooptijd d WHERE mld_melding_afgemeld BETWEEN v_year_van AND v_datum_tot AND status = 'a') WHERE onderdeel = 'FB' GROUP BY lsu; END rap_maand_fcc_kwisg; PROCEDURE rap_meldbron_kcc_week (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT jaar, week, TO_CHAR (MIN (mld_melding_datum), 'dd-mm-yyyy') startdatum, TO_CHAR (MAX (mld_melding_datum), 'dd-mm-yyyy') einddatum, SUM (brief) brief, SUM (email) email, SUM (fax) fax, SUM (import) import, SUM (internet) internet, SUM (mondeling) mondeling, SUM (telefoon) telefoon, SUM (systeem) systeem, SUM (formulier) formulier, SUM (onbekend) onbekend, SUM (totaal) totaal FROM rwsn_v_rap_meldbron WHERE ins_srtdiscipline_key = 3 -- KCC AND mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY jaar, week; END rap_meldbron_kcc_week; PROCEDURE rap_meldbron_kcc_maand (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT jaar, maand, TO_CHAR (MIN (mld_melding_datum), 'dd-mm-yyyy') startdatum, TO_CHAR (MAX (mld_melding_datum), 'dd-mm-yyyy') einddatum, SUM (brief) brief, SUM (email) email, SUM (fax) fax, SUM (import) import, SUM (internet) internet, SUM (mondeling) mondeling, SUM (telefoon) telefoon, SUM (systeem) systeem, SUM (formulier) formulier, SUM (onbekend) onbekend, SUM (totaal) totaal FROM rwsn_v_rap_meldbron WHERE ins_srtdiscipline_key = 3 -- KCC AND mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY jaar, maand; END rap_meldbron_kcc_maand; PROCEDURE rap_meldbron_fcc_week (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT jaar, week, TO_CHAR (MIN (mld_melding_datum), 'dd-mm-yyyy') startdatum, TO_CHAR (MAX (mld_melding_datum), 'dd-mm-yyyy') einddatum, SUM (brief) brief, SUM (email) email, SUM (fax) fax, SUM (import) import, SUM (internet) internet, SUM (mondeling) mondeling, SUM (telefoon) telefoon, SUM (systeem) systeem, SUM (formulier) formulier, SUM (onbekend) onbekend, SUM (totaal) totaal FROM rwsn_v_rap_meldbron WHERE ins_srtdiscipline_key = 1 -- FCC AND mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY jaar, week; END rap_meldbron_fcc_week; PROCEDURE rap_meldbron_fcc_maand (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT jaar, maand, TO_CHAR (MIN (mld_melding_datum), 'dd-mm-yyyy') startdatum, TO_CHAR (MAX (mld_melding_datum), 'dd-mm-yyyy') einddatum, SUM (brief) brief, SUM (email) email, SUM (fax) fax, SUM (import) import, SUM (internet) internet, SUM (mondeling) mondeling, SUM (telefoon) telefoon, SUM (systeem) systeem, SUM (formulier) formulier, SUM (onbekend) onbekend, SUM (totaal) totaal FROM rwsn_v_rap_meldbron WHERE ins_srtdiscipline_key = 1 -- FCC AND mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY jaar, maand; END rap_meldbron_fcc_maand; PROCEDURE rap_omzet (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT COALESCE (sd.ins_srtdiscipline_omschrijving, 'FCC') organisatie, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = p.prs_perslid_key) medewerker, DECODE (p.vakgroep_key, -- -1, 'Reservering', -- Per 5i vervallen! -2, 'Deelreservering', d.ins_discipline_omschrijving) vakgroep, TO_NUMBER (ingevoerd) ingevoerd, TO_NUMBER (ingezien) ingezien, TO_NUMBER (afgemeld) afgemeld FROM ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (m.mld_melding_key) ingevoerd FROM mld_melding m, mld_stdmelding std, fac_v_webgebruiker wg, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 26 -- MLDNEW AND t.prs_perslid_key = wg.prs_perslid_key AND wg.fac_functie_key = 55 AND wg.ins_discipline_key = std.mld_ins_discipline_key GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key UNION ALL SELECT t.prs_perslid_key, -2, COUNT (rrr.res_rsv_ruimte_key) ingevoerd FROM res_rsv_ruimte rrr, fac_tracking t WHERE rrr.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 34 -- RESNEW AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key = 34 AND fac_tracking_refkey = t.fac_tracking_refkey) GROUP BY t.prs_perslid_key) i, ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (m.mld_melding_key) ingezien FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 25 -- MLDING AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key = 25 AND fac_tracking_refkey = t.fac_tracking_refkey) GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key) ing, ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (m.mld_melding_key) afgemeld FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 22 -- MLDAFM GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key) a, (SELECT DISTINCT prs_perslid_key, mld_ins_discipline_key vakgroep_key FROM (SELECT t.prs_perslid_key, std.mld_ins_discipline_key FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 26 -- MLDNEW UNION ALL SELECT t.prs_perslid_key, -2 FROM res_rsv_ruimte rrr, fac_tracking t WHERE rrr.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 34 -- RESNEW AND t.fac_tracking_key IN (SELECT MAX ( fac_tracking_key ) FROM fac_tracking WHERE fac_srtnotificatie_key = 34 AND fac_tracking_refkey = t.fac_tracking_refkey) UNION ALL SELECT t.prs_perslid_key, std.mld_ins_discipline_key FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 25 -- MLDING AND t.fac_tracking_key IN (SELECT MAX ( fac_tracking_key ) FROM fac_tracking WHERE fac_srtnotificatie_key = 25 AND fac_tracking_refkey = t.fac_tracking_refkey) UNION ALL SELECT t.prs_perslid_key, std.mld_ins_discipline_key FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 22 -- MLDAFM )) p, ins_srtdiscipline sd, ins_tab_discipline d WHERE p.prs_perslid_key = i.prs_perslid_key(+) AND p.prs_perslid_key = ing.prs_perslid_key(+) AND p.prs_perslid_key = a.prs_perslid_key(+) AND p.vakgroep_key = i.vakgroep_key(+) AND p.vakgroep_key = ing.vakgroep_key(+) AND p.vakgroep_key = a.vakgroep_key(+) AND p.vakgroep_key = d.ins_discipline_key(+) AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) AND p.prs_perslid_key IS NOT NULL AND EXISTS (SELECT gg.prs_perslid_key FROM fac_groep g, fac_gebruikersgroep gg WHERE p.prs_perslid_key = gg.prs_perslid_key AND g.fac_groep_key = gg.fac_groep_key AND (g.fac_groep_omschrijving = 'FCC' OR g.fac_groep_omschrijving = 'KCC')) ORDER BY 1, 2, 3, 4; END rap_omzet; PROCEDURE rap_omzetplus (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT afd.prs_afdeling_naam nummer, afd.prs_afdeling_omschrijving organisatie, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = p.prs_perslid_key) medewerker, DECODE (p.vakgroep_key, -- -1, 'Reservering', -- Per 5i vervallen! -2, 'Deelreservering', d.ins_discipline_omschrijving) vakgroep, TO_NUMBER (ingevoerd) m_ingevoerd, TO_NUMBER (ingezien) m_ingezien, TO_NUMBER (geaccepteerd) m_geaccepteerd, TO_NUMBER (io.aantal) o_ingevoerd, TO_NUMBER (ao.aantal) o_afgemeld, TO_NUMBER (afgemeld) m_afgemeld FROM ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (m.mld_melding_key) ingevoerd FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 26 -- MLDNEW GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key UNION ALL SELECT t.prs_perslid_key, -2, COUNT (rrr.res_rsv_ruimte_key) ingevoerd FROM res_rsv_ruimte rrr, fac_tracking t WHERE rrr.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 34 -- RESNEW AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key = 34 AND fac_tracking_refkey = t.fac_tracking_refkey) GROUP BY t.prs_perslid_key) i, ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (m.mld_melding_key) ingezien FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 25 -- MLDING AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key = 25 AND fac_tracking_refkey = t.fac_tracking_refkey) GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key) ing, ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (m.mld_melding_key) geaccepteerd FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 21 -- MLDACP AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key = 21 AND fac_tracking_refkey = t.fac_tracking_refkey) GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key) acp, ( SELECT o.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (o.mld_opdr_key) aantal FROM mld_melding m, mld_stdmelding std, mld_opdr o WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = o.mld_melding_key GROUP BY o.prs_perslid_key, std.mld_ins_discipline_key) io, ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (o.mld_opdr_key) aantal FROM mld_melding m, mld_stdmelding std, mld_opdr o, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = o.mld_melding_key AND o.mld_opdr_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 30 -- ORDAFM GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key) ao, ( SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key, COUNT (m.mld_melding_key) afgemeld FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 22 -- MLDAFM GROUP BY t.prs_perslid_key, std.mld_ins_discipline_key) a, (SELECT DISTINCT prs_perslid_key, vakgroep_key FROM (SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 26 -- MLDNEW UNION ALL SELECT t.prs_perslid_key, -2 FROM res_rsv_ruimte rrr, fac_tracking t WHERE rrr.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 34 -- RESNEW AND t.fac_tracking_key IN (SELECT MAX ( fac_tracking_key ) FROM fac_tracking WHERE fac_srtnotificatie_key = 34 AND fac_tracking_refkey = t.fac_tracking_refkey) UNION ALL SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 25 -- MLDING AND t.fac_tracking_key IN (SELECT MAX ( fac_tracking_key ) FROM fac_tracking WHERE fac_srtnotificatie_key = 25 AND fac_tracking_refkey = t.fac_tracking_refkey) UNION ALL SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 21 -- MLDACP AND t.fac_tracking_key IN (SELECT MAX ( fac_tracking_key ) FROM fac_tracking WHERE fac_srtnotificatie_key = 21 AND fac_tracking_refkey = t.fac_tracking_refkey) UNION ALL SELECT o.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key FROM mld_melding m, mld_stdmelding std, mld_opdr o WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND o.mld_melding_key = m.mld_melding_key UNION ALL SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key FROM mld_melding m, mld_stdmelding std, mld_opdr o, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = o.mld_melding_key AND o.mld_opdr_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 30 -- ORDAFM UNION ALL SELECT t.prs_perslid_key, std.mld_ins_discipline_key vakgroep_key FROM mld_melding m, mld_stdmelding std, fac_tracking t WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot AND m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 22 -- MLDAFM )) p, ins_tab_discipline d, ins_srtdiscipline sd, prs_perslid prs, prs_v_afdeling_boom ab, prs_afdeling afd WHERE p.prs_perslid_key = i.prs_perslid_key(+) AND p.prs_perslid_key = ing.prs_perslid_key(+) AND p.prs_perslid_key = acp.prs_perslid_key(+) AND p.prs_perslid_key = io.prs_perslid_key(+) AND p.prs_perslid_key = ao.prs_perslid_key(+) AND p.prs_perslid_key = a.prs_perslid_key(+) AND p.vakgroep_key = i.vakgroep_key(+) AND p.vakgroep_key = ing.vakgroep_key(+) AND p.vakgroep_key = acp.vakgroep_key(+) AND p.vakgroep_key = io.vakgroep_key(+) AND p.vakgroep_key = ao.vakgroep_key(+) AND p.vakgroep_key = a.vakgroep_key(+) AND p.vakgroep_key = d.ins_discipline_key(+) AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) AND p.prs_perslid_key = prs.prs_perslid_key AND prs.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key = afd.prs_afdeling_key ORDER BY 1, 2, 3, 4; END rap_omzetplus; PROCEDURE rap_omzetaccept (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT DECODE (y.prs_afdeling_naam, NULL, 'ONBEKEND', y.prs_afdeling_naam) nummer, DECODE (y.prs_afdeling_omschrijving, NULL, 'ONBEKEND', y.prs_afdeling_omschrijving) organisatie, COALESCE (y.prs_perslid_naam_full, 'ONBEKEND') medewerker, x.vakgroep_oms vakgroep, TO_NUMBER (x.geaccepteerd) geaccepteerd FROM ( SELECT m.mldacp_userkey prs_perslid_key, m.vakgroep_oms, COUNT (m.mld_key) geaccepteerd FROM rwsn_mld_freeze m WHERE m.mld_begin_date BETWEEN v_datum_van AND v_datum_tot GROUP BY m.mldacp_userkey, m.vakgroep_oms) x LEFT JOIN (SELECT p.prs_perslid_key, fn.prs_perslid_naam_full, a.prs_afdeling_naam, a.prs_afdeling_omschrijving FROM prs_perslid p, prs_v_perslid_fullnames_all fn, prs_afdeling a WHERE p.prs_perslid_key = fn.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key) y ON x.prs_perslid_key = y.prs_perslid_key ORDER BY 1, 2, 3, 4; END rap_omzetaccept; PROCEDURE rap_kto_resultaat (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT mld_melding_key melding, kto_nr ktonr, COALESCE (eenheid, '-'), cijfer1, cijfer2, cijfer3, cijfer4, cijfer5, gem, opm1, opm2, opm3, opm4, opm5, ontvangen, responsetijd, 1 volgorde FROM rwsn_v_rap_kto WHERE ontvangst_datum BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT '0', '0' ktonr, COALESCE (eenheid, '-'), --ROUND (SUM (DECODE (cijfer1, NULL, 0, cijfer1)) / SUM (DECODE (cijfer1, NULL, 0.0000001, 1)), 2), --ROUND (SUM (DECODE (cijfer2, NULL, 0, cijfer2)) / SUM (DECODE (cijfer2, NULL, 0.0000001, 1)), 2), --ROUND (SUM (DECODE (cijfer3, NULL, 0, cijfer3)) / SUM (DECODE (cijfer3, NULL, 0.0000001, 1)), 2), --ROUND (SUM (DECODE (cijfer4, NULL, 0, cijfer4)) / SUM (DECODE (cijfer4, NULL, 0.0000001, 1)), 2), --ROUND (SUM (DECODE (cijfer5, NULL, 0, cijfer5)) / SUM (DECODE (cijfer5, NULL, 0.0000001, 1)), 2), --ROUND (SUM (DECODE (gem, NULL, 0, gem)) / SUM (DECODE (gem, 0, 0.0000001, 1)), 2), ROUND (SUM (DECODE (cijfer1, NULL, 0, cijfer1)) / DECODE (SUM (DECODE (cijfer1, NULL, 0, 1)),0,1,SUM (DECODE (cijfer1, NULL, 0, 1))), 2), ROUND (SUM (DECODE (cijfer2, NULL, 0, cijfer2)) / DECODE (SUM (DECODE (cijfer2, NULL, 0, 1)),0,1,SUM (DECODE (cijfer2, NULL, 0, 1))), 2), ROUND (SUM (DECODE (cijfer3, NULL, 0, cijfer3)) / DECODE (SUM (DECODE (cijfer3, NULL, 0, 1)),0,1,SUM (DECODE (cijfer3, NULL, 0, 1))), 2), ROUND (SUM (DECODE (cijfer4, NULL, 0, cijfer4)) / DECODE (SUM (DECODE (cijfer4, NULL, 0, 1)),0,1,SUM (DECODE (cijfer4, NULL, 0, 1))), 2), ROUND (SUM (DECODE (cijfer5, NULL, 0, cijfer5)) / DECODE (SUM (DECODE (cijfer5, NULL, 0, 1)),0,1,SUM (DECODE (cijfer5, NULL, 0, 1))), 2), ROUND (SUM (DECODE (gem, NULL, 0, gem)) / DECODE (SUM (DECODE (gem, NULL, 0, 0, 0, 1)),0,1,SUM (DECODE (gem, NULL, 0, 0, 0, 1))), 2), TO_CHAR (NULL), TO_CHAR (NULL), TO_CHAR (NULL), TO_CHAR (NULL), TO_CHAR (NULL), SUM (ontvangen) ontvangen, ROUND (SUM (responsetijd) / SUM (ontvangen), 2), 2 volgorde FROM rwsn_v_rap_kto WHERE ontvangst_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY eenheid; END rap_kto_resultaat; PROCEDURE rap_kto_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '13-05-2005' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy') + 1; OPEN p_cursor FOR SELECT dienst, COUNT (dienst) verzonden, SUM (ontv) aantal, --(SUM (ontv) / COUNT (dienst)) * 100 percentage, --SUM (gem) / (SUM (ontv) + 0.00001) gemiddelde, --SUM (response) / (SUM (ontv) + 0.00001) response ROUND((SUM (ontv) / DECODE(COUNT (dienst),0,1,COUNT (dienst))) * 100,2) percentage, ROUND(SUM (gem) / DECODE(SUM (ontv),0,1,SUM (ontv)),2) gemiddelde, ROUND(COALESCE(SUM (response),0) / DECODE(SUM (ontv),0,1,SUM (ontv)),2) response FROM (SELECT DECODE (kto.mld_melding_key, NULL, 0, 1) ontv, ( DECODE (cijfer1, NULL, 0, cijfer1) + DECODE (cijfer2, NULL, 0, cijfer2) + DECODE (cijfer3, NULL, 0, cijfer3) + DECODE (cijfer4, NULL, 0, cijfer4) + DECODE (cijfer5, NULL, 0, cijfer5)) / DECODE ( DECODE (cijfer1, NULL, 0, 1) + DECODE (cijfer2, NULL, 0, 1) + DECODE (cijfer3, NULL, 0, 1) + DECODE (cijfer4, NULL, 0, 1) + DECODE (cijfer5, NULL, 0, 1), 0, 1, DECODE (cijfer1, NULL, 0, 1) + DECODE (cijfer2, NULL, 0, 1) + DECODE (cijfer3, NULL, 0, 1) + DECODE (cijfer4, NULL, 0, 1) + DECODE (cijfer5, NULL, 0, 1) ) --/ ( DECODE (cijfer1, NULL, 0, 1) -- + DECODE (cijfer2, NULL, 0, 1) -- + DECODE (cijfer3, NULL, 0, 1) -- + DECODE (cijfer4, NULL, 0, 1) -- + DECODE (cijfer5, NULL, 0, 1) -- + 0.000001) gem, kto.mld_melding_datum - km.mld_kenmerkmelding_aanmaak response, --rwsn.bepaal_dienst2 (m.prs_perslid_key) dienst DECODE (p.prs_perslid_upper, 'EXTERN', 'EXTERN', a.prs_afdeling_omschrijving) dienst FROM mld_melding m, mld_kenmerk k, mld_kenmerkmelding km, rwsn_v_kto_basic kto, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling a WHERE m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 121 AND m.mld_melding_key = kto.mld_melding_key(+) AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a.prs_afdeling_key AND km.mld_kenmerkmelding_aanmaak BETWEEN v_datum_van AND v_datum_tot UNION ALL SELECT DECODE (kto.mld_melding_key, NULL, 0, 1) ontv, ( DECODE (cijfer1, NULL, 0, cijfer1) + DECODE (cijfer2, NULL, 0, cijfer2) + DECODE (cijfer3, NULL, 0, cijfer3) + DECODE (cijfer4, NULL, 0, cijfer4) + DECODE (cijfer5, NULL, 0, cijfer5)) / DECODE ( DECODE (cijfer1, NULL, 0, 1) + DECODE (cijfer2, NULL, 0, 1) + DECODE (cijfer3, NULL, 0, 1) + DECODE (cijfer4, NULL, 0, 1) + DECODE (cijfer5, NULL, 0, 1), 0, 1, DECODE (cijfer1, NULL, 0, 1) + DECODE (cijfer2, NULL, 0, 1) + DECODE (cijfer3, NULL, 0, 1) + DECODE (cijfer4, NULL, 0, 1) + DECODE (cijfer5, NULL, 0, 1) ) --/ ( DECODE (cijfer1, NULL, 0, 1) -- + DECODE (cijfer2, NULL, 0, 1) -- + DECODE (cijfer3, NULL, 0, 1) -- + DECODE (cijfer4, NULL, 0, 1) -- + DECODE (cijfer5, NULL, 0, 1) -- + 0.000001) gem, kto.mld_melding_datum - res_kenmerkwaarde_aanmaak response, --rwsn.bepaal_dienst2 (rrr.res_rsv_ruimte_host_key) dienst DECODE (p.prs_perslid_upper, 'EXTERN', 'EXTERN', a.prs_afdeling_omschrijving) dienst FROM res_rsv_ruimte rrr, res_kenmerk k, res_kenmerkwaarde kw, rwsn_v_kto_basic kto, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling a WHERE rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key AND kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 22 AND rrr.res_rsv_ruimte_key = kto.res_rsv_ruimte_key(+) AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a.prs_afdeling_key AND res_kenmerkwaarde_aanmaak BETWEEN v_datum_van AND v_datum_tot) WHERE dienst IS NOT NULL GROUP BY dienst; END rap_kto_dienst; PROCEDURE rap_kruis_cat_count (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT grid.catalogus || ' - ' || grid.artikel artikel, grid.dienst dienst, COALESCE (used.aantal, 0) aantal FROM (SELECT a.res_artikel_key, afd.prs_afdeling_key, rd.ins_discipline_omschrijving catalogus, a.res_artikel_omschrijving artikel, afd.prs_afdeling_omschrijving dienst FROM res_v_aanwezigartikel a, res_discipline rd, prs_afdeling afd WHERE a.res_discipline_key = rd.ins_discipline_key AND afd.prs_afdeling_verwijder IS NULL AND afd.prs_afdeling_parentkey IS NULL AND afd.prs_afdeling_key <> 1) grid -- Onbekend LEFT JOIN ( SELECT ra.res_artikel_key, afd.prs_afdeling_key, SUM (ra.res_rsv_artikel_aantal) aantal FROM res_v_aanwezigrsv_artikel ra, res_v_aanwezigrsv_ruimte rr, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND ra.res_rsv_artikel_levering BETWEEN v_datum_van AND v_datum_tot GROUP BY ra.res_artikel_key, afd.prs_afdeling_key) used ON grid.res_artikel_key = used.res_artikel_key AND grid.prs_afdeling_key = used.prs_afdeling_key ORDER BY grid.catalogus || ' - ' || grid.artikel, grid.dienst; END rap_kruis_cat_count; PROCEDURE rap_kruis_cat_price (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT grid.catalogus || ' - ' || grid.artikel artikel, grid.dienst dienst, COALESCE (used.prijs, 0) prijs FROM (SELECT a.res_artikel_key, afd.prs_afdeling_key, rd.ins_discipline_omschrijving catalogus, a.res_artikel_omschrijving artikel, afd.prs_afdeling_omschrijving dienst FROM res_v_aanwezigartikel a, res_discipline rd, prs_afdeling afd WHERE a.res_discipline_key = rd.ins_discipline_key AND afd.prs_afdeling_verwijder IS NULL AND afd.prs_afdeling_parentkey IS NULL AND afd.prs_afdeling_key <> 1) grid -- Onbekend LEFT JOIN ( SELECT ra.res_artikel_key, afd.prs_afdeling_key, SUM (res.getartikelprijs (ra.res_rsv_artikel_key)) prijs FROM res_v_aanwezigrsv_artikel ra, res_v_aanwezigrsv_ruimte rr, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND ra.res_rsv_artikel_levering BETWEEN v_datum_van AND v_datum_tot GROUP BY ra.res_artikel_key, afd.prs_afdeling_key) used ON grid.res_artikel_key = used.res_artikel_key AND grid.prs_afdeling_key = used.prs_afdeling_key ORDER BY grid.catalogus || ' - ' || grid.artikel, grid.dienst; END rap_kruis_cat_price; PROCEDURE rap_cat_per_afd (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT y.afd1 dienst, y.afd2 hid, y.afd3 directie, y.afd4 district, y.afd5 afdeling, x.catalogus, x.artikel, x.aantal, x.prijs FROM ( SELECT p.prs_afdeling_key, rd.ins_discipline_omschrijving catalogus, a.res_artikel_omschrijving artikel, SUM (ra.res_rsv_artikel_aantal) aantal, REPLACE (TO_CHAR (SUM (res.getartikelprijs (ra.res_rsv_artikel_key)), '99999990D99'), '.', ',' ) prijs FROM res_v_aanwezigrsv_artikel ra, res_v_aanwezigartikel a, res_discipline rd, res_v_aanwezigrsv_ruimte rr, prs_perslid p WHERE ra.res_artikel_key = a.res_artikel_key AND a.res_discipline_key = rd.ins_discipline_key AND ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key AND ra.res_rsv_artikel_levering BETWEEN v_datum_van AND v_datum_tot GROUP BY p.prs_afdeling_key, rd.ins_discipline_omschrijving, a.res_artikel_omschrijving) x LEFT JOIN (SELECT ab.prs_afdeling_key, afd1.prs_afdeling_omschrijving afd1, afd2.prs_afdeling_omschrijving afd2, afd3.prs_afdeling_omschrijving afd3, afd4.prs_afdeling_omschrijving afd4, afd5.prs_afdeling_omschrijving afd5 FROM prs_v_afdeling_boom ab, prs_afdeling afd1, prs_afdeling afd2, prs_afdeling afd3, prs_afdeling afd4, prs_afdeling afd5 WHERE ab.prs_afdeling_key1 = afd1.prs_afdeling_key AND ab.prs_afdeling_key2 = afd2.prs_afdeling_key(+) AND ab.prs_afdeling_key3 = afd3.prs_afdeling_key(+) AND ab.prs_afdeling_key4 = afd4.prs_afdeling_key(+) AND ab.prs_afdeling_key5 = afd5.prs_afdeling_key(+)) y ON x.prs_afdeling_key = y.prs_afdeling_key ORDER BY 1, 2, 3, 4, 5, 6, 7; END rap_cat_per_afd; PROCEDURE rap_cat_noshow_per_afd (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT y.afd1 dienst, y.afd2 hid, y.afd3 directie, y.afd4 district, y.afd5 afdeling, x.artikel, x.aantal FROM ( SELECT p.prs_afdeling_key, art.res_artikel_omschrijving artikel, SUM (ra.res_rsv_artikel_aantal) aantal FROM res_v_aanwezigrsv_ruimte rrr, prs_perslid p, res_v_aanwezigrsv_artikel ra, res_artikel art WHERE rrr.RES_RSV_RUIMTE_BEZOEKERS_SHOWN is not NULL AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND rrr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key AND ra.res_artikel_key = art.res_artikel_key AND ra.res_rsv_artikel_levering BETWEEN v_datum_van AND v_datum_tot GROUP BY p.prs_afdeling_key, art.res_artikel_omschrijving) x LEFT JOIN (SELECT ab.prs_afdeling_key, afd1.prs_afdeling_omschrijving afd1, afd2.prs_afdeling_omschrijving afd2, afd3.prs_afdeling_omschrijving afd3, afd4.prs_afdeling_omschrijving afd4, afd5.prs_afdeling_omschrijving afd5 FROM prs_v_afdeling_boom ab, prs_afdeling afd1, prs_afdeling afd2, prs_afdeling afd3, prs_afdeling afd4, prs_afdeling afd5 WHERE ab.prs_afdeling_key1 = afd1.prs_afdeling_key AND ab.prs_afdeling_key2 = afd2.prs_afdeling_key(+) AND ab.prs_afdeling_key3 = afd3.prs_afdeling_key(+) AND ab.prs_afdeling_key4 = afd4.prs_afdeling_key(+) AND ab.prs_afdeling_key5 = afd5.prs_afdeling_key(+)) y ON x.prs_afdeling_key = y.prs_afdeling_key ORDER BY 1, 2, 3, 4, 5, 6; END rap_cat_noshow_per_afd; PROCEDURE rap_cat_noshow_per_loc (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT COALESCE (y.regio, z.regio) regio, COALESCE (y.district, z.district) lsu, COALESCE (y.locatie, z.locatie) locatie, x.artikel, x.aantal FROM ( SELECT rrr.res_rsv_ruimte_key, art.res_artikel_omschrijving artikel, SUM (ra.res_rsv_artikel_aantal) aantal FROM res_v_aanwezigrsv_ruimte rrr, res_v_aanwezigrsv_artikel ra, res_artikel art WHERE (rrr.res_rsv_ruimte_noshow = 1 or rrr.RES_RSV_RUIMTE_BEZOEKERS_SHOWN is not null) AND rrr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key AND ra.res_artikel_key = art.res_artikel_key AND ra.res_rsv_artikel_levering BETWEEN v_datum_van AND v_datum_tot GROUP BY rrr.res_rsv_ruimte_key, art.res_artikel_omschrijving) x LEFT JOIN (SELECT DISTINCT rrr.res_rsv_ruimte_key, reg.alg_regio_omschrijving regio, d.alg_district_omschrijving district, l.alg_locatie_omschrijving locatie FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_alg_ruimte rar, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district d, alg_regio reg WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_ruimte_key = rar.res_ruimte_key AND rar.alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND l.alg_district_key = d.alg_district_key AND d.alg_regio_key = reg.alg_regio_key) y ON x.res_rsv_ruimte_key = y.res_rsv_ruimte_key LEFT JOIN (SELECT rrr.res_rsv_ruimte_key, reg.alg_regio_omschrijving regio, d.alg_district_omschrijving district, l.alg_locatie_omschrijving locatie FROM res_v_aanwezigrsv_ruimte rrr, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_district d, alg_regio reg WHERE rrr.alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND l.alg_district_key = d.alg_district_key AND d.alg_regio_key = reg.alg_regio_key) z ON x.res_rsv_ruimte_key = z.res_rsv_ruimte_key ORDER BY 1, 2, 3, 4; END rap_cat_noshow_per_loc; PROCEDURE rap_bezreg_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT x.dienst, COALESCE (fo.aantal, 0) call_center, COALESCE (bo.aantal, 0) back_office, COALESCE (fe.aantal, 0) zelfservice, COALESCE (tot.aantal, 0) - (COALESCE (fo.aantal, 0) + COALESCE (bo.aantal, 0) + COALESCE (fe.aantal, 0)) onbekend FROM (SELECT afd.prs_afdeling_key, afd.prs_afdeling_omschrijving dienst FROM prs_afdeling afd WHERE afd.prs_afdeling_verwijder IS NULL AND afd.prs_afdeling_parentkey IS NULL AND afd.prs_afdeling_key <> 1) x LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (b.bez_bezoekers_key) aantal FROM bez_bezoekers b, bez_afspraak a, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE b.bez_afspraak_key = a.bez_afspraak_key AND a.bez_afspraak_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND a.bez_afspraak_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) tot ON x.prs_afdeling_key = tot.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (b.bez_bezoekers_key) aantal FROM bez_bezoekers b, bez_afspraak a, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE b.bez_afspraak_key = a.bez_afspraak_key AND a.bez_afspraak_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND a.prs_perslid_key IN (SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND a.bez_afspraak_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fo ON x.prs_afdeling_key = fo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (b.bez_bezoekers_key) aantal FROM bez_bezoekers b, bez_afspraak a, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE b.bez_afspraak_key = a.bez_afspraak_key AND a.bez_afspraak_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND a.prs_perslid_key IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key = 24 -- bezfof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND a.bez_afspraak_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) bo ON x.prs_afdeling_key = bo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (b.bez_bezoekers_key) aantal FROM bez_bezoekers b, bez_afspraak a, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE b.bez_afspraak_key = a.bez_afspraak_key AND a.bez_afspraak_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND a.prs_perslid_key IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg MINUS SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key = 24 -- bezfof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND a.bez_afspraak_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fe ON x.prs_afdeling_key = fe.prs_afdeling_key ORDER BY 1; END rap_bezreg_per_dienst; PROCEDURE rap_mldreg_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT x.dienst, COALESCE (fo.aantal, 0) call_center, COALESCE (bo.aantal, 0) back_office, COALESCE (fe.aantal, 0) zelfservice, COALESCE (tot.aantal, 0) - (COALESCE (fo.aantal, 0) + COALESCE (bo.aantal, 0) + COALESCE (fe.aantal, 0)) onbekend FROM (SELECT afd.prs_afdeling_key, afd.prs_afdeling_omschrijving dienst FROM prs_afdeling afd WHERE afd.prs_afdeling_verwijder IS NULL AND afd.prs_afdeling_parentkey IS NULL AND afd.prs_afdeling_key <> 1) x LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m, mld_stdmelding std, ins_tab_discipline td, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key IN (1, 3) AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) tot ON x.prs_afdeling_key = tot.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m, mld_stdmelding std, ins_tab_discipline td, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key IN (1, 3) AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) IN (SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fo ON x.prs_afdeling_key = fo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m, mld_stdmelding std, ins_tab_discipline td, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key IN (1, 3) AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (20, 27) -- mldfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) bo ON x.prs_afdeling_key = bo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m, mld_stdmelding std, ins_tab_discipline td, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key IN (1, 3) AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg MINUS SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (20, 27) -- mldfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fe ON x.prs_afdeling_key = fe.prs_afdeling_key ORDER BY 1; END rap_mldreg_per_dienst; PROCEDURE rap_mldreg_per_vakgrp (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT x.vakgroeptype, x.vakgroep, x.melding, COALESCE (fo.aantal, 0) call_center, COALESCE (bo.aantal, 0) back_office, COALESCE (fe.aantal, 0) zelfservice, COALESCE (tot.aantal, 0) - (COALESCE (fo.aantal, 0) + COALESCE (bo.aantal, 0) + COALESCE (fe.aantal, 0)) onbekend FROM (SELECT sm.mld_stdmelding_key, sd.ins_srtdiscipline_omschrijving vakgroeptype, td.ins_discipline_omschrijving vakgroep, sm.mld_stdmelding_omschrijving melding FROM mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd WHERE sm.mld_stdmelding_verwijder IS NULL AND sm.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_discipline_verwijder IS NULL AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sd.ins_srtdiscipline_key IN (1, 3)) x LEFT JOIN ( SELECT m.mld_stdmelding_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m WHERE m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY m.mld_stdmelding_key) tot ON x.mld_stdmelding_key = tot.mld_stdmelding_key LEFT JOIN ( SELECT m.mld_stdmelding_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m WHERE fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) IN (SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY m.mld_stdmelding_key) fo ON x.mld_stdmelding_key = fo.mld_stdmelding_key LEFT JOIN ( SELECT m.mld_stdmelding_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m WHERE fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (20, 27) -- mldfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY m.mld_stdmelding_key) bo ON x.mld_stdmelding_key = bo.mld_stdmelding_key LEFT JOIN ( SELECT m.mld_stdmelding_key, COUNT (m.mld_melding_key) aantal FROM mld_melding m WHERE fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg MINUS SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (20, 27) -- mldfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND m.mld_melding_datum BETWEEN v_datum_van AND v_datum_tot GROUP BY m.mld_stdmelding_key) fe ON x.mld_stdmelding_key = fe.mld_stdmelding_key ORDER BY 1, 2, 3; END rap_mldreg_per_vakgrp; PROCEDURE rap_resreg_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT x.dienst, COALESCE (fo.aantal, 0) call_center, COALESCE (bo.aantal, 0) back_office, COALESCE (fe.aantal, 0) zelfservice, COALESCE (tot.aantal, 0) - (COALESCE (fo.aantal, 0) + COALESCE (bo.aantal, 0) + COALESCE (fe.aantal, 0)) onbekend FROM (SELECT afd.prs_afdeling_key, afd.prs_afdeling_omschrijving dienst FROM prs_afdeling afd WHERE afd.prs_afdeling_verwijder IS NULL AND afd.prs_afdeling_parentkey IS NULL AND afd.prs_afdeling_key <> 1) x LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, res_reservering res, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_reservering_key = res.res_reservering_key AND r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) tot ON x.prs_afdeling_key = tot.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fo ON x.prs_afdeling_key = fo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (19, 26) -- resfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) bo ON x.prs_afdeling_key = bo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg MINUS SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (19, 26) -- resfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fe ON x.prs_afdeling_key = fe.prs_afdeling_key ORDER BY 1; END rap_resreg_per_dienst; PROCEDURE rap_resreg_op_aanmaak (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT x.dienst, COALESCE (fo.aantal, 0) call_center, COALESCE (bo.aantal, 0) back_office, COALESCE (fe.aantal, 0) zelfservice, COALESCE (tot.aantal, 0) - (COALESCE (fo.aantal, 0) + COALESCE (bo.aantal, 0) + COALESCE (fe.aantal, 0)) onbekend FROM (SELECT afd.prs_afdeling_key, afd.prs_afdeling_omschrijving dienst FROM prs_afdeling afd WHERE afd.prs_afdeling_verwijder IS NULL AND afd.prs_afdeling_parentkey IS NULL AND afd.prs_afdeling_key <> 1) x LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND r.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) tot ON x.prs_afdeling_key = tot.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fo ON x.prs_afdeling_key = fo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (19, 26) -- resfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) bo ON x.prs_afdeling_key = bo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg MINUS SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (19, 26) -- resfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_aanmaak BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fe ON x.prs_afdeling_key = fe.prs_afdeling_key ORDER BY 1; END rap_resreg_op_aanmaak; PROCEDURE rap_noshow_per_dienst (user_key IN NUMBER, p_datum_van IN VARCHAR2 -- Let wel: formaat '24-06-1965' , p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor ) AS v_datum_van DATE; v_datum_tot DATE; BEGIN v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); OPEN p_cursor FOR SELECT x.dienst, COALESCE (fo.aantal, 0) call_center, COALESCE (bo.aantal, 0) back_office, COALESCE (fe.aantal, 0) zelfservice, COALESCE (tot.aantal, 0) - (COALESCE (fo.aantal, 0) + COALESCE (bo.aantal, 0) + COALESCE (fe.aantal, 0)) onbekend FROM (SELECT afd.prs_afdeling_key, afd.prs_afdeling_omschrijving dienst FROM prs_afdeling afd WHERE afd.prs_afdeling_verwijder IS NULL AND afd.prs_afdeling_parentkey IS NULL AND afd.prs_afdeling_key <> 1) x LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE (r.res_rsv_ruimte_noshow = 1 or r.RES_RSV_RUIMTE_BEZOEKERS_SHOWN is not null) AND r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) tot ON x.prs_afdeling_key = tot.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE (r.res_rsv_ruimte_noshow = 1 or r.RES_RSV_RUIMTE_BEZOEKERS_SHOWN is not null) AND r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fo ON x.prs_afdeling_key = fo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE (r.res_rsv_ruimte_noshow = 1 or r.RES_RSV_RUIMTE_BEZOEKERS_SHOWN is not null) AND r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (19, 26) -- resfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) bo ON x.prs_afdeling_key = bo.prs_afdeling_key LEFT JOIN ( SELECT afd.prs_afdeling_key, COUNT (r.res_rsv_ruimte_key) aantal FROM res_v_aanwezigrsv_ruimte r, prs_perslid p, prs_v_afdeling_boom ab, prs_afdeling afd WHERE (r.res_rsv_ruimte_noshow = 1 or r.RES_RSV_RUIMTE_BEZOEKERS_SHOWN is not null) AND r.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = afd.prs_afdeling_key AND fac.gettrackinguserkey ('RESNEW', r.res_rsv_ruimte_key) IN (SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg MINUS SELECT gg.prs_perslid_key FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (19, 26) -- resfof/bof MINUS SELECT kl.prs_link_key FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL) AND r.res_rsv_ruimte_van BETWEEN v_datum_van AND v_datum_tot GROUP BY afd.prs_afdeling_key) fe ON x.prs_afdeling_key = fe.prs_afdeling_key ORDER BY 1; END rap_noshow_per_dienst; PROCEDURE cnd_accept_melding AS CURSOR c IS SELECT mld_melding_key, prs_perslid_key FROM mld_melding m, mld_stdmelding std, mld_discipline d WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = fac.getsetting ('cnd_gebreken_srtdisc_key') AND mld_melding_status = 2; v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN FOR rec IN c LOOP mld.setmeldingstatus (rec.mld_melding_key, 4, rec.prs_perslid_key, 0); cnd.process_mjb_score_effects (rec.mld_melding_key); END LOOP; 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.writelog ('DAILY-CND_ACCEPT_MLD', 'E', v_errormsg, ''); END cnd_accept_melding; END; / -- views ter ondersteuning aan Facilitor graphics CREATE OR REPLACE VIEW rwsn_v_label_ruimte_oms ( alg_ruimte_key, waarde ) AS SELECT r.alg_ruimte_key, alg_ruimte_omschrijving FROM alg_v_aanwezigruimte r; CREATE OR REPLACE FORCE VIEW rwsn_v_thema_ruimte_dienst ( alg_ruimte_key, waarde, waarde_key ) AS SELECT x.alg_ruimte_key, DECODE (y.aantal, NULL, '[Leegstand]', 1, SUBSTR (y.sp, 1, 60), 'Meer dan 1 dienst!'), DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL) FROM (SELECT r.alg_ruimte_key FROM alg_v_aanwezigruimte r) x LEFT JOIN (SELECT ra.alg_ruimte_key, MIN (a.prs_afdeling_naam1) sp, MIN (a.prs_afdeling_key) sp_key, COUNT (ra.prs_afdeling_key) aantal FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a WHERE ra.prs_afdeling_key = a.prs_afdeling_key AND a.niveau = 1 AND a.prs_afdeling_naam <> 'Onbekend' GROUP BY ra.alg_ruimte_key) y ON x.alg_ruimte_key = y.alg_ruimte_key UNION ALL SELECT NULL, substr(a.prs_afdeling_naam1,1,60), a.prs_afdeling_key FROM prs_v_aanwezigafdeling a WHERE NOT EXISTS (SELECT ra.prs_afdeling_key FROM prs_ruimteafdeling ra WHERE ra.prs_ruimteafdeling_verwijder IS NULL AND ra.prs_afdeling_key = a.prs_afdeling_key) AND niveau = 1 AND a.prs_afdeling_naam <> 'Onbekend'; CREATE OR REPLACE TRIGGER rwsn_t_thema_ruimte_die_i_iu INSTEAD OF INSERT OR UPDATE ON rwsn_v_thema_ruimte_dienst BEGIN IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)! THEN DELETE FROM prs_ruimteafdeling WHERE alg_ruimte_key = :new.alg_ruimte_key AND prs_afdeling_key <> :new.waarde_key; END IF; BEGIN IF :new.waarde_key <> -1 THEN INSERT INTO prs_ruimteafdeling ( alg_ruimte_key, prs_afdeling_key ) VALUES (:new.alg_ruimte_key, :new.waarde_key); END IF; EXCEPTION WHEN DUP_VAL_ON_INDEX -- was al aanwezig THEN NULL; END; END; / CREATE OR REPLACE VIEW rwsn_v_prj_thema_ruimte_dienst ( prj_ruimte_key, waarde, waarde_key ) AS SELECT x.prj_ruimte_key, DECODE (y.aantal, NULL, '[Leegstand]', 1, SUBSTR (y.sp, 1, 60), 'Meer dan 1 dienst!'), DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL) FROM (SELECT r.prj_ruimte_key FROM prj_ruimte r WHERE r.prj_ruimte_verwijder IS NULL) x LEFT JOIN (SELECT ra.prj_ruimte_key, MIN (a.prs_afdeling_naam1) sp, MIN (a.prs_afdeling_key) sp_key, COUNT (ra.prs_afdeling_key) aantal FROM prj_ruimteafdeling ra, prs_v_aanwezigafdeling a WHERE ra.prj_ruimteafdeling_verwijder IS NULL AND ra.prs_afdeling_key = a.prs_afdeling_key AND a.niveau = 1 AND a.prs_afdeling_naam <> 'Onbekend' GROUP BY ra.prj_ruimte_key) y ON x.prj_ruimte_key = y.prj_ruimte_key UNION ALL SELECT NULL, substr(a.prs_afdeling_naam1,1,60), a.prs_afdeling_key FROM prs_v_aanwezigafdeling a WHERE NOT EXISTS (SELECT ra.prs_afdeling_key FROM prj_ruimteafdeling ra WHERE ra.prj_ruimteafdeling_verwijder IS NULL AND ra.prs_afdeling_key = a.prs_afdeling_key) AND niveau=1 AND a.prs_afdeling_naam <> 'Onbekend'; CREATE OR REPLACE TRIGGER rwsn_t_prj_t_ruimte_die_i_iu INSTEAD OF INSERT OR UPDATE ON rwsn_v_prj_thema_ruimte_dienst BEGIN IF UPDATING -- oude logisch weggooien, dus géén DELETE! THEN UPDATE prj_ruimteafdeling SET prj_ruimteafdeling_verwijder = SYSDATE WHERE prj_ruimte_key = :new.prj_ruimte_key AND prs_afdeling_key <> :new.waarde_key; END IF; BEGIN IF :new.waarde_key <> -1 THEN UPDATE prj_ruimteafdeling SET prj_ruimteafdeling_verwijder = NULL WHERE prj_ruimte_key = :new.prj_ruimte_key AND prs_afdeling_key = :new.waarde_key; INSERT INTO prj_ruimteafdeling ( prj_ruimte_key, prs_afdeling_key ) VALUES (:new.prj_ruimte_key, :new.waarde_key); END IF; EXCEPTION WHEN DUP_VAL_ON_INDEX -- was al aanwezig THEN NULL; END; END; / CREATE OR REPLACE FORCE VIEW rwsn_v_thema_vloerafwerking ( alg_ruimte_key, waarde, waarde_key ) AS SELECT x.alg_ruimte_key, COALESCE (y.fac_usrdata_omschr, 'ONGEDEFINIEERD'), y.fac_usrdata_key FROM (SELECT r.alg_ruimte_key FROM alg_v_aanwezigruimte r) x LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key FROM alg_kenmerk k, alg_onrgoedkenmerk ok, fac_usrdata ud WHERE k.alg_kenmerk_key = 2 AND k.alg_kenmerk_key = ok.alg_kenmerk_key AND fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde ) = ud.fac_usrdata_key) y ON x.alg_ruimte_key = y.alg_onrgoed_key UNION ALL SELECT NULL, ud.fac_usrdata_omschr, ud.fac_usrdata_key FROM alg_kenmerk k, fac_kenmerkdomein rk, fac_usrdata ud WHERE k.alg_kenmerk_key = 2 AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key AND rk.fac_usrtab_key = ud.fac_usrtab_key; CREATE OR REPLACE TRIGGER rwsn_v_thema_vloerafw_i_iu INSTEAD OF INSERT OR UPDATE ON rwsn_v_thema_vloerafwerking BEGIN DELETE FROM alg_onrgoedkenmerk ok WHERE ok.alg_kenmerk_key = 2 AND ok.alg_onrgoed_key = :new.alg_ruimte_key; IF :new.waarde_key IS NOT NULL THEN INSERT INTO alg_onrgoedkenmerk ok (ok.alg_kenmerk_key, ok.alg_onrgoed_niveau, ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde) VALUES ( 2, 'R', :new.alg_ruimte_key, :new.waarde_key); END IF; EXCEPTION WHEN OTHERS THEN NULL; END; / /* Formatted on 26-11-2010 15:28:52 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_label_ruimtefunctie ( alg_ruimte_key, waarde ) AS SELECT r.alg_ruimte_key, COALESCE (sr.alg_srtruimte_omschrijving, 'ONGEDEFINIEERD') FROM alg_v_aanwezigruimte r, alg_srtruimte sr WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+); /* Formatted on 26-11-2010 15:28:52 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_thema_ruimtefunctie ( alg_ruimte_key, waarde, waarde_key ) AS SELECT r.alg_ruimte_key, COALESCE (sr.alg_srtruimte_omschrijving, 'ONGEDEFINIEERD'), r.alg_srtruimte_key FROM alg_v_aanwezigruimte r, alg_srtruimte sr WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+) UNION ALL SELECT NULL, sr.alg_srtruimte_omschrijving, sr.alg_srtruimte_key FROM alg_v_aanwezigsrtruimte sr WHERE NOT EXISTS (SELECT 1 FROM alg_v_aanwezigruimte r WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key); CREATE OR REPLACE TRIGGER rwsn_t_thema_rfunctie_i_iu INSTEAD OF INSERT OR UPDATE ON rwsn_v_thema_ruimtefunctie DECLARE v_count NUMBER; BEGIN IF :new.waarde_key IS NOT NULL THEN UPDATE alg_ruimte r SET r.alg_srtruimte_key = :new.waarde_key WHERE r.alg_ruimte_key = :new.alg_ruimte_key; -- Soort ruimte auto-aanpassen adhv. gekozen Ruimtefunctie??? DELETE FROM alg_onrgoedkenmerk ok WHERE ok.alg_kenmerk_key = 1042 -- Soort ruimte kenmerk AND ok.alg_onrgoed_key = :new.alg_ruimte_key; SELECT COUNT ( * ) INTO v_count FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 511 -- Mapping tabel AND fac_usrdata_code = TO_CHAR (:new.waarde_key) AND fac_usrdata_omschr IS NOT NULL; -- ??? IF v_count = 1 THEN INSERT INTO alg_onrgoedkenmerk ok ( ok.alg_kenmerk_key, ok.alg_onrgoed_niveau, ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde ) VALUES ( 1042, -- Soort ruimte kenmerk 'R', :new.alg_ruimte_key, (SELECT fac_usrdata_omschr FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 511 -- Mapping tabel AND fac_usrdata_code = TO_CHAR (:new.waarde_key)) ); END IF; END IF; EXCEPTION WHEN OTHERS THEN NULL; END; / /* Formatted on 26-11-2010 16:12:56 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_label_ruimtesoort ( alg_ruimte_key, waarde ) AS SELECT x.alg_ruimte_key, COALESCE (y.fac_usrdata_omschr, 'ONGEDEFINIEERD') FROM (SELECT r.alg_ruimte_key FROM alg_v_aanwezigruimte r) x LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud WHERE ok.alg_kenmerk_key = 1042 -- Soort ruimte kenmerk AND fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde ) = ud.fac_usrdata_key) y ON x.alg_ruimte_key = y.alg_onrgoed_key; /* Formatted on 26-11-2010 16:12:56 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_thema_ruimtesoort ( alg_ruimte_key, waarde ) AS SELECT x.alg_ruimte_key, COALESCE (y.fac_usrdata_omschr, 'ONGEDEFINIEERD') FROM (SELECT r.alg_ruimte_key FROM alg_v_aanwezigruimte r) x LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud WHERE ok.alg_kenmerk_key = 1042 -- Soort ruimte kenmerk AND fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde ) = ud.fac_usrdata_key) y ON x.alg_ruimte_key = y.alg_onrgoed_key; -- Presenteert de mismatch tussen Ruimtefunctie en Soort ruimte, die via -- Eigen tabel 511 aan elkaar gerelateerd zijn (RWSN#19177) /* Formatted on 2-12-2010 16:42:30 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_ruimte_fs_mismatch ( ruimte, ruimteomschrijving, fclt_f_ruimtefunctie, fclt_f_is, fclt_f_moet_zijn -- fclt_3d_locatie_key ) AS SELECT a.ruimte, a.ruimteomschrijving, a.ruimtefunctie, b.isruimtesoort, c.moetzijnruimtesoort FROM (SELECT r.alg_ruimte_key, p.alg_plaatsaanduiding ruimte, alg_ruimte_omschrijving ruimteomschrijving, sr.alg_srtruimte_omschrijving ruimtefunctie -- g.alg_locatie_key fclt_3d_locatie_key FROM alg_v_aanwezigruimte r, alg_srtruimte sr, -- alg_verdieping v, -- alg_gebouw g, alg_v_plaatsaanduiding p WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+) -- AND r.alg_verdieping_key = v.alg_verdieping_key -- AND v.alg_gebouw_key = g.alg_gebouw_key AND r.alg_ruimte_key = p.alg_onroerendgoed_keys AND p.alg_onroerendgoed_type = 'R') a LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr isruimtesoort FROM alg_v_aanwezigonrgoedkenmerk ok, fac_usrdata ud WHERE ok.alg_kenmerk_key = 1042 -- Soort ruimte AND ok.alg_onrgoed_niveau = 'R' AND ud.fac_usrtab_key = 281 -- Soort ruimte tabel AND ud.fac_usrdata_key = -- Is! fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde )) b ON a.alg_ruimte_key = b.alg_onrgoed_key LEFT JOIN (SELECT r.alg_ruimte_key, ud2.fac_usrdata_omschr moetzijnruimtesoort FROM alg_v_aanwezigruimte r, fac_usrdata ud1, fac_usrdata ud2 WHERE ud1.fac_usrtab_key = 511 -- Ruimtefunctie/soort AND r.alg_srtruimte_key = fac.safe_to_number (ud1.fac_usrdata_code) AND ud2.fac_usrtab_key = 281 -- Soort ruimte tabel AND ud2.fac_usrdata_key = -- Moet zijn! fac.safe_to_number (ud1.fac_usrdata_omschr)) c ON a.alg_ruimte_key = c.alg_ruimte_key WHERE b.isruimtesoort IS NULL OR c.moetzijnruimtesoort IS NULL OR b.isruimtesoort != c.moetzijnruimtesoort; -- view to display the reservation data on the infobord. CREATE OR REPLACE VIEW rwsn_v_rap_infobord AS SELECT aktief, offset, dag, tijd_van, tijd_tot, ruimte, catalogus, aanvrager, gastheer, omschrijving, status, locatie_code, gebouw_code, verdieping_code, locatie_omschrijving, gebouw_omschrijving, verdieping_omschrijving, alg_locatie_key, alg_gebouw_key, alg_verdieping_key, alg_onrgoedkenmerk_waarde regels FROM res_v_rap_infobord i, (SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde FROM alg_onrgoedkenmerk ogk WHERE alg_onrgoed_niveau = 'G' AND alg_kenmerk_key = 1020) ogk WHERE i.alg_gebouw_key = ogk.alg_onrgoed_key(+); CREATE OR REPLACE VIEW rwsn_v_rap_meldersnietinidm AS SELECT km4.mld_kenmerkmelding_waarde fclt_f_saphrnr, km1.mld_kenmerkmelding_waarde naam, TO_CHAR (m.mld_melding_datum, 'YYYYMMDD') fclt_f_datum FROM mld_melding m, mld_kenmerkmelding km1, mld_kenmerkmelding km4 WHERE EXISTS (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_link_key = m.prs_perslid_key AND prs_kenmerk_key = 1160) AND m.mld_melding_key = km1.mld_melding_key AND EXISTS -- 18='NAAM AANVRAGER' (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = km1.mld_kenmerk_key AND mld_srtkenmerk_key = 18) AND m.mld_melding_key = km4.mld_melding_key AND EXISTS -- 21='SAP NUMMER (ALS INTERN)' (SELECT 1 FROM mld_kenmerk WHERE mld_kenmerk_key = km4.mld_kenmerk_key AND mld_srtkenmerk_key = 21); /* Formatted on 30-11-2010 11:40:10 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_doorlooptijd ( vakgroep, kwisg, mld_melding_datum, mld_melding_afgemeld, sla_norm, n, a, a0, a1, a2, a3, t, t0, t1, t2, t3, g, g0, g1, g2, g3, status, zelfservice, zelfafgemeld, onderdeel, dienst, bulki, lsu, locatiecode ) AS SELECT vakgroep_oms, stdmld_groep, mld_begin_date, mld_eind_date, mld_sla, 1 n, DECODE (status, 'a', 1, 0) a, DECODE (status, 'a', DECODE (doorloop, 0, 1, 0), 0) a0, DECODE (status, 'a', DECODE (doorloop, 1, 1, 0), 0) a1, DECODE (status, 'a', DECODE (doorloop, 2, 1, 0), 0) a2, DECODE (status, 'a', DECODE (doorloop, 3, 1, 0), 0) a3, DECODE (status, 't', 1, 0) t, DECODE (status, 't', DECODE (doorloop, 0, 1, 0), 0) t0, DECODE (status, 't', DECODE (doorloop, 1, 1, 0), 0) t1, DECODE (status, 't', DECODE (doorloop, 2, 1, 0), 0) t2, DECODE (status, 't', DECODE (doorloop, 3, 1, 0), 0) t3, DECODE (status, 'g', 1, 0) g, DECODE (status, 'g', DECODE (doorloop, 0, 1, 0), 0) g0, DECODE (status, 'g', DECODE (doorloop, 1, 1, 0), 0) g1, DECODE (status, 'g', DECODE (doorloop, 2, 1, 0), 0) g2, DECODE (status, 'g', DECODE (doorloop, 3, 1, 0), 0) g3, status, zelfservice, zelfafgemeld, onderdeel, dienst, COALESCE (fac.safe_to_number (bulki), 1) bulki, lsu, locatiecode FROM (SELECT mld_key, vakgroep_oms, stdmld_groep, mld_begin_date, COALESCE (mldrej_date, mldafm_date, SYSDATE) mld_eind_date, mld_sla, DECODE (mld_status_key, 1, 'a', 5, 'a', 6, 'a', 7, 'g', 't') status, sla_doorloop doorloop, -- LET OP: sla_doorloop!!! DECODE (melder_userkey, mldnew_userkey, 1, 0) zelfservice, DECODE (mldafm_userkey, mldnew_userkey, 1, 0) zelfafgemeld, onderdeel, dienst, lsu, locatiecode FROM rwsn_mld_freeze WHERE vakgroeptype_key IN (1, 3)) mset LEFT JOIN (SELECT km.mld_melding_key mld_key, km.mld_kenmerkmelding_waarde bulki FROM mld_kenmerk k, mld_kenmerkmelding km WHERE k.mld_srtkenmerk_key = 61 AND k.mld_kenmerk_key = km.mld_kenmerk_key) kset ON mset.mld_key = kset.mld_key; -- Doorlooptijd tov. de Geplande einddatum; bijna kopie van bovenstaande!!! /* Formatted on 30-11-2010 11:40:10 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_planlooptijd ( vakgroep, kwisg, mld_melding_datum, mld_melding_afgemeld, sla_norm, n, a, a0, a1, a2, a3, t, t0, t1, t2, t3, g, g0, g1, g2, g3, status, zelfservice, zelfafgemeld, onderdeel, dienst, bulki, lsu ) AS SELECT vakgroep_oms, stdmld_groep, mld_begin_date, mld_eind_date, mld_sla, 1 n, DECODE (status, 'a', 1, 0) a, DECODE (status, 'a', DECODE (doorloop, 0, 1, 0), 0) a0, DECODE (status, 'a', DECODE (doorloop, 1, 1, 0), 0) a1, DECODE (status, 'a', DECODE (doorloop, 2, 1, 0), 0) a2, DECODE (status, 'a', DECODE (doorloop, 3, 1, 0), 0) a3, DECODE (status, 't', 1, 0) t, DECODE (status, 't', DECODE (doorloop, 0, 1, 0), 0) t0, DECODE (status, 't', DECODE (doorloop, 1, 1, 0), 0) t1, DECODE (status, 't', DECODE (doorloop, 2, 1, 0), 0) t2, DECODE (status, 't', DECODE (doorloop, 3, 1, 0), 0) t3, DECODE (status, 'g', 1, 0) g, DECODE (status, 'g', DECODE (doorloop, 0, 1, 0), 0) g0, DECODE (status, 'g', DECODE (doorloop, 1, 1, 0), 0) g1, DECODE (status, 'g', DECODE (doorloop, 2, 1, 0), 0) g2, DECODE (status, 'g', DECODE (doorloop, 3, 1, 0), 0) g3, status, zelfservice, zelfafgemeld, onderdeel, dienst, COALESCE (fac.safe_to_number (bulki), 1) bulki, lsu FROM (SELECT mld_key, vakgroep_oms, stdmld_groep, mld_begin_date, COALESCE (mldrej_date, mldafm_date, SYSDATE) mld_eind_date, mld_sla, DECODE (mld_status_key, 1, 'a', 5, 'a', 6, 'a', 7, 'g', 't') status, plan_doorloop doorloop, -- LET OP: plan_doorloop!!! DECODE (melder_userkey, mldnew_userkey, 1, 0) zelfservice, DECODE (mldafm_userkey, mldnew_userkey, 1, 0) zelfafgemeld, onderdeel, dienst, lsu FROM rwsn_mld_freeze WHERE vakgroeptype_key IN (1, 3)) mset LEFT JOIN (SELECT km.mld_melding_key mld_key, km.mld_kenmerkmelding_waarde bulki FROM mld_kenmerk k, mld_kenmerkmelding km WHERE k.mld_srtkenmerk_key = 61 AND k.mld_kenmerk_key = km.mld_kenmerk_key) kset ON mset.mld_key = kset.mld_key; /* Formatted on 1-12-2010 17:55:05 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_opl_mld_detail ( datum, eenheid, onderdeel, norm_eenheid, norm_onderdeel, norm_totaal, tot, optijd, jan_optijd, jan, feb_optijd, feb, maa_optijd, maa, apr_optijd, apr, mei_optijd, mei, jun_optijd, jun, jul_optijd, jul, aug_optijd, aug, sep_optijd, sep, okt_optijd, okt, nov_optijd, nov, dec_optijd, dec ) AS SELECT afmeld_datum, eenheid, onderdeel, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrtab_key = (SELECT fac_usrtab_key FROM fac_usrtab WHERE fac_usrtab_naam = 'Norm rap acc') AND fac_usrdata_code = UPPER (eenheid)) norm_eenheid, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrtab_key = (SELECT fac_usrtab_key FROM fac_usrtab WHERE fac_usrtab_naam = 'Norm rap acc') AND fac_usrdata_code = UPPER (onderdeel)) norm_onderdeel, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrtab_key = (SELECT fac_usrtab_key FROM fac_usrtab WHERE fac_usrtab_naam = 'Norm rap acc') AND UPPER (fac_usrdata_code) = 'TOTAAL') norm_totaal, 1 tot, optijd, DECODE (maand, '01', optijd, 0) jan_optijd, DECODE (maand, '01', 1, 0) jan, DECODE (maand, '02', optijd, 0) feb_optijd, DECODE (maand, '02', 1, 0) feb, DECODE (maand, '03', optijd, 0) maa_optijd, DECODE (maand, '03', 1, 0) maa, DECODE (maand, '04', optijd, 0) apr_optijd, DECODE (maand, '04', 1, 0) apr, DECODE (maand, '05', optijd, 0) mei_optijd, DECODE (maand, '05', 1, 0) mei, DECODE (maand, '06', optijd, 0) jun_optijd, DECODE (maand, '06', 1, 0) jun, DECODE (maand, '07', optijd, 0) jul_optijd, DECODE (maand, '07', 1, 0) jul, DECODE (maand, '08', optijd, 0) aug_optijd, DECODE (maand, '08', 1, 0) aug, DECODE (maand, '09', optijd, 0) sep_optijd, DECODE (maand, '09', 1, 0) sep, DECODE (maand, '10', optijd, 0) okt_optijd, DECODE (maand, '10', 1, 0) okt, DECODE (maand, '11', optijd, 0) nov_optijd, DECODE (maand, '11', 1, 0) nov, DECODE (maand, '12', optijd, 0) dec_optijd, DECODE (maand, '12', 1, 0) dec FROM (SELECT COALESCE (m.mldafm_date, m.mldrej_date) afmeld_datum, SUBSTR (g.fac_groep_omschrijving, 4, 30) eenheid, SUBSTR (g.fac_groep_omschrijving, 4, INSTR (g.fac_groep_omschrijving, '-') - 4) onderdeel, DECODE (m.sla_doorloop, 0, 1, 0) optijd, TO_CHAR (COALESCE (m.mldafm_date, m.mldrej_date), 'mm') maand FROM fac_groep g, fac_groeprechten gr, rwsn_mld_freeze m WHERE SUBSTR (g.fac_groep_omschrijving, 1, 3) = 'GM_' AND g.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key = 27 AND gr.ins_discipline_key = m.vakgroep_key); CREATE OR REPLACE VIEW rwsn_v_rap_meldbron ( mld_melding_datum, jaar, week, maand, brief, email, fax, import, internet, mondeling, telefoon, systeem, formulier, onbekend, totaal, ins_srtdiscipline_key ) AS SELECT mld_melding_datum, TO_CHAR (mld_melding_datum, 'yyyy') jaar, TO_CHAR (mld_melding_datum, 'iw') week, TO_CHAR (mld_melding_datum, 'mm') maand, DECODE (mk.mld_meldbron_omschrijving, 'Brief', 1, 0) brief, DECODE (mk.mld_meldbron_omschrijving, 'E-mail', 1, 0) email, DECODE (mk.mld_meldbron_omschrijving, 'Fax', 1, 0) fax, DECODE (mk.mld_meldbron_omschrijving, 'Import', 1, 0) import, DECODE (mk.mld_meldbron_omschrijving, 'Internet', 1, 0) internet, DECODE (mk.mld_meldbron_omschrijving, 'Mondeling', 1, 0) mondeling, DECODE (mk.mld_meldbron_omschrijving, 'Telefoon', 1, 0) telefoon, DECODE (mk.mld_meldbron_omschrijving, 'System', 1, 0) systeem, DECODE (mk.mld_meldbron_omschrijving, 'Intakeformulier', 1, 0) formulier, DECODE (mk.mld_meldbron_omschrijving, 'Onbekend', 1, 0) + DECODE (mk.mld_melding_key, null, 1, 0) onbekend, 1 totaal, d.ins_srtdiscipline_key ins_srtdiscipline_key FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, (SELECT km.mld_melding_key, mb.mld_meldbron_omschrijving FROM mld_kenmerk k, mld_kenmerkmelding km, mld_meldbron mb WHERE mld_srtkenmerk_key = 2 AND km.mld_kenmerk_key = k.mld_kenmerk_key AND fac.safe_to_number (mld_kenmerkmelding_waarde) = mb.mld_meldbron_key) mk WHERE m.mld_melding_key = mk.mld_melding_key(+) AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key; -- basis view voor de kto rapportage. We zoeken alle kenmerken er bij. -- ins_srtdiscipline_key = 2 is de key van de KTO srtdiscipline -- de kenmerkkeys zijn van de scores en opmerkingen horende bij de kto -- en wel voor iedere type kto (kcc/fcc/fcc_res) CREATE OR REPLACE VIEW rwsn_v_kto_basic ( cijfer1, cijfer2, cijfer3, cijfer4, cijfer5, opm1, opm2, opm3, opm4, opm5, mld_stdmelding_omschrijving, prs_perslid_key, dienst, mld_melding_omschrijving, res_rsv_ruimte_key, mld_melding_key, kto_prefix, kto_key, mld_melding_datum ) AS select coalesce( coalesce ( (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3037) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3038)) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3036)) cijfer1 ,coalesce( coalesce ( (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3040) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3041)) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3039)) cijfer2 ,coalesce( coalesce ( (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3042) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3043)) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3044)) cijfer3 ,coalesce( coalesce ( (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3095) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3089)) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3091)) cijfer4 ,coalesce( coalesce ( (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3096) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3088)) , (select fac.safe_to_number(fac_usrdata_code) from mld_kenmerkmelding km, fac_usrdata ud where fac.safe_to_number(mld_kenmerkmelding_waarde) = ud.fac_usrdata_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3092)) cijfer5 ,coalesce( coalesce ( (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3045) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3046)) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3047)) opm1 ,coalesce( coalesce ( (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3048) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3049)) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3050)) opm2 ,coalesce( coalesce ( (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3051) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3052)) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3053)) opm3 ,coalesce( coalesce ( (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3097) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3089)) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3093)) opm4 ,coalesce( coalesce ( (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3098) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3090)) , (select replace(mld_kenmerkmelding_waarde,k.mld_kenmerk_default,'') from mld_kenmerkmelding km, mld_kenmerk k where km.mld_kenmerk_key = k.mld_kenmerk_key and km.mld_melding_key = m.mld_key and km.mld_kenmerk_key = 3094)) opm5, m.stdmld_oms, m.melder_userkey, m.dienst, m.mld_oms, DECODE (m.stdmld_key, 2001, fac.safe_to_number (SUBSTR (LTRIM (m.mld_oms), 15, 30)), NULL) res_rsv_ruimte_key, DECODE (m.stdmld_key, 2001, NULL, fac.safe_to_number (SUBSTR (LTRIM (m.mld_oms), 11, 30))) mld_melding_key, m.vakgroeptype_prefix kto_prefix, m.mld_key kto_key, m.mld_begin_date mld_melding_datum FROM rwsn_mld_freeze m WHERE m.vakgroeptype_key = 2; --AND m.mld_begin_date > TO_DATE ('20100301', 'yyyymmdd'); -- standaard rapportage tbv KTOs /* Formatted on 31-5-2013 13:50:42 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_kto ( ontvangst_datum, fclt_d_datum, fclt_f_kto, fclt_f_dienst, fclt_f_regio, fclt_f_district, kto_nr, service, vakgroep, locatie, kto_cluster, cijfer1, cijfer2, cijfer3, cijfer4, cijfer5, gem, opm1, opm2, opm3, opm4, opm5, ontvangen, verzonden, eenheid, sd_prefix, mld_melding_key, responsetijd, stdmld_oms, mldnew_date, mldafm_date, mldafm_sla, mldafm_days, mldacp_sla, mldacp_days, mldafm_user, fclt_f_fo_bo, afdeling ) AS SELECT kto.mld_melding_datum, TO_CHAR (kto.mld_melding_datum, 'dd-mm-yyyy'), kto.mld_stdmelding_omschrijving, DECODE (p.prs_perslid_upper, 'EXTERN', 'EXTERN', kto.dienst) dienst, r.alg_regio_omschrijving regio, di.alg_district_omschrijving district, kto.kto_prefix || kto.kto_key kto_key, --COALESCE ( -- (SELECT ins_srtdiscipline_prefix || m.mld_melding_key -- FROM mld_melding m, -- mld_stdmelding std, -- ins_tab_discipline d, -- ins_srtdiscipline sd -- WHERE m.mld_stdmelding_key = std.mld_stdmelding_key -- AND std.mld_ins_discipline_key = d.ins_discipline_key -- AND d.ins_srtdiscipline_key = -- sd.ins_srtdiscipline_key -- AND m.mld_melding_key = mld_service_key), -- (SELECT rrr.res_reservering_key -- || '/' -- || res_rsv_ruimte_volgnr -- FROM res_rsv_ruimte rrr -- WHERE rrr.res_rsv_ruimte_key = kto.res_service_key) --) -- service, f.vakgroeptype_prefix || f.mld_key service, f.vakgroep_oms vakgroep, --d.ins_discipline_omschrijving vakgroep, l.alg_locatie_omschrijving locatie, (SELECT prs_kostensoort_oms FROM prs_kostensoort ks WHERE d.prs_kostensoort_key = ks.prs_kostensoort_key) kto_cluster, cijfer1, cijfer2, cijfer3, cijfer4, cijfer5, DECODE ( DECODE (cijfer1, NULL, 0, 1) + DECODE (cijfer2, NULL, 0, 1) + DECODE (cijfer3, NULL, 0, 1) + DECODE (cijfer4, NULL, 0, 1) + DECODE (cijfer5, NULL, 0, 1), 0, TO_NUMBER (NULL), ROUND ( ( DECODE (cijfer1, NULL, 0, cijfer1) + DECODE (cijfer2, NULL, 0, cijfer2) + DECODE (cijfer3, NULL, 0, cijfer3) + DECODE (cijfer4, NULL, 0, cijfer4) + DECODE (cijfer5, NULL, 0, cijfer5)) / ( DECODE (cijfer1, NULL, 0, 1) + DECODE (cijfer2, NULL, 0, 1) + DECODE (cijfer3, NULL, 0, 1) + DECODE (cijfer4, NULL, 0, 1) + DECODE (cijfer5, NULL, 0, 1)), 2 ) ) --ROUND ( -- ( DECODE (cijfer1, NULL, 0, cijfer1) -- + DECODE (cijfer2, NULL, 0, cijfer2) -- + DECODE (cijfer3, NULL, 0, cijfer3) -- + DECODE (cijfer4, NULL, 0, cijfer4) -- + DECODE (cijfer5, NULL, 0, cijfer5)) -- / ( DECODE (cijfer1, NULL, 0, 1) -- + DECODE (cijfer2, NULL, 0, 1) -- + DECODE (cijfer3, NULL, 0, 1) -- + DECODE (cijfer4, NULL, 0, 1) -- + DECODE (cijfer5, NULL, 0, 1) -- + 0.000001), -- 2 --) gem, opm1, opm2, opm3, opm4, opm5, DECODE (kto.kto_key, NULL, 0, 1) ontvangen, 1 verzonden, DECODE (kto.kto_key, NULL, NULL, rwsn.afgehandelddoor (kto.mld_melding_key)) short, f.vakgroeptype_prefix sd_prefix, --sd.ins_srtdiscipline_omschrijving sd_prefix, kto.mld_melding_key, ROUND (kto.mld_melding_datum - kto.kto_datum) responsetijd, f.stdmld_oms, TO_CHAR (f.mldnew_date, 'dd-mm-yyyy hh24:mi:ss') mldnew_date, TO_CHAR (f.mldafm_date, 'dd-mm-yyyy hh24:mi:ss') mldafm_date, sm.mld_stdmelding_t_accepttijd.tijdsduur afmsla, DECODE ( COALESCE (f.mldrej_date, f.mldafm_date), NULL, NULL, fac.count_work_days (f.mldnew_date, COALESCE (f.mldrej_date, f.mldafm_date)) ) afmtijd, f.mld_sla acpsla, DECODE (f.mldacp_date, NULL, NULL, fac.count_work_days (f.mldnew_date, f.mldacp_date)) acptijd, p_afm.prs_perslid_naam_full mldafm_user, COALESCE ( (SELECT 'Callcenter' FROM prs_v_aanwezigkenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL AND kl.prs_link_key = f.mldafm_userkey), DECODE ( (SELECT COUNT ( * ) FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (20, 27) -- mldfof/bof AND gg.prs_perslid_key = f.mldafm_userkey), 0, NULL, 'Backoffice' ), 'Onbekend' ) fo_bo, a.prs_afdeling_omschrijving afd FROM (--SELECT * -- FROM rwsn_v_kto_basic kto_r, -- (SELECT res.res_rsv_ruimte_key res_service_key, -- NULL mld_service_key, -- res.res_discipline_key discipline_key, -- res.kto_datum, -- g.alg_locatie_key alg_locatie_key -- FROM alg_gebouw g, -- alg_verdieping v, -- alg_ruimte r, -- ( SELECT r2a.res_rsv_ruimte_key, -- fac.safe_to_date ( -- kw.res_kenmerkreservering_waarde, -- 'dd-mm-yyyy hh24:mi' -- ) -- kto_datum, -- MAX (alg_ruimte_key) alg_ruimte_key, -- MAX (res_discipline_key) -- res_discipline_key -- FROM res_v_rsv_ruimte_2_alg_ruimte r2a, -- res_ruimte rr, -- res_kenmerkwaarde kw, -- res_kenmerk k -- WHERE r2a.res_ruimte_key = -- rr.res_ruimte_key -- AND r2a.res_rsv_ruimte_key = -- kw.res_rsv_ruimte_key -- AND kw.res_kenmerk_key = -- k.res_kenmerk_key -- AND k.res_srtkenmerk_key = 22 -- GROUP BY r2a.res_rsv_ruimte_key, -- kw.res_kenmerkreservering_waarde -- UNION ALL -- SELECT rrr.res_rsv_ruimte_key, -- fac.safe_to_date ( -- kw.res_kenmerkreservering_waarde, -- 'dd-mm-yyyy hh24:mi' -- ) -- kto_datum, -- alg_ruimte_key, -- NULL -- FROM res_rsv_ruimte rrr, -- res_kenmerkwaarde kw, -- res_kenmerk k -- WHERE rrr.alg_ruimte_key IS NOT NULL -- AND rrr.res_rsv_ruimte_key = -- kw.res_rsv_ruimte_key -- AND kw.res_kenmerk_key = -- k.res_kenmerk_key -- AND k.res_srtkenmerk_key = 22) res -- WHERE res.alg_ruimte_key = r.alg_ruimte_key -- AND r.alg_verdieping_key = -- v.alg_verdieping_key -- AND v.alg_gebouw_key = g.alg_gebouw_key) -- res_loc -- WHERE kto_r.res_rsv_ruimte_key = res_loc.res_service_key --UNION ALL SELECT * FROM rwsn_v_kto_basic kto_m, ( SELECT NULL res_service_key, m.mld_melding_key mld_service_key, fac.safe_to_date ( km.mld_kenmerkmelding_waarde, 'dd-mm-yyyy hh24:mi' ) kto_datum, COALESCE ( m.mld_alg_locatie_key, DECODE (COUNT (wpg.prs_werkplek_key), 1, MIN (wpg.alg_locatie_key), 82) -- Utrecht - Westraven ) alg_locatie_key FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k, prs_v_werkplekperslid_gegevens wpg WHERE m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 121 AND m.prs_perslid_key = wpg.prs_perslid_key(+) GROUP BY m.mld_melding_key, km.mld_kenmerkmelding_waarde, m.mld_alg_locatie_key) mld_loc WHERE kto_m.mld_melding_key = mld_loc.mld_service_key) kto, alg_locatie l, alg_district di, alg_regio r, prs_perslid p, prs_afdeling a, rwsn_mld_freeze f, ins_tab_discipline d, mld_stdmelding sm, prs_v_perslid_fullnames_all p_afm WHERE kto.alg_locatie_key = l.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND di.alg_regio_key = r.alg_regio_key AND kto.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND kto.mld_melding_key = f.mld_key AND f.vakgroep_key = d.ins_discipline_key AND f.stdmld_key = sm.mld_stdmelding_key AND f.mldafm_userkey = p_afm.prs_perslid_key; /* Formatted on 7-11-2013 11:54:48 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_melding_overzicht ( melding, fclt_f_categorie, productgroep_omschrijving, aardmelding, fclt_f_kwisg, fclt_d_melddatum, week, doorlooptijd, werkelijke_einddatum, melder, status, dienst, groep, beschrijving, antwoord, medewerker ) AS SELECT TO_CHAR (m.mld_key), sd.ins_srtdiscipline_omschrijving, m.vakgroep_oms, m.stdmld_oms, m.stdmld_groep kwisg, TO_CHAR (m.mld_begin_date, 'dd-mm-yyyy'), TO_CHAR (m.mld_begin_date, 'ww') week, DECODE (sm.mld_stdmelding_planbaar, 1, 'Planbaar', TO_CHAR (sm.mld_stdmelding_t_uitvoertijd.tijdsduur) || sm.mld_stdmelding_t_uitvoertijd.eenheid) uitvoertijd, m.mldafm_date einddatum, pf1.prs_perslid_naam_full melder, (SELECT mld_statuses_omschrijving FROM mld_statuses st WHERE st.mld_statuses_key = m.mld_status_key) status, m.dienst dienst, gr.fac_groep_omschrijving groep, m.mld_oms omschrijving, m.mld_opm opmerking, pf2.prs_perslid_naam_full kccmedewerker FROM rwsn_mld_freeze m, ins_srtdiscipline sd, mld_stdmelding sm, prs_v_perslid_fullnames pf1, prs_v_perslid_fullnames pf2, ( SELECT gr.ins_discipline_key, MAX (UPPER (SUBSTR (g.fac_groep_omschrijving, 4))) fac_groep_omschrijving FROM fac_groeprechten gr, fac_groep g WHERE gr.fac_functie_key = 27 AND gr.fac_groep_key = g.fac_groep_key AND g.fac_groep_omschrijving LIKE 'GM_%' GROUP BY gr.ins_discipline_key) gr WHERE m.vakgroeptype_key = sd.ins_srtdiscipline_key AND m.stdmld_key = sm.mld_stdmelding_key AND m.melder_userkey = pf1.prs_perslid_key AND m.mldnew_userkey = pf2.prs_perslid_key AND m.vakgroep_key = gr.ins_discipline_key(+) AND m.vakgroeptype_key IN (1, 3); -- RWSN#19211 /* Formatted on 16-12-2010 17:07:01 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_mld_afhandeling ( fclt_d_afmelddatum, fclt_f_categorie, nummer, aanmaakdatum, omschrijving, melder, dienst, afdeling, kostenplaats, status, fclt_f_fo_bo, afhandelaar ) AS SELECT TO_CHAR (f.mldafm_date, 'dd-mm-yyyy'), f.vakgroep_oms, TO_CHAR (f.mld_key), f.mldnew_date, f.mld_oms, melder.prs_perslid_naam_full, f.dienst, a.prs_afdeling_omschrijving, kp.prs_kostenplaats_omschrijving, s.mld_statuses_omschrijving, COALESCE ( (SELECT 'Callcenter' FROM prs_v_aanwezigkenmerklink kl WHERE kl.prs_kenmerk_key = 1060 -- front-office AND kl.prs_kenmerklink_waarde IS NOT NULL AND kl.prs_link_key = f.mldafm_userkey), DECODE ( (SELECT COUNT ( * ) FROM fac_gebruikersgroep gg, fac_groeprechten gr WHERE gg.fac_groep_key = gr.fac_groep_key AND gr.fac_functie_key IN (20, 27) -- mldfof/bof AND gg.prs_perslid_key = f.mldafm_userkey), 0, NULL, 'Backoffice' ), 'Onbekend' ), afhandelaar.prs_perslid_naam_full FROM rwsn_mld_freeze f, mld_statuses s, prs_perslid p, prs_afdeling a, prs_kostenplaats kp, prs_v_perslid_fullnames_all melder, prs_v_perslid_fullnames_all afhandelaar WHERE f.mld_status_key = s.mld_statuses_key AND f.melder_userkey = p.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND f.melder_userkey = melder.prs_perslid_key AND f.mldafm_userkey = afhandelaar.prs_perslid_key(+); /* Formatted on 23-7-2010 12:55:27 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_dubbele_melding ( hide_f_datum, datum, melding1, melding2, omschrijving ) AS SELECT TO_CHAR (m1.mld_melding_datum, 'yyyymmdd'), TO_CHAR (m1.mld_melding_datum, 'dd-mm-yyyy'), TO_CHAR (m1.mld_melding_key), TO_CHAR (m2.mld_melding_key), m1.mld_melding_omschrijving FROM mld_melding m1, mld_melding m2 WHERE m1.mld_melding_datum = m2.mld_melding_datum AND fac.gettrackinguserkey ('MLDNEW', m1.mld_melding_key) = fac.gettrackinguserkey ('MLDNEW', m2.mld_melding_key) AND m1.mld_melding_key + 1 = m2.mld_melding_key; -- FIP rapporten CREATE OR REPLACE VIEW rwsn_v_rap_fip_district_gebouw ( regio_omschrijving, district_omschrijving, locatie_code, locatie_omschrijving, gebouw_code, gebouw_omschrijving, gebouw_functie, contactpersoon, telefoonnummer, bezoek_adres, bezoek_postcode, bezoek_plaats, bezoek_land, post_adres, post_postcode, post_plaats, post_land ) AS SELECT alg_regio_omschrijving, alg_district_omschrijving, alg_locatie_code, alg_locatie_omschrijving, alg_gebouw_code, alg_gebouw_omschrijving, alg_srtgebouw_omschrijving, l.alg_locatie_verantw, l.alg_locatie_verantw_tel, l.alg_locatie_adres, l.alg_locatie_postcode, l.alg_locatie_plaats, l.alg_locatie_land, l.alg_locatie_post_adres, l.alg_locatie_post_postcode, l.alg_locatie_post_plaats, l.alg_locatie_post_land FROM alg_v_aanwezigregio re, alg_v_aanwezigdistrict d, alg_v_aanweziglocatie l, alg_v_aanweziggebouw g, alg_srtgebouw sg WHERE re.alg_regio_key = d.alg_regio_key AND d.alg_district_key = l.alg_district_key AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key; CREATE OR REPLACE VIEW rwsn_v_rap_fip_ruimte ( fclt_f_locatie_code, fclt_f_gebouw_code, fclt_f_bouwlaagvolgnummer, ruimte_nummer, ruimte_omschrijving, vloer_oppervlak, fclt_f_reserveerbare_ruimte, categorie, prijs, opstelling, aantal_bezoekers, naam, omschrijving ) AS SELECT l.alg_locatie_code, g.alg_gebouw_code, v.alg_verdieping_code, r.alg_ruimte_nr, r.alg_ruimte_omschrijving, r.alg_ruimte_bruto_vloeropp, DECODE (res.alg_ruimte_key, NULL, 'N', 'J') reserveerbaar, res.ins_discipline_omschrijving, res.res_ruimte_prijs, res.res_opstelling_omschrijving, res.res_ruimte_opstel_bezoekers, res.res_ruimte_nr, res.res_ruimte_omschrijving FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_v_aanwezigruimte r, (SELECT alg_ruimte_key, rd.ins_discipline_omschrijving, rr.res_ruimte_prijs, ro.res_opstelling_omschrijving, rro.res_ruimte_opstel_bezoekers, rr.res_ruimte_nr, rr.res_ruimte_omschrijving FROM res_alg_ruimte rar, res_ruimte rr, res_ruimte_opstelling rro, res_opstelling ro, res_discipline rd WHERE rar.res_ruimte_key = rr.res_ruimte_key AND rro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = rd.ins_discipline_key AND rro.res_opstelling_key = ro.res_opstelling_key AND rar.res_alg_ruimte_verwijder IS NULL) res WHERE l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = res.alg_ruimte_key(+); CREATE OR REPLACE VIEW rwsn_v_rap_catering_scope ( fclt_f_locatie_code, fclt_f_gebouw_code, verdieping_volgnummer, ruimte_nummer, fclt_f_niveau, fclt_f_cat_catalogus, fclt_f_ruimte_catalogus, zaal_naam ) AS SELECT l.alg_locatie_code, g.alg_gebouw_code, v.alg_verdieping_code, r.alg_ruimte_nr, rso.alg_onrgoed_niveau, rd.ins_discipline_omschrijving, rd2.ins_discipline_omschrijving, rr.res_ruimte_nr FROM res_srtartikel_onrgoed rso, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, (SELECT alg_onroerendgoed_keys, alg_ruimte_key, alg_verdieping_key, alg_gebouw_key, alg_locatie_key, alg_type FROM alg_v_allonroerendgoed UNION ALL SELECT alg_locatie_key, NULL, NULL, NULL, alg_locatie_key, 'L' FROM alg_v_aanweziglocatie) aog, res_discipline rd, (SELECT DISTINCT alg_ruimte_key, res_ruimte_key FROM res_v_alg_ruimte_gegevens WHERE res_ruimte_key IS NOT NULL) rag, res_ruimte rr, res_discipline rd2 WHERE l.alg_locatie_key = aog.alg_locatie_key AND aog.alg_gebouw_key = g.alg_gebouw_key(+) AND aog.alg_verdieping_key = v.alg_verdieping_key(+) AND aog.alg_ruimte_key = r.alg_ruimte_key(+) AND aog.alg_onroerendgoed_keys = rso.alg_onrgoed_key AND aog.alg_type = rso.alg_onrgoed_niveau AND rso.res_discipline_key = rd.ins_discipline_key AND aog.alg_ruimte_key = rag.alg_ruimte_key(+) AND rag.res_ruimte_key = rr.res_ruimte_key(+) AND rr.res_discipline_key = rd2.ins_discipline_key(+) AND rso.res_srtartikel_og_verwijder IS NULL; CREATE OR REPLACE VIEW rwsn_v_rap_fip5_servicedesk ( vakgroeptype, prefix, plaatsgegevens, objectgegevens, bestelgegevens, vakgroep, standaardmelding, groep, kostensoort, acceptatietijd, uitvoertijd, uitvoertijd_kritiek, uitvoertijd_hoog, uitvoertijd_laag, directklaar ) AS SELECT sd.ins_srtdiscipline_omschrijving, sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_alg, sd.ins_srtdiscipline_ins, sd.ins_srtdiscipline_bes, d.ins_discipline_omschrijving, std.mld_stdmelding_omschrijving, smg.mld_stdmeldinggroep_naam, (SELECT prs_kostensoort_oms FROM prs_kostensoort ks WHERE ks.prs_kostensoort_key = std.prs_kostensoort_key) kostensoort, TO_CHAR(std.mld_stdmelding_t_accepttijd.tijdsduur) || std.mld_stdmelding_t_accepttijd.eenheid, TO_CHAR(std.mld_stdmelding_t_uitvoertijd.tijdsduur) || std.mld_stdmelding_t_uitvoertijd.eenheid, TO_CHAR(std.mld_stdmelding_t_uitvtijd_pr1.tijdsduur) || std.mld_stdmelding_t_uitvtijd_pr1.eenheid, TO_CHAR(std.mld_stdmelding_t_uitvtijd_pr2.tijdsduur) || std.mld_stdmelding_t_uitvtijd_pr2.eenheid, TO_CHAR(std.mld_stdmelding_t_uitvtijd_pr4.tijdsduur) || std.mld_stdmelding_t_uitvtijd_pr4.eenheid, dp.mld_disc_params_directklaar FROM mld_discipline d, ins_srtdiscipline sd, mld_stdmelding std, mld_stdmeldinggroep smg, mld_disc_params dp WHERE d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND dp.mld_ins_discipline_key(+) = d.ins_discipline_key AND std.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+) AND std.mld_stdmelding_verwijder IS NULL; CREATE OR REPLACE VIEW rwsn_v_rap_fip6_ruimte_obj ( fclt_f_disciplineomschrijving, disciplinekostensoort, groepsoortomschrijving, objectsoortcode, fclt_f_objectsoortomschrijving, objectomschrijving, objectopmerking, reserveerbaar, eenheid, prijs, fclt_f_locatiecode, gebouwcode, bouwlaagvolgnummer, ruimtenummer, reserveringscope, fclt_f_catalogusnaam, cataloguskostensoort ) AS SELECT di.ins_discipline_omschrijving, (SELECT prs_kostensoort_oms FROM prs_kostensoort WHERE prs_kostensoort_key = di.prs_kostensoort_key) kostensoort, sg.ins_srtgroep_omschrijving, sd.ins_srtdeel_code, sd.ins_srtdeel_omschrijving, d.ins_deel_omschrijving, d.ins_deel_opmerking, DECODE (rd.res_ins_deel_key, NULL, 'N', 'J') reserveerbaar, rd.res_deel_eenheid, rd.res_deel_prijs, rg.alg_locatie_code, (SELECT alg_gebouw_code FROM alg_gebouw WHERE alg_gebouw_key = rg.alg_gebouw_key) alg_gebouw_code, rg.alg_verdieping_code, rg.alg_ruimte_nr, DECODE (rd.res_deel_alg_level, 2, 'L', 3, 'G', 4, 'V', 5, 'R') scope, rdi.ins_discipline_omschrijving, (SELECT prs_kostensoort_oms FROM prs_kostensoort WHERE prs_kostensoort_key = rdi.prs_kostensoort_key) cataloguskostensoort FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline di, alg_v_ruimte_gegevens rg, (SELECT * FROM res_deel WHERE res_deel_verwijder IS NULL) rd, res_discipline rdi WHERE d.ins_deel_verwijder IS NULL AND d.ins_alg_ruimte_type = 'R' AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = di.ins_discipline_key AND d.ins_alg_ruimte_key = rg.alg_ruimte_key AND d.ins_deel_key = rd.res_ins_deel_key(+) AND rd.res_discipline_key = rdi.ins_discipline_key(+); -- Veelvuldig gebruikt in MLD-module (oa. DID)! /* Formatted on 1-7-2009 8:35:48 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW RWSN_V_GEBOUWEN ( GEBOUW_KEY, GEBOUW_OMS ) AS SELECT g.alg_gebouw_key, TRIM (g.alg_gebouw_naam) || ' [' || g.alg_gebouw_code || ']' FROM alg_v_aanweziggebouw g; -- RWSN#29284: Nieuwe variant incl. TenminsteHoudbaarTot-mechanisme! /* Formatted on 20-5-2014 10:14:46 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW RWSN_V_GEBOUWEN_THT ( GEBOUW_KEY, GEBOUW_OMS, GEBOUW_VVD ) AS SELECT x.alg_gebouw_key, TRIM (COALESCE (x.alg_locatie_plaats, alg_locatie_code)) || ' ' || TRIM (COALESCE (x.alg_gebouw_naam, x.alg_gebouw_code)) || DECODE (TRIM (x.alg_gebouw_opmerking), NULL, '', ' ' || TRIM (x.alg_gebouw_opmerking)), DECODE (x.alg_srtgebouw_key, 81, TRUNC (SYSDATE), -- Afgestoten x.alg_gebouw_verwijder) FROM (SELECT g.alg_gebouw_key, g.alg_gebouw_naam, g.alg_gebouw_code, g.alg_gebouw_opmerking, g.alg_srtgebouw_key, g.alg_gebouw_verwijder, l.alg_locatie_key, l.alg_locatie_plaats, l.alg_locatie_code FROM alg_gebouw g, alg_locatie l WHERE g.alg_locatie_key = l.alg_locatie_key) x LEFT JOIN (SELECT DISTINCT -- Ergens gebruikt als melding-kenmerk? fac.safe_to_number (km.mld_kenmerkmelding_waarde) gebouw_key FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.fac_kenmerkdomein_key = 76) km -- Deze view als domein! ON x.alg_gebouw_key = km.gebouw_key LEFT JOIN (SELECT DISTINCT -- Ergens gebruikt als opdracht-kenmerk? fac.safe_to_number (ko.mld_kenmerkopdr_waarde) gebouw_key FROM mld_kenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk sk WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.fac_kenmerkdomein_key = 76) ko -- Deze view als domein! ON x.alg_gebouw_key = ko.gebouw_key WHERE x.alg_gebouw_verwijder IS NULL OR km.gebouw_key IS NOT NULL OR ko.gebouw_key IS NOT NULL; -- Veelvuldig gebruikt in MLD-module; niet meer in INS-module(?)! CREATE OR REPLACE VIEW RWSN_V_DIENSTEN ( DIENST_KEY, DIENST_OMS ) AS SELECT a.prs_afdeling_key, a.prs_afdeling_omschrijving FROM prs_afdeling a WHERE a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_parentkey IS NULL; -- Veelvuldig gebruikt in MLD- en INS-module! CREATE OR REPLACE VIEW RWSN_V_DIENSTPERSONEN ( PRS_PERSLID_KEY, PRS_PERSLID_NAAM_FULL ) AS SELECT p.prs_perslid_key, p.prs_perslid_naam || DECODE (p.prs_perslid_voorletters, NULL, '', ', ' || p.prs_perslid_voorletters) || DECODE (p.prs_perslid_tussenvoegsel, NULL, '', ' ' || p.prs_perslid_tussenvoegsel) || DECODE (p.prs_perslid_voornaam, NULL, '', ' (' || p.prs_perslid_voornaam || ')') || ' [' || a.prs_afdeling_omschrijving || ']' prs_perslid_naam_full FROM prs_v_aanwezigperslid p, prs_v_afdeling_familie af, prs_afdeling a WHERE p.prs_afdeling_key = af.prs_afdeling_key AND af.niveau = 1 AND af.prs_afdeling_elder_key = a.prs_afdeling_key AND a.prs_afdeling_verwijder IS NULL; -- RWSN#33527 CREATE OR REPLACE VIEW RWSN_V_PERSONEN_LOGIN ( PRS_PERSLID_KEY, PRS_PERSLID_NAAM_FULL ) AS SELECT p.prs_perslid_key, p.prs_perslid_naam || DECODE (p.prs_perslid_voorletters, NULL, '', ', ' || p.prs_perslid_voorletters) || DECODE (p.prs_perslid_tussenvoegsel, NULL, '', ' ' || p.prs_perslid_tussenvoegsel) || DECODE (p.prs_perslid_voornaam, NULL, '', ' (' || p.prs_perslid_voornaam || ')') || ' [' || p.prs_perslid_oslogin || ']' prs_perslid_naam_full FROM prs_v_aanwezigperslid p; /* Formatted on 1-7-2009 9:04:25 (QP5 v5.115.810.9015) */ -- Veelvuldig gebruikt in MLD-module! CREATE OR REPLACE VIEW RWSN_V_SERVICEPUNTEN ( SP_KEY, SP_OMS ) AS SELECT l.alg_locatie_key, l.alg_locatie_omschrijving || ' (' || l.alg_locatie_adres || ')' FROM alg_v_aanweziglocatie l, alg_v_aanwezigonrgoedkenmerk ok WHERE l.alg_locatie_key = ok.alg_onrgoed_key AND ok.alg_onrgoed_niveau = 'L' AND ok.alg_kenmerk_key = 1000 AND ok.alg_onrgoedkenmerk_waarde = 1; -- Import van partners uit het IKD CREATE OR REPLACE PROCEDURE rwsn_import_partners ( p_import_key IN NUMBER ) AS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (4000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR2 (200); -- De importvelden v_contractant VARCHAR2 (255); v_naam VARCHAR2 (255); v_adres VARCHAR2 (255); v_postc VARCHAR2 (255); v_plaats VARCHAR2 (255); v_land VARCHAR2 (255); v_postbus VARCHAR2 (255); v_pb_postc VARCHAR2 (255); v_pb_plaats VARCHAR2 (255); v_pb_land VARCHAR2 (255); v_telefoon VARCHAR2 (255); v_fax VARCHAR2 (255); -- Overige velden: CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM rwsn_imp_partners; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout opvragen te importeren rij'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_contractant); fac.imp_getfield (v_newline, c_delim, v_naam); fac.imp_getfield (v_newline, c_delim, v_adres); fac.imp_getfield (v_newline, c_delim, v_postc); fac.imp_getfield (v_newline, c_delim, v_plaats); fac.imp_getfield (v_newline, c_delim, v_land); fac.imp_getfield (v_newline, c_delim, v_postbus); fac.imp_getfield (v_newline, c_delim, v_pb_postc); fac.imp_getfield (v_newline, c_delim, v_pb_plaats); fac.imp_getfield (v_newline, c_delim, v_pb_land); fac.imp_getfield (v_newline, c_delim, v_telefoon); fac.imp_getfield (v_newline, c_delim, v_fax); v_aanduiding := '[' || v_contractant || '|' || v_naam || '] '; v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Fout inlezen contractant'; v_contractant := SUBSTR(TRIM (v_contractant),1,50); -- v_errormsg := 'Fout inlezen naam'; v_naam := SUBSTR(TRIM (v_naam),1,60); -- v_errormsg := 'Fout inlezen adres'; v_adres := SUBSTR(TRIM (v_adres),1,35); -- v_errormsg := 'Fout inlezen postc'; v_postc := SUBSTR(TRIM (v_postc),1,12); -- v_errormsg := 'Fout inlezen plaats'; v_plaats := SUBSTR(TRIM (v_plaats),1,30); -- v_errormsg := 'Fout inlezen land'; v_land := SUBSTR(TRIM (v_land),1,30); -- v_errormsg := 'Fout inlezen postbus'; v_postbus := SUBSTR(TRIM (v_postbus),1,35); -- v_errormsg := 'Fout inlezen pb_postc'; v_pb_postc := SUBSTR(TRIM (v_pb_postc),1,12); -- v_errormsg := 'Fout inlezen pb_plaats'; v_pb_plaats := SUBSTR(TRIM (v_pb_plaats),1,30); -- v_errormsg := 'Fout inlezen pb_land'; v_pb_land := SUBSTR(TRIM (v_pb_land),1,30); -- v_errormsg := 'Fout inlezen telefoon'; v_telefoon := SUBSTR(TRIM (v_telefoon),1,20); -- v_errormsg := 'Fout inlezen fax'; v_fax := SUBSTR(TRIM (v_fax),1,20); v_ongeldig := 0; -- Insert geformatteerde import record IF (v_ongeldig = 0) THEN v_errormsg := 'Fout wegschrijven importregel'; INSERT INTO rwsn_imp_partners ( contractant, naam, adres, postc, plaats, land, postbus, pb_postc, pb_plaats, pb_land, telefoon, fax) VALUES ( v_contractant, v_naam, v_adres, v_postc, v_plaats, v_land, v_postbus, v_pb_postc, v_pb_plaats, v_pb_land, v_telefoon, v_fax); v_count_import := v_count_import + 1; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, ''); END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'Inleesproces/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Inleesproces/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '' ); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces IKD partners afgebroken!'); END; / CREATE OR REPLACE PROCEDURE rwsn_update_partners (p_import_key IN NUMBER) AS -- Cursor loopt - in volgorde! - over alle ingelezen partners. CURSOR c1 IS SELECT contractant, naam, adres, postc, plaats, land, postbus, pb_postc, pb_plaats, pb_land, telefoon, fax FROM rwsn_imp_partners ORDER BY contractant; CURSOR c2 IS SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam FROM prs_bedrijf b WHERE b.prs_bedrijf_intern IS NULL AND b.prs_leverancier_nr IS NOT NULL AND NOT EXISTS (SELECT 1 FROM rwsn_imp_partners WHERE contractant = b.prs_leverancier_nr) ORDER BY prs_bedrijf_key; c_kenmerk_inactief NUMBER (10) := 1040; v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_count NUMBER (10); v_prs_bedrijf_key NUMBER (10); BEGIN SELECT COUNT (contractant) INTO v_count FROM rwsn_imp_partners; IF v_count = 0 THEN fac.imp_writelog (p_import_key, 'W', 'Fout inlezen partners.', 'Geen importbestand gevonden.'); RETURN; END IF; -- Toevoegen/bijwerken geimporteerde partners. FOR rec IN c1 LOOP BEGIN v_aanduiding := '[' || rec.contractant || '|' || rec.naam || '] '; -- Bestaat de partner al? BEGIN SELECT prs_bedrijf_key INTO v_prs_bedrijf_key FROM prs_bedrijf WHERE prs_leverancier_nr = rec.contractant; EXCEPTION WHEN NO_DATA_FOUND THEN v_prs_bedrijf_key := -1; END; IF v_prs_bedrijf_key = -1 THEN INSERT INTO prs_bedrijf (prs_leverancier_nr, prs_bedrijf_naam, prs_bedrijf_uitvoerende) VALUES (rec.contractant, rec.naam, NULL) RETURNING prs_bedrijf_key INTO v_prs_bedrijf_key; END IF; UPDATE prs_bedrijf SET prs_bedrijf_naam = SUBSTR (rec.naam || ' [' || rec.contractant || ']', 1, 60), prs_bedrijf_bezoek_adres = rec.adres, prs_bedrijf_bezoek_postcode = rec.postc, prs_bedrijf_bezoek_plaats = rec.plaats, prs_bedrijf_bezoek_land = rec.land, prs_bedrijf_post_adres = rec.postbus, prs_bedrijf_post_postcode = rec.pb_postc, prs_bedrijf_post_plaats = rec.pb_plaats, prs_bedrijf_post_land = rec.pb_land, prs_bedrijf_telefoon = rec.telefoon, prs_bedrijf_fax = rec.fax, prs_bedrijf_contract = 1 WHERE prs_bedrijf_key = v_prs_bedrijf_key; -- Verwijder kenmerk met datum inactief. DELETE prs_kenmerklink WHERE prs_link_key = v_prs_bedrijf_key AND prs_kenmerk_key = c_kenmerk_inactief; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Fout toevoegen partner!'); END; END LOOP; -- Verwijderen geimporteerde partners. FOR rec IN c2 LOOP BEGIN v_aanduiding := '[' || rec.prs_bedrijf_key || '|' || rec.prs_bedrijf_naam || '] '; SELECT COUNT (prs_kenmerklink_key) INTO v_count FROM prs_kenmerklink WHERE prs_kenmerk_key = c_kenmerk_inactief AND prs_link_key = rec.prs_bedrijf_key; IF v_count = 0 THEN -- Toevoegen kenmerk met datum inactief. INSERT INTO prs_kenmerklink (prs_kenmerk_key, prs_kenmerklink_niveau, prs_link_key, prs_kenmerklink_waarde) VALUES (c_kenmerk_inactief, 'B', rec.prs_bedrijf_key, TO_CHAR (SYSDATE, 'dd-mm-yyyy')); END IF; UPDATE prs_bedrijf SET prs_bedrijf_naam = SUBSTR ('Inactief: ' || prs_bedrijf_naam, 1, 60) WHERE prs_bedrijf_key = rec.prs_bedrijf_key AND prs_bedrijf_naam NOT LIKE 'Inactief:%'; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Fout verwijderen partner!'); END; END LOOP; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces IKD partners afgebroken!'); END; / -- Import van contracts uit het IKD CREATE OR REPLACE PROCEDURE rwsn_import_contracts ( p_import_key IN NUMBER ) AS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (4000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR2 (200); -- De importvelden v_zaakid VARCHAR2 (1000); v_contracttype VARCHAR2 (1000); v_zaaksoort VARCHAR2 (1000); v_contractant VARCHAR2 (1000); v_inkgroep VARCHAR2 (1000); v_inkgoms VARCHAR2 (1000); v_raamcontract VARCHAR2 (1000); v_onderwerp VARCHAR2 (1000); v_opdrachtdat VARCHAR2 (1000); v_d_opdrachtdat DATE; v_startwerkdat VARCHAR2 (1000); v_d_startwerkdat DATE; v_einddat VARCHAR2 (1000); v_d_einddat DATE; v_uitactiedat VARCHAR2 (1000); v_d_uitactiedat DATE; v_actverl VARCHAR2 (1000); v_status VARCHAR2 (1000); v_contrfase VARCHAR2 (1000); v_zaakbehand VARCHAR2 (1000); v_rol01 VARCHAR2 (1000); v_rol05 VARCHAR2 (1000); v_rol07 VARCHAR2 (1000); v_rol08 VARCHAR2 (1000); v_verzgeb VARCHAR2 (1000); v_inksegm VARCHAR2 (1000); v_buspartner VARCHAR2 (1000); v_opdrachtgever VARCHAR2 (1000); v_indexcontract VARCHAR2 (1000); v_dat_index VARCHAR2 (1000); v_d_dat_index DATE; v_pernr VARCHAR2 (1000); v_poski_post1 VARCHAR2 (1000); CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM rwsn_imp_contracts; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout opvragen te importeren rij'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_zaakid); fac.imp_getfield (v_newline, c_delim, v_contracttype); fac.imp_getfield (v_newline, c_delim, v_zaaksoort); fac.imp_getfield (v_newline, c_delim, v_contractant); fac.imp_getfield (v_newline, c_delim, v_inkgroep); fac.imp_getfield (v_newline, c_delim, v_inkgoms); fac.imp_getfield (v_newline, c_delim, v_raamcontract); fac.imp_getfield (v_newline, c_delim, v_onderwerp); fac.imp_getfield (v_newline, c_delim, v_opdrachtdat); fac.imp_getfield (v_newline, c_delim, v_startwerkdat); fac.imp_getfield (v_newline, c_delim, v_einddat); fac.imp_getfield (v_newline, c_delim, v_uitactiedat); fac.imp_getfield (v_newline, c_delim, v_actverl); fac.imp_getfield (v_newline, c_delim, v_status); fac.imp_getfield (v_newline, c_delim, v_contrfase); fac.imp_getfield (v_newline, c_delim, v_zaakbehand); fac.imp_getfield (v_newline, c_delim, v_rol01); fac.imp_getfield (v_newline, c_delim, v_rol05); fac.imp_getfield (v_newline, c_delim, v_rol07); fac.imp_getfield (v_newline, c_delim, v_rol08); fac.imp_getfield (v_newline, c_delim, v_verzgeb); fac.imp_getfield (v_newline, c_delim, v_inksegm); fac.imp_getfield (v_newline, c_delim, v_buspartner); fac.imp_getfield (v_newline, c_delim, v_opdrachtgever); fac.imp_getfield (v_newline, c_delim, v_indexcontract); fac.imp_getfield (v_newline, c_delim, v_dat_index); fac.imp_getfield (v_newline, c_delim, v_pernr); fac.imp_getfield (v_newline, c_delim, v_poski_post1); v_aanduiding := '[' || v_zaakid || '|' || v_contracttype || '|' || v_zaaksoort || '] '; v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Fout inlezen zaakid'; v_zaakid := SUBSTR(TRIM (v_zaakid),1,30); -- v_errormsg := 'Fout inlezen contracttype'; v_contracttype := SUBSTR(TRIM (v_contracttype),1,64); -- v_errormsg := 'Fout inlezen zaaksoort'; v_zaaksoort := SUBSTR(TRIM (v_zaaksoort),1,30); -- v_errormsg := 'Fout inlezen contractant'; v_contractant := SUBSTR(TRIM (v_contractant),1,50); -- v_errormsg := 'Fout inlezen inkgroep'; v_inkgroep := SUBSTR(TRIM (v_inkgroep),1,30); -- v_errormsg := 'Fout inlezen inkgoms'; v_inkgoms := SUBSTR(TRIM (v_inkgoms),1,50); -- v_errormsg := 'Fout inlezen raamcontract'; v_raamcontract := SUBSTR(TRIM (v_raamcontract),1,30); -- v_errormsg := 'Fout inlezen onderwerp'; v_onderwerp := SUBSTR(TRIM (v_onderwerp),1,50); -- v_errormsg := 'Fout inlezen opdrachtdat'; v_d_opdrachtdat := fac.safe_to_date(TRIM (v_opdrachtdat), 'yyyy-mm-dd'); -- v_errormsg := 'Fout inlezen startwerkdat (' || v_startwerkdat || ')'; v_d_startwerkdat := fac.safe_to_date(TRIM (v_startwerkdat), 'yyyy-mm-dd'); -- v_errormsg := 'Fout inlezen einddat'; v_d_einddat := fac.safe_to_date(TRIM (v_einddat),'yyyy-mm-dd'); -- v_errormsg := 'Fout inlezen uitactiedat'; v_d_uitactiedat := fac.safe_to_date(TRIM (v_uitactiedat),'yyyy-mm-dd'); -- v_errormsg := 'Fout inlezen actverl'; v_actverl := SUBSTR(TRIM (v_actverl),1,3); -- v_errormsg := 'Fout inlezen status'; v_status := SUBSTR(TRIM (v_status),1,30); -- v_errormsg := 'Fout inlezen contrfase'; v_contrfase := SUBSTR(TRIM (v_contrfase),1,80); -- v_errormsg := 'Fout inlezen zaakbehand'; v_zaakbehand := SUBSTR(TRIM (v_zaakbehand),1,12); -- v_errormsg := 'Fout inlezen rol01'; v_rol01 := SUBSTR(TRIM (v_rol01),1,12); -- v_errormsg := 'Fout inlezen rol05'; v_rol05 := SUBSTR(TRIM (v_rol05),1,12); -- v_errormsg := 'Fout inlezen rol07'; v_rol07 := SUBSTR(TRIM (v_rol07),1,12); -- v_errormsg := 'Fout inlezen rol08'; v_rol08 := SUBSTR(TRIM (v_rol08),1,12); -- v_errormsg := 'Fout inlezen verzgeb'; v_verzgeb := SUBSTR(REPLACE (TRIM (v_verzgeb),'@',CHR (13) || CHR (10)),1,255); -- v_errormsg := 'Fout inlezen inksegm'; v_inksegm := SUBSTR(REPLACE (TRIM (v_inksegm),'@',CHR (13) || CHR (10)),1,255); -- v_errormsg := 'Fout inlezen buspartner'; v_buspartner := SUBSTR(TRIM (v_buspartner),1,50); -- v_errormsg := 'Fout inlezen opdrachtgever'; v_opdrachtgever := SUBSTR(TRIM (v_opdrachtgever),1,80); -- v_errormsg := 'Fout inlezen indexcontract'; v_indexcontract := SUBSTR(TRIM (v_indexcontract),1,3); -- v_errormsg := 'Fout inlezen dat_index'; v_d_dat_index := fac.safe_to_date(TRIM (v_dat_index),'yyyy-mm-dd'); -- v_errormsg := 'Fout inlezen pernr'; v_pernr := SUBSTR(REPLACE (TRIM (v_pernr),'@',CHR (13) || CHR (10)),1,255); -- v_errormsg := 'Fout inlezen poski/post1'; v_poski_post1 := SUBSTR(REPLACE (TRIM (v_poski_post1),'@',CHR (13) || CHR (10)),1,255); v_ongeldig := 0; -- Insert geformatteerde import record IF (v_ongeldig = 0) THEN v_errormsg := 'Fout wegschrijven importregel'; INSERT INTO rwsn_imp_contracts ( zaakid, contracttype, zaaksoort, contractant, inkgroep, inkgoms, raamcontract, onderwerp, opdrachtdat, startwerkdat, einddat, uitactiedat, actverl, status, contrfase, zaakbehand, rol01, opdrachtgev, -- rol05 rol07, rol08, verzgeb, inksegm, buspartner, opdrachtgever, indexcontract, dat_index, pernr, poski_post1) VALUES ( v_zaakid, v_contracttype, v_zaaksoort, v_contractant, v_inkgroep, v_inkgoms, v_raamcontract, v_onderwerp, v_d_opdrachtdat, v_d_startwerkdat, v_d_einddat, v_d_uitactiedat, v_actverl, v_status, v_contrfase, v_zaakbehand, v_rol01, v_rol05, v_rol07, v_rol08, v_verzgeb, v_inksegm, v_buspartner, v_opdrachtgever, v_indexcontract, v_d_dat_index, v_pernr, v_poski_post1); v_count_import := v_count_import + 1; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, ''); END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'Inleesproces/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Inleesproces/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '' ); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces IKD contracts afgebroken!'); END; / /* Formatted on 17-8-2015 18:06:12 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE rwsn_update_contracts (p_import_key IN NUMBER) AS -- Cursor loopt - in volgorde! - alleen over de ingelezen contracten op -- inkoopsegmenten die zijn gedefinieerd in Eigen tabel 781 of met ZOPB -- alszaaksoort (die worden sowieso ingelezen)! CURSOR c1 IS SELECT i.zaakid, i.contracttype, i.zaaksoort, DECODE (UPPER (i.zaaksoort), 'ZOPB', COALESCE (i.contractant, 'Rijkswaterstaat'), i.contractant) contractant, i.raamcontract, i.onderwerp, i.startwerkdat, i.einddat, i.uitactiedat, i.opdrachtdat, i.actverl, i.status, i.contrfase, i.opdrachtgev, i.verzgeb, i.inksegm, i.zaakbehand, i.rol01, i.rol07, i.rol08, i.buspartner, i.opdrachtgever, i.indexcontract, i.dat_index, i.pernr, i.poski_post1, DECODE (UPPER (i.status), 'TE ARCHIVEREN', 1, 0) gesloten FROM rwsn_imp_contracts i, fac_v_aanwezigusrdata inksg WHERE UPPER (i.inkgroep) = '026' AND UPPER (i.status) IN ('NORMAAL', 'TE ARCHIVEREN') AND inksg.fac_usrtab_key = 781 -- Inkoopsegmenten AND (INSTR (UPPER (i.inksegm), UPPER (inksg.fac_usrdata_omschr), 1, 1) > 0 OR UPPER (i.zaaksoort) = 'ZOPB') ORDER BY DECODE (i.raamcontract, NULL, 0, 1); /* -- Cursor loopt alle te verwijderen "lege mantels". CURSOR c2 IS SELECT c.cnt_contract_key, c.cnt_contract_nummer FROM cnt_contract c, cnt_disc_params dp WHERE c.ins_discipline_key = dp.cnt_ins_discipline_key AND dp.cnt_srtcontract_type = 6 -- Master AND NOT EXISTS (SELECT 1 FROM cnt_contract WHERE cnt_contract_key = c.cnt_contract_mantel_key) ORDER BY 1; */ c_mantel_zaaksoort VARCHAR2 (10) := 'ZROK'; c_mantel_separator VARCHAR2 (10) := '/'; c_fac_groep_key_zb NUMBER (10) := 623; c_prs_perslid_key_beh NUMBER (10) := 3629; -- Jan Udding/00007714 is default! c_rappel_termijn_key NUMBER (10) := 21; v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_count_tot NUMBER (10); v_count_chg NUMBER (10); v_geldig NUMBER (1); v_contract_type NUMBER (1); v_contract_soort VARCHAR2 (30); v_cnt_discipline_key NUMBER (10); v_prs_afdeling_key_eig NUMBER (10); v_naam_rol05 VARCHAR2 (100); v_prs_perslid_key_zb NUMBER (10); v_naam_zaakbehand VARCHAR2 (100); v_gebruikersgroep_key NUMBER (10); v_naam_rol01 VARCHAR2 (100); v_naam_rol07 VARCHAR2 (100); v_naam_rol08 VARCHAR2 (100); v_prs_bedrijf_key NUMBER (10); v_cntnr_postfix VARCHAR2 (100); v_occ NUMBER; v_beg NUMBER; v_end NUMBER; v_tmp VARCHAR2 (255); v_count NUMBER (10); v_prs_dienst_key NUMBER (10); v_cnt_contract_mantel_key NUMBER (10); v_cnt_contract_key NUMBER (10); v_termijn_type VARCHAR2 (1); v_termijn_aantal NUMBER; -- Was NUMBER (3) v_opzeg_termijn_key NUMBER (10); v_rappel_termijn_key NUMBER (10); v_kenmerksrt_contracttype NUMBER (10); v_kenmerksrt_opdrachtdat NUMBER (10); v_kenmerksrt_actverl NUMBER (10); v_kenmerksrt_status NUMBER (10); v_kenmerksrt_contrfase NUMBER (10); v_kenmerksrt_rol05 NUMBER (10); v_kenmerksrt_verzgeb NUMBER (10); v_kenmerksrt_inksegm NUMBER (10); v_kenmerksrt_link NUMBER (10); v_kenmerksrt_zaakbehand NUMBER (10); v_kenmerksrt_rol01 NUMBER (10); v_kenmerksrt_rol07 NUMBER (10); v_kenmerksrt_rol08 NUMBER (10); v_kenmerksrt_opdrachtgever NUMBER (10); v_kenmerksrt_indexcontract NUMBER (10); v_kenmerksrt_dat_index NUMBER (10); v_kenmerksrt_pernr NUMBER (10); v_kenmerksrt_poski_post1 NUMBER (10); v_kenmerk_link_waarde VARCHAR2 (255); PROCEDURE insert_or_update_kenmerk ( p_cnt_contract_key IN NUMBER, p_cnt_srtkenmerk_key IN NUMBER, p_cnt_kenmerkcontract_waarde VARCHAR2) AS v_cnt_kenmerk_key NUMBER; v_cnt_kenmerkcontract_key NUMBER; v_cnt_srtkenmerk_lengte NUMBER; v_cnt_srtkenmerk_kenmerktype VARCHAR2 (10); v_waarde VARCHAR2 (255); BEGIN -- Laten we eerst op zoek gaan naar het kenmerk. SELECT cnt_kenmerk_key, COALESCE (cnt_srtkenmerk_lengte, 255), cnt_srtkenmerk_kenmerktype INTO v_cnt_kenmerk_key, v_cnt_srtkenmerk_lengte, v_cnt_srtkenmerk_kenmerktype FROM cnt_kenmerk k, cnt_srtkenmerk sk, cnt_contract c WHERE sk.cnt_srtkenmerk_key = p_cnt_srtkenmerk_key AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key AND c.ins_discipline_key = k.cnt_srtcontract_key AND c.cnt_contract_key = p_cnt_contract_key AND k.cnt_kenmerk_verwijder IS NULL; v_waarde := SUBSTR (p_cnt_kenmerkcontract_waarde, 1, v_cnt_srtkenmerk_lengte); BEGIN -- Bestaat er al een kenmerkcontract record dat bij de srtkenmerk hoort? SELECT cnt_kenmerkcontract_key INTO v_cnt_kenmerkcontract_key FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE k.cnt_srtkenmerk_key = p_cnt_srtkenmerk_key AND k.cnt_kenmerk_key = kc.cnt_kenmerk_key AND kc.cnt_contract_key = p_cnt_contract_key; EXCEPTION WHEN NO_DATA_FOUND THEN IF p_cnt_kenmerkcontract_waarde IS NULL THEN RETURN; END IF; INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde) VALUES (p_cnt_contract_key, v_cnt_kenmerk_key, v_waarde); RETURN; END; IF p_cnt_kenmerkcontract_waarde IS NULL THEN DELETE cnt_kenmerkcontract WHERE cnt_kenmerkcontract_key = v_cnt_kenmerkcontract_key; ELSE UPDATE cnt_kenmerkcontract SET cnt_kenmerkcontract_waarde = v_waarde, cnt_kenmerk_key = v_cnt_kenmerk_key WHERE cnt_kenmerkcontract_key = v_cnt_kenmerkcontract_key; END IF; END; BEGIN v_aanduiding := ''; v_count_tot := 0; v_count_chg := 0; v_kenmerksrt_contracttype := 1; v_kenmerksrt_opdrachtdat := 2; v_kenmerksrt_actverl := 21; v_kenmerksrt_status := 22; v_kenmerksrt_contrfase := 23; v_kenmerksrt_rol05 := 24; v_kenmerksrt_verzgeb := 25; v_kenmerksrt_inksegm := 26; v_kenmerksrt_link := 27; v_kenmerksrt_zaakbehand := 28; v_kenmerksrt_rol01 := 29; v_kenmerksrt_rol07 := 30; v_kenmerksrt_rol08 := 31; v_kenmerksrt_opdrachtgever := 32; v_kenmerksrt_indexcontract := 33; v_kenmerksrt_dat_index := 34; v_kenmerksrt_pernr := 35; v_kenmerksrt_poski_post1 := 36; -- Toevoegen/bijwerken geimporteerde contracts. FOR rec IN c1 LOOP BEGIN v_geldig := 1; v_aanduiding := '[' || rec.zaakid || '|' || rec.contracttype || '|' || rec.zaaksoort || '] '; v_count_tot := v_count_tot + 1; -- Betreft het hier een ROK (= mantel)? Zo ja, dan moet het contract -- onder een andere contractsoort vallen. IF UPPER (rec.zaaksoort) != c_mantel_zaaksoort THEN v_contract_type := 5; -- Supplier v_contract_soort := rec.zaaksoort; ELSE v_contract_type := 6; -- Master v_contract_soort := rec.zaaksoort; END IF; -- Eerst kijken of de contractsoort al bestaat? v_errormsg := 'Fout bepalen contractsoort.'; BEGIN SELECT ins_discipline_key INTO v_cnt_discipline_key FROM cnt_discipline WHERE UPPER (TRIM (SUBSTR (ins_discipline_omschrijving, 1, INSTR (ins_discipline_omschrijving || '/', '/') - 1))) = v_contract_soort; EXCEPTION WHEN NO_DATA_FOUND THEN -- Contractsoort bestaat nog niet, laten we deze dan maar aanmaken. v_errormsg := 'Fout toevoegen contractsoort.'; INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving) VALUES ('CNT', v_contract_soort) RETURNING ins_discipline_key INTO v_cnt_discipline_key; INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_cnt_discipline_key, v_contract_type); -- Kenmerken toevoegen. v_errormsg := 'Fout toevoegen contractsoort-kenmerken.'; INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_contracttype, v_cnt_discipline_key, 'S', 100); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_opdrachtdat, v_cnt_discipline_key, 'S', 110); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_actverl, v_cnt_discipline_key, 'S', 120); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_status, v_cnt_discipline_key, 'S', 130); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_contrfase, v_cnt_discipline_key, 'S', 140); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_rol05, v_cnt_discipline_key, 'S', 150); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_verzgeb, v_cnt_discipline_key, 'S', 160); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_inksegm, v_cnt_discipline_key, 'S', 170); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_link, v_cnt_discipline_key, 'S', 180); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_zaakbehand, v_cnt_discipline_key, 'S', 190); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_rol01, v_cnt_discipline_key, 'S', 200); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_rol07, v_cnt_discipline_key, 'S', 210); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_rol08, v_cnt_discipline_key, 'S', 220); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_opdrachtgever, v_cnt_discipline_key, 'S', 230); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_indexcontract, v_cnt_discipline_key, 'S', 240); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_dat_index, v_cnt_discipline_key, 'S', 250); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_pernr, v_cnt_discipline_key, 'S', 260); INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_volgnummer) VALUES (v_kenmerksrt_poski_post1, v_cnt_discipline_key, 'S', 270); END; -- Bepaal de eigenaar-afdeling (van contract)/opdrachtgever intern. v_errormsg := 'Fout bepalen eigenaar-afdeling/opdrachtgever intern.'; BEGIN SELECT p.prs_afdeling_key, SUBSTR (pf.prs_perslid_naam_full, 1, 40) INTO v_prs_afdeling_key_eig, v_naam_rol05 FROM prs_perslid p, prs_v_perslid_fullnames pf WHERE p.prs_perslid_nr = rec.opdrachtgev AND p.prs_perslid_key = pf.prs_perslid_key; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'I', v_aanduiding || 'Opdrachtgever intern ' || rec.opdrachtgev, v_errormsg); v_prs_afdeling_key_eig := 1; -- Onbekend v_naam_rol05 := rec.opdrachtgev; END; -- Bepaal de zaakbehandelaar (voorheen beheerder van contract). v_errormsg := 'Fout bepalen zaakbehandelaar.'; BEGIN SELECT pf.prs_perslid_key, SUBSTR (pf.prs_perslid_naam_full, 1, 40) INTO v_prs_perslid_key_zb, v_naam_zaakbehand FROM prs_perslid p, prs_v_perslid_fullnames pf WHERE p.prs_perslid_nr = rec.zaakbehand AND p.prs_perslid_key = pf.prs_perslid_key; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'I', v_aanduiding || 'Zaakbehandelaar ' || rec.zaakbehand, v_errormsg); v_prs_perslid_key_zb := -1; v_naam_zaakbehand := rec.zaakbehand; END; -- Plaats de zaakbehandelaar (voorheen beheerder van contract) in de afgesproken autorisatiegroep. v_errormsg := 'Fout toekennen autorisatiegroep aan zaakbehandelaar.'; IF v_prs_perslid_key_zb <> -1 THEN BEGIN SELECT fac_gebruikersgroep_key INTO v_gebruikersgroep_key FROM fac_gebruikersgroep WHERE fac_groep_key = c_fac_groep_key_zb AND prs_perslid_key = v_prs_perslid_key_zb; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) VALUES (c_fac_groep_key_zb, v_prs_perslid_key_zb); END; END IF; -- Bepaal de inkoper / inkoopondersteuner (rol01). v_errormsg := 'Fout bepalen ROL01.'; BEGIN SELECT SUBSTR (pf.prs_perslid_naam_full, 1, 40) INTO v_naam_rol01 FROM prs_perslid p, prs_v_perslid_fullnames pf WHERE p.prs_perslid_nr = rec.rol01 AND p.prs_perslid_key = pf.prs_perslid_key; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'I', v_aanduiding || 'Inkoper / Inkoopondersteuner ' || rec.rol01, v_errormsg); v_naam_rol01 := rec.rol01; END; -- Bepaal de contractmanager (rol07). v_errormsg := 'Fout bepalen ROL07.'; BEGIN SELECT SUBSTR (pf.prs_perslid_naam_full, 1, 40) INTO v_naam_rol07 FROM prs_perslid p, prs_v_perslid_fullnames pf WHERE p.prs_perslid_nr = rec.rol07 AND p.prs_perslid_key = pf.prs_perslid_key; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'I', v_aanduiding || 'Contractmanager ' || rec.rol07, v_errormsg); v_naam_rol07 := rec.rol07; END; -- Bepaal de medewerker bedrijfsbureau (rol08). v_errormsg := 'Fout bepalen ROL08.'; BEGIN SELECT SUBSTR (pf.prs_perslid_naam_full, 1, 40) INTO v_naam_rol08 FROM prs_perslid p, prs_v_perslid_fullnames pf WHERE p.prs_perslid_nr = rec.rol08 AND p.prs_perslid_key = pf.prs_perslid_key; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'I', v_aanduiding || 'Medewerker bedrijfsbureau ' || rec.rol08, v_errormsg); v_naam_rol08 := rec.rol08; END; -- Bepaal de contractuitvoerder. IF v_contract_type = 5 -- Supplier; voor NOKs! THEN BEGIN -- Bepaal de uitvoerder=contractant van een NOK-contract. v_errormsg := 'Fout bepalen NOK-contractuitvoerder.'; SELECT prs_bedrijf_key, '' INTO v_prs_bedrijf_key, v_cntnr_postfix FROM prs_v_contractbedrijf WHERE prs_leverancier_nr = rec.contractant; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'E', v_aanduiding || 'NOK-uitvoerder ' || rec.contractant || ' kan niet worden bepaald.', v_errormsg); v_prs_bedrijf_key := -1; v_geldig := 0; END; ELSE -- Mantel; voor ROKs! BEGIN -- Bepaal de uitvoerder=buspartner van een ROK-contract. v_errormsg := 'Fout bepalen ROK-contractuitvoerder.'; SELECT prs_bedrijf_key, c_mantel_separator || prs_bedrijf_naam INTO v_prs_bedrijf_key, v_cntnr_postfix FROM prs_v_contractbedrijf WHERE prs_leverancier_nr = rec.buspartner; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'E', v_aanduiding || 'ROK-uitvoerder ' || rec.buspartner || ' kan niet worden bepaald.', v_errormsg); v_prs_bedrijf_key := -1; v_geldig := 0; END; END IF; -- Koppel inkoopsegment als dienst aan contractuitvoerder. IF rec.inksegm IS NOT NULL AND v_geldig = 1 THEN v_occ := 1; v_beg := 1; v_end := INSTR (rec.inksegm, CHR (13), 1, v_occ); WHILE v_end > 0 LOOP v_tmp := SUBSTR (rec.inksegm, v_beg, v_end - v_beg); v_tmp := SUBSTR (v_tmp, 1, INSTR (v_tmp, ':', -1, 1) - 1); v_errormsg := 'Fout bepalen dienst.'; SELECT COUNT ( * ) INTO v_count FROM prs_dienst WHERE UPPER (prs_dienst_omschrijving) = UPPER (v_tmp); IF v_count = 0 THEN v_errormsg := 'Fout toevoegen dienst.'; INSERT INTO prs_dienst (prs_dienst_omschrijving) VALUES (SUBSTR (v_tmp, 1, 60)) RETURNING prs_dienst_key INTO v_prs_dienst_key; ELSE SELECT prs_dienst_key INTO v_prs_dienst_key FROM prs_dienst WHERE UPPER (prs_dienst_omschrijving) = UPPER (v_tmp); END IF; v_errormsg := 'Fout bepalen bedrijfdienst.'; SELECT COUNT ( * ) INTO v_count FROM prs_bedrijfdienstlocatie WHERE prs_bedrijf_key = v_prs_bedrijf_key AND prs_dienst_key = v_prs_dienst_key; IF v_count = 0 THEN v_errormsg := 'Fout toevoegen bedrijfdienst.'; INSERT INTO prs_bedrijfdienstlocatie (prs_bedrijf_key, prs_dienst_key) VALUES (v_prs_bedrijf_key, v_prs_dienst_key); END IF; v_occ := v_occ + 1; v_beg := v_end + 2; v_end := INSTR (rec.inksegm, CHR (13), 1, v_occ); END LOOP; END IF; -- Als contract verwijst naar een mantel, dan gaan we deze nu zoeken. v_errormsg := 'Fout bepalen mantel.'; v_cnt_contract_mantel_key := NULL; IF rec.raamcontract IS NOT NULL AND v_geldig = 1 THEN IF v_contract_type = 5 -- Supplier; zou zo moeten zijn! THEN BEGIN SELECT cnt_contract_key INTO v_cnt_contract_mantel_key FROM cnt_contract WHERE SUBSTR ( cnt_contract_nummer, 1, INSTR (cnt_contract_nummer || c_mantel_separator, c_mantel_separator, 1, 1) - 1) = rec.raamcontract AND cnt_prs_bedrijf_key = v_prs_bedrijf_key; EXCEPTION WHEN NO_DATA_FOUND THEN fac.imp_writelog ( p_import_key, 'W', v_aanduiding || 'Raamcontract ' || rec.raamcontract || ' kan niet worden bepaald.', v_errormsg); END; ELSE fac.imp_writelog ( p_import_key, 'E', v_aanduiding || 'Een ROK mag niet verwijzen naar een andere ROK!', v_errormsg); v_geldig := 0; END IF; END IF; -- Bestaat het contract al? v_errormsg := 'Fout bepalen contract.'; BEGIN SELECT cnt_contract_key INTO v_cnt_contract_key FROM cnt_contract WHERE SUBSTR (cnt_contract_nummer, 1, INSTR (cnt_contract_nummer || c_mantel_separator, c_mantel_separator, 1, 1) - 1) = rec.zaakid AND cnt_prs_bedrijf_key = v_prs_bedrijf_key; EXCEPTION WHEN NO_DATA_FOUND THEN v_cnt_contract_key := -1; END; -- Bepaal opzegtermijn. v_errormsg := 'Fout bepalen opzegtermijn.'; v_termijn_type := 'M'; v_termijn_aantal := 0; IF UPPER (rec.actverl) = 'JA' AND rec.uitactiedat IS NOT NULL AND rec.einddat <> rec.uitactiedat THEN -- Is het verschil een geheel aantal jaren? IF TO_CHAR (rec.einddat, 'ddmm') = TO_CHAR (rec.uitactiedat, 'ddmm') THEN -- Verschil geheel aantal jaren. v_termijn_type := 'Y'; v_termijn_aantal := TO_NUMBER (TO_CHAR (rec.einddat, 'yyyy')) - TO_NUMBER (TO_CHAR (rec.uitactiedat, 'yyyy')); ELSE -- Verschil afgrond op geheel aantal maanden. v_termijn_type := 'M'; v_termijn_aantal := ROUND ((rec.einddat - rec.uitactiedat) / 30); END IF; END IF; IF v_termijn_aantal < 0 THEN v_termijn_aantal := 0; END IF; IF v_termijn_aantal > 999 THEN v_termijn_aantal := 999; END IF; -- Bestaat de termijn al? BEGIN SELECT cnt_termijn_key INTO v_opzeg_termijn_key FROM cnt_termijn WHERE cnt_termijn_type = v_termijn_type AND cnt_termijn_aantal = v_termijn_aantal; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO cnt_termijn (cnt_termijn_omschrijving, cnt_termijn_type, cnt_termijn_aantal) VALUES (TO_CHAR (v_termijn_aantal) || DECODE (v_termijn_type, 'Y', ' Jaar', ' Maand(en)'), v_termijn_type, v_termijn_aantal) RETURNING cnt_termijn_key INTO v_opzeg_termijn_key; END; -- Bepaal rappeltermijn via Eigen tabel met key=4; anders c_rappel_termijn_key! v_errormsg := 'Fout bepalen rappeltermijn.'; BEGIN SELECT t.cnt_termijn_key INTO v_rappel_termijn_key FROM fac_usrdata ud, cnt_termijn t WHERE ud.fac_usrtab_key = 4 -- Zaaksrt2RapTerm AND ud.fac_usrdata_upper = UPPER (v_contract_soort) AND TRIM (ud.fac_usrdata_omschr) = TO_CHAR (t.cnt_termijn_key); EXCEPTION WHEN NO_DATA_FOUND THEN v_rappel_termijn_key := c_rappel_termijn_key; END; IF v_geldig = 1 THEN IF v_cnt_contract_key = -1 THEN v_errormsg := 'Toevoegen contract.'; INSERT INTO cnt_contract (cnt_contract_nummer, cnt_contract_omschrijving, --cnt_contract_opmerking, cnt_contract_mantel_key, cnt_contract_looptijd_van, cnt_contract_looptijd_tot, cnt_prs_bedrijf_key, ins_discipline_key, prs_perslid_key_beh, prs_afdeling_key_eig, cnt_contract_opzegtermijn, cnt_contract_rappeltermijn, cnt_contract_status) VALUES (SUBSTR (rec.zaakid || v_cntnr_postfix, 1, 30), rec.onderwerp, --NULL, v_cnt_contract_mantel_key, COALESCE (rec.startwerkdat, SYSDATE), COALESCE (rec.einddat, TO_DATE ('29991231', 'yyyymmdd')), v_prs_bedrijf_key, v_cnt_discipline_key, c_prs_perslid_key_beh, v_prs_afdeling_key_eig, v_opzeg_termijn_key, v_rappel_termijn_key, rec.gesloten) RETURNING cnt_contract_key INTO v_cnt_contract_key; -- 09-12-2010/MVH: Tracking + Notificatie naar beheerder bij aanmaken contract! -- 16-10-2015/MVH: Geen notificatie, want beheerder bij aanmaken vaste default! -- Track het aanmaken van een nieuwe contract. fac.trackaction ('CNTNEW', v_cnt_contract_key, NULL, NULL, NULL); /* IF v_new_perslid_key_beh != -1 THEN fac.putnotificationsrtprio (NULL, v_new_perslid_key_beh, 'CNTNEW', v_cnt_contract_key, NULL, NULL, NULL, NULL, NULL, 2, NULL); END IF; */ ELSE v_errormsg := 'Bijwerken contract.'; UPDATE cnt_contract SET cnt_contract_omschrijving = rec.onderwerp, cnt_contract_mantel_key = v_cnt_contract_mantel_key, cnt_contract_looptijd_van = COALESCE (rec.startwerkdat, cnt_contract_looptijd_van), cnt_contract_looptijd_tot = COALESCE (rec.einddat, TO_DATE ('29991231', 'yyyymmdd')), cnt_prs_bedrijf_key = v_prs_bedrijf_key, ins_discipline_key = v_cnt_discipline_key, prs_afdeling_key_eig = v_prs_afdeling_key_eig, cnt_contract_opzegtermijn = v_opzeg_termijn_key, cnt_contract_rappeltermijn = v_rappel_termijn_key, cnt_contract_status = rec.gesloten WHERE cnt_contract_key = v_cnt_contract_key; -- 07-12-2010/MVH: Notificatie naar nieuwe beheerder op verzoek Hans de Zwarte! -- 16-10-2015/MVH: Geen notificatie, want beheerder bij import nooit gewijzigd! /* IF v_new_perslid_key_beh != v_cur_perslid_key_beh THEN fac.putnotificationsrtprio (NULL, v_new_perslid_key_beh, 'CUST04', v_cnt_contract_key, NULL, NULL, NULL, NULL, NULL, 2, NULL); END IF; */ END IF; COMMIT; -- Update kenmerken. -- Haal default link naar contract uit kenmerk en vervang met actuele nummer. -- 16-10-2015/MVH: Mag weg, want niemand die dit nog weet/wil (overblijfsel 1e versie)? v_errormsg := 'Toevoegen contract link.'; BEGIN SELECT REPLACE (cnt_kenmerk_default, '', rec.zaakid) INTO v_kenmerk_link_waarde FROM cnt_kenmerk WHERE cnt_srtkenmerk_key = v_kenmerksrt_link AND cnt_srtcontract_key = v_cnt_discipline_key; EXCEPTION WHEN NO_DATA_FOUND THEN v_kenmerk_link_waarde := NULL; END; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_link, v_kenmerk_link_waarde); COMMIT; v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_contracttype) || '=' || rec.contracttype; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_contracttype, rec.contracttype); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_opdrachtdat) || '=' || TO_CHAR (rec.opdrachtdat, 'dd-mm-yyyy'); insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_opdrachtdat, TO_CHAR (rec.opdrachtdat, 'dd-mm-yyyy')); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_actverl) || '=' || rec.actverl; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_actverl, rec.actverl); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_status) || '=' || rec.status; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_status, rec.status); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_contrfase) || '=' || rec.contrfase; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_contrfase, rec.contrfase); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_rol05) || '=' || v_naam_rol05; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_rol05, v_naam_rol05); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_verzgeb) || '=' || rec.verzgeb; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_verzgeb, rec.verzgeb); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_inksegm) || '=' || rec.inksegm; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_inksegm, rec.inksegm); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_zaakbehand) || '=' || v_naam_zaakbehand; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_zaakbehand, v_naam_zaakbehand); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_rol01) || '=' || v_naam_rol01; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_rol01, v_naam_rol01); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_rol07) || '=' || v_naam_rol07; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_rol07, v_naam_rol07); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_rol08) || '=' || v_naam_rol08; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_rol08, v_naam_rol08); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_opdrachtgever) || '=' || rec.opdrachtgever; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_opdrachtgever, rec.opdrachtgever); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_indexcontract) || '=' || rec.indexcontract; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_indexcontract, rec.indexcontract); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_dat_index) || '=' || TO_CHAR (rec.dat_index, 'dd-mm-yyyy'); insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_dat_index, TO_CHAR (rec.dat_index, 'dd-mm-yyyy')); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_pernr) || '=' || rec.pernr; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_pernr, rec.pernr); v_errormsg := 'UPSERT kenmerk: ' || TO_CHAR (v_kenmerksrt_poski_post1) || '=' || rec.poski_post1; insert_or_update_kenmerk (v_cnt_contract_key, v_kenmerksrt_poski_post1, rec.poski_post1); COMMIT; v_count_chg := v_count_chg + 1; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Fout toevoegen/bijwerken contract!'); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'Updateproces/#verwerkte updateregels: ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog ( p_import_key, 'S', 'Updateproces/#ongeldige niet verwerkte updateregels: ' || TO_CHAR (v_count_tot - v_count_chg), ''); /* COMMIT; -- Loop door alle lege mantels en verwijder deze. Toch? v_count_tot := 0; v_errormsg := 'Fout verwijderen lege mantel.'; FOR rec IN c2 LOOP BEGIN v_aanduiding := rec.cnt_contract_nummer; DELETE FROM cnt_contract WHERE cnt_contract_key = rec.cnt_contract_key; COMMIT; v_count_tot := v_count_tot + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Fout verwijderen contract!'); COMMIT; END; END LOOP; IF (v_count_tot > 0) THEN fac.imp_writelog ( p_import_key, 'S', 'Updateproces/#verwijderde lege mantels: ' || TO_CHAR (v_count_tot), ''); END IF; */ EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Updateproces IKD contracts afgebroken!'); END; / --RWSN#54732 --Deze rapportage dient als input voor de leverancier van de klanttevredenheidsonderzoeken CREATE OR REPLACE VIEW rwsn_v_kto_melding ( nummer, email, prs_perslid_voornaam, naam, vakgroep, melding, organisatie_1, organisatie_2, organisatie_3, regio, district, locatie, eenheid, aangemaakt, afgehandeld, afm_persoon, afm_org_3, afm_org_4, afm_org_5, omschrijving, afhandeling, groep, bedrijf, meldingkey, uitvoeringoptijd, afspraakoptijd, meedoen_in_kto, onderwerp, behandelgroep, email_extern, kandidaatnummer ) AS SELECT sd.ins_srtdiscipline_prefix || m.mld_melding_key nummer, p.prs_perslid_email email, p.prs_perslid_voornaam, p.prs_perslid_naam naam, disc.ins_discipline_omschrijving vakgroep, rwsn.format_string_voor_rap (stdm.mld_stdmelding_omschrijving, 500) melding, afd1_m.prs_afdeling_omschrijving organisatie_1, afd2_m.prs_afdeling_omschrijving organisatie_2, afd3_m.prs_afdeling_omschrijving organisatie_3, COALESCE(lm.alg_regio_omschrijving, lwp.alg_regio_omschrijving) regio, COALESCE(lm.alg_district_omschrijving, lwp.alg_district_omschrijving) district, COALESCE(lm.alg_locatie_omschrijving, lwp.alg_locatie_omschrijving) locatie, sd.ins_srtdiscipline_omschrijving eenheid, m.mld_melding_datum aangemaakt, t.fac_tracking_datum afgehandeld, p_afm.prs_perslid_oslogin afm_persoon, afd3_afm.prs_afdeling_omschrijving afm_org_3, afd4_afm.prs_afdeling_omschrijving afm_org_4, afd5_afm.prs_afdeling_omschrijving afm_org_5, rwsn.format_string_voor_rap (TO_CHAR (SUBSTR (m.mld_melding_omschrijving, 1, 4000)), 500) omschrijving, rwsn.format_string_voor_rap (m.mld_melding_opmerking, 500) afhandeling, mg.mld_stdmeldinggroep_naam groep, b.prs_bedrijf_naam bedrijf, m.mld_melding_key meldingkey, DECODE ( SIGN (m.mld_melding_einddatum_std - t.fac_tracking_datum), -1, 'nee', 'ja') uitvoering_volgens_sla, DECODE ( SIGN (m.mld_melding_einddatum - t.fac_tracking_datum), -1, 'nee', 'ja') afspraak_volgens_sla, (SELECT MAX (ud.fac_usrdata_omschr) FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, fac_v_aanwezigusrdata ud WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 1 AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key AND km.MLD_MELDING_KEY = m.mld_melding_key) -- Meedoen in KTO meedoen, m.mld_melding_onderwerp, bg.mld_behandelgroep_naam behandelgroep, (SELECT MAX (km.mld_kenmerkmelding_waarde) -- Kenmerken komen soms op stdmelding en vakgroep voor. FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_verwijder IS NULL AND k.mld_srtkenmerk_key = 20) -- Email email, (SELECT km.mld_kenmerkmelding_waarde FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k WHERE km.MLD_MELDING_KEY = m.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 11151) -- Kandidaatnummer kandidaatnummer FROM mld_melding m, prs_perslid p, prs_v_afdeling_boom ab_m, prs_afdeling afd1_m, prs_afdeling afd2_m, prs_afdeling afd3_m, alg_v_locatie_gegevens lm, alg_v_locatie_gegevens lwp, prs_perslid p_afm, prs_v_afdeling_boom ab_afm, prs_afdeling afd3_afm, prs_afdeling afd4_afm, prs_afdeling afd5_afm, (SELECT prs_perslid_key, alg_locatie_key FROM prs_v_perslidwerkplek_gegevens pwg WHERE NOT EXISTS (SELECT pwg2.prs_perslidwerkplek_key FROM prs_v_perslidwerkplek_gegevens pwg2 WHERE pwg2.prs_perslidwerkplek_key < pwg.prs_perslidwerkplek_key AND pwg.prs_perslid_key = pwg2.prs_perslid_key)) melder_wp, (SELECT mt.mld_melding_key, MAX(fac_tracking_key) fac_tracking_key FROM mld_melding mt, fac_tracking t, fac_srtnotificatie sn WHERE mt.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_code = 'MLDAFM' AND mt.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm') GROUP BY mt.mld_melding_key)afm, mld_stdmelding stdm, mld_stdmeldinggroep mg, ins_tab_discipline disc, ins_srtdiscipline sd, fac_tracking t, prs_bedrijf b, mld_disc_params dp, mld_behandelgroep bg WHERE m.mld_melding_status IN (5, 6) AND m.prs_perslid_key = p.prs_perslid_key AND m.mld_melding_key = afm.mld_melding_key(+) AND afm.fac_tracking_key = t.fac_tracking_key(+) AND t.prs_perslid_key = p_afm.prs_perslid_key(+) AND m.prs_perslid_key = melder_wp.prs_perslid_key(+) AND p.prs_afdeling_key = ab_m.prs_afdeling_key(+) AND ab_m.prs_afdeling_key1 = afd1_m.prs_afdeling_key(+) AND ab_m.prs_afdeling_key2 = afd2_m.prs_afdeling_key(+) AND ab_m.prs_afdeling_key3 = afd3_m.prs_afdeling_key(+) AND ab_m.prs_bedrijf_key = b.prs_bedrijf_key(+) AND m.mld_alg_locatie_key = lm.alg_locatie_key(+) AND melder_wp.alg_locatie_key = lwp.alg_locatie_key(+) AND p_afm.prs_afdeling_key = ab_afm.prs_afdeling_key(+) AND ab_afm.prs_afdeling_key3 = afd3_afm.prs_afdeling_key(+) AND ab_afm.prs_afdeling_key4 = afd4_afm.prs_afdeling_key(+) AND ab_afm.prs_afdeling_key5 = afd5_afm.prs_afdeling_key(+) AND m.mld_stdmelding_key = stdm.mld_stdmelding_key(+) AND stdm.mld_stdmeldinggroep_key = mg.mld_stdmeldinggroep_key(+) AND stdm.mld_ins_discipline_key = disc.ins_discipline_key(+) AND disc.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) AND disc.ins_discipline_key = dp.mld_ins_discipline_key(+) AND dp.mld_behandelgroep_key = bg.mld_behandelgroep_key(+) AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm'); -- RWSN#35936 /* Formatted on 13-2-2017 16:02:58 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_contractpersoon ( fclt_f_contract, fclt_f_naam, fclt_f_rol ) AS SELECT c.cnt_contract_nummer_intern, x.prs_perslid_naam_full, --x.rol LISTAGG (x.rol, ', ') WITHIN GROUP (ORDER BY x.rol) AS rol FROM (SELECT c.cnt_contract_key, p.prs_perslid_naam_full, 'Eigenaar' rol FROM cnt_v_aanwezigcontract c, prs_v_perslid_fullnames p WHERE c.prs_perslid_key_eig = p.prs_perslid_key UNION ALL SELECT c.cnt_contract_key, p.prs_perslid_naam_full, 'Beheerder' rol FROM cnt_v_aanwezigcontract c, prs_v_perslid_fullnames p WHERE c.prs_perslid_key_beh = p.prs_perslid_key UNION ALL -- Personen in kenmerkvelden 24=ROL05, 29=ROL01, 30=ROL07, 31=ROL08 en 32=Opdrachtgever SELECT kc.cnt_contract_key, kc.cnt_kenmerkcontract_waarde, sk.cnt_srtkenmerk_omschrijving rol FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key AND sk.cnt_srtkenmerk_key IN (24, 29, 30, 31, 32) UNION ALL -- Personen in kenmerkvelden 61=Producteigenaar, 62=Adviseur en 63=Contracttoezichthouder SELECT kc.cnt_contract_key, p.prs_perslid_naam_full, sk.cnt_srtkenmerk_omschrijving rol FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk, prs_v_perslid_fullnames p WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key AND sk.cnt_srtkenmerk_key IN (61, 62, 63) AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (p.prs_perslid_key)) x, cnt_contract c WHERE x.cnt_contract_key = c.cnt_contract_key GROUP BY c.cnt_contract_key, c.cnt_contract_nummer_intern, x.prs_perslid_naam_full; create or replace view rwsn_v_afd_hierarchie as select boom.prs_afdeling_key4 as prs_afdeling_key, boom.prs_afdeling_key5 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key4 is not null and boom.prs_afdeling_key5 is not null union select boom.prs_afdeling_key3 as prs_afdeling_key, boom.prs_afdeling_key4 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key3 is not null and boom.prs_afdeling_key4 is not null union select boom.prs_afdeling_key3 as prs_afdeling_key, boom.prs_afdeling_key5 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key3 is not null and boom.prs_afdeling_key5 is not null union select boom.prs_afdeling_key2 as prs_afdeling_key, boom.prs_afdeling_key3 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key2 is not null and boom.prs_afdeling_key3 is not null union select boom.prs_afdeling_key2 as prs_afdeling_key, boom.prs_afdeling_key4 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key2 is not null and boom.prs_afdeling_key4 is not null union select boom.prs_afdeling_key2 as prs_afdeling_key, boom.prs_afdeling_key5 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key2 is not null and boom.prs_afdeling_key5 is not null union select boom.prs_afdeling_key1 as prs_afdeling_key, boom.prs_afdeling_key2 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key1 is not null and boom.prs_afdeling_key2 is not null union select boom.prs_afdeling_key1 as prs_afdeling_key, boom.prs_afdeling_key3 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key1 is not null and boom.prs_afdeling_key3 is not null union select boom.prs_afdeling_key1 as prs_afdeling_key, boom.prs_afdeling_key4 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key1 is not null and boom.prs_afdeling_key4 is not null union select boom.prs_afdeling_key1 as prs_afdeling_key, boom.prs_afdeling_key5 as prs_afdeling_childkey from prs_v_afdeling_boom boom where boom.prs_afdeling_key1 is not null and boom.prs_afdeling_key5 is not null; -- Van de persoon user_key (1e kolom) zijn afdeling (2e en 3e kolom) en -- vervolgens alle collega's (4e + 5e kolom) op zijn afdeling en eronder, met hun afdeling (6e + 7e kolom) -- Alle collega's van de subafdelingen -- UNION -- Alle collega's van de eigen afdeling (en niet jezelf). create or replace view rwsn_v_pers_hier_up_and_below as select p1.prs_perslid_key AS user_key, a1.prs_afdeling_key AS user_afdeling_key, a1.prs_afdeling_naam AS user_afdeling_naam, p2.prs_perslid_key, p2.prs_perslid_naam, a2.prs_afdeling_key, a2.prs_afdeling_naam, a2.prs_afdeling_omschrijving from prs_perslid p1, prs_afdeling a1, rwsn_v_afd_hierarchie boom, prs_afdeling a2, prs_perslid p2 where p1.prs_afdeling_key = a1.prs_afdeling_key and boom.prs_afdeling_key = a1.prs_afdeling_key (+) and boom.prs_afdeling_childkey = a2.prs_afdeling_key (+) and (p2.prs_afdeling_key = a1.prs_afdeling_key or p2.prs_afdeling_key = a2.prs_afdeling_key) UNION select p1.prs_perslid_key AS user_key, a1.prs_afdeling_key AS user_afdeling_key, a1.prs_afdeling_naam AS user_afdeling_naam, p2.prs_perslid_key, p2.prs_perslid_naam, a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving from prs_perslid p1, prs_afdeling a1, prs_perslid p2 where p1.prs_afdeling_key = a1.prs_afdeling_key and p1.prs_perslid_key <> p2.prs_perslid_key and a1.prs_afdeling_key = p2.prs_afdeling_key (+); create or replace view rwsn_v_pers_hier_above as select p.prs_perslid_key as user_key, a.* from prs_perslid p, rwsn_v_organogram a where a.prs_afdeling_key2 = p.prs_afdeling_key and a.prs_afdeling_key2 <> 0 UNION select p.prs_perslid_key as user_key, a2.* from prs_perslid p, rwsn_v_organogram a, rwsn_v_organogram a2 where a.prs_afdeling_key2 = p.prs_afdeling_key and a2.prs_afdeling_key2 = a.prs_afdeling_key1 and a.prs_afdeling_key2 <> 0 and a2.prs_afdeling_key2 <> 0 UNION select p.prs_perslid_key as user_key, a3.* from prs_perslid p, rwsn_v_organogram a, rwsn_v_organogram a2, rwsn_v_organogram a3 where a.prs_afdeling_key2 = p.prs_afdeling_key and a2.prs_afdeling_key2 = a.prs_afdeling_key1 and a3.prs_afdeling_key2 = a2.prs_afdeling_key1 and a.prs_afdeling_key2 <> 0 and a2.prs_afdeling_key2 <> 0 and a3.prs_afdeling_key2 <> 0 UNION select p.prs_perslid_key as user_key, a4.* from prs_perslid p, rwsn_v_organogram a, rwsn_v_organogram a2, rwsn_v_organogram a3, rwsn_v_organogram a4 where a.prs_afdeling_key2 = p.prs_afdeling_key and a2.prs_afdeling_key2 = a.prs_afdeling_key1 and a3.prs_afdeling_key2 = a2.prs_afdeling_key1 and a4.prs_afdeling_key2 = a3.prs_afdeling_key1 and a.prs_afdeling_key2 <> 0 and a2.prs_afdeling_key2 <> 0 and a3.prs_afdeling_key2 <> 0 and a4.prs_afdeling_key2 <> 0 UNION select p.prs_perslid_key as user_key, a5.* from prs_perslid p, rwsn_v_organogram a, rwsn_v_organogram a2, rwsn_v_organogram a3, rwsn_v_organogram a4, rwsn_v_organogram a5 where a.prs_afdeling_key2 = p.prs_afdeling_key and a2.prs_afdeling_key2 = a.prs_afdeling_key1 and a3.prs_afdeling_key2 = a2.prs_afdeling_key1 and a4.prs_afdeling_key2 = a3.prs_afdeling_key1 and a5.prs_afdeling_key2 = a4.prs_afdeling_key1 and a.prs_afdeling_key2 <> 0 and a2.prs_afdeling_key2 <> 0 and a3.prs_afdeling_key2 <> 0 and a4.prs_afdeling_key2 <> 0 and a5.prs_afdeling_key2 <> 0; create or replace view rwsn_v_idm_boom as SELECT LEVEL as idmlevel, afdelingscode, omschrijving, parentcode FROM rwsn_imp_idm_org WHERE afdelingscode IS NOT NULL CONNECT BY PRIOR afdelingscode = parentcode START WITH parentcode = '00000000'; -- Autorisatieinzicht van personen op eigen afdeling en eronder create or replace view rwsn_v_autorisatie_inzicht as select distinct hier.user_key AS FCLT_3D_USER_KEY, a2.prs_afdeling_naam AS SUBAFDELING, a2.prs_afdeling_omschrijving AS SUBAFDELING_OMSCHRIJVING, pf.prs_perslid_naam_full AS PERSOON, g.fac_groep_omschrijving AS FCLT_F_AUTORISATIEGROEP from rwsn_v_pers_hier_up_and_below hier, fac_gebruikersgroep gg, fac_groep g, prs_v_perslid_fullnames pf, prs_afdeling a2, prs_perslid p WHERE g.fac_groep_key = gg.fac_groep_key AND hier.prs_perslid_key = gg.prs_perslid_key AND g.fac_groep_key <> 1 AND hier.prs_perslid_key = pf.prs_perslid_key AND hier.prs_perslid_key = p.prs_perslid_key AND a2.prs_afdeling_key = p.prs_afdeling_key; create or replace view rwsn_v_autorisatie_inzicht2 (FCLT_F_AFDELING, SUBAFDELING, SUBAFDELING_OMSCHRIJVING, PERSOON, FCLT_F_AFDELINGSNIVEAU, FCLT_F_AUTORISATIEGROEP) AS select a.prs_afdeling_naam, a2.prs_afdeling_naam, a2.prs_afdeling_omschrijving, pf2.prs_perslid_naam_full, to_char(idm.idmlevel), g.fac_groep_omschrijving from rwsn_v_idm_boom idm, prs_afdeling a, rwsn_v_afd_hierarchie boom, prs_perslid p2, prs_afdeling a2, prs_v_perslid_fullnames pf2, fac_gebruikersgroep gg, fac_groep g where (boom.prs_afdeling_key = a.prs_afdeling_key or boom.prs_afdeling_childkey = a.prs_afdeling_key) and p2.prs_afdeling_key = boom.prs_afdeling_childkey and a2.prs_afdeling_key = p2.prs_afdeling_key and a2.prs_afdeling_naam = IDM.AFDELINGSCODE (+) and pf2.prs_perslid_key = p2.prs_perslid_key and g.fac_groep_key = gg.fac_groep_key and g.fac_groep_key <> 1 AND p2.prs_perslid_key = gg.prs_perslid_key; -- Organogram van uitsluitend de organisatie/afdelingen, dus EXCLUSIEF de personen (prs_perslid_key = 0) -- Boomstructuur volgens 2 kolommen. -- UNION -- Afdeling op laagste nivo erbij (als blad). -- UNION -- Bedrijf als 'afdeling' op hoogste nivo erbij (top). create or replace view rwsn_v_organogram (prs_afdeling_key1, prs_afdeling_naam1, prs_afdeling_omschrijving1, prs_afdeling_key2, prs_afdeling_naam2, prs_afdeling_omschrijving2, prs_afdeling_persoon, prs_perslid_key) as select a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, a2.prs_afdeling_key, a2.prs_afdeling_naam, a2.prs_afdeling_omschrijving, 'A', 0 from prs_afdeling a1, prs_afdeling a2 where a2.prs_afdeling_parentkey = a1.prs_afdeling_key and a1.prs_afdeling_verwijder is null union select a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, 0, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, 'A', 0 from prs_afdeling a1, prs_afdeling a2 where not exists (select 'x' from prs_afdeling a2 where a2.prs_afdeling_parentkey = a1.prs_afdeling_key) and a1.prs_afdeling_verwijder is null union select 0, 'RWSN', 'RWSN', a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, 'A', 0 from prs_afdeling a1 where a1.prs_afdeling_parentkey is null and a1.prs_afdeling_verwijder is null; -- Organogram van de organisatie/afdelingen INCLUSIEF de personen create or replace view rwsn_v_organogram_incl_perslid (prs_afdeling_key1, prs_afdeling_naam1, prs_afdeling_omschrijving1, prs_afdeling_key2, prs_afdeling_naam2, prs_afdeling_omschrijving2, prs_afdeling_persoon, prs_perslid_key) as select * from rwsn_v_organogram where prs_afdeling_key2 <> 0 union select a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, 0, pf.prs_perslid_naam_full, sp.prs_srtperslid_omschrijving, 'P', p1.prs_perslid_key from prs_afdeling a1, prs_perslid p1, prs_srtperslid sp, prs_v_perslid_fullnames pf where p1.prs_afdeling_key = a1.prs_afdeling_key and p1.prs_srtperslid_key = sp.prs_srtperslid_key and p1.prs_perslid_key = pf.prs_perslid_key and p1.prs_perslid_verwijder is null; -- Mijn organogram, d.w.z. mijn afdeling en de afdelingen eronder inclusief de personen, -- en alleen de afdelingen boven mij (ouders) ZONDER de personen. create or replace view rwsn_v_my_organogram (fclt_3d_user_key, prs_afdeling_key1, prs_afdeling_naam1, prs_afdeling_omschrijving1, prs_afdeling_key2, prs_afdeling_naam2, prs_afdeling_omschrijving2, prs_afdeling_persoon, prs_perslid_key) as select distinct hier.user_key, ogram.* from rwsn_v_pers_hier_up_and_below hier, rwsn_v_organogram ogram where ogram.prs_afdeling_key2 <> 0 and ( (ogram.prs_afdeling_key2 = hier.prs_afdeling_key) or (ogram.prs_afdeling_key2 = hier.user_afdeling_key) ) union select * from rwsn_v_pers_hier_above union select distinct hier.user_key, a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, 0, pf.prs_perslid_naam_full, sp.prs_srtperslid_omschrijving, 'P', p1.prs_perslid_key from prs_afdeling a1, prs_perslid p1, prs_srtperslid sp, prs_v_perslid_fullnames pf, rwsn_v_pers_hier_up_and_below hier where p1.prs_afdeling_key = a1.prs_afdeling_key and p1.prs_srtperslid_key = sp.prs_srtperslid_key and p1.prs_perslid_key = pf.prs_perslid_key and p1.prs_perslid_verwijder is null and a1.prs_afdeling_key = hier.prs_afdeling_key and p1.prs_perslid_verwijder is null; -- Organogram van ALLE organisatie/afdelingen INCLUSIEF de personen andere dan de _default-rol hebben create or replace view rwsn_v_organogram_autorisatie (prs_afdeling_key1, prs_afdeling_naam1, prs_afdeling_omschrijving1, prs_afdeling_key2, prs_afdeling_naam2, prs_afdeling_omschrijving2, prs_afdeling_persoon, prs_perslid_key, autorisatiegroep) as select prs_afdeling_key1, prs_afdeling_naam1, prs_afdeling_omschrijving1, prs_afdeling_key2, prs_afdeling_naam2, prs_afdeling_omschrijving2, prs_afdeling_persoon, prs_perslid_key, '' from rwsn_v_organogram where prs_afdeling_key2 <> 0 union select a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, 0, pf.prs_perslid_naam_full, sp.prs_srtperslid_omschrijving, 'P', p1.prs_perslid_key, g.fac_groep_omschrijving from prs_afdeling a1, prs_perslid p1, prs_srtperslid sp, prs_v_perslid_fullnames pf, fac_gebruikersgroep gg, fac_groep g where p1.prs_afdeling_key = a1.prs_afdeling_key and p1.prs_srtperslid_key = sp.prs_srtperslid_key and p1.prs_perslid_key = pf.prs_perslid_key and g.fac_groep_key = gg.fac_groep_key and g.fac_groep_key <> 1 and p1.prs_perslid_key = gg.prs_perslid_key and p1.prs_perslid_verwijder is null; -- Autorisatie-organogram van MIJ: dus 'mijn' afdelingen INCLUSIEF de personen andere dan de _default-rol hebben create or replace view rwsn_v_my_organogram_autorisat (fclt_3d_user_key, prs_afdeling_key1, prs_afdeling_naam1, prs_afdeling_omschrijving1, prs_afdeling_key2, prs_afdeling_naam2, prs_afdeling_omschrijving2, prs_afdeling_persoon, prs_perslid_key, autorisatiegroep) as select distinct hier.user_key, ogram.*, '' from rwsn_v_pers_hier_up_and_below hier, rwsn_v_organogram ogram where ogram.prs_afdeling_key2 <> 0 and ( (ogram.prs_afdeling_key2 = hier.prs_afdeling_key) or (ogram.prs_afdeling_key2 = hier.user_afdeling_key) ) union select hier.*, '' from rwsn_v_pers_hier_above hier union select distinct hier.user_key, a1.prs_afdeling_key, a1.prs_afdeling_naam, a1.prs_afdeling_omschrijving, 0, pf.prs_perslid_naam_full, sp.prs_srtperslid_omschrijving, 'P', p1.prs_perslid_key, g.fac_groep_omschrijving from prs_afdeling a1, prs_perslid p1, prs_srtperslid sp, prs_v_perslid_fullnames pf, rwsn_v_pers_hier_up_and_below hier, fac_gebruikersgroep gg, fac_groep g where p1.prs_afdeling_key = a1.prs_afdeling_key and p1.prs_srtperslid_key = sp.prs_srtperslid_key and p1.prs_perslid_key = pf.prs_perslid_key and p1.prs_perslid_verwijder is null and a1.prs_afdeling_key = hier.prs_afdeling_key and g.fac_groep_key = gg.fac_groep_key and g.fac_groep_key <> 1 and p1.prs_perslid_key = gg.prs_perslid_key; CREATE OR REPLACE VIEW rwsn_v_receptie_bezoekers AS SELECT l.alg_locatie_key FCLT_3D_LOCATIE_KEY, l.alg_locatie_omschrijving FCLT_F_Locatie, TO_CHAR (a.bez_afspraak_datum, 'DD-MM-YYYY') FCLT_D_Datum, TO_CHAR (a.bez_afspraak_datum, 'HH24:MI') Tijd, TO_CHAR( a.bez_afspraak_key) Nr, b.bez_afspraak_naam Bezoeker, b.bez_afspraak_bedrijf Bedrijf, p.prs_perslid_naam || DECODE (NVL (p.prs_perslid_voorletters, ''), '', '', ', ' || p.prs_perslid_voorletters) || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), '', '', ' ' || p.prs_perslid_tussenvoegsel) || DECODE (NVL (p.prs_perslid_voornaam, ''), '', '', ' (' || p.prs_perslid_voornaam || ')') || DECODE (NVL (p.prs_perslid_nr, ''), '', '', ' [' || p.prs_perslid_nr || ']') Aanvrager, a.bez_afspraak_gastheer Gastheer, a.bez_afspraak_telefoonnr Telefoon, a.bez_afspraak_ruimte Ruimte, COALESCE (a.bez_afspraak_opmerking, '') Opmerking, TO_CHAR (b.bez_bezoekers_done, 'DD-MM-YYYY HH24:MI') Aankomst, TO_CHAR (b.bez_bezoekers_out, 'DD-MM-YYYY HH24:MI') Vertrek, b.bez_bezoekers_pasnr Badge FROM bez_afspraak a, bez_bezoekers b, prs_perslid p, alg_locatie l, res_rsv_ruimte rrr, res_ruimte_opstelling rro, res_ruimte rr, (SELECT alg_r.alg_ruimte_key alg_onroerendgoed_keys, alg_r.alg_ruimte_key, alg_r.alg_verdieping_key, alg_v.alg_gebouw_key, 'R' alg_type FROM alg_ruimte alg_r, alg_verdieping alg_v WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key UNION ALL SELECT alg_v.alg_verdieping_key, TO_NUMBER (NULL), alg_v.alg_verdieping_key, alg_v.alg_gebouw_key, 'V' FROM alg_verdieping alg_v UNION ALL SELECT alg_g.alg_gebouw_key, TO_NUMBER (NULL), TO_NUMBER (NULL), alg_g.alg_gebouw_key, 'G' FROM alg_gebouw alg_g) og, res_rsv_deel rd WHERE a.bez_afspraak_key = b.bez_afspraak_key AND a.alg_locatie_key = l.alg_locatie_key AND og.alg_onroerendgoed_keys(+) = a.alg_onrgoed_keys AND b.bez_bezoekers_key = rd.bez_bezoekers_key(+) AND p.prs_perslid_key = a.bez_afspraak_contact_key AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+) AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+) AND rro.res_ruimte_key = rr.res_ruimte_key(+); /* Formatted on 22-6-2010 13:36:36 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_cat_per_afd ( fclt_f_maand, fclt_f_dienst, fclt_f_hid, fclt_f_directie, fclt_f_district, fclt_f_afdeling, fclt_f_catalogus, fclt_f_artikel, aantal ) AS SELECT x.maand, y.afd1, y.afd2, y.afd3, y.afd4, y.afd5, x.catalogus, x.artikel, x.aantal FROM (SELECT a.prs_afdeling_key, a.maand, b.catalogus, b.artikel, a.aantal FROM ( SELECT ra.res_artikel_key, p.prs_afdeling_key, TO_CHAR (ra.res_rsv_artikel_levering, 'yyyy-mm') maand, SUM (ra.res_rsv_artikel_aantal) aantal FROM res_v_aanwezigrsv_artikel ra, res_v_aanwezigrsv_ruimte rr, prs_perslid p WHERE ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key GROUP BY ra.res_artikel_key, p.prs_afdeling_key, TO_CHAR (ra.res_rsv_artikel_levering, 'yyyy-mm')) a LEFT JOIN (SELECT art.res_artikel_key, rd.ins_discipline_omschrijving catalogus, art.res_artikel_omschrijving artikel FROM res_artikel art, res_discipline rd WHERE art.res_discipline_key = rd.ins_discipline_key) b ON a.res_artikel_key = b.res_artikel_key) x LEFT JOIN (SELECT ab.prs_afdeling_key, afd1.prs_afdeling_omschrijving afd1, afd2.prs_afdeling_omschrijving afd2, afd3.prs_afdeling_omschrijving afd3, afd4.prs_afdeling_omschrijving afd4, afd5.prs_afdeling_omschrijving afd5 FROM prs_v_afdeling_boom ab, prs_afdeling afd1, prs_afdeling afd2, prs_afdeling afd3, prs_afdeling afd4, prs_afdeling afd5 WHERE ab.prs_afdeling_key1 = afd1.prs_afdeling_key AND ab.prs_afdeling_key2 = afd2.prs_afdeling_key(+) AND ab.prs_afdeling_key3 = afd3.prs_afdeling_key(+) AND ab.prs_afdeling_key4 = afd4.prs_afdeling_key(+) AND ab.prs_afdeling_key5 = afd5.prs_afdeling_key(+)) y ON x.prs_afdeling_key = y.prs_afdeling_key; /* Formatted on 22-6-2010 17:18:36 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_ruimte_opstellingen ( fclt_f_ruimtenaam, ruimte_key, fclt_f_opstelling, opstel_key, aantal_bezoekers, ruimteopst_verwijder, opstelling_verwijder ) AS SELECT r.res_ruimte_nr fclt_f_ruimtenaam, r.res_ruimte_key ruimte_key, o.res_opstelling_omschrijving opstelling, ro.res_ruimte_opstel_key opstel_key, ro.res_ruimte_opstel_bezoekers aantal_bezoekers, ro.res_ruimte_opstel_verwijder, o.res_opstelling_verwijder FROM res_v_aanwezigruimte r, res_ruimte_opstelling ro, res_opstelling o WHERE r.res_ruimte_key = ro.res_ruimte_key AND ro.res_opstelling_key = o.res_opstelling_key; /* Formatted on 22-6-2010 17:35:05 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_res_ruimten ( fclt_f_ruimtenaam, ruimte_key, omschrijving, uur_prijs, vaste_prijs, fclt_f_ruimtecategorie, openingstijd, sluitingstijd, prijs_ochtend, prijs_middag, prijs_avond, fclt_f_opstelling, opstel_key, aantal_bezoekers, fclt_f_locatie, fclt_f_gebouw, fclt_f_verdieping, ruimte, ruimteopst_verwijder, opstelling_verwijder ) AS SELECT x.res_ruimte_nr fclt_f_ruimtenaam, x.res_ruimte_key ruimte_key, x.res_ruimte_omschrijving omschrijving, x.uur_prijs, x.vaste_prijs, x.catalogus ruimtecategorie, x.openingstijd, x.sluitingstijd, x.prijs_ochtend, x.prijs_middag, x.prijs_avond, y.res_opstelling_omschrijving opstelling, y.res_ruimte_opstel_key opstel_key, y.res_ruimte_opstel_bezoekers aantal_bezoekers, z.alg_locatie_code locatie, z.alg_gebouw_code gebouw, z.alg_verdieping_code verdieping, z.alg_ruimte_nr ruimte, y.res_ruimte_opstel_verwijder, y.res_opstelling_verwijder FROM (SELECT rr.res_ruimte_key, rr.res_ruimte_nr, rr.res_ruimte_omschrijving, rr.res_ruimte_prijs uur_prijs, rr.res_ruimte_prijs_vast vaste_prijs, d.ins_discipline_omschrijving catalogus, rr.res_ruimte_begintijd openingstijd, rr.res_ruimte_eindtijd sluitingstijd, rr.res_ruimte_prijs_ochtend prijs_ochtend, rr.res_ruimte_prijs_middag prijs_middag, rr.res_ruimte_prijs_avond prijs_avond FROM res_v_aanwezigruimte rr, res_discipline d WHERE rr.res_discipline_key = d.ins_discipline_key) x LEFT JOIN (SELECT ro.res_ruimte_key, o.res_opstelling_omschrijving, ro.res_ruimte_opstel_key, ro.res_ruimte_opstel_bezoekers, ro.res_ruimte_opstel_verwijder, o.res_opstelling_verwijder FROM res_ruimte_opstelling ro, res_opstelling o WHERE ro.res_opstelling_key = o.res_opstelling_key) y ON x.res_ruimte_key = y.res_ruimte_key LEFT JOIN (SELECT rar.res_ruimte_key, r.alg_ruimte_nr, v.alg_verdieping_code, g.alg_gebouw_code, l.alg_locatie_code FROM res_v_aanwezigalg_ruimte rar, alg_v_aanwezigruimte r, alg_v_aanwezigverdieping v, alg_v_aanweziggebouw g, alg_v_aanweziglocatie l WHERE rar.alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key) z ON x.res_ruimte_key = z.res_ruimte_key; /* Formatted on 29-10-2012 16:26:20 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_opdr_doorloop ( fclt_f_maand, fclt_f_vakgroeptype, fclt_f_vakgroep, fclt_f_melding, fclt_f_uitgegeven, melding_nr, fclt_f_status, m_aangemaakt, m_geaccepteerd, m_afgewezen, m_afgemeld, m_gepland, m_plan_sla, m_norm_sla, m_uitvoertijd, opdracht_nr, fclt_f_bedrijf, o_aangemaakt, o_gefiatteerd, o_verzonden, o_geaccepteerd, o_geannuleerd, o_afgemeld, o_uitvoertijd ) AS SELECT TO_CHAR (m.mldnew_date, 'yyyy-mm') maand, sd.ins_srtdiscipline_omschrijving vakgroeptype_oms, m.vakgroep_oms, m.stdmld_oms, DECODE (o.mld_key, NULL, NULL, 'X'), TO_CHAR (m.mld_key), DECODE ( m.mld_status_key, 1, 'Afgewezen', 5, 'Gesloten', 6, DECODE (o.opdr_status_key, 1, 'Afgewezen', 2, 'Afgewezen', 'Gesloten'), 'Open' ), TO_CHAR (m.mldnew_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (m.mldacp_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (m.mldrej_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (m.mldafm_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (m.mld_plan_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (fac.count_work_days (m.mldnew_date, m.mld_plan_date)), TO_CHAR (m.mld_sla), TO_CHAR(fac.count_work_days ( m.mldnew_date, COALESCE (m.mldrej_date, m.mldafm_date) )), m.mld_key || DECODE (o.opdr_volgnr, NULL, NULL, '/' || o.opdr_volgnr), b.prs_bedrijf_naam, TO_CHAR (o.ordnew_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (o.ord_fiat_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (o.ord_verz_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (o.ordacp_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (o.ordcan_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR (o.ordafm_date, 'dd-mm-yyyy hh24:mi'), TO_CHAR(fac.count_work_days ( o.ordnew_date, COALESCE (o.ord_fiat_date, o.ordcan_date, o.ordafm_date) )) FROM rwsn_mld_freeze m, ins_srtdiscipline sd, rwsn_opdr_freeze o, prs_bedrijf b WHERE m.vakgroeptype_key = sd.ins_srtdiscipline_key AND m.mld_key = o.mld_key(+) AND o.opdr_uv_key = b.prs_bedrijf_key(+); /* Formatted on 11-12-2009 17:50:05 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_imp_log ( fclt_f_applicatie, datum, fclt_f_status, omschrijving, hint ) AS SELECT COALESCE (fac_import_app_code, imp_log_applicatie), imp_log_datum, imp_log_status, imp_log_omschrijving, imp_log_hint FROM imp_log il, fac_import fi, fac_import_app fia WHERE il.fac_import_key = fi.fac_import_key(+) AND fi.fac_import_app_key = fia.fac_import_app_key(+); /* Formatted on 2-12-2010 9:20:54 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_imp_log ( fclt_f_applicatie, datum, fclt_f_status, omschrijving, hint ) AS SELECT COALESCE (fac_import_app_code, imp_log_applicatie), imp_log_datum, imp_log_status, imp_log_omschrijving, imp_log_hint FROM imp_log il, fac_import fi, fac_import_app fia WHERE il.fac_import_key = fi.fac_import_key(+) AND fi.fac_import_app_key = fia.fac_import_app_key(+); -- Dummy export NACHT_WERK! /* Formatted on 29-11-2010 16:25:20 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_export_nacht_werk (RESULT, result_order) AS SELECT '', 0 FROM DUAL WHERE 1 = 0 / /* Formatted on 11-8-2016 15:54:45 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_mld_actual ( mld_key, vakgroeptype_key, vakgroeptype_prefix, vakgroep_key, vakgroep_oms, stdmld_key, stdmld_oms, stdmld_groep, melder_userkey, melder_naam, dienst, mld_oms, mld_opm, mld_status_key, mld_begin_date, mld_sla, sla_doorloop, mld_plan_date, plan_doorloop, onderdeel, lsu, locatiecode, mldnew_date, mldnew_userkey, mldnew_naam, mlding_date, mlding_userkey, mlding_naam, mldacp_date, mldacp_userkey, mldacp_naam, mldrej_date, mldrej_userkey, mldrej_naam, mldafm_date, mldafm_userkey, mldafm_naam, mldver_date ) AS SELECT meld.mld_key, meld.vakgroeptype_key, SUBSTR (meld.vakgroeptype_prefix, 1, 3), meld.vakgroep_key, SUBSTR (meld.vakgroep_oms, 1, 30), meld.stdmld_key, SUBSTR (meld.stdmld_oms, 1, 60), SUBSTR (COALESCE (meld.stdmld_groep, 'Onbekend'), 1, 30) groep, meld.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = meld.prs_perslid_key), SUBSTR (rwsn.bepaal_dienst (meld.prs_perslid_key), 1, 60) dienst, --SUBSTR (meld.mld_oms, 1, 1000) mld_oms, TO_CHAR (SUBSTR (meld.mld_oms, 1, 1000)) mld_oms, SUBSTR (meld.mld_opm, 1, 1000) mld_opm, meld.status_key, meld.begindatum, --COALESCE (meld.sla, 0) mld_sla, -- Is nooit NULL? DECODE ( meld.stdmld_pb, -- Is stdmld planbaar, dan plan_doorloop! 1, fac.count_work_days (TRUNC (meld.begindatum), TRUNC (meld.einddatum)) + 1, meld.sla) mld_sla, rwsn.bepaal_doorlooptijd ( DECODE ( meld.stdmld_pb, -- Is stdmld planbaar, dan plan_doorloop! 1, fac.count_work_days (TRUNC (meld.begindatum), TRUNC (meld.einddatum)) + 1, meld.sla), meld.begindatum, COALESCE (mldrej.fac_tracking_datum, mldafm.fac_tracking_datum, SYSDATE)) sla_doorloop, meld.einddatum, rwsn.bepaal_doorlooptijd ( fac.count_work_days (TRUNC (meld.begindatum), TRUNC (meld.einddatum)) + 1, meld.begindatum, COALESCE (mldrej.fac_tracking_datum, mldafm.fac_tracking_datum, SYSDATE)) plan_doorloop, DECODE ( meld.vakgroeptype_key, 3, SUBSTR (meld.vakgroep_oms, 1, INSTR (meld.vakgroep_oms, '-') - 1), -- KCC 'FB') onderdeel, DECODE ( (SELECT COUNT (gr.fac_groeprechten_key) FROM fac_groeprechten gr WHERE gr.fac_groep_key = 59 -- FCC AND gr.fac_functie_key = 27 -- MLDBOF AND gr.ins_discipline_key = meld.vakgroep_key), 0, DECODE (SUBSTR (meld.vakgroep_oms, 1, 2), 'FE', 'FE', meld.district_oms), 'FCC') lsu, meld.alg_locatie_code, mldnew.fac_tracking_datum, mldnew.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = mldnew.prs_perslid_key), mlding.fac_tracking_datum, mlding.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = mlding.prs_perslid_key), mldacp.fac_tracking_datum, mldacp.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = mldacp.prs_perslid_key), mldrej.fac_tracking_datum, mldrej.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = mldrej.prs_perslid_key), mldafm.fac_tracking_datum, mldafm.prs_perslid_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = mldafm.prs_perslid_key), mldver.fac_tracking_datum FROM (SELECT m.mld_melding_key mld_key, sd.ins_srtdiscipline_key vakgroeptype_key, sd.ins_srtdiscipline_prefix vakgroeptype_prefix, td.ins_discipline_key vakgroep_key, td.ins_discipline_omschrijving vakgroep_oms, sm.mld_stdmelding_key stdmld_key, sm.mld_stdmelding_omschrijving stdmld_oms, smg.mld_stdmeldinggroep_naam stdmld_groep, sm.mld_stdmelding_planbaar stdmld_pb, m.prs_perslid_key, m.mld_melding_omschrijving mld_oms, m.mld_melding_opmerking mld_opm, m.mld_melding_status status_key, m.mld_melding_t_uitvoertijd.tijdsduur sla, m.mld_melding_datum begindatum, m.mld_melding_einddatum einddatum, d.alg_district_omschrijving district_oms, l.alg_locatie_code FROM mld_melding m, mld_stdmelding sm, mld_stdmeldinggroep smg, ins_tab_discipline td, ins_srtdiscipline sd, alg_locatie l, alg_district d WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+) AND sm.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND l.alg_district_key = d.alg_district_key(+)) meld LEFT JOIN fac_tracking mldnew ON meld.mld_key = mldnew.fac_tracking_refkey AND mldnew.fac_srtnotificatie_key = 26 LEFT JOIN (SELECT t.fac_tracking_refkey, t.fac_tracking_datum, t.prs_perslid_key FROM fac_tracking t WHERE t.fac_srtnotificatie_key = 25 AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key = 25 AND fac_tracking_refkey = t.fac_tracking_refkey)) mlding ON meld.mld_key = mlding.fac_tracking_refkey LEFT JOIN (SELECT t.fac_tracking_refkey, t.fac_tracking_datum, t.prs_perslid_key FROM fac_tracking t WHERE t.fac_srtnotificatie_key = 21 AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key = 21 AND fac_tracking_refkey = t.fac_tracking_refkey)) mldacp ON meld.mld_key = mldacp.fac_tracking_refkey LEFT JOIN fac_tracking mldrej ON meld.mld_key = mldrej.fac_tracking_refkey AND mldrej.fac_srtnotificatie_key = 27 LEFT JOIN fac_tracking mldafm ON meld.mld_key = mldafm.fac_tracking_refkey AND mldafm.fac_srtnotificatie_key = 22 LEFT JOIN fac_tracking mldver ON meld.mld_key = mldver.fac_tracking_refkey AND mldver.fac_srtnotificatie_key = 29 WHERE mldafm.fac_tracking_datum IS NULL OR mldafm.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY'); /* Formatted on 2-12-2010 15:08:18 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_opdr_actual ( mld_key, opdr_volgnr, opdr_key, opdr_oms, opdr_opm, opdr_status_key, opdr_uv_key, ordnew_date, ord_fiat_date, -- laatste ordfno danwel ordfok fiatteur_userkey, -- laatste fiatteur ord_verz_date, ordacp_date, ordcan_date, -- ordcan of ordrej of beide? ordafm_date, ordver_date ) AS SELECT opdr.mld_key, opdr.volgnr, opdr.opdr_key, SUBSTR (opdr.opdr_oms, 1, 1000) opdr_oms, SUBSTR (opdr.opdr_opm, 1, 1000) opdr_opm, opdr.status_key, opdr.uv_key, ordnew.fac_tracking_datum, ord_fiat.fac_tracking_datum, ord_fiat.prs_perslid_key, opdr.verzonden, ordacp.fac_tracking_datum, ordcan.fac_tracking_datum, ordafm.fac_tracking_datum, ordver.fac_tracking_datum FROM (SELECT o.mld_melding_key mld_key, o.mld_opdr_bedrijfopdr_volgnr volgnr, o.mld_opdr_key opdr_key, o.mld_opdr_omschrijving opdr_oms, o.mld_opdr_opmerking opdr_opm, o.mld_statusopdr_key status_key, o.mld_uitvoerende_keys uv_key, o.mld_opdr_verzonden verzonden FROM mld_opdr o) opdr LEFT JOIN fac_tracking mldafm ON opdr.mld_key = mldafm.fac_tracking_refkey AND mldafm.fac_srtnotificatie_key = 22 LEFT JOIN fac_tracking ordnew ON opdr.opdr_key = ordnew.fac_tracking_refkey AND ordnew.fac_srtnotificatie_key = 165 LEFT JOIN (SELECT t.fac_tracking_refkey, t.fac_tracking_datum, t.prs_perslid_key FROM fac_tracking t WHERE t.fac_srtnotificatie_key IN (167, 168) AND t.fac_tracking_key IN (SELECT MAX (fac_tracking_key) FROM fac_tracking WHERE fac_srtnotificatie_key IN (167, 168) AND fac_tracking_refkey = t.fac_tracking_refkey)) ord_fiat ON opdr.opdr_key = ord_fiat.fac_tracking_refkey LEFT JOIN fac_tracking ordacp ON opdr.opdr_key = ordacp.fac_tracking_refkey AND ordacp.fac_srtnotificatie_key = 186 LEFT JOIN fac_tracking ordcan ON opdr.opdr_key = ordcan.fac_tracking_refkey AND ordcan.fac_srtnotificatie_key = 172 LEFT JOIN fac_tracking ordafm ON opdr.opdr_key = ordafm.fac_tracking_refkey AND ordafm.fac_srtnotificatie_key = 30 LEFT JOIN fac_tracking ordver ON opdr.opdr_key = ordver.fac_tracking_refkey AND ordver.fac_srtnotificatie_key = 170 WHERE mldafm.fac_tracking_datum IS NULL OR mldafm.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY'); /* Formatted on 10-9-2014 11:12:48 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE rwsn_select_nacht_werk (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS CURSOR cmldcust05 -- CUST05-noti IS SELECT m.mld_melding_key mldkey, km.mld_kenmerkmelding_waarde mailto, sn.fac_srtnotificatie_code noti, REPLACE (sn.fac_srtnotificatie_oms, '##STDMLD##', sm.mld_stdmelding_omschrijving) subj FROM mld_melding m, mld_v_aanwezigkenmerkmelding km, mld_stdmelding sm, fac_srtnotificatie sn WHERE m.mld_melding_status NOT IN (1, 5, 6) AND m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = 5827 -- E-mail adres klant AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_stdmelding_key = 2681 -- KCC-Klanttevr. Adviesdienst AND TRUNC (m.mld_melding_einddatum + 1) = TRUNC (SYSDATE) AND sn.fac_srtnotificatie_code = 'CUST05'; /* -- Automatisch afmelden OPEN meldingen noti_dagen (indien gedefinieerd) na -- geplande einddatum en alleen als status=Geaccepteerd/Uitgegeven (en geen -- OPEN onderliggende opdrachten) of - ongeacht status - als factuurappr=1 -- (speciale afspraak met JvD tbv. specifieke meldingen zoals onder KTO)! -- RWSN#57914: Bij invoer rappel-notificatiejob geen auto-afmeldingen meer! CURSOR cmldafmeld -- auto-afmeld, maar alleen ZONDER OPEN OPDRACHTEN IS SELECT m.mld_melding_key mldkey, m.mld_melding_status mldstatus FROM mld_melding m, mld_stdmelding std, mld_disc_params mdp WHERE m.mld_melding_status NOT IN (1, 5, 6) AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = mdp.mld_ins_discipline_key AND (m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven OR mdp.mld_disc_params_factuurappr = 1) -- OBSCUUR!!! AND mdp.mld_disc_params_noti_dagen IS NOT NULL AND TRUNC (m.mld_melding_einddatum + 1) + mdp.mld_disc_params_noti_dagen <= TRUNC (SYSDATE) AND NOT EXISTS (SELECT 1 FROM mld_opdr o WHERE o.mld_melding_key = m.mld_melding_key AND o.mld_statusopdr_key IN (3, 4, 5, 8)); */ CURSOR cart IS SELECT '[' || TO_CHAR (ra.res_rsv_ruimte_key) || '/' || TO_CHAR (ra.res_rsv_artikel_key) || '] ' aanduiding, ra.res_rsv_ruimte_key, ra.res_rsv_artikel_key, ra.res_artikel_key FROM res_rsv_artikel ra WHERE ra.res_status_bo_key = 2 AND ra.res_rsv_artikel_dirtlevel = 0 AND ra.res_rsv_artikel_verwijder IS NULL AND ra.res_rsv_artikel_levering < TRUNC (ADD_MONTHS (SYSDATE, -3), 'Q'); CURSOR cobj IS SELECT '[' || TO_CHAR (rd.res_rsv_ruimte_key) || '/' || TO_CHAR (rd.res_rsv_deel_key) || '] ' aanduiding, rd.res_rsv_ruimte_key, rd.res_rsv_deel_key FROM res_rsv_deel rd WHERE rd.res_status_bo_key = 2 AND rd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen AND rd.res_rsv_deel_dirtlevel = 0 AND rd.res_rsv_deel_verwijder IS NULL AND rd.res_rsv_deel_tot < TRUNC (ADD_MONTHS (SYSDATE, -3), 'Q'); CURSOR cres IS SELECT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding, rrr.res_rsv_ruimte_key FROM res_rsv_ruimte rrr WHERE rrr.res_status_bo_key = 2 AND rrr.res_ruimte_opstel_key IS NOT NULL -- Geen "roomservice" AND rrr.res_rsv_ruimte_dirtlevel = 0 AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_rsv_ruimte_tot < TRUNC (ADD_MONTHS (SYSDATE, -3), 'Q'); -- RWSN#38216: Dezelfde nacht automatisch afmelden OPEN 'Zelfservice-IVB'- -- opdrachten incl. bovenliggende melding! CURSOR civbopdr IS SELECT mld_opdr_key, mld_melding_key, mld_opdr_bedrijfopdr_volgnr FROM mld_opdr WHERE mld_typeopdr_key IN (9401, 8721) -- Zelfservice-IVB opdrachttype (A-key=8721) AND mld_statusopdr_key IN (4, 5, 8); v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER; v_date DATE; v_prijs NUMBER (9, 2); v_kenmerklink_key NUMBER (10); v_kenmerk_key NUMBER (10); v_cur_perslid_key NUMBER (10); BEGIN v_count := 0; -- CUST05-noti op geplande einddatum (nav. adviesgesprek). FOR r IN cmldcust05 LOOP BEGIN v_errormsg := 'Fout bij CUST05-noti [' || r.mldkey || '] '; fac.putnotificationsrtprio (NULL, NULL, r.noti, r.mldkey, r.subj, NULL, r.mailto, NULL, NULL, 2, NULL); v_count := v_count + 1; COMMIT; 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.writelog (p_applname, 'E', v_errormsg, ''); COMMIT; END; END LOOP; fac.writelog (p_applname, 'S', 'Aantal cust05-noti meldingen: ' || TO_CHAR (v_count), ''); COMMIT; v_count := 0; /* -- Auto-afmeld meldingen noti-dagen na geplande einddatum. -- RWSN#57914: Bij invoer rappel-notificatiejob geen auto-afmeldingen meer! FOR r IN cmldafmeld LOOP BEGIN v_errormsg := 'Fout bij auto-afmeld [' || r.mldkey || '] '; -- Overgang van Ingezien naar Afgemeld is niet mogelijk, daarom - igv. -- 'direct klaar' (kan dan status Ingezien?) - eerst accepteren! IF (r.mldstatus = 3) -- Ingezien? THEN MLD.setmeldingstatus (r.mldkey, 4, 4); -- Geaccepteerd? END IF; MLD.setmeldingstatus (r.mldkey, 5, 4); -- Afgemeld? v_count := v_count + 1; COMMIT; 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.writelog (p_applname, 'E', v_errormsg, ''); COMMIT; END; END LOOP; fac.writelog (p_applname, 'S', 'Aantal auto-afmeld meldingen: ' || TO_CHAR (v_count), ''); COMMIT; */ -- Clear bevries-tabel met meldinggegevens DELETE FROM rwsn_mld_freeze; COMMIT; -- Clear bevries-tabel met opdrachtgegevens DELETE FROM rwsn_opdr_freeze; COMMIT; -- Bewaar MLD-gegevens om morgen "zware" rapportages op te baseren. INSERT INTO rwsn_mld_freeze (mld_key, vakgroeptype_key, vakgroeptype_prefix, vakgroep_key, vakgroep_oms, stdmld_key, stdmld_oms, stdmld_groep, melder_userkey, melder_naam, dienst, mld_oms, mld_opm, mld_status_key, mld_begin_date, mld_sla, sla_doorloop, mld_plan_date, plan_doorloop, onderdeel, lsu, locatiecode, mldnew_date, mldnew_userkey, mldnew_naam, mlding_date, mlding_userkey, mlding_naam, mldacp_date, mldacp_userkey, mldacp_naam, mldrej_date, mldrej_userkey, mldrej_naam, mldafm_date, mldafm_userkey, mldafm_naam, mldver_date) SELECT mld_key, vakgroeptype_key, vakgroeptype_prefix, vakgroep_key, vakgroep_oms, stdmld_key, stdmld_oms, stdmld_groep, melder_userkey, melder_naam, dienst, mld_oms, mld_opm, mld_status_key, mld_begin_date, mld_sla, sla_doorloop, mld_plan_date, plan_doorloop, onderdeel, lsu, locatiecode, mldnew_date, mldnew_userkey, mldnew_naam, mlding_date, mlding_userkey, mlding_naam, mldacp_date, mldacp_userkey, mldacp_naam, mldrej_date, mldrej_userkey, mldrej_naam, mldafm_date, mldafm_userkey, mldafm_naam, mldver_date FROM rwsn_v_mld_actual ORDER BY mld_key; COMMIT; SELECT COUNT ( * ) INTO v_count FROM rwsn_mld_freeze; fac.writelog (p_applname, 'S', 'Aantal bevroren MLD-regels: ' || TO_CHAR (v_count), ''); COMMIT; -- Bewaar OPDR-gegevens om morgen "zware" rapportages op te baseren. INSERT INTO rwsn_opdr_freeze (mld_key, opdr_volgnr, opdr_key, opdr_status_key, opdr_oms, opdr_opm, opdr_uv_key, ordnew_date, ord_fiat_date, fiatteur_userkey, ord_verz_date, ordacp_date, ordcan_date, ordafm_date, ordver_date) SELECT mld_key, opdr_volgnr, opdr_key, opdr_status_key, opdr_oms, opdr_opm, opdr_uv_key, ordnew_date, ord_fiat_date, fiatteur_userkey, ord_verz_date, ordacp_date, ordcan_date, ordafm_date, ordver_date FROM rwsn_v_opdr_actual ORDER BY mld_key, opdr_volgnr; COMMIT; SELECT COUNT ( * ) INTO v_count FROM rwsn_opdr_freeze; fac.writelog (p_applname, 'S', 'Aantal bevroren OPDR-regels: ' || TO_CHAR (v_count), ''); COMMIT; -- controle taak om te kijken of PutOrders loopt. BEGIN SELECT MAX (imp_log_datum) INTO v_date FROM imp_log WHERE imp_log_omschrijving LIKE '%PUTORDERS FINISHED%'; IF SYSDATE - v_date > 1 THEN fac.writelog (p_applname, 'E', 'PutOrders is laatste 24 uur niet gescheduled!', ''); END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'E', 'Controle PutOrders afgebroken!', v_errormsg); END; COMMIT; -- RWSN#30202 - Per 2014-Q4 alle artikelen, delen en ruimten voor de 1e van -- het lopende kwartaal automatisch afmelden! FOR rc IN cart LOOP BEGIN v_errormsg := 'Fout bepalen res_rsv_artikel_prijs.'; SELECT res.getartikelprijs (rc.res_rsv_artikel_key) INTO v_prijs FROM DUAL; v_errormsg := 'Fout bijwerken res_rsv_artikel_prijs.'; UPDATE res_rsv_artikel SET res_status_bo_key = 5, res_rsv_artikel_prijs = v_prijs, res_rsv_artikel_inkoopprijs = (SELECT res_artikel_inkoopprijs FROM res_artikel WHERE res_artikel_key = rc.res_artikel_key), res_rsv_artikel_btw = (SELECT res_artikel_btw FROM res_artikel WHERE res_artikel_key = rc.res_artikel_key) WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key; fac.trackaction ('RESAFM', rc.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld'); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rc.aanduiding || v_errormsg, 'Afmelden artikelen'); COMMIT; END; END LOOP; COMMIT; FOR rc IN cobj LOOP BEGIN v_errormsg := 'Fout bepalen res_rsv_deel_prijs.'; SELECT res.getdeelprijs (rc.res_rsv_deel_key) INTO v_prijs FROM DUAL; v_errormsg := 'Fout bijwerken res_rsv_deel_prijs.'; UPDATE res_rsv_deel SET res_status_bo_key = 5, res_rsv_deel_prijs = v_prijs WHERE res_rsv_deel_key = rc.res_rsv_deel_key; fac.trackaction ('RESAFM', rc.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) afgemeld'); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rc.aanduiding || v_errormsg, 'Afmelden delen'); COMMIT; END; END LOOP; COMMIT; FOR rc IN cres LOOP BEGIN v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs.'; SELECT res.getruimteprijs (rc.res_rsv_ruimte_key) INTO v_prijs FROM DUAL; v_errormsg := 'Fout bijwerken res_rsv_ruimte_prijs.'; UPDATE res_rsv_ruimte SET res_status_bo_key = 5, res_rsv_ruimte_prijs = v_prijs WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key; fac.trackaction ('RESAFM', rc.res_rsv_ruimte_key, NULL, NULL, NULL); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rc.aanduiding || v_errormsg, 'Afmelden ruimten'); COMMIT; END; END LOOP; COMMIT; v_count := 0; -- Auto-afmeld 'Zelfservice-IVB'-opdrachten incl. bovenliggende melding! FOR r IN civbopdr LOOP BEGIN v_errormsg := 'Fout bij auto-afmeld [' || r.mld_melding_key || '] '; MLD.setopdrachtstatus (r.mld_opdr_key, 6, 4); -- Facilitor MLD.updatemeldingstatus (r.mld_melding_key, 1, 4); -- Facilitor v_count := v_count + 1; COMMIT; 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.writelog (p_applname, 'E', v_errormsg, ''); COMMIT; END; END LOOP; fac.writelog (p_applname, 'S', 'Aantal auto-afmeld Zelfservice-IVB opdrachten: ' || TO_CHAR (v_count), ''); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'E', 'Proces NACHT_WERK afgebroken!', v_errormsg); COMMIT; END; / /* Formatted on 24-6-2010 12:55:55 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_kenmerksoorten ( fclt_f_module, hide_f_key, key, omschrijving, fclt_f_kenmerktype, eenheid, systeemkenmerk, lengte, decimalen, minimum, maximum, kenmerkdomein ) AS SELECT 'ALG' module, k.alg_kenmerk_key, TO_CHAR (k.alg_kenmerk_key) key, k.alg_kenmerk_omschrijving omschrijving, k.alg_kenmerk_kenmerktype kenmerktype, k.alg_kenmerk_dimensie eenheid, TO_CHAR (k.alg_kenmerk_systeem) systeemkenmerk, TO_CHAR (k.alg_kenmerk_lengte) lengte, TO_CHAR (k.alg_kenmerk_dec) decimalen, TO_CHAR (k.alg_kenmerk_nmin), TO_CHAR (k.alg_kenmerk_nmax), rk.fac_kenmerkdomein_omschrijving kenmerkdomein FROM alg_kenmerk k, fac_kenmerkdomein rk WHERE k.alg_kenmerk_verwijder IS NULL AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key(+) UNION ALL SELECT 'CNT' module, k.cnt_srtkenmerk_key, TO_CHAR (k.cnt_srtkenmerk_key) srtkey, k.cnt_srtkenmerk_omschrijving omschrijving, k.cnt_srtkenmerk_kenmerktype kenmerktype, k.cnt_srtkenmerk_dimensie eenheid, TO_CHAR (k.cnt_srtkenmerk_systeem) systeemkenmerk, TO_CHAR (k.cnt_srtkenmerk_lengte) lengte, TO_CHAR (k.cnt_srtkenmerk_dec) decimalen, TO_CHAR (k.cnt_srtkenmerk_nmin), TO_CHAR (k.cnt_srtkenmerk_nmax), rk.fac_kenmerkdomein_omschrijving kenmerkdomein FROM cnt_srtkenmerk k, fac_kenmerkdomein rk WHERE k.cnt_srtkenmerk_verwijder IS NULL AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key(+) UNION ALL SELECT 'INS' module, k.ins_srtkenmerk_key, TO_CHAR (k.ins_srtkenmerk_key) srtkey, k.ins_srtkenmerk_omschrijving omschrijving, k.ins_srtkenmerk_kenmerktype kenmerktype, k.ins_srtkenmerk_dimensie eenheid, TO_CHAR (k.ins_srtkenmerk_systeem) systeemkenmerk, TO_CHAR (k.ins_srtkenmerk_lengte) lengte, TO_CHAR (k.ins_srtkenmerk_dec) decimalen, TO_CHAR (k.ins_srtkenmerk_nmin), TO_CHAR (k.ins_srtkenmerk_nmax), rk.fac_kenmerkdomein_omschrijving kenmerkdomein FROM ins_v_aanwezigsrtkenmerk k, fac_kenmerkdomein rk WHERE k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key(+) UNION ALL SELECT 'MLD' module, k.mld_srtkenmerk_key, TO_CHAR (k.mld_srtkenmerk_key) srtkey, k.mld_srtkenmerk_omschrijving omschrijving, k.mld_srtkenmerk_kenmerktype kenmerktype, k.mld_srtkenmerk_dimensie eenheid, TO_CHAR (k.mld_srtkenmerk_systeem) systeemkenmerk, TO_CHAR (k.mld_srtkenmerk_lengte) lengte, TO_CHAR (k.mld_srtkenmerk_dec) decimalen, TO_CHAR (k.mld_srtkenmerk_nmin), TO_CHAR (k.mld_srtkenmerk_nmax), rk.fac_kenmerkdomein_omschrijving kenmerkdomein FROM mld_srtkenmerk k, fac_kenmerkdomein rk WHERE k.mld_srtkenmerk_verwijder IS NULL AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key(+) UNION ALL SELECT 'PRS' module, k.prs_kenmerk_key, TO_CHAR (k.prs_kenmerk_key) srtkey, k.prs_kenmerk_omschrijving omschrijving, k.prs_kenmerk_kenmerktype kenmerktype, k.prs_kenmerk_dimensie eenheid, TO_CHAR (k.prs_kenmerk_systeem) systeemkenmerk, TO_CHAR (k.prs_kenmerk_lengte) lengte, TO_CHAR (k.prs_kenmerk_dec) decimalen, TO_CHAR (k.prs_kenmerk_nmin), TO_CHAR (k.prs_kenmerk_nmax), rk.fac_kenmerkdomein_omschrijving kenmerkdomein FROM prs_v_aanwezigkenmerk k, fac_kenmerkdomein rk WHERE k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key(+) UNION ALL SELECT 'RES' module, k.res_srtkenmerk_key, TO_CHAR (k.res_srtkenmerk_key) srtkey, k.res_srtkenmerk_omschrijving omschrijving, k.res_srtkenmerk_kenmerktype kenmerktype, NULL eenheid, TO_CHAR (k.res_srtkenmerk_systeem) systeemkenmerk, TO_CHAR (k.res_srtkenmerk_lengte) lengte, TO_CHAR (k.res_srtkenmerk_dec) decimalen, TO_CHAR (k.res_srtkenmerk_nmin), TO_CHAR (k.res_srtkenmerk_nmax), rk.fac_kenmerkdomein_omschrijving kenmerkdomein FROM res_srtkenmerk k, fac_kenmerkdomein rk WHERE k.res_srtkenmerk_verwijder IS NULL AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key(+); /* Formatted on 24-6-2010 14:24:34 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_kenmerken ( fclt_f_module, hide_f_key, key, fclt_f_kenmerksoort, fclt_f_niveau, fclt_f_afhankelijk_van, volgnr, verplicht, niet_wijzigbaar, defaultwaarde ) AS SELECT 'ALG' module, k.alg_kenmerk_key, TO_CHAR (k.alg_kenmerk_key) key, k.alg_kenmerk_omschrijving kenmerksoort, k.alg_kenmerk_niveau niveau, NULL afhankelijk_van, TO_CHAR (k.alg_kenmerk_volgnr) volgnummer, NULL verplicht, NULL niet_wijzigbaar, k.alg_kenmerk_default defaultwaarde FROM alg_kenmerk k WHERE k.alg_kenmerk_verwijder IS NULL UNION ALL SELECT 'CNT' module, k.cnt_kenmerk_key, TO_CHAR (k.cnt_kenmerk_key) key, sk.cnt_srtkenmerk_omschrijving kenmerksoort, k.cnt_kenmerk_niveau niveau, (SELECT d.ins_discipline_omschrijving FROM cnt_discipline d WHERE d.ins_discipline_key = k.cnt_srtcontract_key AND d.ins_discipline_verwijder IS NULL) afhankelijk_van, TO_CHAR (k.cnt_kenmerk_volgnummer) volgnummer, TO_CHAR (k.cnt_kenmerk_verplicht) verplicht, TO_CHAR (k.cnt_kenmerk_toonbaar) niet_wijzigbaar, k.cnt_kenmerk_default defaultwaarde FROM cnt_kenmerk k, cnt_srtkenmerk sk WHERE k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key AND sk.cnt_srtkenmerk_verwijder IS NULL UNION ALL SELECT 'INS' module, k.ins_kenmerk_key, TO_CHAR (k.ins_kenmerk_key) key, sk.ins_srtkenmerk_omschrijving kenmerksoort, k.ins_kenmerk_niveau niveau, DECODE ( k.ins_kenmerk_niveau, 'D', (SELECT d.ins_discipline_omschrijving FROM ins_discipline d WHERE d.ins_discipline_key = k.ins_srtinstallatie_key AND d.ins_discipline_verwijder IS NULL), 'G', (SELECT d.ins_discipline_omschrijving || ' - ' || sg.ins_srtgroep_omschrijving FROM ins_v_aanwezigsrtgroep sg, ins_discipline d WHERE sg.ins_srtgroep_key = k.ins_srtinstallatie_key AND sg.ins_discipline_key = d.ins_discipline_key AND d.ins_discipline_verwijder IS NULL), (SELECT d.ins_discipline_omschrijving || ' - ' || sg.ins_srtgroep_omschrijving || ' - ' || sd.ins_srtdeel_omschrijving FROM ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg, ins_discipline d WHERE sd.ins_srtdeel_key = k.ins_srtinstallatie_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = d.ins_discipline_key AND d.ins_discipline_verwijder IS NULL) ) afhankelijk_van, TO_CHAR (k.ins_kenmerk_volgnummer) volgnummer, NULL verplicht, NULL niet_wijzigbaar, k.ins_kenmerk_default defaultwaarde FROM ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key UNION ALL SELECT 'MLD' module, k.mld_kenmerk_key, TO_CHAR (k.mld_kenmerk_key) key, sk.mld_srtkenmerk_omschrijving kenmerksoort, k.mld_kenmerk_niveau niveau, DECODE ( k.mld_kenmerk_niveau, 'D', (SELECT d.ins_discipline_omschrijving FROM mld_discipline d WHERE d.ins_discipline_key = k.mld_stdmelding_key AND d.ins_discipline_verwijder IS NULL), 'S', (SELECT d.ins_discipline_omschrijving || ' - ' || sm.mld_stdmelding_omschrijving FROM mld_stdmelding sm, mld_discipline d WHERE sm.mld_stdmelding_key = k.mld_stdmelding_key AND sm.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_discipline_verwijder IS NULL), (SELECT t.mld_typeopdr_omschrijving FROM mld_typeopdr t WHERE t.mld_typeopdr_key = k.mld_typeopdr_key) ) afhankelijk_van, TO_CHAR (k.mld_kenmerk_volgnummer) volgnummer, TO_CHAR (k.mld_kenmerk_verplicht) verplicht, TO_CHAR (k.mld_kenmerk_toonbaar) niet_wijzigbaar, k.mld_kenmerk_default defaultwaarde FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_verwijder IS NULL UNION ALL SELECT 'PRS' module, k.prs_kenmerk_key, TO_CHAR (k.prs_kenmerk_key) key, k.prs_kenmerk_omschrijving omschrijving, k.prs_kenmerk_niveau niveau, NULL afhankelijk_van, TO_CHAR (k.prs_kenmerk_volgnr) volgnummer, NULL verplicht, NULL niet_wijzigbaar, k.prs_kenmerk_default defaultwaarde FROM prs_v_aanwezigkenmerk k UNION ALL SELECT 'RES' module, k.res_kenmerk_key, TO_CHAR (k.res_kenmerk_key) key, sk.res_srtkenmerk_omschrijving kenmerksoort, k.res_kenmerk_niveau niveau, (SELECT a.res_activiteit_omschrijving FROM res_activiteit a WHERE a.res_activiteit_verwijder IS NULL AND a.res_activiteit_key = k.res_activiteit_key) afhankelijk_van, TO_CHAR (k.res_kenmerk_volgnummer) volgnummer, TO_CHAR (k.res_kenmerk_verplicht) verplicht, NULL niet_wijzigbaar, k.res_kenmerk_default defaultwaarde FROM res_kenmerk k, res_srtkenmerk sk WHERE k.res_kenmerk_verwijder IS NULL AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key AND sk.res_srtkenmerk_verwijder IS NULL; /* Formatted on 19-8-2011 16:04:10 (QP5 v5.115.810.9015) */ -- TODO1:Welke precieze contractgegevens/kolommen? -- TODO2:Alleen actieve of ook verlopen? CREATE OR REPLACE VIEW rwsn_v_rap_cntnotities ( nummer, fclt_f_zaaksoort, beschrijving, fclt_f_mantel, --omschrijving, --ingangsdatum, --rappeldatum, --opzegdatum, einddatum, fclt_f_dienst, --eigenaar, --beheerder, fclt_f_contractant, fclt_f_contracttype, fclt_f_contractstatus, fclt_f_contractfase, fclt_f_opdrachtgever, fclt_f_inkoopsegment, notitie_op, notitie_door, notitie, fclt_3d_user_key ) AS SELECT basis.nummer, basis.contractsoort, basis.beschrijving, DECODE (basis.contractsoort, 'ZROK', basis.nummer, basis.mantel), --basis.omschrijving, --TO_CHAR (basis.ingangsdatum, 'dd-mm-yyyy'), --TO_CHAR (basis.rappeldatum, 'dd-mm-yyyy'), --TO_CHAR (basis.opzegdatum, 'dd-mm-yyyy'), TO_CHAR (basis.einddatum, 'dd-mm-yyyy'), --basis.eig_afdeling, basis.eig_dienst, --basis.beheerder, basis.prs_bedrijf_naam, basis.contracttype, basis.contractstatus, basis.contractfase, basis.opdrachtgever, basis.inkoopsegment, TO_CHAR (notitie.aanmaak, 'dd-mm-yyyy hh24:mi:ss'), notitie.schrijver, notitie.omschrijving, basis.beheerder_key FROM (SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern nummer, cd.ins_discipline_omschrijving contractsoort, c.cnt_contract_omschrijving beschrijving, mc.cnt_contract_nummer_intern mantel, c.cnt_contract_document omschrijving, c.cnt_contract_looptijd_van ingangsdatum, cnt.cnt_getrappeldatum (c.cnt_contract_key) rappeldatum, cnt.cnt_getopzegdatum (c.cnt_contract_key) opzegdatum, c.cnt_contract_looptijd_tot einddatum, a1.prs_afdeling_upper || '-' || a1.prs_afdeling_omschrijving eig_afdeling, a2.prs_afdeling_upper || '-' || a2.prs_afdeling_omschrijving eig_dienst, c.prs_perslid_key_beh beheerder_key, p.prs_perslid_naam_full beheerder, b.prs_bedrijf_naam, (SELECT kc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 1 AND kc.cnt_kenmerkcontract_verwijder IS NULL) contracttype, (SELECT kc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 22 AND kc.cnt_kenmerkcontract_verwijder IS NULL) contractstatus, (SELECT kc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 23 AND kc.cnt_kenmerkcontract_verwijder IS NULL) contractfase, (SELECT kc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 24 AND kc.cnt_kenmerkcontract_verwijder IS NULL) opdrachtgever, (SELECT kc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_contract_key = c.cnt_contract_key AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 26 AND kc.cnt_kenmerkcontract_verwijder IS NULL) inkoopsegment FROM cnt_v_aanwezigcontract c, cnt_v_aanwezigdiscipline cd, cnt_v_aanwezigcontract mc, prs_afdeling a1, prs_v_afdeling_boom ab, prs_afdeling a2, prs_v_perslid_fullnames p, prs_bedrijf b WHERE c.ins_discipline_key = cd.ins_discipline_key AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+) AND c.prs_afdeling_key_eig = a1.prs_afdeling_key AND c.prs_afdeling_key_eig = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a2.prs_afdeling_key AND c.prs_perslid_key_beh = p.prs_perslid_key AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) basis LEFT JOIN (SELECT cn.cnt_contract_key, cn.cnt_contract_note_aanmaak aanmaak, p.prs_perslid_naam_full schrijver, cn.cnt_contract_note_omschrijving omschrijving FROM cnt_contract_note cn, prs_v_perslid_fullnames_all p WHERE cn.prs_perslid_key = p.prs_perslid_key) notitie ON basis.cnt_contract_key = notitie.cnt_contract_key; -- RWSN#23256 /* Formatted on 24-7-2012 14:55:44 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_beo_doorloop ( hide_f_volgorde, fclt_f_maand, nummer, fclt_f_status, fclt_f_vakgroep, fclt_f_melding, omschrijving, opmerking, fclt_f_leverancier, registratie, acceptatie, afhandeling, bruto_rsp, bruto_afh, bruto_tot, netto_rsp, netto_afh, netto_tot ) AS SELECT TO_CHAR (m.mldnew_date, 'yyyy-mm') || TO_CHAR (m.mldafm_userkey) volgorde, TO_CHAR (m.mldnew_date, 'yyyy-mm') maand, TO_CHAR (m.mld_key), m.mld_statuses_omschrijving, m.vakgroep_oms vakgroep, m.stdmld_oms melding, m.mld_oms, m.mld_opm, DECODE (m.mldafm_userkey, 37976, 'Noord', 'Zuid') leverancier, TO_CHAR (m.mldnew_date, 'yyyy-mm-dd hh24:mi') registratie, TO_CHAR (m.mldacp_date, 'yyyy-mm-dd hh24:mi') acceptatie, TO_CHAR (COALESCE (m.mldrej_date, m.mldafm_date), 'yyyy-mm-dd hh24:mi') afhandeling, DECODE ( COALESCE (m.mldacp_date, m.mldrej_date), NULL, NULL, TO_CHAR(FLOOR(COALESCE (m.mldacp_date, m.mldrej_date) - m.mldnew_date)) || 'd-' || TO_CHAR(MOD ( FLOOR( (COALESCE (m.mldacp_date, m.mldrej_date) - m.mldnew_date) * 24), 24 )) || 'u-' || TO_CHAR(MOD ( ROUND ( (COALESCE (m.mldacp_date, m.mldrej_date) - m.mldnew_date) * 24 * 60, 0 ), 60 )) || 'm' ) bruto_rsp, DECODE ( COALESCE (m.mldrej_date, m.mldafm_date), NULL, NULL, TO_CHAR(FLOOR(COALESCE (m.mldrej_date, m.mldafm_date) - COALESCE (m.mldacp_date, m.mldrej_date))) || 'd-' || TO_CHAR(MOD ( FLOOR( (COALESCE (m.mldrej_date, m.mldafm_date) - COALESCE (m.mldacp_date, m.mldrej_date)) * 24), 24 )) || 'u-' || TO_CHAR(MOD ( ROUND ( (COALESCE (m.mldrej_date, m.mldafm_date) - COALESCE (m.mldacp_date, m.mldrej_date)) * 24 * 60, 0 ), 60 )) || 'm' ) bruto_afh, DECODE ( COALESCE (m.mldrej_date, m.mldafm_date), NULL, NULL, TO_CHAR(FLOOR(COALESCE (m.mldrej_date, m.mldafm_date) - m.mldnew_date)) || 'd-' || TO_CHAR(MOD ( FLOOR( (COALESCE (m.mldrej_date, m.mldafm_date) - m.mldnew_date) * 24), 24 )) || 'u-' || TO_CHAR(MOD ( ROUND ( (COALESCE (m.mldrej_date, m.mldafm_date) - m.mldnew_date) * 24 * 60, 0 ), 60 )) || 'm' ) bruto_tot, DECODE ( m.netto_rsp, NULL, NULL, TO_CHAR (FLOOR ( (m.netto_rsp) / 8)) || 'd-' || TO_CHAR (MOD (FLOOR (m.netto_rsp), 8)) || 'u-' || TO_CHAR (MOD (ROUND (m.netto_rsp * 60, 0), 60)) || 'm' ) netto_rsp, DECODE ( m.netto_afh, NULL, NULL, TO_CHAR (FLOOR (m.netto_afh / 8)) || 'd-' || TO_CHAR (MOD (FLOOR (m.netto_afh), 8)) || 'u-' || TO_CHAR (MOD (ROUND (m.netto_afh * 60, 0), 60)) || 'm' ) netto_afh, DECODE ( m.netto_tot, NULL, NULL, TO_CHAR (FLOOR (m.netto_tot / 8)) || 'd-' || TO_CHAR (MOD (FLOOR (m.netto_tot), 8)) || 'u-' || TO_CHAR (MOD (ROUND (m.netto_tot * 60, 0), 60)) || 'm' ) netto_tot FROM (SELECT m.*, DECODE ( COALESCE (m.mldacp_date, m.mldrej_date), NULL, NULL, rwsn.bepaal_rws_kantooruren ( m.mldnew_date, COALESCE (m.mldacp_date, m.mldrej_date) ) ) netto_rsp, DECODE ( COALESCE (m.mldrej_date, m.mldafm_date), NULL, NULL, rwsn.bepaal_rws_kantooruren ( COALESCE (m.mldacp_date, m.mldrej_date), COALESCE (m.mldrej_date, m.mldafm_date) ) ) netto_afh, DECODE ( COALESCE (m.mldrej_date, m.mldafm_date), NULL, NULL, rwsn.bepaal_rws_kantooruren ( m.mldnew_date, COALESCE (m.mldrej_date, m.mldafm_date) ) ) netto_tot, s.mld_statuses_omschrijving FROM rwsn_mld_freeze m, fac_usrdata ud, mld_statuses s WHERE m.mldafm_userkey IN (37976, 37977) -- REGIONOORD/ZUID AND COALESCE (m.mldrej_date, m.mldafm_date) IS NOT NULL AND m.stdmld_key = fac.safe_to_number (ud.fac_usrdata_code) AND ud.fac_usrtab_key = 1111 -- BEO_STDMLDKEYS AND m.mld_status_key = s.mld_statuses_key) m UNION ALL SELECT m.maand || TO_CHAR (m.mldafm_userkey) volgorde, m.maand, 'TOTAAL/GEMIDDELD' nummer, NULL mld_status_key, NULL vakgroep, NULL melding, NULL omschrijving, NULL opmerking, DECODE (m.mldafm_userkey, 37976, 'Noord', 'Zuid') leverancier, NULL registratie, NULL acceptatie, TO_CHAR (m.aant) afhandeling, -- Totaal per maand/leverancier TO_CHAR (FLOOR (m.bruto_rsp / m.aant)) || 'd-' || TO_CHAR (MOD (FLOOR (m.bruto_rsp / m.aant * 24), 24)) || 'u-' || TO_CHAR (MOD (ROUND (m.bruto_rsp / m.aant * 24 * 60, 0), 60)) || 'm' bruto_rsp, -- Gemiddelde per maand/leverancier TO_CHAR (FLOOR (m.bruto_afh / m.aant)) || 'd-' || TO_CHAR (MOD (FLOOR (m.bruto_afh / m.aant * 24), 24)) || 'u-' || TO_CHAR (MOD (ROUND (m.bruto_afh / m.aant * 24 * 60, 0), 60)) || 'm' bruto_afh, -- Gemiddelde per maand/leverancier TO_CHAR (FLOOR (m.bruto_tot / m.aant)) || 'd-' || TO_CHAR (MOD (FLOOR (m.bruto_tot / m.aant * 24), 24)) || 'u-' || TO_CHAR (MOD (ROUND (m.bruto_tot / m.aant * 24 * 60, 0), 60)) || 'm' bruto_tot, -- Gemiddelde per maand/leverancier TO_CHAR (FLOOR ( (m.netto_rsp / m.aant) / 8)) || 'd-' || TO_CHAR (MOD (FLOOR (m.netto_rsp / m.aant), 8)) || 'u-' || TO_CHAR (MOD (ROUND (m.netto_rsp / m.aant * 60, 0), 60)) || 'm' netto_rsp, -- Gemiddelde per maand/leverancier TO_CHAR (FLOOR ( (m.netto_afh / m.aant) / 8)) || 'd-' || TO_CHAR (MOD (FLOOR (m.netto_afh / m.aant), 8)) || 'u-' || TO_CHAR (MOD (ROUND (m.netto_afh / m.aant * 60, 0), 60)) || 'm' netto_afh, -- Gemiddelde per maand/leverancier TO_CHAR (FLOOR ( (m.netto_tot / m.aant) / 8)) || 'd-' || TO_CHAR (MOD (FLOOR (m.netto_tot / m.aant), 8)) || 'u-' || TO_CHAR (MOD (ROUND (m.netto_tot / m.aant * 60, 0), 60)) || 'm' netto_tot -- Gemiddelde per maand/leverancier FROM ( SELECT TO_CHAR (m.mldnew_date, 'yyyy-mm') maand, m.mldafm_userkey, COUNT ( * ) aant, SUM(COALESCE (m.mldacp_date, m.mldrej_date) - m.mldnew_date) bruto_rsp, SUM(COALESCE (m.mldrej_date, m.mldafm_date) - COALESCE (m.mldacp_date, m.mldrej_date)) bruto_afh, SUM(COALESCE (m.mldrej_date, m.mldafm_date) - m.mldnew_date) bruto_tot, SUM(rwsn.bepaal_rws_kantooruren ( m.mldnew_date, COALESCE (m.mldacp_date, m.mldrej_date) )) netto_rsp, SUM(rwsn.bepaal_rws_kantooruren ( COALESCE (m.mldacp_date, m.mldrej_date), COALESCE (m.mldrej_date, m.mldafm_date) )) netto_afh, SUM(rwsn.bepaal_rws_kantooruren ( m.mldnew_date, COALESCE (m.mldrej_date, m.mldafm_date) )) netto_tot FROM rwsn_mld_freeze m, fac_usrdata ud WHERE m.mldafm_userkey IN (37976, 37977) -- REGIONOORD/ZUID AND COALESCE (m.mldrej_date, m.mldafm_date) IS NOT NULL AND m.stdmld_key = fac.safe_to_number (ud.fac_usrdata_code) AND ud.fac_usrtab_key = 1111 -- BEO_STDMLDKEYS GROUP BY TO_CHAR (m.mldnew_date, 'yyyy-mm'), m.mldafm_userkey) m; -- RWSN#24902 /* Formatted on 12-12-2012 12:42:24 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PROCEDURE rwsn_import_ins (p_import_key IN NUMBER) AS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (1000); -- Input line v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR (200); v_ins_srtkenmerk_key1 VARCHAR2 (255); v_ins_srtkenmerk_key2 VARCHAR2 (255); v_ins_srtkenmerk_key3 VARCHAR2 (255); v_ins_srtkenmerk_key4 VARCHAR2 (255); v_ins_srtkenmerk_key5 VARCHAR2 (255); v_ins_srtkenmerk_key6 VARCHAR2 (255); v_ins_srtkenmerk_key7 VARCHAR2 (255); v_ins_srtkenmerk_key8 VARCHAR2 (255); v_ins_srtkenmerk_key9 VARCHAR2 (255); v_ins_srtkenmerk_key10 VARCHAR2 (255); v_ins_srtkenmerk_key11 VARCHAR2 (255); v_ins_srtkenmerk_key12 VARCHAR2 (255); v_ins_srtkenmerk_key13 VARCHAR2 (255); v_ins_srtkenmerk_key14 VARCHAR2 (255); v_ins_srtkenmerk_key15 VARCHAR2 (255); v_ins_srtkenmerk_key16 VARCHAR2 (255); v_ins_srtkenmerk_key17 VARCHAR2 (255); v_ins_srtkenmerk_key18 VARCHAR2 (255); v_ins_srtkenmerk_key19 VARCHAR2 (255); v_ins_srtkenmerk_key20 VARCHAR2 (255); -- De importvelden v_ins_discipline_omschrijving VARCHAR2 (255); -- C30 v_ins_discipline_kostensoort VARCHAR2 (255); --C60 v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60 v_ins_srtdeel_code VARCHAR2 (255); -- C10 v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100 v_ins_deel_omschrijving VARCHAR2 (255); -- C60 v_reserveerbaar VARCHAR2 (255); -- C1 v_reserveerbaar_n NUMBER (1); -- N1 v_res_deel_eenheid VARCHAR2 (255); -- C10 v_res_deel_prijs VARCHAR2 (255); -- N7,2 v_res_deel_prijs_n NUMBER (7, 2); -- N7,2 v_alg_locatie_code VARCHAR2 (255); -- C10 v_alg_gebouw_code VARCHAR2 (255); -- C12 v_alg_verdieping_volgnr VARCHAR2 (255); -- N3 v_alg_verdieping_volgnr_n NUMBER (3); -- N3 v_alg_ruimte_nr VARCHAR2 (255); -- C10 v_res_deel_alg_level VARCHAR2 (255); -- C1 (naar -1 t/m 5) v_res_deel_alg_level_n NUMBER (1); -- N1 v_res_discipline_omschrijving VARCHAR2 (255); -- C30 v_res_discipline_kostensoort VARCHAR2 (255); -- C60 v_prs_perslid_matchcode VARCHAR2 (255); v_prs_perslid_matchwaarde VARCHAR2 (255); v_ins_kenmerkwaarde1 VARCHAR2 (255); v_ins_kenmerkwaarde2 VARCHAR2 (255); v_ins_kenmerkwaarde3 VARCHAR2 (255); v_ins_kenmerkwaarde4 VARCHAR2 (255); v_ins_kenmerkwaarde5 VARCHAR2 (255); v_ins_kenmerkwaarde6 VARCHAR2 (255); v_ins_kenmerkwaarde7 VARCHAR2 (255); v_ins_kenmerkwaarde8 VARCHAR2 (255); v_ins_kenmerkwaarde9 VARCHAR2 (255); v_ins_kenmerkwaarde10 VARCHAR2 (255); v_ins_kenmerkwaarde11 VARCHAR2 (255); v_ins_kenmerkwaarde12 VARCHAR2 (255); v_ins_kenmerkwaarde13 VARCHAR2 (255); v_ins_kenmerkwaarde14 VARCHAR2 (255); v_ins_kenmerkwaarde15 VARCHAR2 (255); v_ins_kenmerkwaarde16 VARCHAR2 (255); v_ins_kenmerkwaarde17 VARCHAR2 (255); v_ins_kenmerkwaarde18 VARCHAR2 (255); v_ins_kenmerkwaarde19 VARCHAR2 (255); v_ins_kenmerkwaarde20 VARCHAR2 (255); -- Overige velden: CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; -- Controleer tijdens import-fase alleen op bestaan van kenmerksoort (of -- deze - via een kenmerk - wel is gedefinieerd voor de betreffende object- -- discipline/groep/soort, volgt pas tijdens de update-fase)! FUNCTION bepaal_srtkenmerk_key (kw IN VARCHAR) RETURN NUMBER IS v_srtkenmerk_key NUMBER; BEGIN IF fac.safe_to_number (kw) IS NULL THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)! SELECT ins_srtkenmerk_key INTO v_srtkenmerk_key FROM ins_v_aanwezigsrtkenmerk WHERE ins_srtkenmerk_upper = UPPER (kw) AND ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'V'); ELSE -- kenmerkwaarde is numeriek (dus key)! SELECT ins_srtkenmerk_key INTO v_srtkenmerk_key FROM ins_v_aanwezigsrtkenmerk WHERE ins_srtkenmerk_key = fac.safe_to_number (kw) AND ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'V'); END IF; RETURN v_srtkenmerk_key; EXCEPTION WHEN NO_DATA_FOUND THEN IF kw IS NULL OR UPPER (kw) LIKE 'KENMERK%' THEN RETURN NULL; ELSE fac.imp_writelog (p_import_key, 'W', 'Fout bepalen kenmerksoort [' || kw || ']', 'Bestaat niet of type ongeldig'); COMMIT; RETURN NULL; END IF; END; BEGIN -- Eerst opruiming DELETE FROM rwsn_imp_ins; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; v_prs_perslid_matchcode := ''; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving); fac.imp_getfield (v_newline, c_delim, v_ins_discipline_kostensoort); fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving); fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code); fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving); fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving); --fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking); fac.imp_getfield (v_newline, c_delim, v_reserveerbaar); fac.imp_getfield (v_newline, c_delim, v_res_deel_eenheid); fac.imp_getfield (v_newline, c_delim, v_res_deel_prijs); fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code); fac.imp_getfield (v_newline, c_delim, v_alg_gebouw_code); fac.imp_getfield (v_newline, c_delim, v_alg_verdieping_volgnr); fac.imp_getfield (v_newline, c_delim, v_alg_ruimte_nr); fac.imp_getfield (v_newline, c_delim, v_res_deel_alg_level); fac.imp_getfield (v_newline, c_delim, v_res_discipline_omschrijving); fac.imp_getfield (v_newline, c_delim, v_res_discipline_kostensoort); fac.imp_getfield (v_newline, c_delim, v_prs_perslid_matchcode); fac.imp_getfield (v_newline, c_delim, v_prs_perslid_matchwaarde); --fac.imp_getfield (v_newline, c_delim, v_ins_deel_aanmaak); --fac.imp_getfield (v_newline, c_delim, v_ins_deel_vervaldatum); --fac.imp_getfield (v_newline, c_delim, v_ins_deel_aantal); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde1); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde2); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde3); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde4); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde5); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde6); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde7); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde8); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde9); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde10); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde11); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde12); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde13); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde14); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde15); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde16); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde17); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde18); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde19); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde20); v_aanduiding := '[' || v_ins_discipline_omschrijving || '|' || v_ins_srtgroep_omschrijving || '|' || v_ins_srtdeel_code || '|' || v_ins_srtdeel_omschrijving || '|' || v_ins_deel_omschrijving || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING' AND UPPER (v_ins_discipline_kostensoort) = 'DISCIPLINEKOSTENSOORT' AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING' AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE' AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORTOMSCHRIJVING' AND UPPER (v_ins_deel_omschrijving) = 'OBJECTIDENTIFICATIE' --AND UPPER (v_ins_deel_opmerking) = 'OBJECTOPMERKING' AND UPPER (v_reserveerbaar) = 'RESERVEERBAAR' AND UPPER (v_res_deel_eenheid) = 'EENHEID' AND UPPER (v_res_deel_prijs) = 'PRIJS' AND UPPER (v_alg_locatie_code) = 'LOCATIECODE' AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE' AND UPPER (v_alg_verdieping_volgnr) = 'BOUWLAAGVOLGNUMMER' AND UPPER (v_alg_ruimte_nr) = 'RUIMTENUMMER' AND UPPER (v_res_deel_alg_level) = 'RESERVERINGSCOPE' AND UPPER (v_res_discipline_omschrijving) = 'CATALOGUSNAAM' AND UPPER (v_res_discipline_kostensoort) = 'CATALOGUSKOSTENSOORT' AND UPPER (v_prs_perslid_matchcode) = 'PERSOONMATCHCODE' AND UPPER (v_prs_perslid_matchwaarde) = 'PERSOONMATCHWAARDE' --AND UPPER (v_ins_deel_aanmaak) = 'INGANGSDATUM' --AND UPPER (v_ins_deel_vervaldatum) = 'VERVALDATUM' --AND UPPER (v_ins_deel_aantal) = 'AANTAL' THEN v_ins_srtkenmerk_key1 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde1); v_ins_srtkenmerk_key2 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde2); v_ins_srtkenmerk_key3 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde3); v_ins_srtkenmerk_key4 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde4); v_ins_srtkenmerk_key5 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde5); v_ins_srtkenmerk_key6 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde6); v_ins_srtkenmerk_key7 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde7); v_ins_srtkenmerk_key8 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde8); v_ins_srtkenmerk_key9 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde9); v_ins_srtkenmerk_key10 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde10); v_ins_srtkenmerk_key11 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde11); v_ins_srtkenmerk_key12 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde12); v_ins_srtkenmerk_key13 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde13); v_ins_srtkenmerk_key14 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde14); v_ins_srtkenmerk_key15 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde15); v_ins_srtkenmerk_key16 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde16); v_ins_srtkenmerk_key17 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde17); v_ins_srtkenmerk_key18 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde18); v_ins_srtkenmerk_key19 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde19); v_ins_srtkenmerk_key20 := bepaal_srtkenmerk_key (v_ins_kenmerkwaarde20); header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Disciplineomschrijving ongeldig'; v_ins_discipline_omschrijving := TRIM (v_ins_discipline_omschrijving); IF v_ins_discipline_omschrijving IS NULL OR LENGTH (v_ins_discipline_omschrijving) > 30 THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen'); v_ongeldig := 1; END IF; -- v_errormsg := 'Kostensoort ongeldig'; v_ins_discipline_kostensoort := TRIM (v_ins_discipline_kostensoort); IF LENGTH (v_ins_discipline_kostensoort) > 60 THEN v_ins_discipline_kostensoort := SUBSTR (v_ins_discipline_kostensoort, 1, 60); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Disciplinekostensoort wordt afgebroken tot [' || v_ins_discipline_kostensoort || ']' ); END IF; -- v_errormsg := 'Groepsoortomschrijving ongeldig'; v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving); IF v_ins_srtgroep_omschrijving IS NULL OR LENGTH (v_ins_srtgroep_omschrijving) > 60 THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen'); v_ongeldig := 1; END IF; -- v_errormsg := 'Objectsoortcode ongeldig'; v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code); IF v_ins_srtdeel_code IS NULL OR LENGTH (v_ins_srtdeel_code) > 10 THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen'); v_ongeldig := 1; END IF; -- v_errormsg := 'Objectsoortomschrijving ongeldig'; v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving); IF v_ins_srtdeel_omschrijving IS NULL OR LENGTH (v_ins_srtdeel_omschrijving) > 100 THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen'); v_ongeldig := 1; END IF; -- v_errormsg := 'Objectomschrijving ongeldig'; v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving); IF v_ins_deel_omschrijving IS NULL OR LENGTH (v_ins_deel_omschrijving) > 60 THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen'); v_ongeldig := 1; END IF; -- Verder geen foutdetectie; kan dus stricter? SELECT DECODE (SUBSTR (UPPER (TRIM (v_reserveerbaar)), 1, 1), 'J', 1, 0) INTO v_reserveerbaar_n FROM DUAL; -- v_errormsg := 'Eenheid ongeldig'; v_res_deel_eenheid := TRIM (v_res_deel_eenheid); IF LENGTH (v_res_deel_eenheid) > 10 THEN v_res_deel_eenheid := SUBSTR (v_res_deel_eenheid, 1, 10); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Eenheid wordt afgebroken tot [' || v_res_deel_eenheid || ']' ); END IF; -- v_errormsg := 'Prijs ongeldig; maximale grootte 99999.99'; v_res_deel_prijs := TRIM (v_res_deel_prijs); v_res_deel_prijs_n := NULL; IF (v_res_deel_prijs IS NOT NULL) THEN IF (fac.safe_to_number (v_res_deel_prijs) IS NULL) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); ELSE v_res_deel_prijs_n := fac.safe_to_number (v_res_deel_prijs); END IF; END IF; -- v_errormsg := 'Locatiecode ongeldig'; v_alg_locatie_code := TRIM (v_alg_locatie_code); IF LENGTH (v_alg_locatie_code) > 10 THEN v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Locatiecode wordt afgebroken tot [' || v_alg_locatie_code || ']' ); END IF; -- v_errormsg := 'Gebouwcode ongeldig'; v_alg_gebouw_code := TRIM (v_alg_gebouw_code); IF LENGTH (v_alg_gebouw_code) > 12 THEN v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 12); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Gebouwcode wordt afgebroken tot [' || v_alg_gebouw_code || ']' ); END IF; -- v_errormsg := 'Bouwlaagvolgnummer ongeldig'; v_alg_verdieping_volgnr := TRIM (v_alg_verdieping_volgnr); v_alg_verdieping_volgnr_n := NULL; IF (v_alg_verdieping_volgnr IS NOT NULL) THEN v_alg_verdieping_volgnr_n := ROUND (fac.safe_to_number (v_alg_verdieping_volgnr)); IF v_alg_verdieping_volgnr_n NOT BETWEEN -999 AND 999 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); ELSE v_alg_verdieping_volgnr_n := fac.safe_to_number (v_alg_verdieping_volgnr); END IF; END IF; -- v_errormsg := 'Ruimtenummer ongeldig'; v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr); IF LENGTH (v_alg_ruimte_nr) > 10 THEN v_alg_ruimte_nr := SUBSTR (v_alg_ruimte_nr, 1, 10); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Ruimtenummer wordt afgebroken tot [' || v_alg_ruimte_nr || ']' ); END IF; -- Verder geen foutdetectie; kan dus stricter? SELECT DECODE (SUBSTR (TRIM (v_res_deel_alg_level), 1, 1), 'E', 0, 'D', 1, 'L', 2, 'G', 3, 'V', 4, 'R', 5, -1) INTO v_res_deel_alg_level_n FROM DUAL; -- v_errormsg := 'Catalogusnaam ongeldig'; v_res_discipline_omschrijving := TRIM (v_res_discipline_omschrijving); IF LENGTH (v_res_discipline_omschrijving) > 30 THEN v_res_discipline_omschrijving := SUBSTR (TRIM (v_res_discipline_omschrijving), 1, 30); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Catalogusnaam wordt afgebroken tot [' || v_res_discipline_omschrijving || ']' ); END IF; -- v_errormsg := 'Cataloguskostensoort ongeldig'; v_res_discipline_kostensoort := TRIM (v_res_discipline_kostensoort); IF LENGTH (v_res_discipline_kostensoort) > 60 THEN v_res_discipline_kostensoort := SUBSTR (TRIM (v_res_discipline_kostensoort), 1, 60); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Cataloguskostensoort wordt afgebroken tot [' || v_res_discipline_kostensoort || ']' ); END IF; -- De rest alleen ff trimmen. v_prs_perslid_matchcode := TRIM (v_prs_perslid_matchcode); v_prs_perslid_matchwaarde := TRIM (v_prs_perslid_matchwaarde); v_ins_kenmerkwaarde1 := TRIM (v_ins_kenmerkwaarde1); v_ins_kenmerkwaarde2 := TRIM (v_ins_kenmerkwaarde2); v_ins_kenmerkwaarde3 := TRIM (v_ins_kenmerkwaarde3); v_ins_kenmerkwaarde4 := TRIM (v_ins_kenmerkwaarde4); v_ins_kenmerkwaarde5 := TRIM (v_ins_kenmerkwaarde5); v_ins_kenmerkwaarde6 := TRIM (v_ins_kenmerkwaarde6); v_ins_kenmerkwaarde7 := TRIM (v_ins_kenmerkwaarde7); v_ins_kenmerkwaarde8 := TRIM (v_ins_kenmerkwaarde8); v_ins_kenmerkwaarde9 := TRIM (v_ins_kenmerkwaarde9); v_ins_kenmerkwaarde10 := TRIM (v_ins_kenmerkwaarde10); v_ins_kenmerkwaarde11 := TRIM (v_ins_kenmerkwaarde11); v_ins_kenmerkwaarde12 := TRIM (v_ins_kenmerkwaarde12); v_ins_kenmerkwaarde13 := TRIM (v_ins_kenmerkwaarde13); v_ins_kenmerkwaarde14 := TRIM (v_ins_kenmerkwaarde14); v_ins_kenmerkwaarde15 := TRIM (v_ins_kenmerkwaarde15); v_ins_kenmerkwaarde16 := TRIM (v_ins_kenmerkwaarde16); v_ins_kenmerkwaarde17 := TRIM (v_ins_kenmerkwaarde17); v_ins_kenmerkwaarde18 := TRIM (v_ins_kenmerkwaarde18); v_ins_kenmerkwaarde19 := TRIM (v_ins_kenmerkwaarde19); v_ins_kenmerkwaarde20 := TRIM (v_ins_kenmerkwaarde20); -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout wegschrijven importregel'; -- Als uit kenmerkheader een geldige kenmerksoort-key volgt, -- dan is kenmerkwaarde gevuld met =; zoniet, -- dan is kenmerkwaarde gevuld met ! -- NB. Een NULL-waarde resulteert NIET in het wissen van een -- kenmerkveld (bijwerken kan wel, maar wissen dus niet)! INSERT INTO rwsn_imp_ins ( ins_discipline_omschrijving, ins_discipline_kostensoort, ins_srtgroep_omschrijving, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_deel_omschrijving, reserveerbaar, res_deel_eenheid, res_deel_prijs, alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_ruimte_nr, res_deel_alg_level, res_discipline_omschrijving, res_discipline_kostensoort, prs_perslid_matchcode, prs_perslid_matchwaarde, ins_kenmerkwaarde1, ins_kenmerkwaarde2, ins_kenmerkwaarde3, ins_kenmerkwaarde4, ins_kenmerkwaarde5, ins_kenmerkwaarde6, ins_kenmerkwaarde7, ins_kenmerkwaarde8, ins_kenmerkwaarde9, ins_kenmerkwaarde10, ins_kenmerkwaarde11, ins_kenmerkwaarde12, ins_kenmerkwaarde13, ins_kenmerkwaarde14, ins_kenmerkwaarde15, ins_kenmerkwaarde16, ins_kenmerkwaarde17, ins_kenmerkwaarde18, ins_kenmerkwaarde19, ins_kenmerkwaarde20 ) VALUES ( v_ins_discipline_omschrijving, v_ins_discipline_kostensoort, v_ins_srtgroep_omschrijving, v_ins_srtdeel_code, v_ins_srtdeel_omschrijving, v_ins_deel_omschrijving, v_reserveerbaar_n, v_res_deel_eenheid, v_res_deel_prijs_n, v_alg_locatie_code, v_alg_gebouw_code, v_alg_verdieping_volgnr_n, v_alg_ruimte_nr, v_res_deel_alg_level_n, v_res_discipline_omschrijving, v_res_discipline_kostensoort, v_prs_perslid_matchcode, v_prs_perslid_matchwaarde, DECODE (v_ins_srtkenmerk_key1, NULL, v_ins_kenmerkwaarde1, TO_CHAR (v_ins_srtkenmerk_key1) || '=' || SUBSTR (v_ins_kenmerkwaarde1, 1, 200) ), DECODE ( v_ins_srtkenmerk_key2, NULL, v_ins_kenmerkwaarde2, TO_CHAR (v_ins_srtkenmerk_key2) || '=' || SUBSTR (v_ins_kenmerkwaarde2, 1, 200) ), DECODE ( v_ins_srtkenmerk_key3, NULL, v_ins_kenmerkwaarde3, TO_CHAR (v_ins_srtkenmerk_key3) || '=' || SUBSTR (v_ins_kenmerkwaarde3, 1, 200) ), DECODE ( v_ins_srtkenmerk_key4, NULL, v_ins_kenmerkwaarde4, TO_CHAR (v_ins_srtkenmerk_key4) || '=' || SUBSTR (v_ins_kenmerkwaarde4, 1, 200) ), DECODE ( v_ins_srtkenmerk_key5, NULL, v_ins_kenmerkwaarde5, TO_CHAR (v_ins_srtkenmerk_key5) || '=' || SUBSTR (v_ins_kenmerkwaarde5, 1, 200) ), DECODE ( v_ins_srtkenmerk_key6, NULL, v_ins_kenmerkwaarde6, TO_CHAR (v_ins_srtkenmerk_key6) || '=' || SUBSTR (v_ins_kenmerkwaarde6, 1, 200) ), DECODE ( v_ins_srtkenmerk_key7, NULL, v_ins_kenmerkwaarde7, TO_CHAR (v_ins_srtkenmerk_key7) || '=' || SUBSTR (v_ins_kenmerkwaarde7, 1, 200) ), DECODE ( v_ins_srtkenmerk_key8, NULL, v_ins_kenmerkwaarde8, TO_CHAR (v_ins_srtkenmerk_key8) || '=' || SUBSTR (v_ins_kenmerkwaarde8, 1, 200) ), DECODE ( v_ins_srtkenmerk_key9, NULL, v_ins_kenmerkwaarde9, TO_CHAR (v_ins_srtkenmerk_key9) || '=' || SUBSTR (v_ins_kenmerkwaarde9, 1, 200) ), DECODE ( v_ins_srtkenmerk_key10, NULL, v_ins_kenmerkwaarde10, TO_CHAR (v_ins_srtkenmerk_key10) || '=' || SUBSTR (v_ins_kenmerkwaarde10, 1, 200) ), DECODE ( v_ins_srtkenmerk_key11, NULL, v_ins_kenmerkwaarde11, TO_CHAR (v_ins_srtkenmerk_key11) || '=' || SUBSTR (v_ins_kenmerkwaarde11, 1, 200) ), DECODE ( v_ins_srtkenmerk_key12, NULL, v_ins_kenmerkwaarde12, TO_CHAR (v_ins_srtkenmerk_key12) || '=' || SUBSTR (v_ins_kenmerkwaarde12, 1, 200) ), DECODE ( v_ins_srtkenmerk_key13, NULL, v_ins_kenmerkwaarde13, TO_CHAR (v_ins_srtkenmerk_key13) || '=' || SUBSTR (v_ins_kenmerkwaarde13, 1, 200) ), DECODE ( v_ins_srtkenmerk_key14, NULL, v_ins_kenmerkwaarde14, TO_CHAR (v_ins_srtkenmerk_key14) || '=' || SUBSTR (v_ins_kenmerkwaarde14, 1, 200) ), DECODE ( v_ins_srtkenmerk_key15, NULL, v_ins_kenmerkwaarde15, TO_CHAR (v_ins_srtkenmerk_key15) || '=' || SUBSTR (v_ins_kenmerkwaarde15, 1, 200) ), DECODE ( v_ins_srtkenmerk_key16, NULL, v_ins_kenmerkwaarde16, TO_CHAR (v_ins_srtkenmerk_key16) || '=' || SUBSTR (v_ins_kenmerkwaarde16, 1, 200) ), DECODE ( v_ins_srtkenmerk_key17, NULL, v_ins_kenmerkwaarde17, TO_CHAR (v_ins_srtkenmerk_key17) || '=' || SUBSTR (v_ins_kenmerkwaarde17, 1, 200) ), DECODE ( v_ins_srtkenmerk_key18, NULL, v_ins_kenmerkwaarde18, TO_CHAR (v_ins_srtkenmerk_key18) || '=' || SUBSTR (v_ins_kenmerkwaarde18, 1, 200) ), DECODE ( v_ins_srtkenmerk_key19, NULL, v_ins_kenmerkwaarde19, TO_CHAR (v_ins_srtkenmerk_key19) || '=' || SUBSTR (v_ins_kenmerkwaarde19, 1, 200) ), DECODE ( v_ins_srtkenmerk_key20, NULL, v_ins_kenmerkwaarde20, TO_CHAR (v_ins_srtkenmerk_key20) || '=' || SUBSTR (v_ins_kenmerkwaarde20, 1, 200) ) ); COMMIT; v_count_import := v_count_import + 1; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END IF; END IF; END; END LOOP; IF (header_is_valid = 0) THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!'); ELSE fac.imp_writelog ( p_import_key, 'S', 'Objecten/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Objecten/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '' ); END IF; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces objecten afgebroken!'); END rwsn_import_ins; / /* Formatted on 13-12-2012 11:42:24 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PROCEDURE rwsn_update_ins (p_import_key IN NUMBER) AS v_errormsg VARCHAR2 (1000) := '-'; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); -- SUBPROC PROCEDURE add_kostensoort (p_import_key IN NUMBER) AS CURSOR c1 IS SELECT prs_kostensoort_upper, MAX (prs_kostensoort_omschrijving) prs_kostensoort_omschrijving FROM ( SELECT UPPER (ins_discipline_kostensoort) prs_kostensoort_upper, MAX (ins_discipline_kostensoort) prs_kostensoort_omschrijving FROM rwsn_imp_ins WHERE ins_discipline_kostensoort IS NOT NULL GROUP BY UPPER (ins_discipline_kostensoort) UNION ALL SELECT UPPER (res_discipline_kostensoort) prs_kostensoort_upper, MAX (res_discipline_kostensoort) prs_kostensoort_omschrijving FROM rwsn_imp_ins WHERE reserveerbaar = 1 AND res_discipline_kostensoort IS NOT NULL GROUP BY UPPER (res_discipline_kostensoort)) GROUP BY prs_kostensoort_upper; v_kostensoort_key NUMBER (10); ccount NUMBER (10); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout toevoegen kostensoort [' || rec.prs_kostensoort_omschrijving || ']'; SELECT COUNT ( * ) INTO ccount FROM prs_kostensoort WHERE TRIM (prs_kostensoort_upper) = rec.prs_kostensoort_upper; IF ccount = 0 THEN INSERT INTO prs_kostensoort (prs_kostensoort_oms) VALUES (rec.prs_kostensoort_omschrijving); v_count_update := v_count_update + 1; END IF; COMMIT; 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 (p_import_key, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'Kostensoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Kostensoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE add_insdiscipline (p_import_key IN NUMBER) AS CURSOR c1 IS SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper, UPPER (ins_discipline_kostensoort) ins_kostensoort_upper, MAX (ins_discipline_omschrijving) ins_discipline_omschrijving FROM rwsn_imp_ins GROUP BY UPPER (ins_discipline_omschrijving), UPPER (ins_discipline_kostensoort); v_kostensoort_key NUMBER (10); v_discipline_key NUMBER (10); ccount NUMBER (10); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout toevoegen INS-discipline [' || rec.ins_discipline_omschrijving || ']'; SELECT COUNT ( * ) INTO ccount FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper; IF ccount = 0 THEN IF rec.ins_kostensoort_upper IS NULL THEN v_kostensoort_key := NULL; ELSE SELECT prs_kostensoort_key INTO v_kostensoort_key FROM prs_kostensoort WHERE TRIM (prs_kostensoort_upper) = rec.ins_kostensoort_upper; END IF; INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_kpnverplicht, prs_kostensoort_key) VALUES ('INS', SUBSTR (rec.ins_discipline_omschrijving, 1, 30), 1, 0, v_kostensoort_key) RETURNING ins_discipline_key INTO v_discipline_key; INSERT INTO ins_disc_params ( ins_discipline_key, ins_disc_params_type ) VALUES (v_discipline_key, 0); v_count_update := v_count_update + 1; END IF; COMMIT; 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 (p_import_key, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'INS-Disciplines/#ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'INS-Disciplines/#toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE add_resdiscipline (p_import_key IN NUMBER) AS CURSOR c1 IS SELECT UPPER (res_discipline_omschrijving) res_discipline_upper, UPPER (res_discipline_kostensoort) res_kostensoort_upper, MAX (res_discipline_omschrijving) res_discipline_omschrijving FROM rwsn_imp_ins WHERE reserveerbaar = 1 GROUP BY UPPER (res_discipline_omschrijving), UPPER (res_discipline_kostensoort); v_kostensoort_key NUMBER (10); v_discipline_key NUMBER (10); ccount NUMBER (10); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout toevoegen RES-discipline [' || rec.res_discipline_omschrijving || ']'; SELECT COUNT ( * ) INTO ccount FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'RES' AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.res_discipline_upper; IF ccount = 0 THEN IF rec.res_kostensoort_upper IS NULL THEN v_kostensoort_key := NULL; ELSE SELECT prs_kostensoort_key INTO v_kostensoort_key FROM prs_kostensoort WHERE TRIM (prs_kostensoort_upper) = rec.res_kostensoort_upper; END IF; INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_kpnverplicht, prs_kostensoort_key) VALUES ('RES', SUBSTR (rec.res_discipline_omschrijving, 1, 30), 1, 0, v_kostensoort_key) RETURNING ins_discipline_key INTO v_discipline_key; INSERT INTO res_disc_params (res_ins_discipline_key) VALUES (v_discipline_key); v_count_update := v_count_update + 1; END IF; COMMIT; 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 (p_import_key, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'RES-Disciplines/#ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'RES-Disciplines/#toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE add_srtgroep (p_import_key IN NUMBER) AS CURSOR c1 IS SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper, UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper, MAX (ins_discipline_omschrijving) ins_discipline_omschrijving, MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving FROM rwsn_imp_ins GROUP BY UPPER (ins_discipline_omschrijving), UPPER (ins_srtgroep_omschrijving); v_discipline_key NUMBER (10); ccount NUMBER (10); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout bepalen discipline'; SELECT ins_discipline_key INTO v_discipline_key FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper; v_errormsg := 'Fout toevoegen groepsoort [' || rec.ins_srtgroep_omschrijving || '] '; SELECT COUNT ( * ) INTO ccount FROM ins_srtgroep WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_module = 'INS' AND ins_discipline_key = v_discipline_key AND TRIM (ins_srtgroep_upper) = rec.ins_srtgroep_upper; IF ccount = 0 THEN INSERT INTO ins_srtgroep ( ins_discipline_key, ins_srtgroep_module, ins_srtgroep_omschrijving ) VALUES ( v_discipline_key, 'INS', SUBSTR (TRIM (rec.ins_srtgroep_omschrijving), 1, 60) ); v_count_update := v_count_update + 1; END IF; COMMIT; 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 (p_import_key, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'Groepsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Groepsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE add_srtdeel (p_import_key IN NUMBER) AS CURSOR c1 IS SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper, UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper, UPPER (ins_srtdeel_code) ins_srtdeel_code_upper, UPPER (ins_srtdeel_omschrijving) ins_srtdeel_upper, MAX (ins_discipline_omschrijving) ins_discipline_omschrijving, MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving, MAX (ins_srtdeel_code) ins_srtdeel_code, MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving FROM rwsn_imp_ins GROUP BY UPPER (ins_discipline_omschrijving), UPPER (ins_srtgroep_omschrijving), UPPER (ins_srtdeel_code), UPPER (ins_srtdeel_omschrijving); v_discipline_key NUMBER (10); v_srtgroep_key NUMBER (10); ccount NUMBER (10); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout bepalen discipline'; SELECT ins_discipline_key INTO v_discipline_key FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper; v_errormsg := 'Fout bepalen groepsoort'; SELECT ins_srtgroep_key INTO v_srtgroep_key FROM ins_srtgroep WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_module = 'INS' AND ins_discipline_key = v_discipline_key AND TRIM (ins_srtgroep_upper) = rec.ins_srtgroep_upper; v_errormsg := 'Fout toevoegen objectsoort [' || rec.ins_srtdeel_omschrijving || ']'; SELECT COUNT ( * ) INTO ccount FROM ins_srtdeel WHERE ins_srtdeel_verwijder IS NULL AND ins_srtdeel_module = 'INS' AND ins_srtgroep_key = v_srtgroep_key AND TRIM (ins_srtdeel_upper) = rec.ins_srtdeel_upper; IF ccount = 0 THEN -- binding 17 betekent ruimtegebonden of persoonsgebonden INSERT INTO ins_srtdeel (ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_srtdeel_binding) VALUES (v_srtgroep_key, 'INS', rec.ins_srtdeel_code, rec.ins_srtdeel_omschrijving, 17); v_count_update := v_count_update + 1; END IF; COMMIT; 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 (p_import_key, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'Objectsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Objectsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE upsert_inskenmerk (p_deel_key IN NUMBER, p_srtkenmerk_key IN NUMBER, p_waarde IN VARCHAR2) AS v_kenmerk_key NUMBER; v_srtkenmerk_type VARCHAR2 (1); ccount NUMBER; v_waarde VARCHAR2 (255); v_objectnaam VARCHAR2 (30); v_kolomnaam VARCHAR2 (30); v_kolomtxt VARCHAR2 (30); sql_stmt VARCHAR2 (1000); v_kenmerkdeel_key NUMBER; BEGIN IF p_srtkenmerk_key IS NOT NULL AND p_waarde IS NOT NULL THEN v_errormsg := 'Fout bepalen kenmerk van soort [' || p_srtkenmerk_key || ']'; SELECT k.ins_kenmerk_key, sk.ins_srtkenmerk_kenmerktype INTO v_kenmerk_key, v_srtkenmerk_type FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk WHERE d.ins_deel_key = p_deel_key AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND k.ins_srtkenmerk_key = p_srtkenmerk_key AND ( (k.ins_srtinstallatie_key = sd.ins_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = sg.ins_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = sg.ins_discipline_key AND k.ins_kenmerk_niveau = 'D')) AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key; IF v_srtkenmerk_type IN ('R', 'S') THEN v_errormsg := 'Fout bepalen eigen tabel'; SELECT COUNT ( * ) INTO ccount FROM ins_srtkenmerk sk, fac_kenmerkdomein d WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key AND d.fac_usrtab_key IS NOT NULL; v_errormsg := 'Fout bepalen nieuwe waarde [' || p_waarde || ']'; IF ccount = 1 THEN -- Eigen tabel SELECT TO_CHAR (ud.fac_usrdata_key) INTO v_waarde FROM ins_srtkenmerk sk, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key AND d.fac_usrtab_key = ud.fac_usrtab_key AND UPPER (TRIM (ud.fac_usrdata_omschr)) = UPPER (p_waarde); ELSE -- FACILITOR view/tabel SELECT d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt INTO v_objectnaam, v_kolomnaam, v_kolomtxt FROM ins_srtkenmerk sk, fac_kenmerkdomein d WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key AND d.fac_usrtab_key IS NULL; sql_stmt := 'SELECT MAX (' || v_kolomnaam || ') FROM ' || v_objectnaam || ' WHERE UPPER (TRIM (' || v_kolomtxt || ')) = UPPER (''' || p_waarde || ''')'; EXECUTE IMMEDIATE sql_stmt INTO v_waarde; END IF; ELSE -- C(haracter)/D(ate)/N(umeric) v_waarde := p_waarde; END IF; v_errormsg := 'Fout bepalen huidige waarde'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = p_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout toevoegen waarde [' || v_waarde || ']'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (p_deel_key, v_kenmerk_key, v_waarde); ELSE v_errormsg := 'Fout bijwerken waarde [' || v_waarde || ']'; UPDATE ins_kenmerkdeel SET ins_kenmerkdeel_waarde = v_waarde WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; END IF; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, 'upsert_inskenmerk'); END; -- SUBPROC PROCEDURE add_deel (p_import_key IN NUMBER) AS CURSOR c1 IS SELECT ins_discipline_omschrijving, ins_srtgroep_omschrijving, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_deel_omschrijving, alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_ruimte_nr, reserveerbaar, res_discipline_omschrijving, res_deel_eenheid, res_deel_prijs, res_deel_alg_level, prs_perslid_matchcode, prs_perslid_matchwaarde, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde1, 1, INSTR (ins_kenmerkwaarde1, '=') - 1)) srtkenmerk_key1, SUBSTR (ins_kenmerkwaarde1, INSTR (ins_kenmerkwaarde1, '=') + 1) waarde1, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde2, 1, INSTR (ins_kenmerkwaarde2, '=') - 1)) srtkenmerk_key2, SUBSTR (ins_kenmerkwaarde2, INSTR (ins_kenmerkwaarde2, '=') + 1) waarde2, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde3, 1, INSTR (ins_kenmerkwaarde3, '=') - 1)) srtkenmerk_key3, SUBSTR (ins_kenmerkwaarde3, INSTR (ins_kenmerkwaarde3, '=') + 1) waarde3, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde4, 1, INSTR (ins_kenmerkwaarde4, '=') - 1)) srtkenmerk_key4, SUBSTR (ins_kenmerkwaarde4, INSTR (ins_kenmerkwaarde4, '=') + 1) waarde4, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde5, 1, INSTR (ins_kenmerkwaarde5, '=') - 1)) srtkenmerk_key5, SUBSTR (ins_kenmerkwaarde5, INSTR (ins_kenmerkwaarde5, '=') + 1) waarde5, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde6, 1, INSTR (ins_kenmerkwaarde6, '=') - 1)) srtkenmerk_key6, SUBSTR (ins_kenmerkwaarde6, INSTR (ins_kenmerkwaarde6, '=') + 1) waarde6, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde7, 1, INSTR (ins_kenmerkwaarde7, '=') - 1)) srtkenmerk_key7, SUBSTR (ins_kenmerkwaarde7, INSTR (ins_kenmerkwaarde7, '=') + 1) waarde7, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde8, 1, INSTR (ins_kenmerkwaarde8, '=') - 1)) srtkenmerk_key8, SUBSTR (ins_kenmerkwaarde8, INSTR (ins_kenmerkwaarde8, '=') + 1) waarde8, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde9, 1, INSTR (ins_kenmerkwaarde9, '=') - 1)) srtkenmerk_key9, SUBSTR (ins_kenmerkwaarde9, INSTR (ins_kenmerkwaarde9, '=') + 1) waarde9, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde10, 1, INSTR (ins_kenmerkwaarde10, '=') - 1)) srtkenmerk_key10, SUBSTR (ins_kenmerkwaarde10, INSTR (ins_kenmerkwaarde10, '=') + 1) waarde10, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde11, 1, INSTR (ins_kenmerkwaarde11, '=') - 1)) srtkenmerk_key11, SUBSTR (ins_kenmerkwaarde11, INSTR (ins_kenmerkwaarde11, '=') + 1) waarde11, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde12, 1, INSTR (ins_kenmerkwaarde12, '=') - 1)) srtkenmerk_key12, SUBSTR (ins_kenmerkwaarde12, INSTR (ins_kenmerkwaarde12, '=') + 1) waarde12, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde13, 1, INSTR (ins_kenmerkwaarde13, '=') - 1)) srtkenmerk_key13, SUBSTR (ins_kenmerkwaarde13, INSTR (ins_kenmerkwaarde13, '=') + 1) waarde13, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde14, 1, INSTR (ins_kenmerkwaarde14, '=') - 1)) srtkenmerk_key14, SUBSTR (ins_kenmerkwaarde14, INSTR (ins_kenmerkwaarde14, '=') + 1) waarde14, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde15, 1, INSTR (ins_kenmerkwaarde15, '=') - 1)) srtkenmerk_key15, SUBSTR (ins_kenmerkwaarde15, INSTR (ins_kenmerkwaarde15, '=') + 1) waarde15, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde16, 1, INSTR (ins_kenmerkwaarde16, '=') - 1)) srtkenmerk_key16, SUBSTR (ins_kenmerkwaarde16, INSTR (ins_kenmerkwaarde16, '=') + 1) waarde16, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde17, 1, INSTR (ins_kenmerkwaarde17, '=') - 1)) srtkenmerk_key17, SUBSTR (ins_kenmerkwaarde17, INSTR (ins_kenmerkwaarde17, '=') + 1) waarde17, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde18, 1, INSTR (ins_kenmerkwaarde18, '=') - 1)) srtkenmerk_key18, SUBSTR (ins_kenmerkwaarde18, INSTR (ins_kenmerkwaarde18, '=') + 1) waarde18, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde19, 1, INSTR (ins_kenmerkwaarde19, '=') - 1)) srtkenmerk_key19, SUBSTR (ins_kenmerkwaarde19, INSTR (ins_kenmerkwaarde19, '=') + 1) waarde19, fac.safe_to_number(SUBSTR (ins_kenmerkwaarde20, 1, INSTR (ins_kenmerkwaarde20, '=') - 1)) srtkenmerk_key20, SUBSTR (ins_kenmerkwaarde20, INSTR (ins_kenmerkwaarde20, '=') + 1) waarde20 FROM rwsn_imp_ins; v_discipline_key NUMBER (10); v_rdiscipline_key NUMBER (10); v_srtgroep_key NUMBER (10); v_srtdeel_key NUMBER (10); v_locatie_key NUMBER (10); v_gebouw_key NUMBER (10); v_verdieping_key NUMBER (10); v_ruimte_key NUMBER (10); v_matchkolom VARCHAR2 (255); sql_stmt VARCHAR2 (1000); v_ruimte_type VARCHAR2 (10); v_deel_key NUMBER (10); ccount NUMBER (10); v_count_tot NUMBER (10); v_count_insnew NUMBER (10); v_count_insupd NUMBER (10); v_count_resnew NUMBER (10); v_srtnoti_code VARCHAR2 (6); BEGIN v_count_tot := 0; v_count_insnew := 0; v_count_insupd := 0; v_count_resnew := 0; v_aanduiding := ''; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_aanduiding := '[' || rec.ins_discipline_omschrijving || '|' || rec.ins_srtgroep_omschrijving || '|' || rec.ins_srtdeel_code || '|' || rec.ins_srtdeel_omschrijving || '|' || rec.ins_deel_omschrijving || '] '; v_errormsg := 'Fout bepalen discipline'; SELECT ins_discipline_key INTO v_discipline_key FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (rec.ins_discipline_omschrijving); v_errormsg := 'Fout bepalen groepsoort'; SELECT ins_srtgroep_key INTO v_srtgroep_key FROM ins_srtgroep WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_module = 'INS' AND ins_discipline_key = v_discipline_key AND TRIM (ins_srtgroep_upper) = UPPER (rec.ins_srtgroep_omschrijving); v_errormsg := 'Fout bepalen objectsoort'; SELECT ins_srtdeel_key INTO v_srtdeel_key FROM ins_srtdeel WHERE ins_srtdeel_verwijder IS NULL AND ins_srtdeel_module = 'INS' AND ins_srtgroep_key = v_srtgroep_key AND TRIM (ins_srtdeel_upper) = UPPER (rec.ins_srtdeel_omschrijving); v_locatie_key := NULL; IF rec.alg_locatie_code IS NOT NULL THEN -- ruimtegebonden object v_errormsg := 'Fout bepalen locatie [' || rec.alg_locatie_code || ']'; SELECT alg_locatie_key INTO v_locatie_key FROM alg_v_aanweziglocatie WHERE UPPER (TRIM (alg_locatie_code)) = UPPER (rec.alg_locatie_code); v_errormsg := 'Fout bepalen gebouw [' || rec.alg_gebouw_code || ']'; SELECT alg_gebouw_key INTO v_gebouw_key FROM alg_v_aanweziggebouw WHERE alg_locatie_key = v_locatie_key AND UPPER (TRIM (alg_gebouw_code)) = UPPER (rec.alg_gebouw_code); v_errormsg := 'Fout bepalen verdieping [' || rec.alg_verdieping_volgnr || ']'; SELECT alg_verdieping_key INTO v_verdieping_key FROM alg_v_aanwezigverdieping WHERE alg_gebouw_key = v_gebouw_key AND alg_verdieping_volgnr = rec.alg_verdieping_volgnr; v_errormsg := 'Fout bepalen ruimte [' || rec.alg_ruimte_nr || ']'; SELECT alg_ruimte_key INTO v_ruimte_key FROM alg_v_aanwezigruimte WHERE alg_verdieping_key = v_verdieping_key AND TRIM (alg_ruimte_upper_nr) = UPPER (rec.alg_ruimte_nr); v_ruimte_type := 'R'; -- ruimtegebonden objecten hebben een unieke ID binnen locatie SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigdeel WHERE ins_deel_module = 'INS' AND ins_srtdeel_key = v_srtdeel_key AND ins_alg_ruimte_type = v_ruimte_type -- R AND ins_alg_locatie_key = v_locatie_key AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving); ELSE -- persoonsgebonden object v_matchkolom := ''; CASE rec.prs_perslid_matchcode WHEN '1' THEN v_matchkolom := 'PRS_PERSLID_EMAIL'; WHEN '2' THEN v_matchkolom := 'PRS_PERSLID_OSLOGIN'; WHEN '3' THEN v_matchkolom := 'PRS_PERSLID_KEY'; WHEN '4' THEN v_matchkolom := 'PRS_PERSLID_NR'; WHEN '5' THEN v_matchkolom := 'PRS_PERSLID_VOORNAAM || '' '' || PRS_PERSLID_NAAM'; ELSE -- voor developers only: indien geen code wordt gebruikt, -- kan als persoonmatchcode een kolom uit de perslid-tabel -- worden ingevoerd, bijvoorbeeld: prs_perslid_oslogin2 v_matchkolom := rec.prs_perslid_matchcode; END CASE; v_errormsg := 'Fout bepalen persoon [' || rec.prs_perslid_matchwaarde || ']'; sql_stmt := 'SELECT MIN (prs_perslid_key), COUNT (prs_perslid_key) ' || ' FROM prs_v_aanwezigperslid ' || ' WHERE UPPER (' || v_matchkolom || ') = UPPER (''' || rec.prs_perslid_matchwaarde || ''') ' || 'GROUP BY prs_perslid_key'; EXECUTE IMMEDIATE sql_stmt INTO v_ruimte_key, ccount; IF ccount != 1 THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Kan persoon niet 1-duidig bepalen'); END IF; v_ruimte_type := 'P'; -- persoonsgebonden objecten hebben een unieke ID SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigdeel WHERE ins_deel_module = 'INS' AND ins_srtdeel_key = v_srtdeel_key AND ins_alg_ruimte_type = v_ruimte_type -- P AND ins_alg_locatie_key IS NULL AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving); END IF; IF ccount = 0 THEN -- toevoegen object! v_errormsg := 'Fout toevoegen INS-object'; INSERT INTO ins_deel (ins_discipline_key, ins_srtdeel_key, ins_deel_module, ins_deel_omschrijving, ins_alg_ruimte_key, ins_alg_ruimte_type, ins_alg_locatie_key) VALUES (v_discipline_key, v_srtdeel_key, 'INS', rec.ins_deel_omschrijving, v_ruimte_key, v_ruimte_type, v_locatie_key) RETURNING ins_deel_key INTO v_deel_key; -- Overslaan als reserveerbaar en geen RES-discipline of andersom, -- dus verder geen controle op eventuele inconsistentie! IF (rec.reserveerbaar = 1 AND rec.res_discipline_omschrijving IS NOT NULL) THEN v_errormsg := 'Fout bepalen RES-discipline [' || rec.res_discipline_omschrijving || ']'; SELECT ins_discipline_key INTO v_rdiscipline_key FROM res_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'RES' AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (rec.res_discipline_omschrijving); v_errormsg := 'Fout toevoegen RES-object'; INSERT INTO res_deel (res_ins_deel_key, res_deel_eenheid, res_deel_prijs, res_discipline_key, res_deel_alg_level) VALUES (v_deel_key, rec.res_deel_eenheid, rec.res_deel_prijs, v_rdiscipline_key, rec.res_deel_alg_level); v_count_resnew := v_count_resnew + 1; END IF; v_srtnoti_code := 'INSNEW'; v_count_insnew := v_count_insnew + 1; ELSE -- bijwerken object! v_errormsg := 'Fout bepalen INS-object'; SELECT ins_deel_key INTO v_deel_key FROM ins_v_aanwezigdeel WHERE ins_deel_module = 'INS' AND ins_srtdeel_key = v_srtdeel_key AND ins_alg_ruimte_type = v_ruimte_type -- R/P AND COALESCE (ins_alg_locatie_key, -1) = COALESCE (v_locatie_key, -1) -- gevuld/NULL AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving); v_srtnoti_code := 'INSUPD'; v_count_insupd := v_count_insupd + 1; END IF; -- NULL-waarden resulteren NIET in het wissen van kenmerkvelden -- (bijwerken kan wel, maar wissen dus niet)! upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key1, rec.waarde1); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key2, rec.waarde2); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key3, rec.waarde3); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key4, rec.waarde4); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key5, rec.waarde5); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key6, rec.waarde6); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key7, rec.waarde7); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key8, rec.waarde8); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key9, rec.waarde9); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key10, rec.waarde10); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key11, rec.waarde11); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key12, rec.waarde12); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key13, rec.waarde13); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key14, rec.waarde14); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key15, rec.waarde15); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key16, rec.waarde16); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key17, rec.waarde17); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key18, rec.waarde18); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key19, rec.waarde19); upsert_inskenmerk (v_deel_key, rec.srtkenmerk_key20, rec.waarde20); fac.trackaction (v_srtnoti_code, v_deel_key, NULL, NULL, NULL); COMMIT; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'INS-objecten/#ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'INS-objecten/#toegevoegd: ' || TO_CHAR (v_count_insnew), '' ); fac.imp_writelog ( p_import_key, 'S', 'INS-objecten/#bijgewerkt: ' || TO_CHAR (v_count_insupd), '' ); fac.imp_writelog ( p_import_key, 'S', 'RES-objecten/#toegevoegd: ' || TO_CHAR (v_count_resnew), '' ); COMMIT; END; -- MAIN BEGIN add_kostensoort (p_import_key); add_insdiscipline (p_import_key); add_resdiscipline (p_import_key); add_srtgroep (p_import_key); add_srtdeel (p_import_key); add_deel (p_import_key); 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 (p_import_key, 'E', v_errormsg, 'Importproces objecten afgebroken!'); END rwsn_update_ins; / -- RWSN#25817: Rapportage voor Unit IV (Unit4?) /* Formatted on 24-3-2014 17:15:35 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_gebouwenlijst ( objectcode, fclt_f_bezoekplaats, bezoekadres, bezoekpostcode, dienstnaam, fclt_f_pp_ef, fclt_f_regio, district, fclt_f_type_vastgoed, fclt_f_gebouwfunctie, gebouwopmerking, fclt_f_eigendom_huur, verantwoordelijke, verantw_tel, email ) AS SELECT x.alg_gebouw_code, x.alg_locatie_plaats, x.alg_locatie_adres, x.alg_locatie_postcode, a.dienstnaam, b.pp_ef, x.alg_regio_omschrijving, x.alg_district_omschrijving, c.type_vastgoed, x.alg_srtgebouw_omschrijving, x.alg_gebouw_opmerking, d.eigendom_huur, x.alg_locatie_verantw, x.alg_locatie_verantw_tel, e.alg_onrgoedkenmerk_waarde email FROM (SELECT g.alg_gebouw_key, g.alg_gebouw_code, g.alg_gebouw_opmerking, sg.alg_srtgebouw_omschrijving, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_adres, l.alg_locatie_postcode, l.alg_locatie_plaats, l.alg_locatie_verantw, l.alg_locatie_verantw_tel, d.alg_district_omschrijving, r.alg_regio_omschrijving FROM alg_v_aanwezigregio r, alg_v_aanwezigdistrict d, alg_v_aanweziglocatie l, alg_v_aanweziggebouw g, alg_srtgebouw sg WHERE r.alg_regio_key = d.alg_regio_key AND d.alg_district_key = l.alg_district_key AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_upper NOT LIKE 'ZZ%' AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key) x LEFT JOIN -- 1061=Dienstnaam (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr dienstnaam FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud WHERE ok.alg_kenmerk_key = 1061 AND ud.fac_usrdata_key = fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde)) a ON x.alg_gebouw_key = a.alg_onrgoed_key LEFT JOIN -- 1121=PP/EF (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr pp_ef FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud WHERE ok.alg_kenmerk_key = 1121 AND ud.fac_usrdata_key = fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde)) b ON x.alg_gebouw_key = b.alg_onrgoed_key LEFT JOIN -- 1068=Type vastgoed (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr type_vastgoed FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud WHERE ok.alg_kenmerk_key = 1068 AND ud.fac_usrdata_key = fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde)) c ON x.alg_gebouw_key = c.alg_onrgoed_key LEFT JOIN -- 1072=Eigendom/huur (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr eigendom_huur FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud WHERE ok.alg_kenmerk_key = 1072 AND ud.fac_usrdata_key = fac.safe_to_number ( ok.alg_onrgoedkenmerk_waarde)) d ON x.alg_gebouw_key = d.alg_onrgoed_key LEFT JOIN -- 1381=E-mail verantwoordelijke (RWSN#29157) alg_v_aanwezigonrgoedkenmerk e ON x.alg_locatie_key = e.alg_onrgoed_key AND e.alg_kenmerk_key = 1381; -- RWSN#33267 Import werkplekken (4e variant van een object-import tbv. RWS, -- maar - helaas - net weer anders dan CMDB, INS en APPL). /* Formatted on 30-9-2015 10:44:14 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE rwsn_import_wp (p_import_key IN NUMBER) IS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (1000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER := 0; v_count_tot NUMBER (10) := 0; v_count_import NUMBER (10) := 0; v_ongeldig NUMBER (1); v_aanduiding VARCHAR2 (200); -- De importvelden: v_objectid VARCHAR2 (255); -- C50 v_kamer VARCHAR2 (255); -- C50 v_locatie VARCHAR2 (255); -- C100 v_vestiging VARCHAR2 (255); -- C100 CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM rwsn_imp_wp; COMMIT; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_objectid); fac.imp_getfield (v_newline, c_delim, v_kamer); fac.imp_getfield (v_newline, c_delim, v_locatie); fac.imp_getfield (v_newline, c_delim, v_vestiging); v_aanduiding := '[' || v_objectid || '|' || v_locatie || '|' || v_vestiging || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER (v_objectid) = 'OBJECT ID' AND UPPER (v_kamer) = 'KAMER (PLAATSING)' AND UPPER (v_locatie) = 'LOCATIE' AND UPPER (v_vestiging) = 'VESTIGING' THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'ObjectID ongeldig; ongedefinieerd of te lang'; v_objectid := TRIM (v_objectid); IF SUBSTR (v_objectid, 1, 1) = 'D' AND SUBSTR (v_objectid, 2, 1) BETWEEN '1' AND '9' THEN IF v_objectid IS NULL OR LENGTH (v_objectid) > 50 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- Don't care v_errormsg := 'Kamer ongeldig'; v_kamer := TRIM (v_kamer); -- v_errormsg := 'Locatie ongeldig; ongedefinieerd of te lang'; v_locatie := TRIM (v_locatie); IF v_locatie IS NULL OR LENGTH (v_locatie) > 100 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errormsg := 'Vestiging ongeldig; ongedefinieerd of te lang'; v_vestiging := TRIM (v_vestiging); IF v_vestiging IS NULL OR LENGTH (v_vestiging) > 100 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; ELSE v_ongeldig := 1; -- Gewoon overslaan en niet eens loggen! END IF; -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout wegschrijven importregel'; INSERT INTO rwsn_imp_wp (objectid, kamer, locatie, vestiging) VALUES (v_objectid, v_kamer, v_locatie, v_vestiging); COMMIT; v_count_import := v_count_import + 1; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END IF; END IF; END; END LOOP; IF (header_is_valid = 0) THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!'); ELSE fac.imp_writelog ( p_import_key, 'S', 'WP/#ingelezen importregels: ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog ( p_import_key, 'S', 'WP/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), ''); END IF; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces WP afgebroken!'); END rwsn_import_wp; / CREATE OR REPLACE PROCEDURE rwsn_update_wp (p_import_key IN NUMBER) AS c_disc_key_wp NUMBER (10) := 3250; -- T=3801/WORK=3321=>P=3250 c_srtd_key_wp NUMBER (10) := 3250; -- T=3242/WORK=3182=>P=3250 v_errormsg VARCHAR2 (1000) := '-'; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_count NUMBER (10); v_count_del NUMBER (10); v_count_new NUMBER (10); v_count_upd NUMBER (10); v_count_skp NUMBER (10); v_srtdeel_key NUMBER (10); v_deel_key NUMBER (10); v_cur_ruimte_key NUMBER (10); CURSOR c1 -- VERWIJDEREN (voorlopig alleen vervaldatum)? IS SELECT d.ins_deel_key, d.ins_deel_omschrijving FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg WHERE d.ins_deel_vervaldatum IS NULL AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = 2350 -- WPs AND NOT EXISTS (SELECT 1 FROM rwsn_imp_wp x WHERE UPPER (x.objectid) = TRIM (d.ins_deel_upper)) ORDER BY 1; CURSOR c2 -- AANMAKEN/BIJWERKEN IS SELECT x.objectid, x.alg_locatie_code, -- FACILITOR-locatiecode na match (kort) x.aantal lmatch, x.alg_locatie_key, x.locatie alg_ruimte_nr, r.aantal rmatch, r.alg_ruimte_key FROM ( SELECT x.objectid, l.alg_locatie_code, x.locatie, COUNT ( * ) aantal, MIN (l.alg_locatie_key) alg_locatie_key FROM rwsn_imp_wp x, alg_v_aanweziglocatie l WHERE REPLACE (UPPER(SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%' GROUP BY x.objectid, l.alg_locatie_code, x.locatie) x LEFT JOIN ( SELECT x.objectid, COUNT ( * ) aantal, MIN (r.alg_ruimte_key) alg_ruimte_key FROM rwsn_imp_wp x, alg_v_aanweziglocatie l, alg_gebouw g, alg_verdieping v, alg_v_aanwezigruimte r WHERE REPLACE (UPPER(SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%' AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND TRIM (r.alg_ruimte_upper_nr) = UPPER (x.locatie) GROUP BY x.objectid) r ON x.objectid = r.objectid UNION ALL -- Object-vestiging kan niet worden bepaald (tbv. logging)! SELECT x.objectid, x.vestiging alg_locatie_code, -- CMDB-waarde zonder match (lang) NULL lmatch, NULL alg_locatie_key, SUBSTR (x.locatie, 1, 50) alg_ruimte_nr, -- Afkappen! NULL rmatch, NULL alg_ruimte_key FROM rwsn_imp_wp x WHERE NOT EXISTS (SELECT 1 FROM alg_v_aanweziglocatie l WHERE REPLACE (UPPER(SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%') ORDER BY 1; /* SELECT v.*, REPLACE (UPPER (SUBSTR (v.vestiging, INSTR (v.vestiging, '(', 1) + 1)), ' ', '') vpc FROM rwsn_imp_wp v WHERE NOT EXISTS (SELECT 1 FROM alg_v_aanweziglocatie l WHERE REPLACE (UPPER (SUBSTR (v.vestiging, INSTR (v.vestiging, '(', 1) + 1)), ' ', '') LIKE REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%'; SELECT x.objectid, x.vestiging, x.locatie FROM rwsn_imp_wp x, alg_v_aanweziglocatie l WHERE REPLACE ( UPPER (SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE --REPLACE (UPPER (l.alg_locatie_code), ' ', '') || '%' REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%' MINUS SELECT x.objectid, x.vestiging, x.locatie FROM rwsn_imp_wp x, alg_v_aanweziglocatie l, alg_gebouw g, alg_verdieping v, alg_v_aanwezigruimte r WHERE REPLACE ( UPPER (SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE --REPLACE (UPPER (l.alg_locatie_code), ' ', '') || '%' REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%' AND l.alg_locatie_key = g.alg_locatie_key(+) AND g.alg_gebouw_key = v.alg_gebouw_key(+) AND v.alg_verdieping_key = r.alg_verdieping_key(+) AND TRIM (r.alg_ruimte_upper_nr) = UPPER (x.locatie) GROUP BY x.objectid, x.vestiging, x.locatie; SELECT l.objectid, l.locatie, l.vestiging, l.lpc, l.aantal l_aant, r.aantal r_aant, r.alg_locatie_code, r.alg_gebouw_code, r.alg_verdieping_code, r.alg_ruimte_nr FROM ( SELECT x.objectid, x.locatie, x.vestiging, MIN (REPLACE (UPPER (l.alg_locatie_code), ' ', '')) lpc, COUNT ( * ) aantal FROM rwsn_imp_wp x, alg_v_aanweziglocatie l WHERE REPLACE ( UPPER(SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%' GROUP BY x.objectid, x.locatie, x.vestiging) l LEFT JOIN ( SELECT x.objectid, x.locatie, MIN (l.alg_locatie_key) alg_locatie_key, MIN (g.alg_gebouw_key) alg_gebouw_key, MIN (v.alg_verdieping_key) alg_verdieping_key, MIN (l.alg_locatie_code) alg_locatie_code, MIN (g.alg_gebouw_code) alg_gebouw_code, MIN (v.alg_verdieping_code) alg_verdieping_code, MIN (r.alg_ruimte_nr) alg_ruimte_nr, COUNT ( * ) aantal FROM rwsn_imp_wp x, alg_v_aanweziglocatie l, alg_gebouw g, alg_verdieping v, alg_v_aanwezigruimte r WHERE REPLACE ( UPPER(SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%' AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND TRIM (r.alg_ruimte_upper_nr) = UPPER (x.locatie) GROUP BY x.objectid, x.locatie) r ON l.objectid = r.objectid AND l.locatie = r.locatie UNION ALL SELECT x.objectid, x.locatie, x.vestiging, NULL lpc, 0 l_aant, NULL r_aant, NULL alg_locatie_code, NULL alg_gebouw_code, NULL alg_verdieping_code, NULL alg_ruimte_nr FROM rwsn_imp_wp x WHERE NOT EXISTS (SELECT 1 FROM alg_v_aanweziglocatie l WHERE REPLACE ( UPPER(SUBSTR (x.vestiging, INSTR (x.vestiging, '(', 1) + 1)), ' ', '') LIKE REPLACE (SUBSTR (UPPER (l.alg_locatie_code), 1, 6), ' ', '') || '%'); */ BEGIN v_count_del := 0; FOR rec IN c1 LOOP BEGIN v_aanduiding := '[' || rec.ins_deel_key || '|' || rec.ins_deel_omschrijving || '] '; v_errormsg := 'Fout verwijderen WP'; UPDATE ins_deel SET ins_deel_vervaldatum = SYSDATE WHERE ins_deel_key = rec.ins_deel_key; COMMIT; v_count_del := v_count_del + 1; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'WP/#verwijderd: ' || TO_CHAR (v_count_del), ''); v_count_new := 0; v_count_upd := 0; v_count_skp := 0; FOR rec IN c2 LOOP BEGIN v_aanduiding := '[' || rec.objectid || '|' || rec.alg_locatie_code || '|' || rec.alg_ruimte_nr || '] '; v_errormsg := 'Fout (uniek) bepalen WP'; IF rec.lmatch = 1 AND rec.rmatch = 1 THEN SELECT COUNT ( * ) INTO v_count FROM ins_srtgroep sg, ins_srtdeel sd, ins_v_aanwezigdeel d WHERE sg.ins_discipline_key = c_disc_key_wp -- Afgesproken discipline! AND sg.ins_srtgroep_key = sd.ins_srtgroep_key AND sd.ins_srtdeel_key = d.ins_srtdeel_key --AND d.ins_srtdeel_key = c_srtd_key_wp -- Afgesproken srtdeel! AND d.ins_srtdeel_key IN (c_srtd_key_wp, 3242) -- Afgesproken srtdeel! AND TRIM (d.ins_deel_upper) = UPPER (rec.objectid); IF v_count = 0 -- Object bestaat nog niet, dus toevoegen! THEN v_errormsg := 'Fout toevoegen WP'; INSERT INTO ins_deel (ins_discipline_key, ins_srtdeel_key, ins_deel_module, ins_deel_omschrijving, ins_alg_ruimte_key, ins_alg_ruimte_type, ins_alg_locatie_key) VALUES (c_disc_key_wp, -- Afgesproken discipline! c_srtd_key_wp, -- Afgesproken srtdeel! 'INS', rec.objectid, rec.alg_ruimte_key, 'R', rec.alg_locatie_key) RETURNING ins_deel_key INTO v_deel_key; COMMIT; v_count_new := v_count_new + 1; ELSE -- Object bestaat reeds! SELECT ins_deel_key, ins_alg_ruimte_key INTO v_deel_key, v_cur_ruimte_key FROM ins_srtgroep sg, ins_srtdeel sd, ins_v_aanwezigdeel d WHERE sg.ins_discipline_key = c_disc_key_wp -- Afgesproken discipline! AND sg.ins_srtgroep_key = sd.ins_srtgroep_key AND sd.ins_srtdeel_key = d.ins_srtdeel_key --AND d.ins_srtdeel_key = c_srtd_key_wp -- Afgesproken srtdeel! AND d.ins_srtdeel_key IN (c_srtd_key_wp, 3242) -- Afgesproken srtdeel! AND TRIM (d.ins_deel_upper) = UPPER (rec.objectid); IF rec.alg_ruimte_key != v_cur_ruimte_key THEN v_errormsg := 'Fout bijwerken WP'; UPDATE ins_deel SET ins_alg_ruimte_key = rec.alg_ruimte_key, ins_alg_ruimte_type = 'R' WHERE ins_deel_key = v_deel_key; COMMIT; v_count_upd := v_count_upd + 1; ELSE v_count_skp := v_count_skp + 1; END IF; END IF; ELSIF COALESCE (rec.lmatch, 0) != 1 THEN fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Geen (unieke) match op locatie'); ELSE -- COALESCE (rec.rmatch, 0) != 1 fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Geen (unieke) match op ruimte'); END IF; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'WP/#toegevoegd: ' || TO_CHAR (v_count_new), ''); fac.imp_writelog (p_import_key, 'S', 'WP/#gewijzigd: ' || TO_CHAR (v_count_upd), ''); fac.imp_writelog (p_import_key, 'S', 'WP/#ongewijzigd: ' || TO_CHAR (v_count_skp), ''); 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 (p_import_key, 'E', v_errormsg, 'Importproces WP afgebroken!'); END rwsn_update_wp; / /* Formatted on 16-10-2015 16:52:28 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_cnt_algscope ( fclt_f_zaakid, gebouwcode, locatiecode, locatieomschrijving ) AS SELECT c.cnt_contract_nummer, g.alg_gebouw_code, l.alg_locatie_code, l.alg_locatie_omschrijving FROM cnt_contract_plaats cp, cnt_v_aanwezigcontract c, alg_gebouw g, alg_locatie l WHERE cp.cnt_contract_plaats_verwijder IS NULL AND cp.cnt_contract_key = c.cnt_contract_key --AND c.cnt_contract_status = 0 -- Niet gesloten! AND cp.cnt_alg_plaats_key = g.alg_gebouw_key AND cp.cnt_alg_plaats_code = 'G' AND g.alg_locatie_key = l.alg_locatie_key; /* Formatted on 13-8-2015 10:48:12 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE rwsn_import_cnt_algscope (p_import_key IN NUMBER) IS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (1000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR2 (200); -- De importvelden: v_zaakid VARCHAR2 (255); -- C30 v_gebouwcode VARCHAR2 (255); -- C12 CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM rwsn_imp_cnt_algscope; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_zaakid); fac.imp_getfield (v_newline, c_delim, v_gebouwcode); v_aanduiding := '[' || v_zaakid || '|' || v_gebouwcode || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER (v_zaakid) = 'ZAAKID' AND UPPER (v_gebouwcode) = 'GEBOUWCODE' THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'ZaakID ongeldig; ongedefinieerd of te lang'; v_zaakid := TRIM (v_zaakid); IF v_zaakid IS NULL OR LENGTH (v_zaakid) > 30 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errormsg := 'GebouwCode ongeldig; ongedefinieerd of te lang'; v_gebouwcode := TRIM (v_gebouwcode); IF v_gebouwcode IS NULL OR LENGTH (v_gebouwcode) > 12 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout wegschrijven importregel'; INSERT INTO rwsn_imp_cnt_algscope (zaakid, gebouwcode) VALUES (v_zaakid, v_gebouwcode); COMMIT; v_count_import := v_count_import + 1; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END IF; END IF; END; END LOOP; IF (header_is_valid = 0) THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!'); ELSE fac.imp_writelog ( p_import_key, 'S', 'CNT-algscope/#ingelezen importregels: ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog ( p_import_key, 'S', 'CNT-algscope/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), ''); END IF; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces CNT-algscope afgebroken!'); END rwsn_import_cnt_algscope; / /* Formatted on 14-8-2015 13:14:15 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE rwsn_update_cnt_algscope (p_import_key IN NUMBER) AS v_errormsg VARCHAR2 (1000) := '-'; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_count NUMBER (10); v_count_del NUMBER (10); v_count_new NUMBER (10); CURSOR c1 IS SELECT c.cnt_contract_nummer, g.alg_gebouw_code, cp.cnt_contract_plaats_key FROM cnt_contract_plaats cp, cnt_contract c, alg_gebouw g WHERE cp.cnt_contract_plaats_verwijder IS NULL AND cp.cnt_contract_key = c.cnt_contract_key --AND c.cnt_contract_status = 0 -- Niet gesloten! AND cp.cnt_alg_plaats_key = g.alg_gebouw_key AND cp.cnt_alg_plaats_code = 'G' AND EXISTS (SELECT 1 FROM rwsn_imp_cnt_algscope i WHERE UPPER (i.zaakid) = UPPER(SUBSTR ( c.cnt_contract_nummer || '/', 1, INSTR (c.cnt_contract_nummer || '/', '/', 1, 1) - 1))) AND NOT EXISTS (SELECT 1 FROM rwsn_imp_cnt_algscope i WHERE UPPER (i.zaakid) = UPPER(SUBSTR ( c.cnt_contract_nummer || '/', 1, INSTR (c.cnt_contract_nummer || '/', '/', 1, 1) - 1)) AND UPPER (i.gebouwcode) = g.alg_gebouw_upper) ORDER BY 1, 2; CURSOR c2 IS SELECT i.zaakid, i.gebouwcode, c.cnt_contract_key, g.alg_gebouw_key FROM rwsn_imp_cnt_algscope i, cnt_v_aanwezigcontract c, cnt_disc_params dp, alg_v_aanweziggebouw g WHERE UPPER (i.zaakid) = UPPER(SUBSTR (c.cnt_contract_nummer || '/', 1, INSTR (c.cnt_contract_nummer || '/', '/', 1, 1) - 1)) --AND c.cnt_contract_status = 0 -- Niet gesloten! AND c.ins_discipline_key = dp.cnt_ins_discipline_key AND dp.cnt_srtcontract_type != 6 -- Mantel/Master! AND UPPER (i.gebouwcode) = g.alg_gebouw_upper(+) ORDER BY 1, 2; BEGIN v_count_del := 0; FOR rec IN c1 LOOP BEGIN v_aanduiding := '[' || rec.cnt_contract_nummer || '|' || rec.alg_gebouw_code || '] '; v_errormsg := 'Fout verwijderen contract-plaats-relatie'; UPDATE cnt_contract_plaats SET cnt_contract_plaats_verwijder = SYSDATE WHERE cnt_contract_plaats_key = rec.cnt_contract_plaats_key; v_count_del := v_count_del + 1; COMMIT; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'CNT-scope/#verwijderd: ' || TO_CHAR (v_count_del), ''); v_count_new := 0; FOR rec IN c2 LOOP BEGIN v_aanduiding := '[' || rec.zaakid || '|' || rec.gebouwcode || '] '; IF rec.alg_gebouw_key IS NOT NULL THEN v_errormsg := 'Fout bepalen contract-plaats-relatie'; SELECT COUNT ( * ) INTO v_count FROM cnt_contract_plaats WHERE cnt_contract_plaats_verwijder IS NULL AND cnt_contract_key = rec.cnt_contract_key AND cnt_alg_plaats_key = rec.alg_gebouw_key AND cnt_alg_plaats_code = 'G'; IF v_count = 0 THEN v_errormsg := 'Fout toevoegen contract-plaats-scope'; INSERT INTO cnt_contract_plaats (cnt_contract_key, cnt_alg_plaats_key, cnt_alg_plaats_code) VALUES (rec.cnt_contract_key, rec.alg_gebouw_key, 'G'); v_count_new := v_count_new + 1; END IF; ELSE fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Fout bepalen gebouw', 'Gebouw bestaat niet'); END IF; COMMIT; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'CNT-scope/#toegevoegd: ' || TO_CHAR (v_count_new), ''); v_errormsg := 'Fout bepalen #zaken'; SELECT COUNT (DISTINCT i.zaakid) INTO v_count FROM rwsn_imp_cnt_algscope i; fac.imp_writelog (p_import_key, 'S', 'CNT-zaken/#ingelezen: ' || TO_CHAR (v_count), ''); SELECT COUNT (DISTINCT i.zaakid) INTO v_count FROM rwsn_imp_cnt_algscope i WHERE EXISTS (SELECT 1 FROM cnt_v_aanwezigcontract c WHERE UPPER(SUBSTR (c.cnt_contract_nummer || '/', 1, INSTR (c.cnt_contract_nummer || '/', '/', 1, 1) - 1)) = UPPER (i.zaakid)); fac.imp_writelog (p_import_key, 'S', 'CNT-zaken/#bijgewerkt: ' || TO_CHAR (v_count), ''); COMMIT; 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 (p_import_key, 'E', v_errormsg, 'Importproces CNT-algscope afgebroken!'); END rwsn_update_cnt_algscope; / -- RWSN#27838 CREATE OR REPLACE VIEW RWSN_V_NOTI_RESREMINDER ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY ) AS SELECT 'RESINF', NULL, rsvr.res_rsv_ruimte_contact_key, 'Herinnering van uw reservering ' || res.res_reservering_key || '/' || rsvr.res_rsv_ruimte_volgnr || ' (' || rsvr.res_rsv_ruimte_omschrijving || ')', res.res_reservering_key, rsvr.res_rsv_ruimte_key FROM res_v_aanwezigreservering res, res_v_aanwezigrsv_ruimte rsvr, res_ruimte_opstelling opst, res_disc_params rdp, res_ruimte r WHERE r.res_discipline_key = rdp.res_ins_discipline_key AND rdp.res_disc_params_noti_dagen IS NOT NULL AND res.res_reservering_key = rsvr.res_reservering_key AND opst.res_ruimte_opstel_key = rsvr.res_ruimte_opstel_key AND opst.res_ruimte_key = r.res_ruimte_key AND rsvr.res_status_fo_key <= 5 AND rsvr.res_rsv_ruimte_van BETWEEN fac.datumtijdplusuitvoertijd ( SYSDATE, res_disc_params_noti_dagen, 'DAGEN' ) AND fac.datumtijdplusuitvoertijd ( SYSDATE, res_disc_params_noti_dagen + 1, 'DAGEN' ) AND TO_CHAR (SYSDATE, 'D') NOT IN (1, 7) AND rsvr.res_rsv_ruimte_van >= SYSDATE UNION ALL SELECT 'RESINF', NULL, res_rsv_ruimte_contact_key, 'Reservering ' || res_reservering_key || ': U heeft op ' || TO_CHAR (MIN (van), 'dd-mm') || DECODE ( MIN (van), MAX (tot), ' om ' || TO_CHAR (MIN (van), 'hh24:mi'), ' van ' || TO_CHAR (MIN (van), 'hh24:mi') || ' tot ' || TO_CHAR (MAX (tot), 'hh24:mi') ) || ' in ruimte (' || (SELECT alg_gebouw_code || '-' || alg_verdieping_code || '-' || alg_ruimte_nr FROM alg_v_onroerendgoed_gegevens arg WHERE arg.alg_ruimte_key = ruimte_key) || ') ' || COUNT (res_reservering_key) || ' voorziening(en) gereserveerd.', res_reservering_key, res_rsv_ruimte_key FROM (SELECT rsvr.res_rsv_ruimte_contact_key, res.res_reservering_key, rsvd.res_rsv_deel_van van, rsvd.res_rsv_deel_tot tot, rsvr.res_rsv_ruimte_key, rsvr.alg_ruimte_key ruimte_key FROM res_v_aanwezigreservering res, res_v_aanwezigrsv_ruimte rsvr, res_disc_params rdp, res_rsv_deel rsvd, res_deel rd WHERE rsvd.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key AND rd.res_deel_key = rsvd.res_deel_key AND rd.res_discipline_key = rdp.res_ins_discipline_key AND rdp.res_disc_params_noti_dagen IS NOT NULL AND res.res_reservering_key = rsvr.res_reservering_key AND rsvr.res_ruimte_opstel_key IS NULL AND rsvr.res_status_fo_key <= 5 AND rsvd.res_rsv_deel_verwijder IS NULL AND rsvd.res_rsv_deel_van BETWEEN fac.datumtijdplusuitvoertijd ( SYSDATE, res_disc_params_noti_dagen, 'DAGEN' ) AND fac.datumtijdplusuitvoertijd ( SYSDATE, res_disc_params_noti_dagen + 1, 'DAGEN' ) AND TO_CHAR (SYSDATE, 'D') NOT IN (1, 7) AND rsvd.res_rsv_deel_van >= SYSDATE UNION ALL SELECT rsvr.res_rsv_ruimte_contact_key, res.res_reservering_key, rsva.res_rsv_artikel_levering van, rsva.res_rsv_artikel_levering tot, rsvr.res_rsv_ruimte_key, rsvr.alg_ruimte_key ruimte_key FROM res_v_aanwezigreservering res, res_v_aanwezigrsv_ruimte rsvr, res_disc_params rdp, res_rsv_artikel rsva, res_artikel ra WHERE rsva.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key AND ra.res_discipline_key = rdp.res_ins_discipline_key AND rsva.res_artikel_key = ra.res_artikel_key AND rdp.res_disc_params_noti_dagen IS NOT NULL AND res.res_reservering_key = rsvr.res_reservering_key AND rsvr.res_ruimte_opstel_key IS NULL AND rsvr.res_status_fo_key <= 5 AND rsva.res_rsv_artikel_verwijder IS NULL AND rsva.res_rsv_artikel_levering BETWEEN fac.datumtijdplusuitvoertijd ( SYSDATE, res_disc_params_noti_dagen, 'DAGEN' ) AND fac.datumtijdplusuitvoertijd ( SYSDATE, res_disc_params_noti_dagen + 1, 'DAGEN' ) AND TO_CHAR (SYSDATE, 'D') NOT IN (1, 7) AND rsva.res_rsv_artikel_levering >= SYSDATE) GROUP BY res_rsv_ruimte_contact_key, res_reservering_key, res_rsv_ruimte_key, ruimte_key; -- RWSN#33266: CUST09-notificatie naar lener om boek te retourneren. -- Wekelijks totdat geretourneerd. /* Formatted on 12-11-2015 14:56:04 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_noti_bibliotheek ( code, sender, receiver, text, key, par1, par2, xkey ) AS SELECT sn.fac_srtnotificatie_code, NULL, d.ins_alg_ruimte_key, REPLACE (sn.fac_srtnotificatie_oms, '##OMS##', d.ins_deel_omschrijving), d.ins_deel_key, NULL, NULL, NULL FROM ins_v_aanwezigdeel d, ins_v_aanwezigkenmerkdeel kd, fac_srtnotificatie sn WHERE d.ins_discipline_key = 3261 -- Bibliotheek AND d.ins_alg_ruimte_key_org IS NOT NULL -- Uitgeleend AND d.ins_alg_ruimte_type = 'P' AND d.ins_deel_key = kd.ins_deel_key AND kd.ins_kenmerk_key = 601 -- Verloopdatum AND fac.safe_to_date (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - 7 < SYSDATE AND MOD (fac.safe_to_date (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - TRUNC (SYSDATE), 7) = 0 AND sn.fac_srtnotificatie_code = 'CUST09'; -- RWSN#35286 - Overzicht van uitgeleende boeken door bibliotheek. -- Of alle boeken met aantal keren INSOUT met laatste/actuele lener? /* Formatted on 12-8-2016 19:12:48 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_bibliotheek ( fclt_f_boek_id, fclt_f_titel, aantal_keer_uitgeleend, laatst_uitgeleend_aan, -- Laatste of actuele lener laatst_uitgeleend_op, -- Laatste INSOUT laatst_ingeleverd_op, -- Laatste INSINN retourdatum, opmerkingen, fclt_f_nu_uitgeleend ) AS SELECT x.ins_deel_omschrijving boek, kd1.ins_kenmerkdeel_waarde titel, insout.aantal, DECODE ( x.ins_alg_ruimte_key_org, NULL, SUBSTR (ll.fac_tracking_oms, INSTR (ll.fac_tracking_oms, 'uitgegeven aan')+LENGTH ('uitgegeven aan')+1), (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.ins_alg_ruimte_key)) laatst_uitgeleend_aan, -- Laatste of actuele lener fac.gettrackingdate ('INSOUT', x.ins_deel_key) laatst_uitgeleend_op, DECODE ( x.ins_alg_ruimte_key_org, NULL, fac.gettrackingdate ('INSINN', x.ins_deel_key), TO_DATE (NULL)) laatst_ingeleverd_op, -- Gevuld als nu ingeleverd DECODE ( x.ins_alg_ruimte_key_org, NULL, TO_DATE (NULL), fac.safe_to_date (kd2.ins_kenmerkdeel_waarde, 'dd-mm-yyyy')) retourdatum, -- Gevuld als nu uitgeleend kd3.ins_kenmerkdeel_waarde opmerkingen, DECODE (x.ins_alg_ruimte_key_org, NULL, 'Nee', 'Ja') uitgeleend FROM (SELECT d.ins_deel_key, d.ins_deel_omschrijving, sd.ins_srtdeel_omschrijving, d.ins_alg_ruimte_key_org, -- NULL als nu ingeleverd d.ins_alg_ruimte_key -- Lener of eigenaar FROM ins_v_aanwezigdeel d, ins_srtdeel sd WHERE d.ins_discipline_key = 3261 -- Bibliotheek AND d.ins_srtdeel_key = sd.ins_srtdeel_key) x LEFT JOIN ins_v_aanwezigkenmerkdeel kd1 ON x.ins_deel_key = kd1.ins_deel_key AND kd1.ins_kenmerk_key = 602 -- Titel LEFT JOIN ins_v_aanwezigkenmerkdeel kd2 ON x.ins_deel_key = kd2.ins_deel_key AND kd2.ins_kenmerk_key = 601 -- Verloopdatum LEFT JOIN ins_v_aanwezigkenmerkdeel kd3 ON x.ins_deel_key = kd3.ins_deel_key AND kd3.ins_kenmerk_key = 603 -- Opmerkingen LEFT JOIN ( SELECT fac_tracking_refkey, COUNT ( * ) aantal FROM fac_tracking WHERE fac_srtnotificatie_key = 176 -- INSOUT GROUP BY fac_tracking_refkey) insout ON x.ins_deel_key = insout.fac_tracking_refkey LEFT JOIN (SELECT t.fac_tracking_refkey, t.fac_tracking_oms FROM fac_tracking t WHERE t.fac_srtnotificatie_key = 176 -- INSOUT AND NOT EXISTS (SELECT 1 FROM fac_tracking WHERE fac_srtnotificatie_key = 176 -- INSOUT AND fac_tracking_refkey = t.fac_tracking_refkey AND fac_tracking_key > t.fac_tracking_key)) ll ON x.ins_deel_key = ll.fac_tracking_refkey; -- RWSN#30460 /* Formatted on 25-9-2014 12:12:12 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW RWSN_V_AFDELINGEN3 ( AFDELING_KEY, AFDELING_OMS ) AS SELECT a.prs_afdeling_key, a.prs_afdeling_naam || ' ' || a.prs_afdeling_omschrijving FROM prs_v_afdeling_boom23 ab, prs_afdeling a WHERE ab.prs_afdeling_key3 = a.prs_afdeling_key AND EXISTS (SELECT 1 FROM prs_afdeling WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_parentkey IS NULL AND (prs_afdeling_naam LIKE '63%' -- RWS Onderdelen OR prs_afdeling_key = 32) -- 60009550 (RvR) AND prs_afdeling_omschrijving NOT LIKE 'VERVALLEN:%' AND prs_afdeling_key = ab.prs_afdeling_key1); -- RWSN#53084 Rapportages om acties in facilitor in kaart te kunnen brengen met UDR CREATE OR REPLACE VIEW RWSN_V_UDR_GUI_USAGE_DEVICE AS SELECT * FROM FAC_V_RAP_GUI_USAGE_DEVICE; CREATE OR REPLACE VIEW RWSN_V_UDR_GUI_USAGE_LAST100 AS SELECT * FROM FAC_V_RAP_GUI_USAGE_LAST100; CREATE OR REPLACE VIEW RSWN_V_RAP_GUI_COUNTER ( FAC_GUI_COUNTER_KEY, FAC_GUI_COUNTER_GROUP, FAC_GUI_COUNTER_INFO, FAC_GUI_COUNTER_REFKEY, FAC_GUI_COUNTER_CHOICE, FAC_GUI_COUNTER_RESULT, FAC_GUI_COUNTER_DATE, PRS_PERSLID_KEY, PRS_PERSLID_NAAM_FULL, PRS_AFDELING_OMSCHRIJVING, PRS_BEDRIJF_NAAM ) AS SELECT fgc.fac_gui_counter_key, fgc.fac_gui_counter_group, fgc.fac_gui_counter_info, fgc.fac_gui_counter_refkey, choice.fac_gui_counter_info fac_gui_counter_choice, result.fac_gui_counter_info fac_gui_counter_result, fac_gui_counter_date, fgc.prs_perslid_key, prs_perslid_naam_full, afd.prs_afdeling_omschrijving, bedr.prs_bedrijf_naam FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf, prs_perslid pr, prs_afdeling afd, prs_bedrijf bedr, (SELECT fac_gui_counter_refkey, fac_gui_counter_info FROM fac_gui_counter fgc WHERE fac_gui_counter_info IS NOT NULL AND fac_gui_counter_group = 'searchchoice') choice, (SELECT fac_gui_counter_refkey, fac_gui_counter_info FROM fac_gui_counter fgc WHERE fac_gui_counter_info IS NOT NULL AND fac_gui_counter_group = 'searchresult') result WHERE fac_gui_counter_group = 'search' AND fgc.fac_gui_counter_info IS NOT NULL AND fgc.prs_perslid_key = pf.prs_perslid_key AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key AND pr.prs_perslid_key = fgc.prs_perslid_key AND afd.PRS_AFDELING_KEY = pr.prs_afdeling_key AND bedr.prs_bedrijf_key = afd.prs_bedrijf_key UNION ALL SELECT fgc.fac_gui_counter_key, fgc.fac_gui_counter_group, fac_usrrap_omschrijving, fgc.fac_gui_counter_refkey, NULL, NULL, fac_gui_counter_date, fgc.prs_perslid_key, prs_perslid_naam_full, afd.prs_afdeling_omschrijving, bedr.prs_bedrijf_naam FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf, fac_usrrap fr, prs_afdeling afd, prs_perslid pr, prs_bedrijf bedr WHERE fgc.fac_gui_counter_group = 'report' AND fgc.prs_perslid_key = pf.prs_perslid_key(+) AND fr.fac_usrrap_key(+) = fgc.fac_gui_counter_refkey AND pr.prs_perslid_key = fgc.prs_perslid_key AND afd.PRS_AFDELING_KEY = pr.prs_afdeling_key AND bedr.prs_bedrijf_key = afd.prs_bedrijf_key UNION ALL SELECT fgc.fac_gui_counter_key, fgc.fac_gui_counter_group, COALESCE (fac_menu_altlabel, lcl.l (fac_menuitems_label)), fgc.fac_gui_counter_refkey, NULL, NULL, fac_gui_counter_date, fgc.prs_perslid_key, prs_perslid_naam_full, afd.prs_afdeling_omschrijving, bedr.prs_bedrijf_naam FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf, prs_afdeling afd, prs_bedrijf bedr, prs_perslid pr, fac_menu m, fac_menuitems mi WHERE fgc.fac_gui_counter_group = 'menu' AND fgc.prs_perslid_key = pf.prs_perslid_key(+) AND m.fac_menu_key = fac_gui_counter_refkey AND mi.fac_menuitems_key(+) = m.fac_menuitems_key AND pr.prs_perslid_key = fgc.prs_perslid_key AND afd.PRS_AFDELING_KEY = pr.prs_afdeling_key AND bedr.prs_bedrijf_key = afd.prs_bedrijf_key; -- RWSN#30201 Dashboards "Tijdelijke capaciteit" -- Gestylede rapportage met diverse grafieken. Rapport kan uitgedraaid worden voor -- afgelopen jaar/halfjaar/kwartaal/maand. Daarom vrijwel alle views vier keer. -- Er wordt onderscheid gemaakt tussen nieuwe aanvragen en wijzigingsvragen, wat ook weer tot verdubbeling leidt. -- Daarnaast grafieken voor totaal en per organisatieonderdeel -- Basisview met brongegevens. hier wordt met een tabelizer-usrrap een tabel van gemaakt. -- Gebruikte kenmerk(soort)en: -- AANVRAAG TIJDELIJKE CAPACITEIT -- mld_stdmelding 8021 TCN-Aanvragen/Wijzigingen (N) / Aanvraag tijdelijke capaciteit (N) -- mld_stdmelding 8101 Stap 2: HR tijdelijke capaciteit (N) / Aanvraag Tijdelijke Capaciteit (N) -- mld_stdmelding 8121 Stap 3: KCC tijdelijke capaciteit (N) / Nieuwe aanvraag (invoer JOB) (N) -- mld_stdmelding 8062 Stap 4: ECO&P tijdelijke capaciteit(N) / Nieuwe aanvraag (externe werving) (N) -- mld_stdmelding 8041 Stap 5: BIO tijdelijke capaciteit (N) / Aanmaken nieuwe bestelling (N) -- mld_stdmelding 8043 Stap 6: EBF tijdelijke capaciteit (N) / Nieuw inzetcontract (N) -- fac_srtnotificatie 22 MLDAFM -- mld_kenmerk 20584 Organisatieonderdeel (incl. PPO verdeling) *A -- mld_kenmerk 20591 Directie *A -- mld_kenmerk 20817 Opdrachtgevende afdeling *A -- mld_kenmerk 20886 Start periode *A -- mld_kenmerk 21288 Kostenplaatsverantwoordelijke *2 -- WIJZIGING TIJDELIJKE CAPACITEIT -- mld_stdmelding 8022 TCN-Aanvragen/Wijzigingen (N) / Wijziging tijdelijke capaciteit (N) -- mld_stdmelding 8122 Stap 2: KCC tijdelijke capaciteit (N) / Wijzigingsaanvraag (invoer JOB) (N) -- mld_stdmelding 8081 Stap 3: ECO&P tijdelijke capaciteit(N) / Wijzigingsaanvraag (N) -- mld_stdmelding 8042 Stap 4: BIO tijdelijke capaciteit (N) / Wijziging bestelling (N) -- mld_stdmelding 8061 Stap 5: EBF tijdelijke capaciteit (N) / Wijziging inzetcontract (N) -- fac_srtnotificatie 22 MLDAFM -- mld_kenmerk 20584 Organisatieonderdeel (incl. PPO verdeling) *A -- mld_kenmerk 20594 Directie *A -- mld_kenmerk 20818 Opdrachtgevende afdeling *A -- mld_kenmerk 20884 Start periode *A -- mld_kenmerk 21289 Kostenplaatsverantwoordelijke *2 -- mld_kenmerk 21148 Verlenging zittende kracht -- mld_kenmerk 21149 Contractuele wijziging binnen de looptijd -- mld_kenmerk 21150 Administratieve wijziging (kostenplaats) -- mld_kenmerk 21151 Administratieve wijziging (ophoging budget) -- mld_kenmerk 21152 Anders -- ISSUELIJSTEN -- mld_kenmerk 20719 (L) Issuelijst KCC HR -- mld_kenmerk 20648 Gegevens niet compleet of correct -- mld_kenmerk 20718 (L) Issuelijst ECO&P -- mld_kenmerk 20510 ATB en/of Zaak ID niet aangeleverd -- mld_kenmerk 20517 Aanvraag/Wijziging niet geaccordeerd in JOB -- mld_kenmerk 20646 Geen tijdige terugkoppeling CV's -- mld_kenmerk 20647 Geen tijdige terugkoppeling gesprekken -- mld_kenmerk 20645 Geen geschikte kandidaten / meer selectierondes -- mld_kenmerk 20913 Wachten op GUH-akkoord -- mld_kenmerk 20914 Wachten op akkoord te hoog uurtarief -- mld_kenmerk 20812 Onderhandeling tarieven bij verlenging -- mld_kenmerk 20706 IVP niet geaccordeerd -- mld_kenmerk 20586 Digitaal dossier niet op orde -- mld_kenmerk 20518 Aanvraag/Wijziging on hold -- mld_kenmerk 20716 (L) Issuelijst BIO -- mld_kenmerk 20511 ATB niet vrijgegeven -- mld_kenmerk 20649 Gegevens niet compleet of correct aangeleverd -- mld_kenmerk 20705 IVP (ondertekend) niet aanwezig -- mld_kenmerk 20813 Ontoereikend budget voor vastlegging bestelling -- mld_kenmerk 20543 BIO- Leverancier niet bekend in SAP en Esize -- mld_kenmerk 20717 (L) Issuelijst EBF -- mld_kenmerk 20650 Gegevens niet correct of volledig aangeleverd BIO -- mld_kenmerk 20898 Verkeerde crediteur stamgegevens -- mld_kenmerk 20544 Bestelling foutief vastgelegd -- mld_kenmerk 20651 Gegevens niet volledig aangeleverd door ECO&P CREATE OR REPLACE VIEW rwsn_v_workflows_inhuur AS WITH workflows_a AS (SELECT m.mld_melding_key, pfa.prs_perslid_naam_full melder, m.mld_melding_datum startdatum, st.mld_statuses_omschrijving status, ft.fac_tracking_datum afmelddatum, m.mld_melding_einddatum einddatum, ROUND(fac.datumtijdnaaruitvoertijd(m.mld_melding_datum, m.mld_melding_einddatum, 'D').tijdsduur) normtijd, fac.safe_to_date(startper.mld_kenmerkmelding_waarde, 'DD-MM-YYYY') start_periode, ud_orgond.fac_usrdata_key organisatieonderdeel_key, ud_orgond.fac_usrdata_omschr organisatieonderdeel, directie.mld_kenmerkmelding_waarde directie, opdrafd.mld_kenmerkmelding_waarde opdr_afdeling, pf_kpnvaw.prs_perslid_naam_full kpn_verantw, key2, startdatum2, status2, afmelddatum2, einddatum2, behandelaar2, ROUND(fac.datumtijdnaaruitvoertijd(startdatum2, einddatum2, 'D').tijdsduur) normtijd2, ROUND(fac.datumtijdnaaruitvoertijd(einddatum2, tracking_datum2, 'D').tijdsduur, 1) delta_t2, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum2, tracking_datum2, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig2, key3, startdatum3, status3, afmelddatum3, einddatum3, behandelaar3, ROUND(fac.datumtijdnaaruitvoertijd(startdatum3, einddatum3, 'D').tijdsduur) normtijd3, ROUND(fac.datumtijdnaaruitvoertijd(einddatum3, tracking_datum3, 'D').tijdsduur, 1) delta_t3, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum3, tracking_datum3, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig3, key4, startdatum4, status4, afmelddatum4, einddatum4, behandelaar4, ROUND(fac.datumtijdnaaruitvoertijd(startdatum4, einddatum4, 'D').tijdsduur) normtijd4, ROUND(fac.datumtijdnaaruitvoertijd(einddatum4, tracking_datum4, 'D').tijdsduur, 1) delta_t4, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum4, tracking_datum4, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig4, key5, startdatum5, status5, afmelddatum5, einddatum5, behandelaar5, ROUND(fac.datumtijdnaaruitvoertijd(startdatum5, einddatum5, 'D').tijdsduur) normtijd5, ROUND(fac.datumtijdnaaruitvoertijd(einddatum5, tracking_datum5, 'D').tijdsduur, 1) delta_t5, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum5, tracking_datum5, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig5, key6, startdatum6, status6, afmelddatum6, einddatum6, behandelaar6, ROUND(fac.datumtijdnaaruitvoertijd(startdatum6, einddatum6, 'D').tijdsduur) normtijd6, ROUND(fac.datumtijdnaaruitvoertijd(tracking_datum6, einddatum6, 'D').tijdsduur, 1) delta_t6, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum6, tracking_datum6, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig6 FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20584) orgond, fac_usrdata ud_orgond, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20591) directie, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20817) opdrafd, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20886) startper, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 21288) kpnvaw, prs_v_perslid_fullnames_all pf_kpnvaw, (SELECT m.mld_melding_key key2, m.mld_melding_datum startdatum2, st.mld_statuses_omschrijving status2, ft.fac_tracking_datum afmelddatum2, m.mld_melding_einddatum einddatum2, ft.fac_tracking_datum tracking_datum2, pfa.prs_perslid_naam_full behandelaar2, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8101 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap2, (SELECT m.mld_melding_key key3, m.mld_melding_datum startdatum3, st.mld_statuses_omschrijving status3, ft.fac_tracking_datum afmelddatum3, m.mld_melding_einddatum einddatum3, ft.fac_tracking_datum tracking_datum3, pfa.prs_perslid_naam_full behandelaar3, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8121 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap3, (SELECT m.mld_melding_key key4, m.mld_melding_datum startdatum4, st.mld_statuses_omschrijving status4, ft.fac_tracking_datum afmelddatum4, m.mld_melding_einddatum einddatum4, ft.fac_tracking_datum tracking_datum4, pfa.prs_perslid_naam_full behandelaar4, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8062 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap4, (SELECT m.mld_melding_key key5, m.mld_melding_datum startdatum5, st.mld_statuses_omschrijving status5, ft.fac_tracking_datum afmelddatum5, m.mld_melding_einddatum einddatum5, ft.fac_tracking_datum tracking_datum5, pfa.prs_perslid_naam_full behandelaar5, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8041 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap5, (SELECT m.mld_melding_key key6, m.mld_melding_datum startdatum6, st.mld_statuses_omschrijving status6, ft.fac_tracking_datum afmelddatum6, m.mld_melding_einddatum einddatum6, ft.fac_tracking_datum tracking_datum6, pfa.prs_perslid_naam_full behandelaar6, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8043 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap6 WHERE m.mld_stdmelding_key = 8021 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key = m.prs_perslid_key_voor AND orgond.mld_melding_key = m.mld_melding_key AND ud_orgond.fac_usrdata_key = fac.safe_to_number(orgond.mld_kenmerkmelding_waarde) AND directie.mld_melding_key = m.mld_melding_key AND opdrafd.mld_melding_key = m.mld_melding_key AND startper.mld_melding_key = m.mld_melding_key AND kpnvaw.mld_melding_key(+) = m.mld_melding_key AND pf_kpnvaw.prs_perslid_key(+) = fac.safe_to_number(kpnvaw.mld_kenmerkmelding_waarde) AND stap2.mld_melding_start_key = m.mld_melding_key AND stap3.mld_melding_start_key = m.mld_melding_key AND stap4.mld_melding_start_key = m.mld_melding_key AND stap5.mld_melding_start_key = m.mld_melding_key AND stap6.mld_melding_start_key = m.mld_melding_key ), workflows_w AS (SELECT m.mld_melding_key, pfa.prs_perslid_naam_full melder, m.mld_melding_datum startdatum, st.mld_statuses_omschrijving status, ft.fac_tracking_datum afmelddatum, m.mld_melding_einddatum einddatum, ROUND(fac.datumtijdnaaruitvoertijd(m.mld_melding_datum, m.mld_melding_einddatum, 'D').tijdsduur) normtijd, fac.safe_to_date(startper.mld_kenmerkmelding_waarde, 'DD-MM-YYYY') start_periode, ud_orgond.fac_usrdata_key organisatieonderdeel_key, ud_orgond.fac_usrdata_omschr organisatieonderdeel, directie.mld_kenmerkmelding_waarde directie, opdrafd.mld_kenmerkmelding_waarde opdr_afdeling, pf_kpnvaw.prs_perslid_naam_full kpn_verantw, COALESCE(verleng.mld_kenmerk_key, wijzcnt.mld_kenmerk_key, wijzkpn.mld_kenmerk_key, wijzbudg.mld_kenmerk_key, anders.mld_kenmerk_key) vraagsoort, key2, startdatum2, status2, afmelddatum2, einddatum2, behandelaar2, ROUND(fac.datumtijdnaaruitvoertijd(startdatum2, einddatum2, 'D').tijdsduur) normtijd2, ROUND(fac.datumtijdnaaruitvoertijd(einddatum2, tracking_datum2, 'D').tijdsduur, 1) delta_t2, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum2, tracking_datum2, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig2, key3, startdatum3, status3, afmelddatum3, einddatum3, behandelaar3, ROUND(fac.datumtijdnaaruitvoertijd(startdatum3, einddatum3, 'D').tijdsduur) normtijd3, ROUND(fac.datumtijdnaaruitvoertijd(einddatum3, tracking_datum3, 'D').tijdsduur, 1) delta_t3, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum3, tracking_datum3, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig3, key4, startdatum4, status4, afmelddatum4, einddatum4, behandelaar4, ROUND(fac.datumtijdnaaruitvoertijd(startdatum4, einddatum4, 'D').tijdsduur) normtijd4, ROUND(fac.datumtijdnaaruitvoertijd(einddatum4, tracking_datum4, 'D').tijdsduur, 1) delta_t4, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum4, tracking_datum4, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig4, key5, startdatum5, status5, afmelddatum5, einddatum5, behandelaar5, ROUND(fac.datumtijdnaaruitvoertijd(startdatum5, einddatum5, 'D').tijdsduur) normtijd5, ROUND(fac.datumtijdnaaruitvoertijd(einddatum5, tracking_datum5, 'D').tijdsduur, 1) delta_t5, DECODE(SIGN(fac.datumtijdnaaruitvoertijd(einddatum5, tracking_datum5, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') tijdig5 FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20584) orgond, fac_usrdata ud_orgond, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20594) directie, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20818) opdrafd, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 20884) startper, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 21289) kpnvaw, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 21148) verleng, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 21149) wijzcnt, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 21150) wijzkpn, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 21151) wijzbudg, (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerkmelding_verwijder IS NULL AND mld_kenmerk_key = 21152) anders, prs_v_perslid_fullnames_all pf_kpnvaw, (SELECT m.mld_melding_key key2, m.mld_melding_datum startdatum2, st.mld_statuses_omschrijving status2, ft.fac_tracking_datum afmelddatum2, m.mld_melding_einddatum einddatum2, ft.fac_tracking_datum tracking_datum2, pfa.prs_perslid_naam_full behandelaar2, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8122 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap2, (SELECT m.mld_melding_key key3, m.mld_melding_datum startdatum3, st.mld_statuses_omschrijving status3, ft.fac_tracking_datum afmelddatum3, m.mld_melding_einddatum einddatum3, ft.fac_tracking_datum tracking_datum3, pfa.prs_perslid_naam_full behandelaar3, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8081 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap3, (SELECT m.mld_melding_key key4, m.mld_melding_datum startdatum4, st.mld_statuses_omschrijving status4, ft.fac_tracking_datum afmelddatum4, m.mld_melding_einddatum einddatum4, ft.fac_tracking_datum tracking_datum4, pfa.prs_perslid_naam_full behandelaar4, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8042 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap4, (SELECT m.mld_melding_key key5, m.mld_melding_datum startdatum5, st.mld_statuses_omschrijving status5, ft.fac_tracking_datum afmelddatum5, m.mld_melding_einddatum einddatum5, ft.fac_tracking_datum tracking_datum5, pfa.prs_perslid_naam_full behandelaar5, m.mld_melding_start_key FROM mld_melding m, mld_statuses st, fac_tracking ft, prs_v_perslid_fullnames_all pfa WHERE m.mld_stdmelding_key = 8061 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key(+) = m.mld_melding_behandelaar_key) stap5 WHERE m.mld_stdmelding_key = 8022 AND st.mld_statuses_key = m.mld_melding_status AND ft.fac_tracking_refkey(+) = m.mld_melding_key AND ft.fac_srtnotificatie_key = 22 AND pfa.prs_perslid_key = m.prs_perslid_key_voor AND orgond.mld_melding_key = m.mld_melding_key AND ud_orgond.fac_usrdata_key = fac.safe_to_number(orgond.mld_kenmerkmelding_waarde) AND directie.mld_melding_key = m.mld_melding_key AND opdrafd.mld_melding_key = m.mld_melding_key AND startper.mld_melding_key = m.mld_melding_key AND kpnvaw.mld_melding_key(+) = m.mld_melding_key AND verleng.mld_melding_key(+) = m.mld_melding_key AND wijzcnt.mld_melding_key(+) = m.mld_melding_key AND wijzkpn.mld_melding_key(+) = m.mld_melding_key AND wijzbudg.mld_melding_key(+) = m.mld_melding_key AND anders.mld_melding_key(+) = m.mld_melding_key AND pf_kpnvaw.prs_perslid_key(+) = fac.safe_to_number(kpnvaw.mld_kenmerkmelding_waarde) AND stap2.mld_melding_start_key = m.mld_melding_key AND stap3.mld_melding_start_key = m.mld_melding_key AND stap4.mld_melding_start_key = m.mld_melding_key AND stap5.mld_melding_start_key = m.mld_melding_key ), -- KCC HR kcc_geg AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20648 AND mld_kenmerkmelding_verwijder IS NULL), -- Gegevens niet compleet of correct -- ECOnP eco_atb AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20510 AND mld_kenmerkmelding_verwijder IS NULL), -- ATB en/of Zaak ID niet aangeleverd eco_job AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20517 AND mld_kenmerkmelding_verwijder IS NULL), -- Aanvraag/Wijziging niet geaccordeerd in JOB eco_cvs AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20646 AND mld_kenmerkmelding_verwijder IS NULL), -- Geen tijdige terugkoppeling CV's eco_gsp AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20647 AND mld_kenmerkmelding_verwijder IS NULL), -- Geen tijdige terugkoppeling gesprekken eco_kan AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20645 AND mld_kenmerkmelding_verwijder IS NULL), -- Geen geschikte kandidaten / meer selectierondes eco_guh AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20913 AND mld_kenmerkmelding_verwijder IS NULL), -- Wachten op GUH-akkoord eco_uur AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20914 AND mld_kenmerkmelding_verwijder IS NULL), -- Wachten op akkoord te hoog uurtarief eco_odh AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20812 AND mld_kenmerkmelding_verwijder IS NULL), -- Onderhandeling tarieven bij verlenging eco_ivp AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20706 AND mld_kenmerkmelding_verwijder IS NULL), -- IVP niet geaccordeerd eco_dos AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20586 AND mld_kenmerkmelding_verwijder IS NULL), -- Digitaal dossier niet op orde eco_hld AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20518 AND mld_kenmerkmelding_verwijder IS NULL), -- Aanvraag/Wijziging on hold -- BIO bio_atb AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20511 AND mld_kenmerkmelding_verwijder IS NULL), -- ATB niet vrijgegeven bio_geg AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20649 AND mld_kenmerkmelding_verwijder IS NULL), -- Gegevens niet compleet of correct aangeleverd bio_ivp AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20705 AND mld_kenmerkmelding_verwijder IS NULL), -- IVP (ondertekend) niet aanwezig bio_bud AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20813 AND mld_kenmerkmelding_verwijder IS NULL), -- Ontoereikend budget voor vastlegging bestelling bio_lev AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20543 AND mld_kenmerkmelding_verwijder IS NULL), -- BIO- Leverancier niet bekend in SAP en Esize -- EBF ebf_geb AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20650 AND mld_kenmerkmelding_verwijder IS NULL), -- Gegevens niet correct of volledig aangeleverd BIO ebf_crd AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20898 AND mld_kenmerkmelding_verwijder IS NULL), -- Verkeerde crediteur stamgegevens ebf_bes AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20544 AND mld_kenmerkmelding_verwijder IS NULL), -- Bestelling foutief vastgelegd ebf_gee AS (SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 20651 AND mld_kenmerkmelding_verwijder IS NULL) -- Gegevens niet volledig aangeleverd door ECOnP SELECT 'Aanvraag' fclt_f_soort, workflows_a.mld_melding_key melding, workflows_a.melder, TO_CHAR(workflows_a.startdatum, 'DD-MM-YYYY') fclt_d_start, workflows_a.startdatum, workflows_a.status, workflows_a.afmelddatum, workflows_a.einddatum, workflows_a.normtijd, workflows_a.start_periode, ROUND(fac.datumtijdnaaruitvoertijd(workflows_a.start_periode, workflows_a.afmelddatum, 'D').tijdsduur , 1) delta_t, DECODE( SIGN( fac.datumtijdnaaruitvoertijd(workflows_a.start_periode, workflows_a.afmelddatum, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') fclt_f_uitvoer_tijdig, DECODE( SIGN( fac.datumtijdnaaruitvoertijd(workflows_a.start_periode, workflows_a.einddatum, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') aanvraag_tijdig, workflows_a.organisatieonderdeel_key, workflows_a.organisatieonderdeel fclt_f_organisatieonderdeel, workflows_a.directie, workflows_a.opdr_afdeling, workflows_a.kpn_verantw, NULL vraagsoort, workflows_a.key2 melding2, workflows_a.startdatum2, workflows_a.status2, workflows_a.afmelddatum2, workflows_a.einddatum2, workflows_a.normtijd2, workflows_a.delta_t2, workflows_a.tijdig2, workflows_a.behandelaar2, workflows_a.key3 melding3, workflows_a.startdatum3, workflows_a.status3, workflows_a.afmelddatum3, workflows_a.einddatum3, workflows_a.normtijd3, workflows_a.delta_t3, workflows_a.tijdig3, workflows_a.behandelaar3, workflows_a.key4 melding4, workflows_a.startdatum4, workflows_a.status4, workflows_a.afmelddatum4, workflows_a.einddatum4, workflows_a.normtijd4, workflows_a.delta_t4, workflows_a.tijdig4, workflows_a.behandelaar4, workflows_a.key5 melding5, workflows_a.startdatum5, workflows_a.status5, workflows_a.afmelddatum5, workflows_a.einddatum5, workflows_a.normtijd5, workflows_a.delta_t5, workflows_a.tijdig5, workflows_a.behandelaar5, workflows_a.key6 melding6, workflows_a.startdatum6, workflows_a.status6, workflows_a.afmelddatum6, workflows_a.einddatum6, workflows_a.normtijd6, workflows_a.delta_t6, workflows_a.tijdig6, workflows_a.behandelaar6, COALESCE(kcc_geg6.waarde, kcc_geg5.waarde, kcc_geg4.waarde, kcc_geg3.waarde, kcc_geg2.waarde) kcc_gegevens, COALESCE(eco_atb6.waarde, eco_atb5.waarde, eco_atb4.waarde) eco_atb_zaak_id, COALESCE(eco_job6.waarde, eco_job5.waarde, eco_job4.waarde) eco_akoord_job, COALESCE(eco_cvs6.waarde, eco_cvs5.waarde, eco_cvs4.waarde) eco_cv, COALESCE(eco_gsp6.waarde, eco_gsp5.waarde, eco_gsp4.waarde) eco_gesprekken, COALESCE(eco_kan6.waarde, eco_kan5.waarde, eco_kan4.waarde) eco_kandidaten, COALESCE(eco_guh6.waarde, eco_guh5.waarde, eco_guh4.waarde) eco_guh_akkoord, COALESCE(eco_uur6.waarde, eco_uur5.waarde, eco_uur4.waarde) eco_uurtarief, COALESCE(eco_odh6.waarde, eco_odh5.waarde, eco_odh4.waarde) eco_onderhandeling, COALESCE(eco_ivp6.waarde, eco_ivp5.waarde, eco_ivp4.waarde) eco_akoord_ivp, COALESCE(eco_dos6.waarde, eco_dos5.waarde, eco_dos4.waarde) eco_dossier, COALESCE(eco_hld6.waarde, eco_hld5.waarde, eco_hld4.waarde) eco_on_hold, COALESCE(bio_atb6.waarde, bio_atb5.waarde) bio_atb_vrij, COALESCE(bio_geg6.waarde, bio_geg5.waarde) bio_gegevens, COALESCE(bio_ivp6.waarde, bio_ivp5.waarde) bio_ivp, COALESCE(bio_bud6.waarde, bio_bud5.waarde) bio_budget, COALESCE(bio_lev6.waarde, bio_lev5.waarde) bio_leverancier, ebf_geb6.waarde ebf_gegevens_bio, ebf_crd6.waarde ebf_crediteur, ebf_bes6.waarde ebf_bestelling, ebf_gee6.waarde ebf_gegevens_eco FROM workflows_a, kcc_geg kcc_geg6, kcc_geg kcc_geg5, kcc_geg kcc_geg4, kcc_geg kcc_geg3, kcc_geg kcc_geg2, eco_atb eco_atb6, eco_atb eco_atb5, eco_atb eco_atb4, eco_job eco_job6, eco_job eco_job5, eco_job eco_job4, eco_cvs eco_cvs6, eco_cvs eco_cvs5, eco_cvs eco_cvs4, eco_gsp eco_gsp6, eco_gsp eco_gsp5, eco_gsp eco_gsp4, eco_kan eco_kan6, eco_kan eco_kan5, eco_kan eco_kan4, eco_guh eco_guh6, eco_guh eco_guh5, eco_guh eco_guh4, eco_uur eco_uur6, eco_uur eco_uur5, eco_uur eco_uur4, eco_odh eco_odh6, eco_odh eco_odh5, eco_odh eco_odh4, eco_ivp eco_ivp6, eco_ivp eco_ivp5, eco_ivp eco_ivp4, eco_dos eco_dos6, eco_dos eco_dos5, eco_dos eco_dos4, eco_hld eco_hld6, eco_hld eco_hld5, eco_hld eco_hld4, bio_atb bio_atb6, bio_atb bio_atb5, bio_geg bio_geg6, bio_geg bio_geg5, bio_ivp bio_ivp6, bio_ivp bio_ivp5, bio_bud bio_bud6, bio_bud bio_bud5, bio_lev bio_lev6, bio_lev bio_lev5, ebf_geb ebf_geb6, ebf_crd ebf_crd6, ebf_bes ebf_bes6, ebf_gee ebf_gee6 WHERE kcc_geg6.mld_melding_key(+) = workflows_a.key6 AND kcc_geg5.mld_melding_key(+) = workflows_a.key5 AND kcc_geg4.mld_melding_key(+) = workflows_a.key4 AND kcc_geg3.mld_melding_key(+) = workflows_a.key3 AND kcc_geg2.mld_melding_key(+) = workflows_a.key2 AND eco_atb6.mld_melding_key(+) = workflows_a.key6 AND eco_atb5.mld_melding_key(+) = workflows_a.key5 AND eco_atb4.mld_melding_key(+) = workflows_a.key4 AND eco_job6.mld_melding_key(+) = workflows_a.key6 AND eco_job5.mld_melding_key(+) = workflows_a.key5 AND eco_job4.mld_melding_key(+) = workflows_a.key4 AND eco_cvs6.mld_melding_key(+) = workflows_a.key6 AND eco_cvs5.mld_melding_key(+) = workflows_a.key5 AND eco_cvs4.mld_melding_key(+) = workflows_a.key4 AND eco_gsp6.mld_melding_key(+) = workflows_a.key6 AND eco_gsp5.mld_melding_key(+) = workflows_a.key5 AND eco_gsp4.mld_melding_key(+) = workflows_a.key4 AND eco_kan6.mld_melding_key(+) = workflows_a.key6 AND eco_kan5.mld_melding_key(+) = workflows_a.key5 AND eco_kan4.mld_melding_key(+) = workflows_a.key4 AND eco_guh6.mld_melding_key(+) = workflows_a.key6 AND eco_guh5.mld_melding_key(+) = workflows_a.key5 AND eco_guh4.mld_melding_key(+) = workflows_a.key4 AND eco_uur6.mld_melding_key(+) = workflows_a.key6 AND eco_uur5.mld_melding_key(+) = workflows_a.key5 AND eco_uur4.mld_melding_key(+) = workflows_a.key4 AND eco_odh6.mld_melding_key(+) = workflows_a.key6 AND eco_odh5.mld_melding_key(+) = workflows_a.key5 AND eco_odh4.mld_melding_key(+) = workflows_a.key4 AND eco_ivp6.mld_melding_key(+) = workflows_a.key6 AND eco_ivp5.mld_melding_key(+) = workflows_a.key5 AND eco_ivp4.mld_melding_key(+) = workflows_a.key4 AND eco_dos6.mld_melding_key(+) = workflows_a.key6 AND eco_dos5.mld_melding_key(+) = workflows_a.key5 AND eco_dos4.mld_melding_key(+) = workflows_a.key4 AND eco_hld6.mld_melding_key(+) = workflows_a.key6 AND eco_hld5.mld_melding_key(+) = workflows_a.key5 AND eco_hld4.mld_melding_key(+) = workflows_a.key4 AND bio_atb6.mld_melding_key(+) = workflows_a.key6 AND bio_atb5.mld_melding_key(+) = workflows_a.key5 AND bio_geg6.mld_melding_key(+) = workflows_a.key6 AND bio_geg5.mld_melding_key(+) = workflows_a.key5 AND bio_ivp6.mld_melding_key(+) = workflows_a.key6 AND bio_ivp5.mld_melding_key(+) = workflows_a.key5 AND bio_bud6.mld_melding_key(+) = workflows_a.key6 AND bio_bud5.mld_melding_key(+) = workflows_a.key5 AND bio_lev6.mld_melding_key(+) = workflows_a.key6 AND bio_lev5.mld_melding_key(+) = workflows_a.key5 AND ebf_geb6.mld_melding_key(+) = workflows_a.key6 AND ebf_crd6.mld_melding_key(+) = workflows_a.key6 AND ebf_bes6.mld_melding_key(+) = workflows_a.key6 AND ebf_gee6.mld_melding_key(+) = workflows_a.key6 UNION ALL SELECT 'Wijziging' fclt_f_soort, workflows_w.mld_melding_key melding, workflows_w.melder, TO_CHAR(workflows_w.startdatum, 'DD-MM-YYYY') fclt_d_start, workflows_w.startdatum, workflows_w.status, workflows_w.afmelddatum, workflows_w.einddatum, workflows_w.normtijd, workflows_w.start_periode, ROUND(fac.datumtijdnaaruitvoertijd(workflows_w.start_periode, workflows_w.afmelddatum, 'D').tijdsduur , 1) delta_t, DECODE( SIGN( fac.datumtijdnaaruitvoertijd(workflows_w.start_periode, workflows_w.afmelddatum, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') fclt_f_uitvoer_tijdig, DECODE( SIGN( fac.datumtijdnaaruitvoertijd(workflows_w.start_periode, workflows_w.einddatum, 'D').tijdsduur), 1, 'Te laat', 'Op tijd') aanvraag_tijdig, workflows_w.organisatieonderdeel_key, workflows_w.organisatieonderdeel fclt_f_organisatieonderdeel, workflows_w.directie, workflows_w.opdr_afdeling, workflows_w.kpn_verantw, COALESCE(kenm.mld_srtkenmerk_omschrijving, 'Onbekend') vraagsoort, workflows_w.key2 melding2, workflows_w.startdatum2, workflows_w.status2, workflows_w.afmelddatum2, workflows_w.einddatum2, workflows_w.normtijd2, workflows_w.delta_t2, workflows_w.tijdig2, workflows_w.behandelaar2, workflows_w.key3 melding3, workflows_w.startdatum3, workflows_w.status3, workflows_w.afmelddatum3, workflows_w.einddatum3, workflows_w.normtijd3, workflows_w.delta_t3, workflows_w.tijdig3, workflows_w.behandelaar3, workflows_w.key4 melding4, workflows_w.startdatum4, workflows_w.status4, workflows_w.afmelddatum4, workflows_w.einddatum4, workflows_w.normtijd4, workflows_w.delta_t4, workflows_w.tijdig4, workflows_w.behandelaar4, workflows_w.key5 melding5, workflows_w.startdatum5, workflows_w.status5, workflows_w.afmelddatum5, workflows_w.einddatum5, workflows_w.normtijd5, workflows_w.delta_t5, workflows_w.tijdig5, workflows_w.behandelaar5, NULL melding6, NULL startdatum6, NULL status6, NULL afmelddatum6, NULL einddatum6, NULL normtijd6, NULL delta_t6, NULL tijdig6, NULL behandelaar6, COALESCE(kcc_geg5.waarde, kcc_geg4.waarde, kcc_geg3.waarde, kcc_geg2.waarde) kcc_gegevens, COALESCE(eco_atb5.waarde, eco_atb4.waarde, eco_atb3.waarde) eco_atb_zaak_id, COALESCE(eco_job5.waarde, eco_job4.waarde, eco_job3.waarde) eco_akoord_job, COALESCE(eco_cvs5.waarde, eco_cvs4.waarde, eco_cvs3.waarde) eco_cv, COALESCE(eco_gsp5.waarde, eco_gsp4.waarde, eco_gsp3.waarde) eco_gesprekken, COALESCE(eco_kan5.waarde, eco_kan4.waarde, eco_kan3.waarde) eco_kandidaten, COALESCE(eco_guh5.waarde, eco_guh4.waarde, eco_guh3.waarde) eco_guh_akkoord, COALESCE(eco_uur5.waarde, eco_uur4.waarde, eco_uur3.waarde) eco_uurtarief, COALESCE(eco_odh5.waarde, eco_odh4.waarde, eco_odh3.waarde) eco_onderhandeling, COALESCE(eco_ivp5.waarde, eco_ivp4.waarde, eco_ivp3.waarde) eco_akoord_ivp, COALESCE(eco_dos5.waarde, eco_dos4.waarde, eco_dos3.waarde) eco_dossier, COALESCE(eco_hld5.waarde, eco_hld4.waarde, eco_hld3.waarde) eco_on_hold, COALESCE(bio_atb5.waarde, bio_atb4.waarde) bio_atb_vrij, COALESCE(bio_geg5.waarde, bio_geg4.waarde) bio_gegevens, COALESCE(bio_ivp5.waarde, bio_ivp4.waarde) bio_ivp, COALESCE(bio_bud5.waarde, bio_bud4.waarde) bio_budget, COALESCE(bio_lev5.waarde, bio_lev4.waarde) bio_leverancier, ebf_geb5.waarde ebf_gegevens_bio, ebf_crd5.waarde ebf_crediteur, ebf_bes5.waarde ebf_bestelling, ebf_gee5.waarde ebf_gegevens_eco FROM workflows_w, (SELECT mld_kenmerk_key, mld_srtkenmerk_omschrijving FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key) kenm, kcc_geg kcc_geg5, kcc_geg kcc_geg4, kcc_geg kcc_geg3, kcc_geg kcc_geg2, eco_atb eco_atb5, eco_atb eco_atb4, eco_atb eco_atb3, eco_job eco_job5, eco_job eco_job4, eco_job eco_job3, eco_cvs eco_cvs5, eco_cvs eco_cvs4, eco_cvs eco_cvs3, eco_gsp eco_gsp5, eco_gsp eco_gsp4, eco_gsp eco_gsp3, eco_kan eco_kan5, eco_kan eco_kan4, eco_kan eco_kan3, eco_guh eco_guh5, eco_guh eco_guh4, eco_guh eco_guh3, eco_uur eco_uur5, eco_uur eco_uur4, eco_uur eco_uur3, eco_odh eco_odh5, eco_odh eco_odh4, eco_odh eco_odh3, eco_ivp eco_ivp5, eco_ivp eco_ivp4, eco_ivp eco_ivp3, eco_dos eco_dos5, eco_dos eco_dos4, eco_dos eco_dos3, eco_hld eco_hld5, eco_hld eco_hld4, eco_hld eco_hld3, bio_atb bio_atb5, bio_atb bio_atb4, bio_geg bio_geg5, bio_geg bio_geg4, bio_ivp bio_ivp5, bio_ivp bio_ivp4, bio_bud bio_bud5, bio_bud bio_bud4, bio_lev bio_lev5, bio_lev bio_lev4, ebf_geb ebf_geb5, ebf_crd ebf_crd5, ebf_bes ebf_bes5, ebf_gee ebf_gee5 WHERE kcc_geg5.mld_melding_key(+) = workflows_w.key5 AND kcc_geg4.mld_melding_key(+) = workflows_w.key4 AND kcc_geg3.mld_melding_key(+) = workflows_w.key3 AND kcc_geg2.mld_melding_key(+) = workflows_w.key2 AND eco_atb5.mld_melding_key(+) = workflows_w.key5 AND eco_atb4.mld_melding_key(+) = workflows_w.key4 AND eco_atb3.mld_melding_key(+) = workflows_w.key3 AND eco_job5.mld_melding_key(+) = workflows_w.key5 AND eco_job4.mld_melding_key(+) = workflows_w.key4 AND eco_job3.mld_melding_key(+) = workflows_w.key3 AND eco_cvs5.mld_melding_key(+) = workflows_w.key5 AND eco_cvs4.mld_melding_key(+) = workflows_w.key4 AND eco_cvs3.mld_melding_key(+) = workflows_w.key3 AND eco_gsp5.mld_melding_key(+) = workflows_w.key5 AND eco_gsp4.mld_melding_key(+) = workflows_w.key4 AND eco_gsp3.mld_melding_key(+) = workflows_w.key3 AND eco_kan5.mld_melding_key(+) = workflows_w.key5 AND eco_kan4.mld_melding_key(+) = workflows_w.key4 AND eco_kan3.mld_melding_key(+) = workflows_w.key3 AND eco_guh5.mld_melding_key(+) = workflows_w.key5 AND eco_guh4.mld_melding_key(+) = workflows_w.key4 AND eco_guh3.mld_melding_key(+) = workflows_w.key3 AND eco_uur5.mld_melding_key(+) = workflows_w.key5 AND eco_uur4.mld_melding_key(+) = workflows_w.key4 AND eco_uur3.mld_melding_key(+) = workflows_w.key3 AND eco_odh5.mld_melding_key(+) = workflows_w.key5 AND eco_odh4.mld_melding_key(+) = workflows_w.key4 AND eco_odh3.mld_melding_key(+) = workflows_w.key3 AND eco_ivp5.mld_melding_key(+) = workflows_w.key5 AND eco_ivp4.mld_melding_key(+) = workflows_w.key4 AND eco_ivp3.mld_melding_key(+) = workflows_w.key3 AND eco_dos5.mld_melding_key(+) = workflows_w.key5 AND eco_dos4.mld_melding_key(+) = workflows_w.key4 AND eco_dos3.mld_melding_key(+) = workflows_w.key3 AND eco_hld5.mld_melding_key(+) = workflows_w.key5 AND eco_hld4.mld_melding_key(+) = workflows_w.key4 AND eco_hld3.mld_melding_key(+) = workflows_w.key3 AND bio_atb5.mld_melding_key(+) = workflows_w.key5 AND bio_atb4.mld_melding_key(+) = workflows_w.key4 AND bio_geg5.mld_melding_key(+) = workflows_w.key5 AND bio_geg4.mld_melding_key(+) = workflows_w.key4 AND bio_ivp5.mld_melding_key(+) = workflows_w.key5 AND bio_ivp4.mld_melding_key(+) = workflows_w.key4 AND bio_bud5.mld_melding_key(+) = workflows_w.key5 AND bio_bud4.mld_melding_key(+) = workflows_w.key4 AND bio_lev5.mld_melding_key(+) = workflows_w.key5 AND bio_lev4.mld_melding_key(+) = workflows_w.key4 AND ebf_geb5.mld_melding_key(+) = workflows_w.key5 AND ebf_crd5.mld_melding_key(+) = workflows_w.key5 AND ebf_bes5.mld_melding_key(+) = workflows_w.key5 AND ebf_gee5.mld_melding_key(+) = workflows_w.key5 AND kenm.mld_kenmerk_key(+) = workflows_w.vraagsoort; -- Dummy-rapportages voor stylesheet (maand, kwartaal, halfjaar, jaar) CREATE OR REPLACE FORCE VIEW rwsn_v_rap_tijdelijke_cap AS SELECT DISTINCT organisatieonderdeel_key, fclt_f_organisatieonderdeel organisatieonderdeel, 'HRM Mobiliteit' stap2, 'KCC' stap3, 'EC O&'||'P' stap4, 'Inkoop' stap5, 'EBF' stap6 FROM t_rwsn_v_workflows_inhuur ORDER BY fclt_f_organisatieonderdeel; CREATE OR REPLACE FORCE VIEW rwsn_v_rap_tijdelijke_cap_m AS SELECT cap.*, TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'DD-MM-YYYY') van, TO_CHAR(SYSDATE, 'DD-MM-YYYY') tot, t0a.fac_usrgraph_key t0a, t0b.fac_usrgraph_key t0b, t1aa.fac_usrgraph_key t1aa, t1aw.fac_usrgraph_key t1aw, t1ba.fac_usrgraph_key t1ba, t1bw.fac_usrgraph_key t1bw, t2aa.fac_usrgraph_key t2aa, t2aw.fac_usrgraph_key t2aw, t2ba.fac_usrgraph_key t2ba, t2bw.fac_usrgraph_key t2bw, t3a.fac_usrgraph_key t3a, t3w.fac_usrgraph_key t3w, t4a.fac_usrgraph_key t4a, t4w.fac_usrgraph_key t4w FROM rwsn_v_rap_tijdelijke_cap cap, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_' ||'m') t0a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_org_' ||'m') t0b, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_' ||'m') t1aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_' ||'m') t1aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_org_' ||'m') t1ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_org_' ||'m') t1bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_aanv_' ||'m') t2aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_wijz_' ||'m') t2aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_aanv_org_' ||'m') t2ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_wijz_org_' ||'m') t2bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_aanv_' ||'m') t3a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_wijz_' ||'m') t3w, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_aanv_' ||'m') t4a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_wijz_' ||'m') t4w ORDER BY organisatieonderdeel; CREATE OR REPLACE FORCE VIEW rwsn_v_rap_tijdelijke_cap_k AS SELECT cap.*, TO_CHAR(ADD_MONTHS(SYSDATE, -3), 'DD-MM-YYYY') van, TO_CHAR(SYSDATE, 'DD-MM-YYYY') tot, t0a.fac_usrgraph_key t0a, t0b.fac_usrgraph_key t0b, t1aa.fac_usrgraph_key t1aa, t1aw.fac_usrgraph_key t1aw, t1ba.fac_usrgraph_key t1ba, t1bw.fac_usrgraph_key t1bw, t2aa.fac_usrgraph_key t2aa, t2aw.fac_usrgraph_key t2aw, t2ba.fac_usrgraph_key t2ba, t2bw.fac_usrgraph_key t2bw, t3a.fac_usrgraph_key t3a, t3w.fac_usrgraph_key t3w, t4a.fac_usrgraph_key t4a, t4w.fac_usrgraph_key t4w FROM rwsn_v_rap_tijdelijke_cap cap, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_' ||'k') t0a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_org_' ||'k') t0b, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_' ||'k') t1aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_' ||'k') t1aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_org_' ||'k') t1ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_org_' ||'k') t1bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_aanv_' ||'k') t2aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_wijz_' ||'k') t2aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_aanv_org_' ||'k') t2ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_wijz_org_' ||'k') t2bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_aanv_' ||'k') t3a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_wijz_' ||'k') t3w, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_aanv_' ||'k') t4a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_wijz_' ||'k') t4w ORDER BY organisatieonderdeel; CREATE OR REPLACE FORCE VIEW rwsn_v_rap_tijdelijke_cap_h AS SELECT cap.*, TO_CHAR(ADD_MONTHS(SYSDATE, -6), 'DD-MM-YYYY') van, TO_CHAR(SYSDATE, 'DD-MM-YYYY') tot, t0a.fac_usrgraph_key t0a, t0b.fac_usrgraph_key t0b, t1aa.fac_usrgraph_key t1aa, t1aw.fac_usrgraph_key t1aw, t1ba.fac_usrgraph_key t1ba, t1bw.fac_usrgraph_key t1bw, t2aa.fac_usrgraph_key t2aa, t2aw.fac_usrgraph_key t2aw, t2ba.fac_usrgraph_key t2ba, t2bw.fac_usrgraph_key t2bw, t3a.fac_usrgraph_key t3a, t3w.fac_usrgraph_key t3w, t4a.fac_usrgraph_key t4a, t4w.fac_usrgraph_key t4w FROM rwsn_v_rap_tijdelijke_cap cap, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_' ||'h') t0a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_org_' ||'h') t0b, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_' ||'h') t1aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_' ||'h') t1aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_org_' ||'h') t1ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_org_' ||'h') t1bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_aanv_' ||'h') t2aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_wijz_' ||'h') t2aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_aanv_org_' ||'h') t2ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_wijz_org_' ||'h') t2bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_aanv_' ||'h') t3a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_wijz_' ||'h') t3w, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_aanv_' ||'h') t4a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_wijz_' ||'h') t4w ORDER BY organisatieonderdeel; CREATE OR REPLACE FORCE VIEW rwsn_v_rap_tijdelijke_cap_j AS SELECT cap.*, TO_CHAR(ADD_MONTHS(SYSDATE, -12), 'DD-MM-YYYY') van, TO_CHAR(SYSDATE, 'DD-MM-YYYY') tot, t0a.fac_usrgraph_key t0a, t0b.fac_usrgraph_key t0b, t1aa.fac_usrgraph_key t1aa, t1aw.fac_usrgraph_key t1aw, t1ba.fac_usrgraph_key t1ba, t1bw.fac_usrgraph_key t1bw, t2aa.fac_usrgraph_key t2aa, t2aw.fac_usrgraph_key t2aw, t2ba.fac_usrgraph_key t2ba, t2bw.fac_usrgraph_key t2bw, t3a.fac_usrgraph_key t3a, t3w.fac_usrgraph_key t3w, t4a.fac_usrgraph_key t4a, t4w.fac_usrgraph_key t4w FROM rwsn_v_rap_tijdelijke_cap cap, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_' ||'j') t0a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_wijz_hoofd_org_' ||'j') t0b, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_' ||'j') t1aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_' ||'j') t1aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_aanv_org_' ||'j') t1ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_kpi1_wijz_org_' ||'j') t1bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_aanv_' ||'j') t2aa, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2a_wijz_' ||'j') t2aw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_aanv_org_' ||'j') t2ba, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_2b_wijz_org_' ||'j') t2bw, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_aanv_' ||'j') t3a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_3_stap_wijz_' ||'j') t3w, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_aanv_' ||'j') t4a, (SELECT fac_usrgraph_key FROM fac_usrgraph WHERE fac_usrgraph_view_name = 'rwsn_v_graph_issues_wijz_' ||'j') t4w ORDER BY organisatieonderdeel; -- Mogelijke issues -- mld_srtkenmerk 6081 Gegevens niet compleet of correct -- mld_srtkenmerk 6071 ATB en/of Zaak ID niet aangeleverd -- mld_srtkenmerk 6073 Aanvraag/Wijziging niet geaccordeerd in JOB -- mld_srtkenmerk 6079 Geen tijdige terugkoppeling CV's -- mld_srtkenmerk 6080 Geen tijdige terugkoppeling gesprekken -- mld_srtkenmerk 6078 Geen geschikte kandidaten / meer selectierondes -- mld_srtkenmerk 6096 Wachten op GUH-akkoord -- mld_srtkenmerk 6097 Wachten op akkoord te hoog uurtarief -- mld_srtkenmerk 6093 Onderhandeling tarieven bij verlenging -- mld_srtkenmerk 6086 IVP niet geaccordeerd -- mld_srtkenmerk 6077 Digitaal dossier niet op orde -- mld_srtkenmerk 6074 Aanvraag/Wijziging on hold -- mld_srtkenmerk 6072 ATB niet vrijgegeven -- mld_srtkenmerk 6082 Gegevens niet compleet of correct aangeleverd -- mld_srtkenmerk 6085 IVP (ondertekend) niet aanwezig -- mld_srtkenmerk 6094 Ontoereikend budget voor vastlegging bestelling -- mld_srtkenmerk 6075 BIO- Leverancier niet bekend in SAP en Esize -- mld_srtkenmerk 6083 Gegevens niet correct of volledig aangeleverd BIO -- mld_srtkenmerk 6095 Verkeerde crediteur stamgegevens -- mld_srtkenmerk 6076 Bestelling foutief vastgelegd -- mld_srtkenmerk 6084 Gegevens niet volledig aangeleverd door ECO&P CREATE OR REPLACE VIEW rwsn_v_issues AS SELECT (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6081) kcc_gegevens, -- Gegevens niet compleet of correct (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6071) eco_atb_zaak_id, -- ATB en/of Zaak ID niet aangeleverd (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6073) eco_akoord_job, -- Aanvraag/Wijziging niet geaccordeerd in JOB (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6079) eco_cv, -- Geen tijdige terugkoppeling CV's (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6080) eco_gesprekken, -- Geen tijdige terugkoppeling gesprekken (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6078) eco_kandidaten, -- Geen geschikte kandidaten / meer selectierondes (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6096) eco_guh_akkoord, -- Wachten op GUH-akkoord (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6097) eco_uurtarief, -- Wachten op akkoord te hoog uurtarief (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6093) eco_onderhandeling, -- Onderhandeling tarieven bij verlenging (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6086) eco_akoord_ivp, -- IVP niet geaccordeerd (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6077) eco_dossier, -- Digitaal dossier niet op orde (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6074) eco_on_hold, -- Aanvraag/Wijziging on hold (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6072) bio_atb_vrij, -- ATB niet vrijgegeven (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6082) bio_gegevens, -- Gegevens niet compleet of correct aangeleverd (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6085) bio_ivp, -- IVP (ondertekend) niet aanwezig (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6094) bio_budget, -- Ontoereikend budget voor vastlegging bestelling (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6075) bio_leverancier, -- BIO- Leverancier niet bekend in SAP en Esize (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6083) ebf_gegevens_bio, -- Gegevens niet correct of volledig aangeleverd BIO (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6095) ebf_crediteur, -- Verkeerde crediteur stamgegevens (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6076) ebf_bestelling, -- Bestelling foutief vastgelegd (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk WHERE mld_srtkenmerk_key = 6084) ebf_gegevens_eco -- Gegevens niet volledig aangeleverd door ECOenP FROM DUAL; -- Hoofdlijn A CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_m AS SELECT COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY vraagsoort; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_k AS SELECT COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY vraagsoort; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_h AS SELECT COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY vraagsoort; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_j AS SELECT COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY vraagsoort; -- Hoofdlijn B CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_org_m AS SELECT organisatieonderdeel_key fclt_key, COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY organisatieonderdeel_key, vraagsoort; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_org_k AS SELECT organisatieonderdeel_key fclt_key, COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY organisatieonderdeel_key, vraagsoort; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_org_h AS SELECT organisatieonderdeel_key fclt_key, COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY organisatieonderdeel_key, vraagsoort; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_wijz_hoofd_org_j AS SELECT organisatieonderdeel_key fclt_key, COALESCE(vraagsoort, 'Nieuwe aanvraag') fclt_xas_, COUNT(*) fclt_yas_, DECODE(vraagsoort, NULL, '#007bc7', 'Verlenging zittende kracht', '#39870c', 'Administratieve wijziging (kostenplaats)', '#275937', 'Administratieve wijziging (ophoging budget)', '#777c00', 'Contractuele wijziging binnen de looptijd', '#94710a', 'Anders', '#673327', 'Onbekend', '#999999', '#ff00ff') fclt_color, DECODE(vraagsoort, NULL, 1, 'Verlenging zittende kracht', 11, 'Administratieve wijziging (kostenplaats)', 12, 'Administratieve wijziging (ophoging budget)', 13, 'Contractuele wijziging binnen de looptijd', 14, 'Anders', 20, 'Onbekend', 99, 25) fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY organisatieonderdeel_key, vraagsoort; -- KPI 1A en 2A CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_m AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_k AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -5) GROUP BY fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_h AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_j AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_m AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_k AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_h AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_j AS SELECT fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY fclt_f_uitvoer_tijdig; -- KPI 1B en 2B CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_org_m AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_org_k AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_org_h AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_aanv_org_j AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_org_m AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_org_k AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_org_h AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_kpi1_wijz_org_j AS SELECT organisatieonderdeel_key fclt_key, fclt_f_uitvoer_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(fclt_f_uitvoer_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_f_uitvoer_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY organisatieonderdeel_key, fclt_f_uitvoer_tijdig; -- Element 2A CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_aanv_m AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_aanv_k AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_aanv_h AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_aanv_j AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_wijz_m AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_wijz_k AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_wijz_h AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2a_wijz_j AS SELECT aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY aanvraag_tijdig; -- Element 2B CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_aanv_org_m AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_aanv_org_k AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_aanv_org_h AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_aanv_org_j AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_wijz_org_m AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_wijz_org_k AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_wijz_org_h AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; CREATE OR REPLACE FORCE VIEW rwsn_v_graph_2b_wijz_org_j AS SELECT organisatieonderdeel_key fclt_key, aanvraag_tijdig fclt_xas_, COUNT(*) fclt_yas_, '' fclt_url, DECODE(aanvraag_tijdig, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, aanvraag_tijdig fclt_sort FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY organisatieonderdeel_key, aanvraag_tijdig; -- Element 3 CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_aanv_m AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig5 UNION ALL SELECT 6 fclt_key, tijdig6 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig6); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_aanv_k AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig5 UNION ALL SELECT 6 fclt_key, tijdig6 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig6); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_aanv_h AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig5 UNION ALL SELECT 6 fclt_key, tijdig6 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig6); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_aanv_j AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig5 UNION ALL SELECT 6 fclt_key, tijdig6 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig6); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_wijz_m AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1) GROUP BY tijdig5); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_wijz_k AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3) GROUP BY tijdig5); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_wijz_h AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6) GROUP BY tijdig5); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_3_stap_wijz_j AS SELECT fclt_key, fclt_xas_, fclt_yas_, DECODE(fclt_xas_, 'Op tijd', '#77BB00', 'Te laat', '#990000', '#ff00ff') fclt_color, fclt_xas_ fclt_sort FROM ( SELECT 2 fclt_key, tijdig2 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig2 UNION ALL SELECT 3 fclt_key, tijdig3 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig3 UNION ALL SELECT 4 fclt_key, tijdig4 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig4 UNION ALL SELECT 5 fclt_key, tijdig5 fclt_xas_, COUNT(*) fclt_yas_ FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12) GROUP BY tijdig5); -- Element 4 CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_aanv_m AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -1)) SELECT MIN(i.kcc_gegevens) fclt_xas_, COUNT(wi.kcc_gegevens) fclt_yas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_xas_, COUNT(wi.eco_atb_zaak_id) fclt_yas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_xas_, COUNT(wi.eco_akoord_job) fclt_yas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_xas_, COUNT(wi.eco_cv) fclt_yas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_xas_, COUNT(wi.eco_gesprekken) fclt_yas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_xas_, COUNT(wi.eco_kandidaten) fclt_yas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_xas_, COUNT(wi.eco_guh_akkoord) fclt_yas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_xas_, COUNT(wi.eco_uurtarief) fclt_yas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_xas_, COUNT(wi.eco_onderhandeling) fclt_yas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_xas_, COUNT(wi.eco_akoord_ivp) fclt_yas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_xas_, COUNT(wi.eco_dossier) fclt_yas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_xas_, COUNT(wi.eco_on_hold) fclt_yas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_xas_, COUNT(wi.bio_atb_vrij) fclt_yas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_xas_, COUNT(wi.bio_gegevens) fclt_yas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_xas_, COUNT(wi.bio_ivp) fclt_yas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_xas_, COUNT(wi.bio_budget) fclt_yas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_xas_, COUNT(wi.bio_leverancier) fclt_yas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_xas_, COUNT(wi.ebf_gegevens_bio) fclt_yas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_xas_, COUNT(wi.ebf_crediteur) fclt_yas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_xas_, COUNT(wi.ebf_bestelling) fclt_yas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_xas_, COUNT(wi.ebf_gegevens_eco) fclt_yas_, 21 fclt_sort FROM wi, rwsn_v_issues i); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_aanv_k AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -3)) SELECT MIN(i.kcc_gegevens) fclt_xas_, COUNT(wi.kcc_gegevens) fclt_yas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_xas_, COUNT(wi.eco_atb_zaak_id) fclt_yas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_xas_, COUNT(wi.eco_akoord_job) fclt_yas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_xas_, COUNT(wi.eco_cv) fclt_yas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_xas_, COUNT(wi.eco_gesprekken) fclt_yas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_xas_, COUNT(wi.eco_kandidaten) fclt_yas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_xas_, COUNT(wi.eco_guh_akkoord) fclt_yas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_xas_, COUNT(wi.eco_uurtarief) fclt_yas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_xas_, COUNT(wi.eco_onderhandeling) fclt_yas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_xas_, COUNT(wi.eco_akoord_ivp) fclt_yas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_xas_, COUNT(wi.eco_dossier) fclt_yas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_xas_, COUNT(wi.eco_on_hold) fclt_yas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_xas_, COUNT(wi.bio_atb_vrij) fclt_yas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_xas_, COUNT(wi.bio_gegevens) fclt_yas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_xas_, COUNT(wi.bio_ivp) fclt_yas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_xas_, COUNT(wi.bio_budget) fclt_yas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_xas_, COUNT(wi.bio_leverancier) fclt_yas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_xas_, COUNT(wi.ebf_gegevens_bio) fclt_yas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_xas_, COUNT(wi.ebf_crediteur) fclt_yas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_xas_, COUNT(wi.ebf_bestelling) fclt_yas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_xas_, COUNT(wi.ebf_gegevens_eco) fclt_yas_, 21 fclt_sort FROM wi, rwsn_v_issues i); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_aanv_h AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -6)) SELECT MIN(i.kcc_gegevens) fclt_xas_, COUNT(wi.kcc_gegevens) fclt_yas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_xas_, COUNT(wi.eco_atb_zaak_id) fclt_yas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_xas_, COUNT(wi.eco_akoord_job) fclt_yas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_xas_, COUNT(wi.eco_cv) fclt_yas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_xas_, COUNT(wi.eco_gesprekken) fclt_yas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_xas_, COUNT(wi.eco_kandidaten) fclt_yas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_xas_, COUNT(wi.eco_guh_akkoord) fclt_yas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_xas_, COUNT(wi.eco_uurtarief) fclt_yas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_xas_, COUNT(wi.eco_onderhandeling) fclt_yas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_xas_, COUNT(wi.eco_akoord_ivp) fclt_yas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_xas_, COUNT(wi.eco_dossier) fclt_yas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_xas_, COUNT(wi.eco_on_hold) fclt_yas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_xas_, COUNT(wi.bio_atb_vrij) fclt_yas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_xas_, COUNT(wi.bio_gegevens) fclt_yas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_xas_, COUNT(wi.bio_ivp) fclt_yas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_xas_, COUNT(wi.bio_budget) fclt_yas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_xas_, COUNT(wi.bio_leverancier) fclt_yas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_xas_, COUNT(wi.ebf_gegevens_bio) fclt_yas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_xas_, COUNT(wi.ebf_crediteur) fclt_yas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_xas_, COUNT(wi.ebf_bestelling) fclt_yas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_xas_, COUNT(wi.ebf_gegevens_eco) fclt_yas_, 21 fclt_sort FROM wi, rwsn_v_issues i); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_aanv_j AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Aanvraag' AND afmelddatum > ADD_MONTHS(SYSDATE, -12)) SELECT MIN(i.kcc_gegevens) fclt_xas_, COUNT(wi.kcc_gegevens) fclt_yas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_xas_, COUNT(wi.eco_atb_zaak_id) fclt_yas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_xas_, COUNT(wi.eco_akoord_job) fclt_yas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_xas_, COUNT(wi.eco_cv) fclt_yas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_xas_, COUNT(wi.eco_gesprekken) fclt_yas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_xas_, COUNT(wi.eco_kandidaten) fclt_yas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_xas_, COUNT(wi.eco_guh_akkoord) fclt_yas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_xas_, COUNT(wi.eco_uurtarief) fclt_yas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_xas_, COUNT(wi.eco_onderhandeling) fclt_yas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_xas_, COUNT(wi.eco_akoord_ivp) fclt_yas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_xas_, COUNT(wi.eco_dossier) fclt_yas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_xas_, COUNT(wi.eco_on_hold) fclt_yas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_xas_, COUNT(wi.bio_atb_vrij) fclt_yas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_xas_, COUNT(wi.bio_gegevens) fclt_yas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_xas_, COUNT(wi.bio_ivp) fclt_yas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_xas_, COUNT(wi.bio_budget) fclt_yas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_xas_, COUNT(wi.bio_leverancier) fclt_yas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_xas_, COUNT(wi.ebf_gegevens_bio) fclt_yas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_xas_, COUNT(wi.ebf_crediteur) fclt_yas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_xas_, COUNT(wi.ebf_bestelling) fclt_yas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_xas_, COUNT(wi.ebf_gegevens_eco) fclt_yas_, 21 fclt_sort FROM wi, rwsn_v_issues i); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_wijz_m (fclt_xas_, fclt_yas_, fclt_sort) AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -1)) SELECT MIN(i.kcc_gegevens) fclt_xas_, COUNT(wi.kcc_gegevens) fclt_yas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_xas_, COUNT(wi.eco_atb_zaak_id) fclt_yas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_xas_, COUNT(wi.eco_akoord_job) fclt_yas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_xas_, COUNT(wi.eco_cv) fclt_yas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_xas_, COUNT(wi.eco_gesprekken) fclt_yas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_xas_, COUNT(wi.eco_kandidaten) fclt_yas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_xas_, COUNT(wi.eco_guh_akkoord) fclt_yas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_xas_, COUNT(wi.eco_uurtarief) fclt_yas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_xas_, COUNT(wi.eco_onderhandeling) fclt_yas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_xas_, COUNT(wi.eco_akoord_ivp) fclt_yas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_xas_, COUNT(wi.eco_dossier) fclt_yas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_xas_, COUNT(wi.eco_on_hold) fclt_yas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_xas_, COUNT(wi.bio_atb_vrij) fclt_yas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_xas_, COUNT(wi.bio_gegevens) fclt_yas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_xas_, COUNT(wi.bio_ivp) fclt_yas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_xas_, COUNT(wi.bio_budget) fclt_yas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_xas_, COUNT(wi.bio_leverancier) fclt_yas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_xas_, COUNT(wi.ebf_gegevens_bio) fclt_yas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_xas_, COUNT(wi.ebf_crediteur) fclt_yas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_xas_, COUNT(wi.ebf_bestelling) fclt_yas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_xas_, COUNT(wi.ebf_gegevens_eco) fclt_yas_, 21 fclt_sort FROM wi, rwsn_v_issues i); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_wijz_k (fclt_xas_, fclt_yas_, fclt_sort) AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -3)) SELECT MIN(i.kcc_gegevens) fclt_xas_, COUNT(wi.kcc_gegevens) fclt_yas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_xas_, COUNT(wi.eco_atb_zaak_id) fclt_yas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_xas_, COUNT(wi.eco_akoord_job) fclt_yas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_xas_, COUNT(wi.eco_cv) fclt_yas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_xas_, COUNT(wi.eco_gesprekken) fclt_yas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_xas_, COUNT(wi.eco_kandidaten) fclt_yas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_xas_, COUNT(wi.eco_guh_akkoord) fclt_yas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_xas_, COUNT(wi.eco_uurtarief) fclt_yas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_xas_, COUNT(wi.eco_onderhandeling) fclt_yas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_xas_, COUNT(wi.eco_akoord_ivp) fclt_yas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_xas_, COUNT(wi.eco_dossier) fclt_yas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_xas_, COUNT(wi.eco_on_hold) fclt_yas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_xas_, COUNT(wi.bio_atb_vrij) fclt_yas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_xas_, COUNT(wi.bio_gegevens) fclt_yas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_xas_, COUNT(wi.bio_ivp) fclt_yas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_xas_, COUNT(wi.bio_budget) fclt_yas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_xas_, COUNT(wi.bio_leverancier) fclt_yas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_xas_, COUNT(wi.ebf_gegevens_bio) fclt_yas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_xas_, COUNT(wi.ebf_crediteur) fclt_yas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_xas_, COUNT(wi.ebf_bestelling) fclt_yas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_xas_, COUNT(wi.ebf_gegevens_eco) fclt_yas_, 21 fclt_sort FROM wi, rwsn_v_issues i); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_wijz_h (fclt_xas_, fclt_yas_, fclt_sort) AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -6)) SELECT MIN(i.kcc_gegevens) fclt_yas_, COUNT(wi.kcc_gegevens) fclt_xas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_yas_, COUNT(wi.eco_atb_zaak_id) fclt_xas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_yas_, COUNT(wi.eco_akoord_job) fclt_xas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_yas_, COUNT(wi.eco_cv) fclt_xas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_yas_, COUNT(wi.eco_gesprekken) fclt_xas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_yas_, COUNT(wi.eco_kandidaten) fclt_xas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_yas_, COUNT(wi.eco_guh_akkoord) fclt_xas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_yas_, COUNT(wi.eco_uurtarief) fclt_xas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_yas_, COUNT(wi.eco_onderhandeling) fclt_xas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_yas_, COUNT(wi.eco_akoord_ivp) fclt_xas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_yas_, COUNT(wi.eco_dossier) fclt_xas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_yas_, COUNT(wi.eco_on_hold) fclt_xas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_yas_, COUNT(wi.bio_atb_vrij) fclt_xas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_yas_, COUNT(wi.bio_gegevens) fclt_xas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_yas_, COUNT(wi.bio_ivp) fclt_xas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_yas_, COUNT(wi.bio_budget) fclt_xas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_yas_, COUNT(wi.bio_leverancier) fclt_xas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_yas_, COUNT(wi.ebf_gegevens_bio) fclt_xas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_yas_, COUNT(wi.ebf_crediteur) fclt_xas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_yas_, COUNT(wi.ebf_bestelling) fclt_xas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_yas_, COUNT(wi.ebf_gegevens_eco) fclt_xas_, 21 fclt_sort FROM wi, rwsn_v_issues i); CREATE OR REPLACE FORCE VIEW rwsn_v_graph_issues_wijz_j (fclt_xas_, fclt_yas_, fclt_sort) AS SELECT * FROM ( WITH wi AS (SELECT * FROM t_rwsn_v_workflows_inhuur WHERE fclt_f_soort = 'Wijziging' AND afmelddatum > ADD_MONTHS(SYSDATE, -12)) SELECT MIN(i.kcc_gegevens) fclt_xas_, COUNT(wi.kcc_gegevens) fclt_yas_, 1 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_atb_zaak_id) fclt_xas_, COUNT(wi.eco_atb_zaak_id) fclt_yas_, 2 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_job) fclt_xas_, COUNT(wi.eco_akoord_job) fclt_yas_, 3 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_cv) fclt_xas_, COUNT(wi.eco_cv) fclt_yas_, 4 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_gesprekken) fclt_xas_, COUNT(wi.eco_gesprekken) fclt_yas_, 5 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_kandidaten) fclt_xas_, COUNT(wi.eco_kandidaten) fclt_yas_, 6 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_guh_akkoord) fclt_xas_, COUNT(wi.eco_guh_akkoord) fclt_yas_, 7 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_uurtarief) fclt_xas_, COUNT(wi.eco_uurtarief) fclt_yas_, 8 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_onderhandeling) fclt_xas_, COUNT(wi.eco_onderhandeling) fclt_yas_, 9 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_akoord_ivp) fclt_xas_, COUNT(wi.eco_akoord_ivp) fclt_yas_, 10 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_dossier) fclt_xas_, COUNT(wi.eco_dossier) fclt_yas_, 11 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.eco_on_hold) fclt_xas_, COUNT(wi.eco_on_hold) fclt_yas_, 12 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_atb_vrij) fclt_xas_, COUNT(wi.bio_atb_vrij) fclt_yas_, 13 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_gegevens) fclt_xas_, COUNT(wi.bio_gegevens) fclt_yas_, 14 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_ivp) fclt_xas_, COUNT(wi.bio_ivp) fclt_yas_, 15 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_budget) fclt_xas_, COUNT(wi.bio_budget) fclt_yas_, 16 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.bio_leverancier) fclt_xas_, COUNT(wi.bio_leverancier) fclt_yas_, 17 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_bio) fclt_xas_, COUNT(wi.ebf_gegevens_bio) fclt_yas_, 18 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_crediteur) fclt_xas_, COUNT(wi.ebf_crediteur) fclt_yas_, 19 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_bestelling) fclt_xas_, COUNT(wi.ebf_bestelling) fclt_yas_, 20 fclt_sort FROM wi, rwsn_v_issues i UNION ALL SELECT MIN(i.ebf_gegevens_eco) fclt_xas_, COUNT(wi.ebf_gegevens_eco) fclt_yas_, 21 fclt_sort FROM wi, rwsn_v_issues i); -- RWSN#33267 -- Bezet=1 of onbezet=0 per WP en basis voor UDR-rapportages/visualisaties! /* Formatted on 7-12-2016 11:02:28 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_wpbez_per_wp ( locatie_key, locatie_code, locatie_oms, gebouw_key, gebouw_code, gebouw_naam, verdieping_key, vleugel, -- Ruimteprefix! verdieping_volgnr, verdieping_code, verdieping_oms, wp_bez -- Bezet=1 of onbezet=0 ) AS SELECT l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, g.alg_gebouw_key, g.alg_gebouw_code, g.alg_gebouw_naam, v.alg_verdieping_key, DECODE (fac.safe_to_number (SUBSTR (r.alg_ruimte_upper_nr, 1, 1)), NULL, SUBSTR (r.alg_ruimte_upper_nr, 1, 1), NULL), v.alg_verdieping_volgnr, v.alg_verdieping_code, g.alg_gebouw_code || '/' || SUBSTR ('0' || v.alg_verdieping_code, -2), DECODE (d.ins_deel_state, '1', 1, 0) -- NU bezet/onbezet FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, alg_v_aanwezigruimte r, alg_v_aanwezigverdieping v, alg_gebouw g, alg_locatie l, fac_v_aanwezigusrdata ud WHERE d.ins_deel_vervaldatum IS NULL AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = 3250 -- WPs AND d.ins_alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND ud.fac_usrtab_key = 3 -- WPZ-gebouwen! AND ud.fac_usrdata_code = TO_CHAR (g.alg_gebouw_key); -- Bron met aantallen/percentages per verdieping (tbv. alle WPZ-gebouwen) en -- per vleugel (tbv. RTMs voor Westraven)! /* Formatted on 7-12-2016 11:05:25 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_wpbez ( locatie_key, locatie_code, locatie_oms, gebouw_key, gebouw_code, gebouw_naam, verdieping_key, vleugel, -- Ruimteprefix (alleen Westraven)! verdieping_volgnr, verdieping_code, verdieping_oms, wp_tot, -- Totaal wp_bez, -- Bezet wp_onb, -- Onbezet wp_bezpct, wp_onbpct ) AS SELECT x.alg_locatie_key, x.alg_locatie_code, x.alg_locatie_omschrijving, x.alg_gebouw_key, x.alg_gebouw_code, x.alg_gebouw_naam, x.alg_verdieping_key, NULL vleugel, x.alg_verdieping_volgnr, x.alg_verdieping_code, x.alg_verdieping_omschrijving, COALESCE (wp.tot, 0) wp_tot, COALESCE (wp.bez, 0) wp_bez, COALESCE (wp.tot, 0) - COALESCE (wp.bez, 0) wp_onb, DECODE (wp.tot, 0, TO_NUMBER (NULL), wp.bez / wp.tot) wp_bezpct, DECODE (COALESCE (wp.tot, 0), 0, TO_NUMBER (NULL), (wp.tot - COALESCE (wp.bez, 0)) / wp.tot) wp_onbpct FROM (SELECT v.alg_verdieping_key, v.alg_verdieping_volgnr, v.alg_verdieping_code, v.alg_verdieping_omschrijving, g.alg_gebouw_key, g.alg_gebouw_code, g.alg_gebouw_naam, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving FROM alg_v_aanwezigverdieping v, alg_gebouw g, alg_locatie l, fac_v_aanwezigusrdata ud WHERE v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND ud.fac_usrtab_key = 3 -- WPZ-gebouwen! AND ud.fac_usrdata_code = TO_CHAR (g.alg_gebouw_key)) x LEFT JOIN ( SELECT r.alg_verdieping_key, COUNT ( * ) tot, SUM (DECODE (d.ins_deel_state, '1', 1, 0)) bez -- NU bezet FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, alg_v_aanwezigruimte r WHERE d.ins_deel_vervaldatum IS NULL AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = 3250 -- WPs AND d.ins_alg_ruimte_key = r.alg_ruimte_key GROUP BY r.alg_verdieping_key) wp ON x.alg_verdieping_key = wp.alg_verdieping_key UNION ALL SELECT x.alg_locatie_key, x.alg_locatie_code, x.alg_locatie_omschrijving, x.alg_gebouw_key, x.alg_gebouw_code, x.alg_gebouw_naam, x.alg_verdieping_key, x.vleugel, x.alg_verdieping_volgnr, x.alg_verdieping_code, x.alg_verdieping_omschrijving, COALESCE (wp.tot, 0) wp_tot, COALESCE (wp.bez, 0) wp_bez, COALESCE (wp.tot, 0) - COALESCE (wp.bez, 0) wp_onb, DECODE (wp.tot, 0, TO_NUMBER (NULL), wp.bez / wp.tot) wp_bezpct, DECODE (COALESCE (wp.tot, 0), 0, TO_NUMBER (NULL), (wp.tot - COALESCE (wp.bez, 0)) / wp.tot) wp_onbpct FROM (SELECT DISTINCT v.alg_verdieping_key, SUBSTR (r.alg_ruimte_upper_nr, 1, 1) vleugel, v.alg_verdieping_volgnr, v.alg_verdieping_code, v.alg_verdieping_omschrijving, g.alg_gebouw_key, g.alg_gebouw_code, g.alg_gebouw_naam, l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l WHERE fac.safe_to_number (SUBSTR (r.alg_ruimte_upper_nr, 1, 1)) IS NULL AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_verdieping_code NOT IN ('1', '23') -- Weglaten! AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_gebouw_key IN (203) -- Westraven! AND g.alg_locatie_key = l.alg_locatie_key) x LEFT JOIN ( SELECT r.alg_verdieping_key, SUBSTR (r.alg_ruimte_upper_nr, 1, 1) vleugel, COUNT ( * ) tot, SUM (DECODE (d.ins_deel_state, '1', 1, 0)) bez -- NU bezet FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, alg_v_aanwezigruimte r WHERE d.ins_deel_vervaldatum IS NULL AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = 3250 -- WPs AND d.ins_alg_ruimte_key = r.alg_ruimte_key AND fac.safe_to_number (SUBSTR (r.alg_ruimte_upper_nr, 1, 1)) IS NULL GROUP BY r.alg_verdieping_key, SUBSTR (r.alg_ruimte_upper_nr, 1, 1)) wp ON x.alg_verdieping_key = wp.alg_verdieping_key AND x.vleugel = wp.vleugel; /* Formatted on 4-2-2016 14:48:12 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_onbezet_per_ruimte ( hide_f_sortering, ruimte, wp_onb, hide_f_verdieping_key ) AS SELECT TO_CHAR (alg_verdieping_key) || SUBSTR ('0000' || TO_CHAR (ABS (aantal - 1000)), -4), ruimte, aantal, alg_verdieping_key FROM ( SELECT r.alg_verdieping_key, g.alg_gebouw_code || '-' || SUBSTR ('0' || v.alg_verdieping_code, -2) || '-' || r.alg_ruimte_nr ruimte, COUNT ( * ) aantal FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l WHERE COALESCE (d.ins_deel_state, '0') != '1' -- NU onbezet AND d.ins_deel_vervaldatum IS NULL AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = 3250 -- WPs AND d.ins_alg_ruimte_key = r.alg_ruimte_key --AND COALESCE (SUBSTR (r.alg_ruimte_upper_nr, 1, 1), 'H') = 'H' AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key GROUP BY r.alg_verdieping_key, g.alg_gebouw_code || '-' || SUBSTR ('0' || v.alg_verdieping_code, -2) || '-' || r.alg_ruimte_nr); -- Aantallen/percentages per verdieping (tbv. alle WPZ-gebouwen)! CREATE OR REPLACE VIEW rwsn_v_rap_wpbez ( verdieping, bezpct, fclt_3d_gebouw_key, hide_f_verdieping_key ) AS SELECT gebouw_code || '/' || SUBSTR ('0' || verdieping_code, -2), TO_CHAR (ROUND (DECODE (wp_tot, 0, 100, COALESCE (wp_bezpct, 0) * 100))) || '% (' || TO_CHAR (wp_bez) || '/' || TO_CHAR (wp_tot) || ')', gebouw_key, verdieping_key FROM rwsn_v_wpbez WHERE vleugel IS NULL; -- RTMs voor Westraven H(oogbouw) en vleugels A t/m E: locatie=82/gebouw=203! /* Formatted on 11-11-2015 12:12:12 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW RWSN_V_GRAPH_WPBEZ_WR_H ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, VOLGORDE ) AS SELECT --x.gebouw_code || '/' || x.verdieping_code, x.verdieping_code, x.wp_bez, x.wp_tot - x.wp_bez, SUBSTR ('0000' || TO_CHAR (x.verdieping_volgnr + 1000), -4) FROM rwsn_v_wpbez x WHERE x.gebouw_key = 203 AND x.vleugel = 'H'; CREATE OR REPLACE VIEW RWSN_V_GRAPH_WPBEZ_WR_A ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, VOLGORDE ) AS SELECT --x.gebouw_code || '/' || x.verdieping_code, x.verdieping_code, x.wp_bez, x.wp_tot - x.wp_bez, SUBSTR ('0000' || TO_CHAR (x.verdieping_volgnr + 1000), -4) FROM rwsn_v_wpbez x WHERE x.gebouw_key = 203 AND x.vleugel = 'A'; CREATE OR REPLACE VIEW RWSN_V_GRAPH_WPBEZ_WR_B ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, VOLGORDE ) AS SELECT --x.gebouw_code || '/' || x.verdieping_code, x.verdieping_code, x.wp_bez, x.wp_tot - x.wp_bez, SUBSTR ('0000' || TO_CHAR (x.verdieping_volgnr + 1000), -4) FROM rwsn_v_wpbez x WHERE x.gebouw_key = 203 AND x.vleugel = 'B'; CREATE OR REPLACE VIEW RWSN_V_GRAPH_WPBEZ_WR_C ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, VOLGORDE ) AS SELECT --x.gebouw_code || '/' || x.verdieping_code, x.verdieping_code, x.wp_bez, x.wp_tot - x.wp_bez, SUBSTR ('0000' || TO_CHAR (x.verdieping_volgnr + 1000), -4) FROM rwsn_v_wpbez x WHERE x.gebouw_key = 203 AND x.vleugel = 'C'; CREATE OR REPLACE VIEW RWSN_V_GRAPH_WPBEZ_WR_D ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, VOLGORDE ) AS SELECT --x.gebouw_code || '/' || x.verdieping_code, x.verdieping_code, x.wp_bez, x.wp_tot - x.wp_bez, SUBSTR ('0000' || TO_CHAR (x.verdieping_volgnr + 1000), -4) FROM rwsn_v_wpbez x WHERE x.gebouw_key = 203 AND x.vleugel = 'D'; CREATE OR REPLACE VIEW RWSN_V_GRAPH_WPBEZ_WR_E ( FCLT_XAS_, FCLT_YAS_, FCLT_YAS2_, VOLGORDE ) AS SELECT --x.gebouw_code || '/' || x.verdieping_code, x.verdieping_code, x.wp_bez, x.wp_tot - x.wp_bez, SUBSTR ('0000' || TO_CHAR (x.verdieping_volgnr + 1000), -4) FROM rwsn_v_wpbez x WHERE x.gebouw_key = 203 AND x.vleugel = 'E'; -- RWSN#36576/Toevoeging 1 /* Formatted on 10-8-2016 18:24:42 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW RWSN_V_UDR_BEZOEKER ( KEY, HOST, CONTACT, PLAATS_CODE, PLAATS_OMSCHRIJVING, REGIO, DISTRICT, LOCATIE_CODE, LOCATIE_NAAM, GEBOUW_CODE, GEBOUW_NAAM, VERDIEPING_CODE, VERDIEPING_NAAM, RUIMTE_CODE, RUIMTE_NAAM, AFSPRAAK_RUIMTE, AFSPRAAK_OPMERKING, BEZOEKER_NAAM, BEZOEKER_BEDRIJF, BEZOEK_VAN, BEZOEK_TOT, ACTIE, BEZOEKER_OPMERKING, BEZOEKER_BINNEN, BEZOEKER_BUITEN, PASNR, PARKEERPLAATS, FCLT_3D_LOCATIE_KEY, FCLT_3D_AFDELING_KEY, BEDRIJF_HOST, AFDELING1_HOST, AFDELING2_HOST, AFDELING_HOST, BEDRIJF_CONTACT, AFDELING1_CONTACT, AFDELING2_CONTACT, AFDELING_CONTACT, ZELFSERVICE, TYPE_VASTGOED ) AS SELECT x.bez_bezoekers_key, x.bez_afspraak_host, x.bez_afspraak_contact, x.alg_onroerendgoed_code, x.alg_onroerendgoed_omschrijving, x.alg_regio_omschrijving, x.alg_district_omschrijving, x.alg_locatie_code, x.alg_locatie_omschrijving, x.alg_gebouw_code, x.alg_gebouw_naam, x.alg_verdieping_code, x.alg_verdieping_omschrijving, x.alg_ruimte_nr, x.alg_ruimte_omschrijving, x.bez_afspraak_ruimte, x.bez_afspraak_opmerking, x.bezoeker_naam, x.bezoeker_bedrijf, x.bez_afspraak_datum, x.bez_afspraak_eind, x.bez_actie_omschrijving, x.bez_afspraak_opmerking bezoeker_opmerking, x.bez_bezoekers_done, x.bez_bezoekers_out, x.bez_bezoekers_pasnr, x.res_deel_omschrijving, x.alg_locatie_key, x.prs_afdeling_key, x.bedrijf_host, x.afdeling1_host, x.afdeling2_host, x.afdeling_host, x.bedrijf_contact, x.afdeling1_contact, x.afdeling2_contact, x.afdeling_contact, DECODE (x.prs_perslid_key, x.bez_afspraak_contact_key, 'Ja', 'Nee') zelfservice, tv.fac_usrdata_omschr FROM (SELECT b.bez_bezoekers_key, --COALESCE (p1.prs_perslid_naam_full, a.bez_afspraak_gastheer) bez_afspraak_host p1.prs_perslid_naam_full bez_afspraak_host, p2.prs_perslid_naam_full bez_afspraak_contact, og.alg_onroerendgoed_code, og.alg_onroerendgoed_omschrijving, r.alg_regio_omschrijving, d.alg_district_omschrijving, l.alg_locatie_code, l.alg_locatie_omschrijving, og.alg_gebouw_code, og.alg_gebouw_naam, og.alg_verdieping_code, og.alg_verdieping_omschrijving, og.alg_ruimte_nr, og.alg_ruimte_omschrijving, a.bez_afspraak_ruimte, a.bez_afspraak_opmerking, b.bez_afspraak_naam bezoeker_naam, b.bez_afspraak_bedrijf bezoeker_bedrijf, a.bez_afspraak_datum, a.bez_afspraak_eind, ba.bez_actie_omschrijving, b.bez_afspraak_opmerking bezoeker_opmerking, b.bez_bezoekers_done, b.bez_bezoekers_out, b.bez_bezoekers_pasnr, rd.res_deel_omschrijving, og.alg_locatie_key, pp1.prs_afdeling_key, bh.prs_bedrijf_naam bedrijf_host, ah1.prs_afdeling_omschrijving afdeling1_host, ah2.prs_afdeling_omschrijving afdeling2_host, ah.prs_afdeling_omschrijving afdeling_host, bc.prs_bedrijf_naam bedrijf_contact, ac1.prs_afdeling_omschrijving afdeling1_contact, ac2.prs_afdeling_omschrijving afdeling2_contact, ac.prs_afdeling_omschrijving afdeling_contact, a.bez_afspraak_key, a.prs_perslid_key, a.bez_afspraak_contact_key, og.alg_gebouw_key FROM bez_afspraak a, bez_bezoekers b, prs_v_perslid_fullnames_all p1, prs_v_perslid_fullnames_all p2, alg_v_allonrgoed_gegevens og, alg_locatie l, alg_district d, alg_regio r, bez_actie ba, res_rsv_deel rrd, res_deel rd, prs_perslid pp1, prs_v_afdeling_boom abh, prs_bedrijf bh, prs_afdeling ah1, prs_afdeling ah2, prs_afdeling ah, prs_perslid pp2, prs_v_afdeling_boom abc, prs_bedrijf bc, prs_afdeling ac1, prs_afdeling ac2, prs_afdeling ac WHERE a.bez_afspraak_key = b.bez_afspraak_key AND p1.prs_perslid_key(+) = a.bez_afspraak_host_key AND p2.prs_perslid_key = a.bez_afspraak_contact_key AND a.bez_actie_key = ba.bez_actie_key AND l.alg_district_key = d.alg_district_key AND d.alg_regio_key = r.alg_regio_key AND l.alg_locatie_key = og.alg_locatie_key AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys AND b.bez_bezoekers_key = rrd.bez_bezoekers_key(+) AND rrd.res_deel_key = rd.res_deel_key(+) AND a.bez_afspraak_host_key = pp1.prs_perslid_key AND pp1.prs_afdeling_key = abh.prs_afdeling_key AND abh.prs_bedrijf_key = bh.prs_bedrijf_key AND abh.prs_afdeling_key1 = ah1.prs_afdeling_key AND abh.prs_afdeling_key2 = ah2.prs_afdeling_key(+) AND abh.prs_afdeling_key = ah.prs_afdeling_key AND a.bez_afspraak_contact_key = pp2.prs_perslid_key AND pp2.prs_afdeling_key = abc.prs_afdeling_key AND abc.prs_bedrijf_key = bc.prs_bedrijf_key AND abc.prs_afdeling_key1 = ac1.prs_afdeling_key AND abc.prs_afdeling_key2 = ac2.prs_afdeling_key(+) AND abc.prs_afdeling_key = ac.prs_afdeling_key) x LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud WHERE ok.alg_onrgoed_niveau = 'G' AND ok.alg_kenmerk_key = 1068 -- Type vastgoed AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key)) tv ON x.alg_gebouw_key = tv.alg_onrgoed_key; -- RWSN#36576/Toevoeging 2 CREATE OR REPLACE VIEW RWSN_V_UDR_DEEL ( DEEL_KEY, DISCIPLINE, SOORT, GROEP, SOORTCODE, OMSCHRIJVING, PLAATSEIGENAAR, PLAATSEIGENAARTYPE, PLAATSAANDUIDING, EIGENAAR, EIG_EINDDATUM, -- RWS-specifiek EIG_AFDELING, -- RWS-specifiek EIG_BUDGETH_MAIL, -- RWS-specifiek 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, STATE, STATEDATE, FCLT_3D_DISCIPLINE_KEY, FCLT_3D_AFDELING_KEY, FCLT_3D_LOCATIE_KEY ) AS SELECT ii.ins_deel_key, lcl.x ('ins_discipline_omschrijving', id.ins_discipline_key, id.ins_discipline_omschrijving), lcl.x ('ins_srtdeel_omschrijving', s.ins_srtdeel_key, s.ins_srtdeel_omschrijving), lcl.x ('ins_srtgroep_omschrijving', sg.ins_srtgroep_key, sg.ins_srtgroep_omschrijving), s.ins_srtdeel_code, ii.ins_deel_omschrijving, COALESCE (ii.plaats, ii.eigenaar), ii.ins_alg_ruimte_type, ii.plaats, ii.eigenaar, ii.eig_einddatum, ii.eig_afdeling, ii.eig_budgeth_mail, ii.ins_deel_opmerking, ii.regio, ii.district, ii.locatie_code, ii.locatie_omschrijving, ii.locatie_plaats, ii.alg_gebouw_code, ii.alg_gebouw_omschrijving, ii.alg_terreinsector_code, ii.alg_terreinsector_omschrijving, ii.alg_verdieping_code, ii.alg_ruimte_nr, ii.prs_werkplek_volgnr, ii.prs_werkplek_omschrijving, DECODE (s.ins_srtdeel_uitleenbaar, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')), DECODE (ii.ins_alg_ruimte_key_org, NULL, lcl.l ('lcl_no'), lcl.l ('lcl_yes')), ii.res_deel_opmerking, pf.prs_perslid_naam_full, ii.ins_deel_vervaldatum, --DECODE (ii.ins_deel_actief, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')), ii.ins_deel_aantal, ii.ins_deel_state, ii.ins_deel_statedate, sg.ins_discipline_key, ii.ins_alg_ruimte_key, ii.alg_locatie_key FROM (SELECT i.ins_deel_key, i.ins_deel_omschrijving, i.ins_srtdeel_key, i.prs_perslid_key_beh, TO_CHAR (NULL) plaats, i.ins_deel_opmerking, i.ins_alg_ruimte_type, NULL regio, NULL district, NULL locatie_code, NULL locatie_omschrijving, NULL locatie_plaats, NULL alg_gebouw_code, NULL alg_gebouw_omschrijving, NULL alg_terreinsector_code, NULL alg_terreinsector_omschrijving, NULL alg_verdieping_code, NULL alg_ruimte_nr, NULL prs_werkplek_volgnr, NULL prs_werkplek_omschrijving, rd.res_deel_opmerking, i.ins_deel_vervaldatum, (SELECT d.prs_afdeling_omschrijving FROM prs_v_afdeling d WHERE prs_afdeling_key = i.ins_alg_ruimte_key) eigenaar, NULL eig_einddatum, NULL eig_afdeling, NULL eig_budgeth_mail, i.ins_discipline_key, i.ins_alg_ruimte_key, -- prs_afdeling_key van afdeling bij object NULL alg_locatie_key, --i.ins_deel_actief, i.ins_deel_aantal, i.ins_alg_ruimte_key_org, i.ins_deel_state, i.ins_deel_statedate FROM ins_deel i, (SELECT res_deel_key, res_ins_deel_key, res_deel_opmerking FROM res_deel WHERE res_deel_verwijder IS NULL) rd --prs_v_afdeling_boom d, --prs_bedrijf b WHERE i.ins_deel_verwijder IS NULL AND i.ins_deel_key = rd.res_ins_deel_key(+) AND i.ins_deel_module = 'INS' AND i.ins_deel_parent_key IS NULL --AND i.ins_alg_ruimte_key = d.prs_afdeling_key AND i.ins_alg_ruimte_type = 'A' UNION SELECT i.ins_deel_key, i.ins_deel_omschrijving, i.ins_srtdeel_key, i.prs_perslid_key_beh, TO_CHAR (NULL) plaats, i.ins_deel_opmerking, i.ins_alg_ruimte_type, NULL regio, NULL district, NULL locatie_code, NULL locatie_omschrijving, NULL locatie_plaats, NULL alg_gebouw_code, NULL alg_gebouw_omschrijving, NULL alg_terreinsector_code, NULL alg_terreinsector_omschrijving, NULL alg_verdieping_code, NULL alg_ruimte_nr, NULL prs_werkplek_volgnr, NULL prs_werkplek_omschrijving, rd.res_deel_opmerking, i.ins_deel_vervaldatum, pf.prs_perslid_naam_full eigenaar, p.prs_perslid_einddatum eig_einddatum, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving eig_afdeling, pb.prs_perslid_email eig_budgeth_mail, i.ins_discipline_key, a.prs_afdeling_key ins_alg_ruimte_key, -- prs_afdeling_key van persoon bij object NULL alg_locatie_key, --i.ins_deel_actief, i.ins_deel_aantal, i.ins_alg_ruimte_key_org, i.ins_deel_state, i.ins_deel_statedate FROM ins_deel i, (SELECT res_deel_key, res_ins_deel_key, res_deel_opmerking FROM res_deel WHERE res_deel_verwijder IS NULL) rd, prs_perslid p, prs_v_perslid_fullnames_all pf, --prs_v_afdeling_boom d prs_afdeling a, prs_kostenplaats kp, prs_perslid pb WHERE i.ins_deel_verwijder IS NULL AND i.ins_deel_key = rd.res_ins_deel_key(+) AND i.ins_deel_module = 'INS' AND i.ins_deel_parent_key IS NULL AND i.ins_alg_ruimte_key = p.prs_perslid_key AND p.prs_perslid_key = pf.prs_perslid_key --AND p.prs_afdeling_key = d.prs_afdeling_key AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND kp.prs_perslid_key = pb.prs_perslid_key(+) AND i.ins_alg_ruimte_type = 'P' UNION SELECT i.ins_deel_key, i.ins_deel_omschrijving, i.ins_srtdeel_key, i.prs_perslid_key_beh, TO_CHAR (NULL) plaats, i.ins_deel_opmerking, i.ins_alg_ruimte_type, NULL regio, NULL district, NULL locatie_code, NULL locatie_omschrijving, NULL locatie_plaats, NULL alg_gebouw_code, NULL alg_gebouw_omschrijving, NULL alg_terreinsector_code, NULL alg_terreinsector_omschrijving, NULL alg_verdieping_code, NULL alg_ruimte_nr, NULL prs_werkplek_volgnr, NULL prs_werkplek_omschrijving, rd.res_deel_opmerking, i.ins_deel_vervaldatum, c.prs_contactpersoon_naam eigenaar, NULL eig_einddatum, NULL eig_afdeling, NULL eig_budgeth_mail, NULL discipline_key, NULL ins_alg_ruimte_key, -- Stond alleen NULL NULL alg_locatie_key, --i.ins_deel_actief, i.ins_deel_aantal, i.ins_alg_ruimte_key_org, i.ins_deel_state, i.ins_deel_statedate FROM ins_deel i, (SELECT res_deel_key, res_ins_deel_key, res_deel_opmerking FROM res_deel WHERE res_deel_verwijder IS NULL) rd, prs_contactpersoon c WHERE i.ins_deel_verwijder IS NULL AND i.ins_deel_key = rd.res_ins_deel_key(+) AND i.ins_deel_module = 'INS' AND i.ins_deel_parent_key IS NULL AND i.ins_alg_ruimte_key = c.prs_contactpersoon_key AND i.ins_alg_ruimte_type = 'C' UNION SELECT i.ins_deel_key, i.ins_deel_omschrijving, i.ins_srtdeel_key, i.prs_perslid_key_beh, o.alg_plaatsaanduiding, i.ins_deel_opmerking, i.ins_alg_ruimte_type, re.alg_regio_omschrijving, di.alg_district_omschrijving, l.alg_locatie_code locatie_code, l.alg_locatie_omschrijving locatie_omschrijving, l.alg_locatie_plaats locatie_plaats, o.alg_gebouw_code, o.alg_gebouw_omschrijving, o.alg_terreinsector_code, o.alg_terreinsector_omschrijving, o.alg_verdieping_code, o.alg_ruimte_nr, o.prs_werkplek_volgnr, o.prs_werkplek_omschrijving, rd.res_deel_opmerking, i.ins_deel_vervaldatum, NULL eigenaar, NULL eig_einddatum, NULL eig_afdeling, NULL eig_budgeth_mail, i.ins_discipline_key, NULL ins_alg_ruimte_key, -- Stond alleen NULL l.alg_locatie_key, --i.ins_deel_actief, i.ins_deel_aantal, i.ins_alg_ruimte_key_org, i.ins_deel_state, i.ins_deel_statedate FROM ins_deel i, ins_v_alg_overzicht o, alg_locatie l, alg_district di, alg_regio re, (SELECT res_deel_key, res_ins_deel_key, res_deel_opmerking FROM res_deel WHERE res_deel_verwijder IS NULL) rd WHERE i.ins_deel_verwijder IS NULL AND i.ins_deel_module = 'INS' AND i.ins_deel_key = rd.res_ins_deel_key(+) AND i.ins_deel_parent_key IS NULL AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type AND i.ins_alg_ruimte_type IN ('T', 'R', 'W') AND o.alg_locatie_key = i.ins_alg_locatie_key AND i.ins_alg_locatie_key = l.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND di.alg_regio_key = re.alg_regio_key) ii, ins_srtdeel s, ins_srtgroep sg, ins_discipline id, prs_v_perslid_fullnames pf WHERE sg.ins_srtgroep_key = s.ins_srtgroep_key AND id.ins_discipline_key = sg.ins_discipline_key AND ii.prs_perslid_key_beh = pf.prs_perslid_key(+) AND s.ins_srtdeel_key = ii.ins_srtdeel_key; -- RSWN#54745: View voor vervallen cateringproducten. -- RWSN#62170: Toevoegen kolommen (en niet meer beperkt tot alleen verwijderde -- artikelen). CREATE OR REPLACE VIEW rwsn_v_udr_resdel ( res_rsv_artikel_key, res_rsv_artikel_aanmaak, res_rsv_artikel_levering, res_rsv_artikel_verwijder, catalogus, artikel_key, artikel, aantal, prijs, totaal, resid, res_verwijderd, art_verwijderd, naam_contact, afd1_contact, afd_contact, naam_host, afd1_host, afd_host, kostenplaats, extern_kenmerk, opmerking_kcc ) AS SELECT rra.res_rsv_artikel_key, rra.res_rsv_artikel_aanmaak, rra.res_rsv_artikel_levering, rra.res_rsv_artikel_verwijder, rd.ins_discipline_omschrijving catalogus, ra.res_artikel_key artikel_key, ra.res_artikel_omschrijving artikel, rra.res_rsv_artikel_aantal aant, ra.res_artikel_prijs, COALESCE (rra.res_rsv_artikel_prijs, (rra.res_rsv_artikel_aantal * ra.res_artikel_prijs)) tot, TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) resid, DECODE (rrr.res_rsv_ruimte_verwijder, NULL, 'Nee', 'Ja') reservering_verwijderd, DECODE (rra.res_rsv_artikel_verwijder, NULL, 'Nee', 'Ja') artikel_verwijderd, pfh.prs_perslid_naam_full naam_host, ah1.prs_afdeling_naam || ' - ' || ah1.prs_afdeling_omschrijving afd1_host, ah.prs_afdeling_naam || ' - ' || ah.prs_afdeling_omschrijving afd_host, pfc.prs_perslid_naam_full naam_contact, ac1.prs_afdeling_naam || ' - ' || ac1.prs_afdeling_omschrijving afd1_contact, ac.prs_afdeling_naam || ' - ' || ac.prs_afdeling_omschrijving afd_contact, kp.prs_kostenplaats_omschrijving kostenplaats, extern_kenmerk.res_kenmerkreservering_waarde, opmerking_kcc.res_kenmerkreservering_waarde FROM res_rsv_artikel rra, res_artikel ra, res_discipline rd, res_rsv_ruimte rrr, prs_perslid pc, prs_perslid ph, prs_v_perslid_fullnames pfc, prs_v_perslid_fullnames pfh, prs_v_afdeling_boom abc, prs_afdeling ac1, prs_afdeling ac, prs_v_afdeling_boom abh, prs_afdeling ah1, prs_afdeling ah, prs_kostenplaats kp, (SELECT * FROM res_v_aanwezigkenmerkwaarde WHERE res_kenmerk_key IN (161, 162, 163)) extern_kenmerk, (SELECT * FROM res_v_aanwezigkenmerkwaarde WHERE res_kenmerk_key IN (103, 104)) opmerking_kcc WHERE rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key AND pc.prs_perslid_key = pfc.prs_perslid_key AND pc.prs_afdeling_key = abc.prs_afdeling_key AND abc.prs_afdeling_key1 = ac1.prs_afdeling_key AND abc.prs_afdeling_key = ac.prs_afdeling_key AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key AND ph.prs_perslid_key = pfh.prs_perslid_key AND ph.prs_afdeling_key = abh.prs_afdeling_key AND abh.prs_afdeling_key1 = ah1.prs_afdeling_key AND abh.prs_afdeling_key = ah.prs_afdeling_key AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND rrr.res_rsv_ruimte_key = extern_kenmerk.res_rsv_ruimte_key(+) AND rrr.res_rsv_ruimte_key = opmerking_kcc.res_rsv_ruimte_key(+) -- AND rra.res_rsv_artikel_verwijder > TRUNC (ADD_MONTHS(SYSDATE,-12), 'yyyy') AND rrr.res_rsv_ruimte_tot > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy'); -- RWSN#39105: UDR view tbv. Inhuurproces-rapportages. /* Formatted on 17-2-2017 15:32:28 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_udr_inhuurproces ( nummer, mld_key, start_key, -- Workflow wf_start, email, naam, vakgroep, melding, aangemaakt, afgemeld, status, afm_persoon, afgewezen, -- Teruggestuurd ECO+P mld_sla, doorlooptijd, startdat, afm_voor_startdat, -- Afgehandeld voor startdatum einddat, onderdeel, jobnr, zaakid, levnaam, afgebroken ) AS SELECT x.ins_srtdiscipline_prefix || TO_CHAR (x.mld_melding_key) nummer, x.mld_melding_key mld_key, x.mld_melding_start_key wf, DECODE (x.mld_melding_key, x.mld_melding_start_key, 1, 0) wf_start, x.prs_perslid_email email, x.prs_perslid_naam_full naam, x.ins_discipline_omschrijving vakgroep, x.mld_stdmelding_omschrijving melding, x.mld_melding_datum mldnew, mldafm.fac_tracking_datum mldafm, x.mld_statuses_omschrijving status, pafm.prs_perslid_naam_full afmelder, mldrej.fac_tracking_datum mldrej, DECODE (x.mld_melding_t_uitvoertijd.eenheid, 'D', TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur), NULL) mld_sla, DECODE (mldafm.fac_tracking_datum, NULL, TO_NUMBER (NULL), fac.count_work_days_incltime (x.mld_melding_datum, mldafm.fac_tracking_datum)) doorlooptijd, fac.safe_to_date (sd.mld_kenmerkmelding_waarde, 'dd-mm-yyyy') startdat, CASE WHEN sd.mld_kenmerkmelding_waarde < TO_CHAR (mldafm.fac_tracking_datum, 'dd-mm-yyyy') THEN 1 ELSE 0 END afm_voor_startdat, fac.safe_to_date (ed.mld_kenmerkmelding_waarde, 'dd-mm-yyyy') einddat, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = oo.mld_kenmerkmelding_waarde) onderdeel, jn.mld_kenmerkmelding_waarde jobnr, zk.mld_kenmerkmelding_waarde zaakid, lv.mld_kenmerkmelding_waarde levnaam, DECODE (afgebroken.mld_melding_start_key, NULL, 0, 1) afgebroken FROM (SELECT m.mld_melding_key, m.mld_melding_start_key, sd.ins_srtdiscipline_prefix, p.prs_perslid_email, pf.prs_perslid_naam_full, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving, m.mld_melding_datum, ms.mld_statuses_omschrijving, m.mld_melding_t_uitvoertijd FROM mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd, prs_perslid p, prs_v_perslid_fullnames_all pf, mld_statuses ms WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND md.ins_srtdiscipline_key = 242 -- Tijdelijke Capaciteit AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_key = pf.prs_perslid_key AND m.mld_melding_status = ms.mld_statuses_key) x LEFT JOIN fac_tracking mldafm ON x.mld_melding_key = mldafm.fac_tracking_refkey AND mldafm.fac_srtnotificatie_key = 22 -- MLDAFM LEFT JOIN prs_v_perslid_fullnames pafm ON mldafm.prs_perslid_key = pafm.prs_perslid_key LEFT JOIN fac_tracking mldrej ON x.mld_melding_key = mldrej.fac_tracking_refkey AND mldrej.fac_srtnotificatie_key = 27 -- MLDREJ LEFT JOIN mld_v_aanwezigkenmerkmelding sd ON x.mld_melding_key = sd.mld_melding_key AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 3571 -- Startdatum AND mld_kenmerk_key = sd.mld_kenmerk_key) LEFT JOIN mld_v_aanwezigkenmerkmelding ed ON x.mld_melding_key = ed.mld_melding_key AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 364 -- Einddatum AND mld_kenmerk_key = ed.mld_kenmerk_key) LEFT JOIN mld_v_aanwezigkenmerkmelding oo ON x.mld_melding_key = oo.mld_melding_key AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 6052 -- Organisatieonderdeel (incl. PPO verdeling) AND mld_kenmerk_key = oo.mld_kenmerk_key) LEFT JOIN mld_v_aanwezigkenmerkmelding jn ON x.mld_melding_key = jn.mld_melding_key AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 2312 -- Job nr. AND mld_kenmerk_key = jn.mld_kenmerk_key) LEFT JOIN mld_v_aanwezigkenmerkmelding zk ON x.mld_melding_key = zk.mld_melding_key AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 6131 -- Zaak-ID AND mld_kenmerk_key = zk.mld_kenmerk_key) LEFT JOIN mld_v_aanwezigkenmerkmelding lv ON x.mld_melding_key = lv.mld_melding_key AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 1663 -- Leveranciersnaam AND mld_kenmerk_key = lv.mld_kenmerk_key) LEFT JOIN mld_melding afgebroken ON x.mld_melding_start_key = afgebroken.mld_melding_start_key AND afgebroken.mld_melding_status = 1; -- RWSN#40155: Overzicht op/doorvoering instroom nieuwe medewerkers. /* Formatted on 29-9-2017 14:42:18 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW rwsn_v_rap_doorvoer_instroom ( meldingsnummer, naam, dienst, onderdeel, afdeling, emailadres, voorletters, geboortenaam, functie, begindatum_aanstelling, einddatum_aanstelling, datum_afgemeld, tijdig ) AS SELECT TO_CHAR (x.mld_melding_key), x.prs_perslid_naam_full, rwsn.bepaal_dienst (x.prs_perslid_key), DECODE ( x.ins_srtdiscipline_key, 3, SUBSTR (x.ins_discipline_omschrijving, 1, INSTR (x.ins_discipline_omschrijving, '-') - 1), -- KCC 'FB'), x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving, x.prs_perslid_email, vl.mld_kenmerkmelding_waarde, gn.mld_kenmerkmelding_waarde, --em.mld_kenmerkmelding_waarde, (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = fun.mld_kenmerkmelding_waarde), --TO_DATE ('120916', 'ddmmyy'), bda.mld_kenmerkmelding_waarde, eda.mld_kenmerkmelding_waarde, mldafm.fac_tracking_datum, --fac.datumtijdplusuitvoertijd (mldafm.fac_tracking_datum, 5, 'D'), --DECODE (SIGN(TO_DATE ('120916', 'ddmmyy') - fac.datumtijdplusuitvoertijd (mldafm.fac_tracking_datum, 5, 'D')), -- -1, 'Nee', -- 'Ja'), DECODE (SIGN(fac.safe_to_date (bda.mld_kenmerkmelding_waarde, 'dd-mm-yyyy') - fac.datumtijdplusuitvoertijd (mldafm.fac_tracking_datum, 5, 'D')), -1, 'Nee', 'Ja') FROM (SELECT m.mld_melding_key, p.prs_perslid_key, p.prs_perslid_email, pf.prs_perslid_naam_full, a.prs_afdeling_naam, a.prs_afdeling_omschrijving, md.ins_srtdiscipline_key, md.ins_discipline_omschrijving FROM mld_melding m, mld_stdmelding sm, mld_discipline md, prs_perslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a WHERE m.mld_stdmelding_key = 9801 -- Aanvraag WID-scan AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND m.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_key = pf.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key) x LEFT JOIN mld_v_aanwezigkenmerkmelding vl ON x.mld_melding_key = vl.mld_melding_key AND vl.mld_kenmerk_key = 25668 -- Voorletters LEFT JOIN mld_v_aanwezigkenmerkmelding gn ON x.mld_melding_key = gn.mld_melding_key AND gn.mld_kenmerk_key = 25672 -- Geboortenaam (achternaam) --LEFT JOIN mld_v_aanwezigkenmerkmelding em -- ON x.mld_melding_key = em.mld_melding_key -- AND em.mld_kenmerk_key = 16148 -- E-mail adres (privé) LEFT JOIN mld_v_aanwezigkenmerkmelding fun ON x.mld_melding_key = fun.mld_melding_key AND fun.mld_kenmerk_key = 26208 -- Functie LEFT JOIN mld_v_aanwezigkenmerkmelding bda ON x.mld_melding_key = bda.mld_melding_key AND bda.mld_kenmerk_key = 26636 -- Begindatum aanstelling LEFT JOIN mld_v_aanwezigkenmerkmelding eda ON x.mld_melding_key = eda.mld_melding_key AND eda.mld_kenmerk_key = 26638 -- Einddatum aanstelling LEFT JOIN fac_tracking mldafm ON x.mld_melding_key = mldafm.fac_tracking_refkey AND mldafm.fac_srtnotificatie_key = 22 -- MLDAFM ; -- RWSN#39764: Kruisjeslijst producten per dienstniveau. CREATE OR REPLACE VIEW rwsn_v_rap_prod_per_dienstniv ( en15221_volgnr, en15221_code, en15221_omschrijving, dienstniveau, aantal ) AS SELECT x.fac_usrdata_volgnr, x.fac_usrdata_code, DECODE (INSTR (x.fac_usrdata_omschr, x.fac_usrdata_code), 1, TRIM (SUBSTR (x.fac_usrdata_omschr, INSTR (x.fac_usrdata_omschr, x.fac_usrdata_code) + LENGTH (x.fac_usrdata_code))), TRIM (x.fac_usrdata_omschr)), dn.mld_dienstniveau_omschr, dn.aantal FROM (SELECT fac_usrdata_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 3783) x -- CNT-EN15221-Prod LEFT JOIN ( SELECT kc.cnt_kenmerkcontract_waarde, dn.mld_dienstniveau_omschr, COUNT ( * ) aantal FROM cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc, cnt_kenmerk k, (SELECT cp.cnt_contract_key, l.mld_dienstniveau_key FROM cnt_contract_plaats cp, alg_v_aanweziglocatie l WHERE cp.cnt_alg_plaats_code = 'L' AND cp.cnt_alg_plaats_key = l.alg_locatie_key UNION ALL SELECT cp.cnt_contract_key, g.mld_dienstniveau_key FROM cnt_contract_plaats cp, alg_v_aanweziggebouw g WHERE cp.cnt_alg_plaats_code = 'G' AND cp.cnt_alg_plaats_key = g.alg_gebouw_key) cdn, mld_dienstniveau dn WHERE c.cnt_contract_key = kc.cnt_contract_key AND kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 101 -- EN15221 Product AND c.cnt_contract_key = cdn.cnt_contract_key AND cdn.mld_dienstniveau_key = dn.mld_dienstniveau_key GROUP BY kc.cnt_kenmerkcontract_waarde, dn.mld_dienstniveau_omschr) dn ON TO_CHAR (x.fac_usrdata_key) = dn.cnt_kenmerkcontract_waarde; -- RWSN#52081: Kruisjeslijst gebouwen per dienst. CREATE OR REPLACE VIEW rwsn_v_rap_gebouw_per_dienst ( --uc, bedrijf_naam, locatie_code, gebouw_code, gebouw_naam, dienst ) AS -- Bedrijfdiensten van alléén Uitvoerenden op alle locaties/gebouwen! SELECT DISTINCT --DECODE (b.prs_bedrijf_uitvoerende, 1, 'U', 'C'), b.prs_bedrijf_naam, l.alg_locatie_code, g.alg_gebouw_code, g.alg_gebouw_naam, d.prs_dienst_omschrijving FROM prs_bedrijfdienstlocatie bdl, prs_v_aanwezigbedrijf b, prs_dienst d, alg_v_aanweziggebouw g, alg_locatie l WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key --AND (b.prs_bedrijf_uitvoerende = 1 OR b.prs_bedrijf_contract = 1) AND b.prs_bedrijf_uitvoerende = 1 AND bdl.prs_dienst_key = d.prs_dienst_key AND bdl.alg_locatie_key IS NULL AND bdl.alg_gebouw_key IS NULL AND g.alg_locatie_key = l.alg_locatie_key UNION ALL -- Bedrijfdiensten op bepaalde locaties/gebouwen (via locatie)! SELECT DISTINCT --DECODE (b.prs_bedrijf_uitvoerende, 1, 'U', 'C'), b.prs_bedrijf_naam, l.alg_locatie_code, g.alg_gebouw_code, g.alg_gebouw_naam, d.prs_dienst_omschrijving FROM prs_bedrijfdienstlocatie bdl, prs_v_aanwezigbedrijf b, prs_dienst d, alg_v_aanweziggebouw g, alg_locatie l WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key --AND (b.prs_bedrijf_uitvoerende = 1 OR b.prs_bedrijf_contract = 1) AND b.prs_bedrijf_uitvoerende = 1 AND bdl.prs_dienst_key = d.prs_dienst_key AND bdl.alg_locatie_key = g.alg_locatie_key AND g.alg_locatie_key = l.alg_locatie_key UNION ALL -- Bedrijfdiensten op bepaalde locaties/gebouwen (via gebouw)! SELECT DISTINCT --DECODE (b.prs_bedrijf_uitvoerende, 1, 'U', 'C'), b.prs_bedrijf_naam, l.alg_locatie_code, g.alg_gebouw_code, g.alg_gebouw_naam, d.prs_dienst_omschrijving FROM prs_bedrijfdienstlocatie bdl, prs_v_aanwezigbedrijf b, prs_dienst d, alg_v_aanweziggebouw g, alg_locatie l WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key --AND (b.prs_bedrijf_uitvoerende = 1 OR b.prs_bedrijf_contract = 1) AND b.prs_bedrijf_uitvoerende = 1 AND bdl.prs_dienst_key = d.prs_dienst_key AND bdl.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key; -- RWSN#51878: Onboarding-noti (CUST11 t/m CUST20 voorgedefinieerd, maar mogen -- er meer worden) naar nieuwe medewerkers zoals geconfigureerd in -- Eigen tabel met key=5. CREATE OR REPLACE VIEW rwsn_v_noti_onboarding ( code, sender, receiver, text, key, xkey, xsender, xemail, xmobile, attachments ) AS SELECT sn.fac_srtnotificatie_code, NULL, NULL, REPLACE (sn.fac_srtnotificatie_oms, '##AANT##', TO_CHAR (FLOOR (ud.fac_usrdata_prijs))), p.prs_perslid_key, NULL, ud.fac_usrdata_omschr, p.prs_perslid_email, NULL, NULL FROM fac_v_aanwezigusrdata ud, fac_srtnotificatie sn, prs_v_aanwezigperslid p, prs_srtperslid sp, prs_v_afdeling_boom ab WHERE ud.fac_usrtab_key = 5 -- OnboardingNoti-tabel AND COALESCE (ud.fac_usrdata_vervaldatum, SYSDATE) > TRUNC (SYSDATE) -- Enabled AND ud.fac_usrdata_prijs >= 0 -- Notificeren als prijs=#dagen > 0 AND ud.fac_usrdata_upper = sn.fac_srtnotificatie_code AND INSTR (UPPER (p.prs_perslid_email), '@RWS.NL') > 0 -- RWS-er AND EXISTS -- Via import binnengelopen (met RIN) (SELECT 1 FROM prs_v_aanwezigkenmerklink WHERE prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = 1160) -- RIN AND p.prs_srtperslid_key = sp.prs_srtperslid_key AND TRIM (sp.prs_srtperslid_upper) NOT IN ('EXTERNE MEDEWERKER', 'STAGIAIR', 'SERVICE PERSONEEL') AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key <> 3 -- Geen KNMI-er AND TRUNC (p.prs_perslid_ingangsdatum + ud.fac_usrdata_prijs) = TRUNC (SYSDATE); -- RWSN#52295: Gebouwgegevens zonder vink-velden (tbv. UDR). CREATE OR REPLACE VIEW rwsn_v_rap_gebouwgeg AS WITH ok AS (SELECT k.vnr, k.alg_kenmerk_key, k.alg_kenmerk_omschrijving, ok.alg_onrgoed_key, ok.waarde FROM (SELECT ROWNUM vnr, alg_kenmerk_key, alg_kenmerk_omschrijving FROM ( SELECT k.alg_kenmerk_key, k.alg_kenmerk_omschrijving, k.alg_kenmerk_aanmaak FROM alg_kenmerk k WHERE k.alg_kenmerk_verwijder IS NULL AND k.alg_kenmerk_niveau = 'G' AND k.alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B') ORDER BY 3)) k LEFT JOIN (SELECT ok.alg_kenmerk_key, ok.alg_onrgoed_key, DECODE (k.alg_kenmerk_kenmerktype, 'R', fac.getdomeinwaarde (k.fac_kenmerkdomein_key, ok.alg_onrgoedkenmerk_waarde), 'S', fac.getdomeinwaarde (k.fac_kenmerkdomein_key, ok.alg_onrgoedkenmerk_waarde), ok.alg_onrgoedkenmerk_waarde) waarde FROM alg_v_aanwezigonrgoedkenmerk ok, alg_kenmerk k WHERE ok.alg_kenmerk_key = k.alg_kenmerk_key AND k.alg_kenmerk_niveau = 'G') ok ON k.alg_kenmerk_key = ok.alg_kenmerk_key) SELECT 0 sortering, 'regio' regio, 'district' district, 'locatiecode' locatiecode, 'locatieoms' locatieoms, 'gebouwcode' gebouwcode, 'gebouwnaam' gebouwnaam, 'gebouwfunctie' gebouwfunctie, 'gebouwopmerking' gebouwopmerking, 'dienstniveau' dienstniveau, 'verantw1' verantw1, 'verantw2' verantw2, 'email' email, 'bruto_vloeropp' bruto_vloeropp, 'omtrek' omtrek, 'inhoud' inhoud, 'gebouw_x' gebouw_x, 'gebouw_y' gebouw_y, 'vervaldatum' vervaldatum, 'bezoekbaar' bezoekbaar, 'beginuur' beginuur, 'einduur' einduur, 'werkdagen' werkdagen, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 1) kenmerk1, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 2) kenmerk2, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 3) kenmerk3, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 4) kenmerk4, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 5) kenmerk5, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 6) kenmerk6, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 7) kenmerk7, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 8) kenmerk8, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 9) kenmerk9, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 10) kenmerk10, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 11) kenmerk11, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 12) kenmerk12, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 13) kenmerk13, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 14) kenmerk14, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 15) kenmerk15, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 16) kenmerk16, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 17) kenmerk17, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 18) kenmerk18, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 19) kenmerk19, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 20) kenmerk20, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 21) kenmerk21, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 22) kenmerk22, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 23) kenmerk23, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 24) kenmerk24, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 25) kenmerk25, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 26) kenmerk26, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 27) kenmerk27, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 28) kenmerk28, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 29) kenmerk29, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 30) kenmerk30, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 31) kenmerk31, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 32) kenmerk32, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 33) kenmerk33, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 34) kenmerk34, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 35) kenmerk35, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 36) kenmerk36, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 37) kenmerk37, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 38) kenmerk38, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 39) kenmerk39, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 40) kenmerk40, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 41) kenmerk41, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 42) kenmerk42, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 43) kenmerk43, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 44) kenmerk44, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 45) kenmerk45, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 46) kenmerk46, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 47) kenmerk47, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 48) kenmerk48, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 49) kenmerk49, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 50) kenmerk50, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 51) kenmerk51, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 52) kenmerk52, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 53) kenmerk53, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 54) kenmerk54, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 55) kenmerk55, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 56) kenmerk56, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 57) kenmerk57, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 58) kenmerk58, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 59) kenmerk59, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 60) kenmerk60, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 61) kenmerk61, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 62) kenmerk62, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 63) kenmerk63, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 64) kenmerk64, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 65) kenmerk65, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 66) kenmerk66, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 67) kenmerk67, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 68) kenmerk68, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 69) kenmerk69, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 70) kenmerk70, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 71) kenmerk71, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 72) kenmerk72, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 73) kenmerk73, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 74) kenmerk74, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 75) kenmerk75, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 76) kenmerk76, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 77) kenmerk77, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 78) kenmerk78, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 79) kenmerk79, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 80) kenmerk80 FROM DUAL UNION ALL SELECT 1 sortering, x.alg_regio_omschrijving regio, x.alg_district_omschrijving district, x.alg_locatie_code locatiecode, x.alg_locatie_omschrijving locatieoms, x.alg_gebouw_code gebouwcode, x.alg_gebouw_naam gebouwnaam, x.alg_srtgebouw_omschrijving gebouwfunctie, x.alg_gebouw_opmerking gebouwopmerking, x.mld_dienstniveau_omschr dienstniveau, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames WHERE prs_perslid_key = x.prs_perslid_key_verantw) verantw1, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames WHERE prs_perslid_key = x.prs_perslid_key_verantw2) verantw2, x.alg_gebouw_email email, TO_CHAR (x.alg_gebouw_bruto_vloeropp) bruto_vloeropp, TO_CHAR (x.alg_gebouw_omtrek) omtrek, TO_CHAR (x.alg_gebouw_inhoud) inhoud, TO_CHAR (x.alg_gebouw_x) gebouw_x, TO_CHAR (x.alg_gebouw_y) gebouw_y, TO_CHAR (x.alg_gebouw_vervaldatum, 'dd-mm-yyyy') vervaldatum, TO_CHAR (x.alg_gebouw_bez) bezoekbaar, TO_CHAR (x.alg_gebouw_beginuur) beginuur, TO_CHAR (x.alg_gebouw_einduur) einduur, TO_CHAR (x.alg_gebouw_werkdagen) werkdagen, k1.waarde kenmerk1, k2.waarde kenmerk2, k3.waarde kenmerk3, k4.waarde kenmerk4, k5.waarde kenmerk5, k6.waarde kenmerk6, k7.waarde kenmerk7, k8.waarde kenmerk8, k9.waarde kenmerk9, k10.waarde kenmerk10, k11.waarde kenmerk11, k12.waarde kenmerk12, k13.waarde kenmerk13, k14.waarde kenmerk14, k15.waarde kenmerk15, k16.waarde kenmerk16, k17.waarde kenmerk17, k18.waarde kenmerk18, k19.waarde kenmerk19, k20.waarde kenmerk20, k21.waarde kenmerk21, k22.waarde kenmerk22, k23.waarde kenmerk23, k24.waarde kenmerk24, k25.waarde kenmerk25, k26.waarde kenmerk26, k27.waarde kenmerk27, k28.waarde kenmerk28, k29.waarde kenmerk29, k30.waarde kenmerk30, k31.waarde kenmerk31, k32.waarde kenmerk32, k33.waarde kenmerk33, k34.waarde kenmerk34, k35.waarde kenmerk35, k36.waarde kenmerk36, k37.waarde kenmerk37, k38.waarde kenmerk38, k39.waarde kenmerk39, k40.waarde kenmerk40, k41.waarde kenmerk41, k42.waarde kenmerk42, k43.waarde kenmerk43, k44.waarde kenmerk44, k45.waarde kenmerk45, k46.waarde kenmerk46, k47.waarde kenmerk47, k48.waarde kenmerk48, k49.waarde kenmerk49, k50.waarde kenmerk50, k51.waarde kenmerk51, k52.waarde kenmerk52, k53.waarde kenmerk53, k54.waarde kenmerk54, k55.waarde kenmerk55, k56.waarde kenmerk56, k57.waarde kenmerk57, k58.waarde kenmerk58, k59.waarde kenmerk59, k60.waarde kenmerk60, k61.waarde kenmerk61, k62.waarde kenmerk62, k63.waarde kenmerk63, k64.waarde kenmerk64, k65.waarde kenmerk65, k66.waarde kenmerk66, k67.waarde kenmerk67, k68.waarde kenmerk68, k69.waarde kenmerk69, k70.waarde kenmerk70, k71.waarde kenmerk71, k72.waarde kenmerk72, k73.waarde kenmerk73, k74.waarde kenmerk74, k75.waarde kenmerk75, k76.waarde kenmerk76, k77.waarde kenmerk77, k78.waarde kenmerk78, k79.waarde kenmerk79, k80.waarde kenmerk80 FROM (SELECT g.alg_gebouw_key, g.alg_gebouw_naam, sg.alg_srtgebouw_omschrijving, g.alg_gebouw_code, g.alg_gebouw_opmerking, kp.prs_kostenplaats_omschrijving, g.alg_gebouw_ordernr, -- Opdrachtnr dn.mld_dienstniveau_omschr, -- Dienstniveau g.prs_perslid_key_verantw, -- Verantwoordelijke g.prs_perslid_key_verantw2, -- Verantwoordelijke 2 g.alg_gebouw_email, -- E-mail g.alg_gebouw_bruto_vloeropp, -- Bebouwd opp. g.alg_gebouw_omtrek, -- Omtrek g.alg_gebouw_inhoud, -- Inhoud g.alg_gebouw_x, -- X-coördinaat g.alg_gebouw_y, -- Y-coördinaat g.alg_gebouw_vervaldatum, -- Vervaldatum g.alg_gebouw_bez, -- Bezoekbaar g.alg_gebouw_beginuur, -- Open vanaf g.alg_gebouw_einduur, -- Open tot g.alg_gebouw_werkdagen, -- Alleen op werkdagen l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, l.alg_locatie_adres, l.alg_locatie_postcode, l.alg_locatie_plaats, l.alg_locatie_verantw, l.alg_locatie_verantw_tel, d.alg_district_omschrijving, r.alg_regio_omschrijving FROM alg_regio r, alg_district d, alg_locatie l, alg_v_aanweziggebouw g, alg_srtgebouw sg, prs_v_aanwezigkostenplaats kp, mld_dienstniveau dn WHERE r.alg_regio_key = d.alg_regio_key AND d.alg_district_key = l.alg_district_key AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_upper NOT LIKE 'ZZ%' AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key AND g.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND g.mld_dienstniveau_key = dn.mld_dienstniveau_key(+)) x LEFT JOIN ok k1 ON x.alg_gebouw_key = k1.alg_onrgoed_key AND k1.vnr = 1 LEFT JOIN ok k2 ON x.alg_gebouw_key = k2.alg_onrgoed_key AND k2.vnr = 2 LEFT JOIN ok k3 ON x.alg_gebouw_key = k3.alg_onrgoed_key AND k3.vnr = 3 LEFT JOIN ok k4 ON x.alg_gebouw_key = k4.alg_onrgoed_key AND k4.vnr = 4 LEFT JOIN ok k5 ON x.alg_gebouw_key = k5.alg_onrgoed_key AND k5.vnr = 5 LEFT JOIN ok k6 ON x.alg_gebouw_key = k6.alg_onrgoed_key AND k6.vnr = 6 LEFT JOIN ok k7 ON x.alg_gebouw_key = k7.alg_onrgoed_key AND k7.vnr = 7 LEFT JOIN ok k8 ON x.alg_gebouw_key = k8.alg_onrgoed_key AND k8.vnr = 8 LEFT JOIN ok k9 ON x.alg_gebouw_key = k9.alg_onrgoed_key AND k9.vnr = 9 LEFT JOIN ok k10 ON x.alg_gebouw_key = k10.alg_onrgoed_key AND k10.vnr = 10 LEFT JOIN ok k11 ON x.alg_gebouw_key = k11.alg_onrgoed_key AND k11.vnr = 11 LEFT JOIN ok k12 ON x.alg_gebouw_key = k12.alg_onrgoed_key AND k12.vnr = 12 LEFT JOIN ok k13 ON x.alg_gebouw_key = k13.alg_onrgoed_key AND k13.vnr = 13 LEFT JOIN ok k14 ON x.alg_gebouw_key = k14.alg_onrgoed_key AND k14.vnr = 14 LEFT JOIN ok k15 ON x.alg_gebouw_key = k15.alg_onrgoed_key AND k15.vnr = 15 LEFT JOIN ok k16 ON x.alg_gebouw_key = k16.alg_onrgoed_key AND k16.vnr = 16 LEFT JOIN ok k17 ON x.alg_gebouw_key = k17.alg_onrgoed_key AND k17.vnr = 17 LEFT JOIN ok k18 ON x.alg_gebouw_key = k18.alg_onrgoed_key AND k18.vnr = 18 LEFT JOIN ok k19 ON x.alg_gebouw_key = k19.alg_onrgoed_key AND k19.vnr = 19 LEFT JOIN ok k20 ON x.alg_gebouw_key = k20.alg_onrgoed_key AND k20.vnr = 20 LEFT JOIN ok k21 ON x.alg_gebouw_key = k21.alg_onrgoed_key AND k21.vnr = 21 LEFT JOIN ok k22 ON x.alg_gebouw_key = k22.alg_onrgoed_key AND k22.vnr = 22 LEFT JOIN ok k23 ON x.alg_gebouw_key = k23.alg_onrgoed_key AND k23.vnr = 23 LEFT JOIN ok k24 ON x.alg_gebouw_key = k24.alg_onrgoed_key AND k24.vnr = 24 LEFT JOIN ok k25 ON x.alg_gebouw_key = k25.alg_onrgoed_key AND k25.vnr = 25 LEFT JOIN ok k26 ON x.alg_gebouw_key = k26.alg_onrgoed_key AND k26.vnr = 26 LEFT JOIN ok k27 ON x.alg_gebouw_key = k27.alg_onrgoed_key AND k27.vnr = 27 LEFT JOIN ok k28 ON x.alg_gebouw_key = k28.alg_onrgoed_key AND k28.vnr = 28 LEFT JOIN ok k29 ON x.alg_gebouw_key = k29.alg_onrgoed_key AND k29.vnr = 29 LEFT JOIN ok k30 ON x.alg_gebouw_key = k30.alg_onrgoed_key AND k30.vnr = 30 LEFT JOIN ok k31 ON x.alg_gebouw_key = k31.alg_onrgoed_key AND k31.vnr = 31 LEFT JOIN ok k32 ON x.alg_gebouw_key = k32.alg_onrgoed_key AND k32.vnr = 32 LEFT JOIN ok k33 ON x.alg_gebouw_key = k33.alg_onrgoed_key AND k33.vnr = 33 LEFT JOIN ok k34 ON x.alg_gebouw_key = k34.alg_onrgoed_key AND k34.vnr = 34 LEFT JOIN ok k35 ON x.alg_gebouw_key = k35.alg_onrgoed_key AND k35.vnr = 35 LEFT JOIN ok k36 ON x.alg_gebouw_key = k36.alg_onrgoed_key AND k36.vnr = 36 LEFT JOIN ok k37 ON x.alg_gebouw_key = k37.alg_onrgoed_key AND k37.vnr = 37 LEFT JOIN ok k38 ON x.alg_gebouw_key = k38.alg_onrgoed_key AND k38.vnr = 38 LEFT JOIN ok k39 ON x.alg_gebouw_key = k39.alg_onrgoed_key AND k39.vnr = 39 LEFT JOIN ok k40 ON x.alg_gebouw_key = k40.alg_onrgoed_key AND k40.vnr = 40 LEFT JOIN ok k41 ON x.alg_gebouw_key = k41.alg_onrgoed_key AND k41.vnr = 41 LEFT JOIN ok k42 ON x.alg_gebouw_key = k42.alg_onrgoed_key AND k42.vnr = 42 LEFT JOIN ok k43 ON x.alg_gebouw_key = k43.alg_onrgoed_key AND k43.vnr = 43 LEFT JOIN ok k44 ON x.alg_gebouw_key = k44.alg_onrgoed_key AND k44.vnr = 44 LEFT JOIN ok k45 ON x.alg_gebouw_key = k45.alg_onrgoed_key AND k45.vnr = 45 LEFT JOIN ok k46 ON x.alg_gebouw_key = k46.alg_onrgoed_key AND k46.vnr = 46 LEFT JOIN ok k47 ON x.alg_gebouw_key = k47.alg_onrgoed_key AND k47.vnr = 47 LEFT JOIN ok k48 ON x.alg_gebouw_key = k48.alg_onrgoed_key AND k48.vnr = 48 LEFT JOIN ok k49 ON x.alg_gebouw_key = k49.alg_onrgoed_key AND k49.vnr = 49 LEFT JOIN ok k50 ON x.alg_gebouw_key = k50.alg_onrgoed_key AND k50.vnr = 50 LEFT JOIN ok k51 ON x.alg_gebouw_key = k51.alg_onrgoed_key AND k51.vnr = 51 LEFT JOIN ok k52 ON x.alg_gebouw_key = k52.alg_onrgoed_key AND k52.vnr = 52 LEFT JOIN ok k53 ON x.alg_gebouw_key = k53.alg_onrgoed_key AND k53.vnr = 53 LEFT JOIN ok k54 ON x.alg_gebouw_key = k54.alg_onrgoed_key AND k54.vnr = 54 LEFT JOIN ok k55 ON x.alg_gebouw_key = k55.alg_onrgoed_key AND k55.vnr = 55 LEFT JOIN ok k56 ON x.alg_gebouw_key = k56.alg_onrgoed_key AND k56.vnr = 56 LEFT JOIN ok k57 ON x.alg_gebouw_key = k57.alg_onrgoed_key AND k57.vnr = 57 LEFT JOIN ok k58 ON x.alg_gebouw_key = k58.alg_onrgoed_key AND k58.vnr = 58 LEFT JOIN ok k59 ON x.alg_gebouw_key = k59.alg_onrgoed_key AND k59.vnr = 59 LEFT JOIN ok k60 ON x.alg_gebouw_key = k60.alg_onrgoed_key AND k60.vnr = 60 LEFT JOIN ok k61 ON x.alg_gebouw_key = k61.alg_onrgoed_key AND k61.vnr = 61 LEFT JOIN ok k62 ON x.alg_gebouw_key = k62.alg_onrgoed_key AND k62.vnr = 62 LEFT JOIN ok k63 ON x.alg_gebouw_key = k63.alg_onrgoed_key AND k63.vnr = 63 LEFT JOIN ok k64 ON x.alg_gebouw_key = k64.alg_onrgoed_key AND k64.vnr = 64 LEFT JOIN ok k65 ON x.alg_gebouw_key = k65.alg_onrgoed_key AND k65.vnr = 65 LEFT JOIN ok k66 ON x.alg_gebouw_key = k66.alg_onrgoed_key AND k66.vnr = 66 LEFT JOIN ok k67 ON x.alg_gebouw_key = k67.alg_onrgoed_key AND k67.vnr = 67 LEFT JOIN ok k68 ON x.alg_gebouw_key = k68.alg_onrgoed_key AND k68.vnr = 68 LEFT JOIN ok k69 ON x.alg_gebouw_key = k69.alg_onrgoed_key AND k69.vnr = 69 LEFT JOIN ok k70 ON x.alg_gebouw_key = k70.alg_onrgoed_key AND k70.vnr = 70 LEFT JOIN ok k71 ON x.alg_gebouw_key = k71.alg_onrgoed_key AND k71.vnr = 71 LEFT JOIN ok k72 ON x.alg_gebouw_key = k72.alg_onrgoed_key AND k72.vnr = 72 LEFT JOIN ok k73 ON x.alg_gebouw_key = k73.alg_onrgoed_key AND k73.vnr = 73 LEFT JOIN ok k74 ON x.alg_gebouw_key = k74.alg_onrgoed_key AND k74.vnr = 74 LEFT JOIN ok k75 ON x.alg_gebouw_key = k75.alg_onrgoed_key AND k75.vnr = 75 LEFT JOIN ok k76 ON x.alg_gebouw_key = k76.alg_onrgoed_key AND k76.vnr = 76 LEFT JOIN ok k77 ON x.alg_gebouw_key = k77.alg_onrgoed_key AND k77.vnr = 77 LEFT JOIN ok k78 ON x.alg_gebouw_key = k78.alg_onrgoed_key AND k78.vnr = 78 LEFT JOIN ok k79 ON x.alg_gebouw_key = k79.alg_onrgoed_key AND k79.vnr = 79 LEFT JOIN ok k80 ON x.alg_gebouw_key = k80.alg_onrgoed_key AND k80.vnr = 80; -- RWSN#74240: Gebouwgegevens#2 met alleen vink-velden (tbv. UDR). CREATE OR REPLACE VIEW rwsn_v_rap_gebouwgeg2 AS WITH ok AS (SELECT k.vnr, k.alg_kenmerk_key, k.alg_kenmerk_omschrijving, ok.alg_onrgoed_key, ok.waarde FROM (SELECT ROWNUM vnr, alg_kenmerk_key, alg_kenmerk_omschrijving FROM ( SELECT k.alg_kenmerk_key, k.alg_kenmerk_omschrijving, k.alg_kenmerk_aanmaak FROM alg_kenmerk k WHERE k.alg_kenmerk_verwijder IS NULL AND k.alg_kenmerk_niveau = 'G' AND k.alg_kenmerk_kenmerktype = 'V' ORDER BY 3)) k LEFT JOIN (SELECT ok.alg_kenmerk_key, ok.alg_onrgoed_key, DECODE (k.alg_kenmerk_kenmerktype, 'R', fac.getdomeinwaarde (k.fac_kenmerkdomein_key, ok.alg_onrgoedkenmerk_waarde), 'S', fac.getdomeinwaarde (k.fac_kenmerkdomein_key, ok.alg_onrgoedkenmerk_waarde), ok.alg_onrgoedkenmerk_waarde) waarde FROM alg_v_aanwezigonrgoedkenmerk ok, alg_kenmerk k WHERE ok.alg_kenmerk_key = k.alg_kenmerk_key AND k.alg_kenmerk_niveau = 'G') ok ON k.alg_kenmerk_key = ok.alg_kenmerk_key) SELECT 0 sortering, 'regio' regio, 'district' district, 'locatiecode' locatiecode, 'locatieoms' locatieoms, 'gebouwcode' gebouwcode, 'gebouwnaam' gebouwnaam, 'gebouwfunctie' gebouwfunctie, 'gebouwopmerking' gebouwopmerking, 'dienstniveau' dienstniveau, 'verantw1' verantw1, 'verantw2' verantw2, 'email' email, 'bruto_vloeropp' bruto_vloeropp, 'omtrek' omtrek, 'inhoud' inhoud, 'gebouw_x' gebouw_x, 'gebouw_y' gebouw_y, 'vervaldatum' vervaldatum, 'bezoekbaar' bezoekbaar, 'beginuur' beginuur, 'einduur' einduur, 'werkdagen' werkdagen, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 1) kenmerk1, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 2) kenmerk2, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 3) kenmerk3, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 4) kenmerk4, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 5) kenmerk5, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 6) kenmerk6, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 7) kenmerk7, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 8) kenmerk8, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 9) kenmerk9, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 10) kenmerk10, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 11) kenmerk11, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 12) kenmerk12, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 13) kenmerk13, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 14) kenmerk14, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 15) kenmerk15, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 16) kenmerk16, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 17) kenmerk17, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 18) kenmerk18, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 19) kenmerk19, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 20) kenmerk20, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 21) kenmerk21, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 22) kenmerk22, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 23) kenmerk23, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 24) kenmerk24, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 25) kenmerk25, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 26) kenmerk26, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 27) kenmerk27, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 28) kenmerk28, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 29) kenmerk29, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 30) kenmerk30, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 31) kenmerk31, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 32) kenmerk32, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 33) kenmerk33, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 34) kenmerk34, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 35) kenmerk35, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 36) kenmerk36, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 37) kenmerk37, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 38) kenmerk38, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 39) kenmerk39, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 40) kenmerk40, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 41) kenmerk41, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 42) kenmerk42, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 43) kenmerk43, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 44) kenmerk44, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 45) kenmerk45, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 46) kenmerk46, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 47) kenmerk47, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 48) kenmerk48, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 49) kenmerk49, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 50) kenmerk50, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 51) kenmerk51, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 52) kenmerk52, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 53) kenmerk53, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 54) kenmerk54, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 55) kenmerk55, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 56) kenmerk56, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 57) kenmerk57, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 58) kenmerk58, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 59) kenmerk59, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 60) kenmerk60, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 61) kenmerk61, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 62) kenmerk62, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 63) kenmerk63, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 64) kenmerk64, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 65) kenmerk65, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 66) kenmerk66, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 67) kenmerk67, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 68) kenmerk68, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 69) kenmerk69, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 70) kenmerk70, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 71) kenmerk71, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 72) kenmerk72, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 73) kenmerk73, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 74) kenmerk74, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 75) kenmerk75, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 76) kenmerk76, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 77) kenmerk77, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 78) kenmerk78, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 79) kenmerk79, (SELECT MAX (alg_kenmerk_omschrijving) FROM ok WHERE vnr = 80) kenmerk80 FROM DUAL UNION ALL SELECT 1 sortering, x.alg_regio_omschrijving regio, x.alg_district_omschrijving district, x.alg_locatie_code locatiecode, x.alg_locatie_omschrijving locatieoms, x.alg_gebouw_code gebouwcode, x.alg_gebouw_naam gebouwnaam, x.alg_srtgebouw_omschrijving gebouwfunctie, x.alg_gebouw_opmerking gebouwopmerking, x.mld_dienstniveau_omschr dienstniveau, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames WHERE prs_perslid_key = x.prs_perslid_key_verantw) verantw1, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames WHERE prs_perslid_key = x.prs_perslid_key_verantw2) verantw2, x.alg_gebouw_email email, TO_CHAR (x.alg_gebouw_bruto_vloeropp) bruto_vloeropp, TO_CHAR (x.alg_gebouw_omtrek) omtrek, TO_CHAR (x.alg_gebouw_inhoud) inhoud, TO_CHAR (x.alg_gebouw_x) gebouw_x, TO_CHAR (x.alg_gebouw_y) gebouw_y, TO_CHAR (x.alg_gebouw_vervaldatum, 'dd-mm-yyyy') vervaldatum, TO_CHAR (x.alg_gebouw_bez) bezoekbaar, TO_CHAR (x.alg_gebouw_beginuur) beginuur, TO_CHAR (x.alg_gebouw_einduur) einduur, TO_CHAR (x.alg_gebouw_werkdagen) werkdagen, k1.waarde kenmerk1, k2.waarde kenmerk2, k3.waarde kenmerk3, k4.waarde kenmerk4, k5.waarde kenmerk5, k6.waarde kenmerk6, k7.waarde kenmerk7, k8.waarde kenmerk8, k9.waarde kenmerk9, k10.waarde kenmerk10, k11.waarde kenmerk11, k12.waarde kenmerk12, k13.waarde kenmerk13, k14.waarde kenmerk14, k15.waarde kenmerk15, k16.waarde kenmerk16, k17.waarde kenmerk17, k18.waarde kenmerk18, k19.waarde kenmerk19, k20.waarde kenmerk20, k21.waarde kenmerk21, k22.waarde kenmerk22, k23.waarde kenmerk23, k24.waarde kenmerk24, k25.waarde kenmerk25, k26.waarde kenmerk26, k27.waarde kenmerk27, k28.waarde kenmerk28, k29.waarde kenmerk29, k30.waarde kenmerk30, k31.waarde kenmerk31, k32.waarde kenmerk32, k33.waarde kenmerk33, k34.waarde kenmerk34, k35.waarde kenmerk35, k36.waarde kenmerk36, k37.waarde kenmerk37, k38.waarde kenmerk38, k39.waarde kenmerk39, k40.waarde kenmerk40, k41.waarde kenmerk41, k42.waarde kenmerk42, k43.waarde kenmerk43, k44.waarde kenmerk44, k45.waarde kenmerk45, k46.waarde kenmerk46, k47.waarde kenmerk47, k48.waarde kenmerk48, k49.waarde kenmerk49, k50.waarde kenmerk50, k51.waarde kenmerk51, k52.waarde kenmerk52, k53.waarde kenmerk53, k54.waarde kenmerk54, k55.waarde kenmerk55, k56.waarde kenmerk56, k57.waarde kenmerk57, k58.waarde kenmerk58, k59.waarde kenmerk59, k60.waarde kenmerk60, k61.waarde kenmerk61, k62.waarde kenmerk62, k63.waarde kenmerk63, k64.waarde kenmerk64, k65.waarde kenmerk65, k66.waarde kenmerk66, k67.waarde kenmerk67, k68.waarde kenmerk68, k69.waarde kenmerk69, k70.waarde kenmerk70, k71.waarde kenmerk71, k72.waarde kenmerk72, k73.waarde kenmerk73, k74.waarde kenmerk74, k75.waarde kenmerk75, k76.waarde kenmerk76, k77.waarde kenmerk77, k78.waarde kenmerk78, k79.waarde kenmerk79, k80.waarde kenmerk80 FROM (SELECT g.alg_gebouw_key, g.alg_gebouw_naam, sg.alg_srtgebouw_omschrijving, g.alg_gebouw_code, g.alg_gebouw_opmerking, kp.prs_kostenplaats_omschrijving, g.alg_gebouw_ordernr, -- Opdrachtnr dn.mld_dienstniveau_omschr, -- Dienstniveau g.prs_perslid_key_verantw, -- Verantwoordelijke g.prs_perslid_key_verantw2, -- Verantwoordelijke 2 g.alg_gebouw_email, -- E-mail g.alg_gebouw_bruto_vloeropp, -- Bebouwd opp. g.alg_gebouw_omtrek, -- Omtrek g.alg_gebouw_inhoud, -- Inhoud g.alg_gebouw_x, -- X-coördinaat g.alg_gebouw_y, -- Y-coördinaat g.alg_gebouw_vervaldatum, -- Vervaldatum g.alg_gebouw_bez, -- Bezoekbaar g.alg_gebouw_beginuur, -- Open vanaf g.alg_gebouw_einduur, -- Open tot g.alg_gebouw_werkdagen, -- Alleen op werkdagen l.alg_locatie_key, l.alg_locatie_code, l.alg_locatie_omschrijving, l.alg_locatie_adres, l.alg_locatie_postcode, l.alg_locatie_plaats, l.alg_locatie_verantw, l.alg_locatie_verantw_tel, d.alg_district_omschrijving, r.alg_regio_omschrijving FROM alg_regio r, alg_district d, alg_locatie l, alg_v_aanweziggebouw g, alg_srtgebouw sg, prs_v_aanwezigkostenplaats kp, mld_dienstniveau dn WHERE r.alg_regio_key = d.alg_regio_key AND d.alg_district_key = l.alg_district_key AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_upper NOT LIKE 'ZZ%' AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key AND g.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND g.mld_dienstniveau_key = dn.mld_dienstniveau_key(+)) x LEFT JOIN ok k1 ON x.alg_gebouw_key = k1.alg_onrgoed_key AND k1.vnr = 1 LEFT JOIN ok k2 ON x.alg_gebouw_key = k2.alg_onrgoed_key AND k2.vnr = 2 LEFT JOIN ok k3 ON x.alg_gebouw_key = k3.alg_onrgoed_key AND k3.vnr = 3 LEFT JOIN ok k4 ON x.alg_gebouw_key = k4.alg_onrgoed_key AND k4.vnr = 4 LEFT JOIN ok k5 ON x.alg_gebouw_key = k5.alg_onrgoed_key AND k5.vnr = 5 LEFT JOIN ok k6 ON x.alg_gebouw_key = k6.alg_onrgoed_key AND k6.vnr = 6 LEFT JOIN ok k7 ON x.alg_gebouw_key = k7.alg_onrgoed_key AND k7.vnr = 7 LEFT JOIN ok k8 ON x.alg_gebouw_key = k8.alg_onrgoed_key AND k8.vnr = 8 LEFT JOIN ok k9 ON x.alg_gebouw_key = k9.alg_onrgoed_key AND k9.vnr = 9 LEFT JOIN ok k10 ON x.alg_gebouw_key = k10.alg_onrgoed_key AND k10.vnr = 10 LEFT JOIN ok k11 ON x.alg_gebouw_key = k11.alg_onrgoed_key AND k11.vnr = 11 LEFT JOIN ok k12 ON x.alg_gebouw_key = k12.alg_onrgoed_key AND k12.vnr = 12 LEFT JOIN ok k13 ON x.alg_gebouw_key = k13.alg_onrgoed_key AND k13.vnr = 13 LEFT JOIN ok k14 ON x.alg_gebouw_key = k14.alg_onrgoed_key AND k14.vnr = 14 LEFT JOIN ok k15 ON x.alg_gebouw_key = k15.alg_onrgoed_key AND k15.vnr = 15 LEFT JOIN ok k16 ON x.alg_gebouw_key = k16.alg_onrgoed_key AND k16.vnr = 16 LEFT JOIN ok k17 ON x.alg_gebouw_key = k17.alg_onrgoed_key AND k17.vnr = 17 LEFT JOIN ok k18 ON x.alg_gebouw_key = k18.alg_onrgoed_key AND k18.vnr = 18 LEFT JOIN ok k19 ON x.alg_gebouw_key = k19.alg_onrgoed_key AND k19.vnr = 19 LEFT JOIN ok k20 ON x.alg_gebouw_key = k20.alg_onrgoed_key AND k20.vnr = 20 LEFT JOIN ok k21 ON x.alg_gebouw_key = k21.alg_onrgoed_key AND k21.vnr = 21 LEFT JOIN ok k22 ON x.alg_gebouw_key = k22.alg_onrgoed_key AND k22.vnr = 22 LEFT JOIN ok k23 ON x.alg_gebouw_key = k23.alg_onrgoed_key AND k23.vnr = 23 LEFT JOIN ok k24 ON x.alg_gebouw_key = k24.alg_onrgoed_key AND k24.vnr = 24 LEFT JOIN ok k25 ON x.alg_gebouw_key = k25.alg_onrgoed_key AND k25.vnr = 25 LEFT JOIN ok k26 ON x.alg_gebouw_key = k26.alg_onrgoed_key AND k26.vnr = 26 LEFT JOIN ok k27 ON x.alg_gebouw_key = k27.alg_onrgoed_key AND k27.vnr = 27 LEFT JOIN ok k28 ON x.alg_gebouw_key = k28.alg_onrgoed_key AND k28.vnr = 28 LEFT JOIN ok k29 ON x.alg_gebouw_key = k29.alg_onrgoed_key AND k29.vnr = 29 LEFT JOIN ok k30 ON x.alg_gebouw_key = k30.alg_onrgoed_key AND k30.vnr = 30 LEFT JOIN ok k31 ON x.alg_gebouw_key = k31.alg_onrgoed_key AND k31.vnr = 31 LEFT JOIN ok k32 ON x.alg_gebouw_key = k32.alg_onrgoed_key AND k32.vnr = 32 LEFT JOIN ok k33 ON x.alg_gebouw_key = k33.alg_onrgoed_key AND k33.vnr = 33 LEFT JOIN ok k34 ON x.alg_gebouw_key = k34.alg_onrgoed_key AND k34.vnr = 34 LEFT JOIN ok k35 ON x.alg_gebouw_key = k35.alg_onrgoed_key AND k35.vnr = 35 LEFT JOIN ok k36 ON x.alg_gebouw_key = k36.alg_onrgoed_key AND k36.vnr = 36 LEFT JOIN ok k37 ON x.alg_gebouw_key = k37.alg_onrgoed_key AND k37.vnr = 37 LEFT JOIN ok k38 ON x.alg_gebouw_key = k38.alg_onrgoed_key AND k38.vnr = 38 LEFT JOIN ok k39 ON x.alg_gebouw_key = k39.alg_onrgoed_key AND k39.vnr = 39 LEFT JOIN ok k40 ON x.alg_gebouw_key = k40.alg_onrgoed_key AND k40.vnr = 40 LEFT JOIN ok k41 ON x.alg_gebouw_key = k41.alg_onrgoed_key AND k41.vnr = 41 LEFT JOIN ok k42 ON x.alg_gebouw_key = k42.alg_onrgoed_key AND k42.vnr = 42 LEFT JOIN ok k43 ON x.alg_gebouw_key = k43.alg_onrgoed_key AND k43.vnr = 43 LEFT JOIN ok k44 ON x.alg_gebouw_key = k44.alg_onrgoed_key AND k44.vnr = 44 LEFT JOIN ok k45 ON x.alg_gebouw_key = k45.alg_onrgoed_key AND k45.vnr = 45 LEFT JOIN ok k46 ON x.alg_gebouw_key = k46.alg_onrgoed_key AND k46.vnr = 46 LEFT JOIN ok k47 ON x.alg_gebouw_key = k47.alg_onrgoed_key AND k47.vnr = 47 LEFT JOIN ok k48 ON x.alg_gebouw_key = k48.alg_onrgoed_key AND k48.vnr = 48 LEFT JOIN ok k49 ON x.alg_gebouw_key = k49.alg_onrgoed_key AND k49.vnr = 49 LEFT JOIN ok k50 ON x.alg_gebouw_key = k50.alg_onrgoed_key AND k50.vnr = 50 LEFT JOIN ok k51 ON x.alg_gebouw_key = k51.alg_onrgoed_key AND k51.vnr = 51 LEFT JOIN ok k52 ON x.alg_gebouw_key = k52.alg_onrgoed_key AND k52.vnr = 52 LEFT JOIN ok k53 ON x.alg_gebouw_key = k53.alg_onrgoed_key AND k53.vnr = 53 LEFT JOIN ok k54 ON x.alg_gebouw_key = k54.alg_onrgoed_key AND k54.vnr = 54 LEFT JOIN ok k55 ON x.alg_gebouw_key = k55.alg_onrgoed_key AND k55.vnr = 55 LEFT JOIN ok k56 ON x.alg_gebouw_key = k56.alg_onrgoed_key AND k56.vnr = 56 LEFT JOIN ok k57 ON x.alg_gebouw_key = k57.alg_onrgoed_key AND k57.vnr = 57 LEFT JOIN ok k58 ON x.alg_gebouw_key = k58.alg_onrgoed_key AND k58.vnr = 58 LEFT JOIN ok k59 ON x.alg_gebouw_key = k59.alg_onrgoed_key AND k59.vnr = 59 LEFT JOIN ok k60 ON x.alg_gebouw_key = k60.alg_onrgoed_key AND k60.vnr = 60 LEFT JOIN ok k61 ON x.alg_gebouw_key = k61.alg_onrgoed_key AND k61.vnr = 61 LEFT JOIN ok k62 ON x.alg_gebouw_key = k62.alg_onrgoed_key AND k62.vnr = 62 LEFT JOIN ok k63 ON x.alg_gebouw_key = k63.alg_onrgoed_key AND k63.vnr = 63 LEFT JOIN ok k64 ON x.alg_gebouw_key = k64.alg_onrgoed_key AND k64.vnr = 64 LEFT JOIN ok k65 ON x.alg_gebouw_key = k65.alg_onrgoed_key AND k65.vnr = 65 LEFT JOIN ok k66 ON x.alg_gebouw_key = k66.alg_onrgoed_key AND k66.vnr = 66 LEFT JOIN ok k67 ON x.alg_gebouw_key = k67.alg_onrgoed_key AND k67.vnr = 67 LEFT JOIN ok k68 ON x.alg_gebouw_key = k68.alg_onrgoed_key AND k68.vnr = 68 LEFT JOIN ok k69 ON x.alg_gebouw_key = k69.alg_onrgoed_key AND k69.vnr = 69 LEFT JOIN ok k70 ON x.alg_gebouw_key = k70.alg_onrgoed_key AND k70.vnr = 70 LEFT JOIN ok k71 ON x.alg_gebouw_key = k71.alg_onrgoed_key AND k71.vnr = 71 LEFT JOIN ok k72 ON x.alg_gebouw_key = k72.alg_onrgoed_key AND k72.vnr = 72 LEFT JOIN ok k73 ON x.alg_gebouw_key = k73.alg_onrgoed_key AND k73.vnr = 73 LEFT JOIN ok k74 ON x.alg_gebouw_key = k74.alg_onrgoed_key AND k74.vnr = 74 LEFT JOIN ok k75 ON x.alg_gebouw_key = k75.alg_onrgoed_key AND k75.vnr = 75 LEFT JOIN ok k76 ON x.alg_gebouw_key = k76.alg_onrgoed_key AND k76.vnr = 76 LEFT JOIN ok k77 ON x.alg_gebouw_key = k77.alg_onrgoed_key AND k77.vnr = 77 LEFT JOIN ok k78 ON x.alg_gebouw_key = k78.alg_onrgoed_key AND k78.vnr = 78 LEFT JOIN ok k79 ON x.alg_gebouw_key = k79.alg_onrgoed_key AND k79.vnr = 79 LEFT JOIN ok k80 ON x.alg_gebouw_key = k80.alg_onrgoed_key AND k80.vnr = 80; -- RWSN#53040: Evaluatieformulier coachee (tbv. UDR). CREATE OR REPLACE VIEW rwsn_v_rap_evaluatie_coachee ( melding_key, melding_datum, melding_afgemeld, soort_coaching, naam_medewerker, leeftijd, functie, afdeling, dienstonderdeel, toegewezen_coach, toegewezen_coach_key, toelichting_doelen, toelichting_voorbeelden, evaluatie, toelichting_bevindingen, luistervaardigheid, veranderingsgerichtheid, juiste_vragen, doordringen, produktief, vertrouwensrelatie, gehele_traject, opmerking, email_coach ) AS SELECT x.mld_melding_key, x.mld_melding_datum, fac.gettrackingdate ('MLDAFM', x.mld_melding_key), (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = km1.mld_kenmerkmelding_waarde), -- soort_coaching (SELECT prs_perslid_naam_full FROM rwsn_v_dienstpersonen WHERE TO_CHAR (prs_perslid_key) = km2.mld_kenmerkmelding_waarde), -- naam_medewerker (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = km3.mld_kenmerkmelding_waarde), -- leeftijd (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = km4.mld_kenmerkmelding_waarde), -- functie FGR TRIM (km5.mld_kenmerkmelding_waarde), -- afdeling (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = km6.mld_kenmerkmelding_waarde), -- dienstonderdeel (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = km7.mld_kenmerkmelding_waarde), -- toegewezen_coach fac.safe_to_number (km7.mld_kenmerkmelding_waarde), -- toegewezen_coach_key TRIM (km8.mld_kenmerkmelding_waarde), -- toelichting_doelen TRIM (km9.mld_kenmerkmelding_waarde), -- toelichting_voorbeelden (SELECT fac_usrdata_omschr FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = km10.mld_kenmerkmelding_waarde), -- evaluatie TRIM (km11.mld_kenmerkmelding_waarde), -- toelichting_bevindingen fac.safe_to_number (km12.mld_kenmerkmelding_waarde), -- luistervaardigheid fac.safe_to_number (km13.mld_kenmerkmelding_waarde), -- veranderingsgerichtheid fac.safe_to_number (km14.mld_kenmerkmelding_waarde), -- juiste_vragen fac.safe_to_number (km15.mld_kenmerkmelding_waarde), -- doordringen fac.safe_to_number (km16.mld_kenmerkmelding_waarde), -- produktief fac.safe_to_number (km17.mld_kenmerkmelding_waarde), -- vertrouwensrelatie fac.safe_to_number (km18.mld_kenmerkmelding_waarde), -- gehele_traject TRIM (km19.mld_kenmerkmelding_waarde), -- opmerking TRIM (km20.mld_kenmerkmelding_waarde) -- email_coach FROM (SELECT mld_melding_key, mld_melding_datum FROM mld_melding WHERE mld_stdmelding_key = 10661) x -- Evaluatieformulier RWS Coachee LEFT JOIN mld_v_aanwezigkenmerkmelding km1 ON x.mld_melding_key = km1.mld_melding_key AND km1.mld_kenmerk_key = 29330 LEFT JOIN mld_v_aanwezigkenmerkmelding km2 ON x.mld_melding_key = km2.mld_melding_key AND km2.mld_kenmerk_key = 29332 LEFT JOIN mld_v_aanwezigkenmerkmelding km3 ON x.mld_melding_key = km3.mld_melding_key AND km3.mld_kenmerk_key = 29334 LEFT JOIN mld_v_aanwezigkenmerkmelding km4 ON x.mld_melding_key = km4.mld_melding_key AND km4.mld_kenmerk_key = 29549 LEFT JOIN mld_v_aanwezigkenmerkmelding km5 ON x.mld_melding_key = km5.mld_melding_key AND km5.mld_kenmerk_key = 29337 LEFT JOIN mld_v_aanwezigkenmerkmelding km6 ON x.mld_melding_key = km6.mld_melding_key AND km6.mld_kenmerk_key = 29339 LEFT JOIN mld_v_aanwezigkenmerkmelding km7 ON x.mld_melding_key = km7.mld_melding_key AND km7.mld_kenmerk_key = 29348 LEFT JOIN mld_v_aanwezigkenmerkmelding km8 ON x.mld_melding_key = km8.mld_melding_key AND km8.mld_kenmerk_key = 29350 LEFT JOIN mld_v_aanwezigkenmerkmelding km9 ON x.mld_melding_key = km9.mld_melding_key AND km9.mld_kenmerk_key = 29352 LEFT JOIN mld_v_aanwezigkenmerkmelding km10 ON x.mld_melding_key = km10.mld_melding_key AND km10.mld_kenmerk_key = 29354 LEFT JOIN mld_v_aanwezigkenmerkmelding km11 ON x.mld_melding_key = km11.mld_melding_key AND km11.mld_kenmerk_key = 29356 LEFT JOIN mld_v_aanwezigkenmerkmelding km12 ON x.mld_melding_key = km12.mld_melding_key AND km12.mld_kenmerk_key = 29358 LEFT JOIN mld_v_aanwezigkenmerkmelding km13 ON x.mld_melding_key = km13.mld_melding_key AND km13.mld_kenmerk_key = 29360 LEFT JOIN mld_v_aanwezigkenmerkmelding km14 ON x.mld_melding_key = km14.mld_melding_key AND km14.mld_kenmerk_key = 29362 LEFT JOIN mld_v_aanwezigkenmerkmelding km15 ON x.mld_melding_key = km15.mld_melding_key AND km15.mld_kenmerk_key = 29364 LEFT JOIN mld_v_aanwezigkenmerkmelding km16 ON x.mld_melding_key = km16.mld_melding_key AND km16.mld_kenmerk_key = 29366 LEFT JOIN mld_v_aanwezigkenmerkmelding km17 ON x.mld_melding_key = km17.mld_melding_key AND km17.mld_kenmerk_key = 29368 LEFT JOIN mld_v_aanwezigkenmerkmelding km18 ON x.mld_melding_key = km18.mld_melding_key AND km18.mld_kenmerk_key = 29369 LEFT JOIN mld_v_aanwezigkenmerkmelding km19 ON x.mld_melding_key = km19.mld_melding_key AND km19.mld_kenmerk_key = 29372 LEFT JOIN mld_v_aanwezigkenmerkmelding km20 ON x.mld_melding_key = km20.mld_melding_key AND km20.mld_kenmerk_key = 29374; -- RWSN#30975: Printer-mails! -- RWSN#83086: LEF-mails! -- RWSN#87760: Afzender-controle via Eigen tabel met key=2502! CREATE OR REPLACE PROCEDURE RWSN_processemail ( pfrom IN VARCHAR2, pto IN VARCHAR2, psubject IN VARCHAR2, pbody IN VARCHAR2, psessionid IN VARCHAR2, pemailkey IN NUMBER) AS -- Printer-Soortmelding=8357 onder Vakgroep=274 onder Vakgroeptype=1! c_fd_stdmld_key NUMBER (10) := 11961; -- Soortmelding=11961=E-mail Algemeen onder Vakgroep=681=MP-FI KCC onder Vakgroeptype=3=KCC! c_esize_stdmld_key NUMBER (10) := 11962; -- Soortmelding=11962=E-mail Algemeen onder Vakgroep=941=MP-EBF Workforce onder Vakgroeptype=3=KCC! c_digin_stdmld_key NUMBER (10) := 11963; -- Soortmelding=11963=E-mail Algemeen onder Vakgroep=3221=MP-EBF DigiInkoop onder Vakgroeptype=3=KCC! c_lef_stdmld_key NUMBER (10) := 16861; -- Soortmelding=11963=E-mail Algemeen onder Vakgroep=3221=MP-EBF DigiInkoop onder Vakgroeptype=3=KCC! c_ext_melder_key NUMBER (10) := 13760; -- EXTERN Overig v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_ci VARCHAR2 (255) := ''; v_perslid_key NUMBER (10) := NULL; v_kostenplaats_key NUMBER (10) := NULL; v_onderwerp VARCHAR2 (255) := ''; v_discipline_key NUMBER (10) := NULL; v_stdmelding_key NUMBER (10) := NULL; --v_stdmelding_uvt mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD (NULL, NULL); -- constructor initialisatie v_deel_key NUMBER (10) := NULL; v_onrgoed_keys NUMBER (10) := NULL; v_locatie_key NUMBER (10) := NULL; v_melding_key NUMBER (10) := NULL; v_email VARCHAR2 (255) := ''; v_bodypart VARCHAR2 (4000) := ''; v_email_kkey NUMBER (10) := NULL; v_folder_kkey NUMBER (10) := NULL; v_startnext VARCHAR2 (4000) := ''; v_nextpos NUMBER (10) := NULL; v_aanvrager VARCHAR2 (4000) := ''; v_opdrachtgever VARCHAR2 (4000) := ''; v_organisatie VARCHAR2 (4000) := ''; v_email1 VARCHAR2 (4000) := ''; v_email2 VARCHAR2 (4000) := ''; v_telefoonnr VARCHAR2 (4000) := ''; v_vraagstuk VARCHAR2 (4000) := ''; v_doelstelling VARCHAR2 (4000) := ''; v_aantal VARCHAR2 (4000) := ''; v_datum VARCHAR2 (4000) := ''; v_srtkenmerk_type VARCHAR2 (255) := ''; v_srtkenmerk_lengte NUMBER (10) := NULL; v_count NUMBER (10) := NULL; BEGIN CASE WHEN UPPER (pto) LIKE 'PRINTER.FACILITOR@%' THEN -- Afzender-controle obv. configuratie in Eigen tabel (met key=2502)! v_errormsg := 'Fout bepalen afzender'; SELECT COUNT (*) INTO v_count FROM fac_usrdata WHERE fac_usrtab_key = 2502 AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (SUBSTR (pto, 1, INSTR (pto, '@') - 1)) AND (fac_usrdata_omschr2 IS NULL OR UPPER (TRIM (fac_usrdata_omschr2)) = UPPER (pfrom)); IF v_count = 1 THEN v_errormsg := 'Fout bepalen printer'; v_ci := SUBSTR (psubject, INSTR (UPPER (psubject), 'EX')) || '#'; IF SUBSTR (UPPER (v_ci), 1, 2) = 'EX' THEN v_ci := SUBSTR (v_ci, 1, REGEXP_INSTR (SUBSTR (v_ci, 3), '\D') + 1); -- Gedeelte tot eerste niet-cijfer na 'EX'! ELSE v_ci := ''; END IF; -- Bepaal persoon met loginnaam _HMAIL. v_errormsg := 'Fout bepalen Printer-melder'; SELECT p.prs_perslid_key, a.prs_kostenplaats_key INTO v_perslid_key, v_kostenplaats_key FROM prs_v_aanwezigperslid p, prs_afdeling a WHERE p.prs_perslid_oslogin = '_HMAIL' AND p.prs_afdeling_key = a.prs_afdeling_key; v_errormsg := 'Fout bepalen Printer-onderwerp'; v_onderwerp := psubject; -- Bepaal de afgesproken soortmelding met key=5462 (was 8357). v_errormsg := 'Fout bepalen Printer-soortmelding'; SELECT mld_ins_discipline_key, mld_stdmelding_key INTO v_discipline_key, v_stdmelding_key FROM mld_discipline md, mld_stdmelding sm WHERE sm.mld_stdmelding_key = 5462 -- Bijvullen kopi�ren/printen AND sm.mld_ins_discipline_key = md.ins_discipline_key --AND md.ins_srtdiscipline_key = 1 -- Facilitair AND md.ins_discipline_verwijder IS NULL; -- Bepaal evt. object met omschrijving zoals in pbody achter EX! -- Alleen objecten onder disciplines met keys -1 t/m -1 worden beschouwd! v_errormsg := 'Fout bepalen Printer-object ' || v_ci; SELECT COUNT (*) INTO v_count FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg, ins_v_alg_onroerendgoed og WHERE d.ins_deel_upper = UPPER (v_ci) AND d.ins_deel_vervaldatum IS NULL AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key --AND sg.ins_discipline_key IN (-1) AND d.ins_alg_ruimte_type = 'R' AND d.ins_alg_ruimte_key = og.alg_onrgoed_keys; IF v_count = 1 THEN SELECT d.ins_deel_key, og.alg_onrgoed_keys, og.alg_locatie_key INTO v_deel_key, v_onrgoed_keys, v_locatie_key FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg, ins_v_alg_onroerendgoed og WHERE d.ins_deel_upper = UPPER (v_ci) AND d.ins_deel_vervaldatum IS NULL AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key --AND sg.ins_discipline_key IN (-1) AND d.ins_alg_ruimte_type = 'R' AND d.ins_alg_ruimte_key = og.alg_onrgoed_keys; ELSIF v_ci IS NOT NULL THEN fac.writelog ('PROCESSEMAIL', 'W', v_errormsg, ''); END IF; -- Suggested extensions: -- - Check for MLDUSE-write autorisations -- - Parse the subject to find the appropriate stdmelding, if uniquely possible -- - Append (as a note?) to an existing melding if #key is found in the subject v_errormsg := 'Fout toevoegen Printer-melding'; INSERT INTO mld_melding (mld_melding_module, mld_meldbron_key, mld_alg_locatie_key, mld_alg_onroerendgoed_keys, mld_melding_datum, mld_melding_omschrijving, -- TODO:TO_CLOB??? mld_stdmelding_key, mld_melding_t_uitvoertijd, prs_kostenplaats_key, prs_perslid_key, prs_perslid_key_voor, mld_melding_status, mld_melding_spoed, mld_melding_onderwerp) VALUES ('MLD', 4, -- email DECODE (v_count, 1, v_locatie_key, 82), -- TODO:Westraven als printer niet kan worden bepaald? DECODE (v_count, 1, v_onrgoed_keys, NULL), SYSDATE, SUBSTR (pfrom || CHR (13) || CHR (10) || pbody, 1, 4000), v_stdmelding_key, NULL, --v_stdmelding_uvt, v_kostenplaats_key, v_perslid_key, v_perslid_key, NULL, 3, -- prio normaal SUBSTR (v_onderwerp, 1, 80)) RETURNING mld_melding_key INTO v_melding_key; IF v_deel_key IS NOT NULL THEN v_errormsg := 'Fout toevoegen Printer-object'; INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key) VALUES (v_melding_key, v_deel_key); END IF; mld.setmeldingstatus (v_melding_key, 2, v_perslid_key); INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || TO_CHAR (v_melding_key)); ELSE -- Ignore afzender. INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'errormsg', 'Afzender [' || pfrom || '] ongeldig - Neem contact op met uw systeembeheerder'); END IF; WHEN UPPER (pto) LIKE ('FD.FACILITOR@%') -- RWSN#55808/RWSN#62233: Eerst EBD, daarna FD OR UPPER (pto) LIKE ('ESIZE.FACILITOR@%') OR UPPER (pto) LIKE ('DIGIINKOOP.FACILITOR@%') THEN -- VERVALLEN: Negeer mails anders dan vanaf 'KCC@RWS.NL' (was 'MAILS.FD.EBFD@RWS.NL')! -- Afzender-controle obv. configuratie in Eigen tabel (met key=2502)! v_errormsg := 'Fout bepalen afzender'; SELECT COUNT (*) INTO v_count FROM fac_usrdata WHERE fac_usrtab_key = 2502 AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (SUBSTR (pto, 1, INSTR (pto, '@') - 1)) AND (fac_usrdata_omschr2 IS NULL OR UPPER (TRIM (fac_usrdata_omschr2)) = UPPER (pfrom)); IF v_count = 1 THEN IF UPPER (pto) LIKE ('FD.FACILITOR@%') THEN v_stdmelding_key := c_fd_stdmld_key; ELSIF UPPER (pto) LIKE ('ESIZE.FACILITOR@%') THEN v_stdmelding_key := c_esize_stdmld_key; ELSE -- UPPER (pto) LIKE ('DIGIINKOOP.FACILITOR@%') v_stdmelding_key := c_digin_stdmld_key; END IF; v_errormsg := 'Fout bepalen E-mail'; v_email := ''; v_bodypart := SUBSTR (pbody, 1, 4000); WHILE v_email IS NULL AND INSTR (v_bodypart, '<') > 0 LOOP v_bodypart := SUBSTR (v_bodypart, INSTR (v_bodypart, '<')); IF INSTR (v_bodypart, '>') > 0 AND INSTR (v_bodypart, '>') < INSTR (REPLACE (REPLACE (v_bodypart, CHR (13), '#'), CHR (10), '#') || '#', '#') -- Staan < en > op dezelfde regel? THEN v_email := TRIM (SUBSTR (v_bodypart, 2, INSTR (v_bodypart, '>') - 2)); -- v_email=gedeelte tussen < en > op dezelfde regel! ELSE v_bodypart := SUBSTR (v_bodypart, 2); -- Skip < op positie 1 en zoek naar het volgende voorkomen van < in de rest van body! END IF; END LOOP; -- Bepaal de afgesproken melder. v_errormsg := 'Fout bepalen externe melder'; SELECT p.prs_perslid_key, a.prs_kostenplaats_key, MIN (g1.alg_locatie_key) INTO v_perslid_key, v_kostenplaats_key, v_locatie_key FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_perslidwerkplek pw1, prs_werkplek wp1, alg_ruimte r1, alg_verdieping v1, alg_gebouw g1 WHERE p.prs_afdeling_key = a.prs_afdeling_key AND p.prs_perslid_key = c_ext_melder_key AND p.prs_perslid_key = pw1.prs_perslid_key(+) AND pw1.prs_werkplek_key = wp1.prs_werkplek_key(+) AND wp1.prs_alg_ruimte_key = r1.alg_ruimte_key(+) AND r1.alg_verdieping_key = v1.alg_verdieping_key(+) AND v1.alg_gebouw_key = g1.alg_gebouw_key(+) AND NOT EXISTS (SELECT 1 FROM prs_perslidwerkplek pw2, prs_werkplek wp2, alg_ruimte r2, alg_verdieping v2, alg_gebouw g2 WHERE pw2.prs_perslid_key = c_ext_melder_key AND pw2.prs_werkplek_key = wp2.prs_werkplek_key AND wp2.prs_alg_ruimte_key = r2.alg_ruimte_key AND r2.alg_verdieping_key = v2.alg_verdieping_key AND v2.alg_gebouw_key = g2.alg_gebouw_key AND pw2.prs_werkplek_key != pw1.prs_werkplek_key AND pw2.prs_perslidwerkplek_bezetting > pw1.prs_perslidwerkplek_bezetting) GROUP BY p.prs_perslid_key, a.prs_kostenplaats_key; -- Bepaal de afgesproken soortmelding voor deze stroom. v_errormsg := 'Fout bepalen soortmelding'; SELECT mld_ins_discipline_key INTO v_discipline_key FROM mld_stdmelding WHERE mld_stdmelding_key = v_stdmelding_key; -- Suggested extensions: -- - Check for MLDUSE-write autorisations -- - Parse the subject to find the appropriate stdmelding, if uniquely possible -- - Append (as a note?) to an existing melding if #key is found in the subject v_errormsg := 'Fout toevoegen melding'; INSERT INTO mld_melding (mld_melding_module, mld_meldbron_key, mld_alg_locatie_key, mld_alg_onroerendgoed_keys, mld_melding_datum, mld_melding_omschrijving, -- TODO:TO_CLOB??? mld_stdmelding_key, mld_melding_t_uitvoertijd, prs_kostenplaats_key, prs_perslid_key, prs_perslid_key_voor, mld_melding_status, mld_melding_spoed, mld_melding_onderwerp, mld_melding_behandelaar2_key) VALUES ('MLD', 4, -- email COALESCE (v_locatie_key, 82), -- Westraven als locatie niet kan worden bepaald? NULL, --v_onrgoed_keys, SYSDATE, pfrom || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000), v_stdmelding_key, NULL, v_kostenplaats_key, v_perslid_key, v_perslid_key, NULL, 3, -- prio normaal SUBSTR (psubject, 1, 80), NULL) RETURNING mld_melding_key INTO v_melding_key; v_errormsg := 'Fout bepalen E-mail kenmerk'; SELECT MIN (k.mld_kenmerk_key) INTO v_email_kkey FROM mld_stdmelding sm, ins_tab_discipline td, mld_kenmerk k--, mld_srtkenmerk sk WHERE sm.mld_stdmelding_key = v_stdmelding_key AND sm.mld_ins_discipline_key = td.ins_discipline_key AND k.mld_kenmerk_verwijder IS NULL AND k.mld_srtkenmerk_key = 20 -- E-mail --AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key --AND sk.mld_srtkenmerk_kenmerktype = 'C' AND ((k.mld_stdmelding_key = sm.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S') OR (k.mld_stdmelding_key = td.ins_discipline_key AND k.mld_kenmerk_niveau = 'D') OR (k.mld_stdmelding_key = td.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T')); IF v_email_kkey IS NOT NULL THEN v_errormsg := 'Fout toevoegen E-mail kenmerk'; INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, v_email_kkey, -- E-mail SUBSTR (v_email, 1, 49)); END IF; mld.setmeldingstatus (v_melding_key, 2, v_perslid_key); INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || TO_CHAR (v_melding_key)); -- Find the lowest volgnummer of a Folder-flexfield. v_errormsg := 'Fout bepalen Folder kenmerk'; SELECT MIN (k1.mld_kenmerk_key) INTO v_folder_kkey FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1 WHERE sm1.mld_stdmelding_key = v_stdmelding_key AND sm1.mld_ins_discipline_key = td1.ins_discipline_key AND k1.mld_kenmerk_verwijder IS NULL AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key AND sk1.mld_srtkenmerk_kenmerktype = 'M' AND ((k1.mld_stdmelding_key = sm1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S') OR (k1.mld_stdmelding_key = td1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D') OR (k1.mld_stdmelding_key = td1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T')) AND NOT EXISTS (SELECT 1 FROM mld_stdmelding sm2, ins_tab_discipline td2, mld_kenmerk k2, mld_srtkenmerk sk2 WHERE sm2.mld_stdmelding_key = v_stdmelding_key AND sm2.mld_ins_discipline_key = td2.ins_discipline_key AND k2.mld_kenmerk_verwijder IS NULL AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key AND sk2.mld_srtkenmerk_kenmerktype = 'M' AND ((k2.mld_stdmelding_key = sm2.mld_stdmelding_key AND k2.mld_kenmerk_niveau = 'S') OR (k2.mld_stdmelding_key = td2.ins_discipline_key AND k2.mld_kenmerk_niveau = 'D') OR (k2.mld_stdmelding_key = td2.ins_srtdiscipline_key AND k2.mld_kenmerk_niveau = 'T')) AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer); IF v_folder_kkey IS NOT NULL THEN INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || TO_CHAR (v_melding_key) || '\' || TO_CHAR (v_folder_kkey) || '\'); END IF; -- Handle workflow actions for completion (in case of new melding). IF v_count = 0 THEN MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial END IF; ELSE -- Ignore afzender. INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'errormsg', 'Afzender [' || pfrom || '] ongeldig - Neem contact op met uw systeembeheerder'); END IF; WHEN UPPER (pto) LIKE 'LEF@%' THEN -- Afzender-controle obv. configuratie in Eigen tabel (met key=2502)! v_errormsg := 'Fout bepalen afzender'; SELECT COUNT (*) INTO v_count FROM fac_usrdata WHERE fac_usrtab_key = 2502 AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (SUBSTR (pto, 1, INSTR (pto, '@') - 1)) AND (fac_usrdata_omschr2 IS NULL OR UPPER (TRIM (fac_usrdata_omschr2)) = UPPER (pfrom)); IF v_count = 1 THEN -- Bepaal persoon met loginnaam _HMAIL_LEF. v_errormsg := 'Fout bepalen LEF-melder'; SELECT p.prs_perslid_key, a.prs_kostenplaats_key INTO v_perslid_key, v_kostenplaats_key FROM prs_v_aanwezigperslid p, prs_afdeling a WHERE p.prs_perslid_oslogin = '_HMAIL LEF' AND p.prs_afdeling_key = a.prs_afdeling_key; v_errormsg := 'Fout bepalen LEF-onderwerp'; v_onderwerp := psubject; -- Bepaal de afgesproken soortmelding voor deze stroom. v_errormsg := 'Fout bepalen LEF-soortmelding'; v_stdmelding_key := c_lef_stdmld_key; SELECT mld_ins_discipline_key INTO v_discipline_key FROM mld_stdmelding WHERE mld_stdmelding_verwijder IS NULL AND COALESCE (mld_stdmelding_vervaldatum, SYSDATE + 1) > SYSDATE AND mld_stdmelding_key = v_stdmelding_key; /* Formuliervelden (letterlijk): 64608=Naam aanvrager 64609=Naam opdrachtgever 64628=Bedrijf/organisatie 64648=E-mail 64649=E-mail (opnieuw invullen) 64650=Telefoonnummer 64651=Vraagstuk 64652=Doelstelling (wat wil je bereiken) 64653=Aantal deelnemers (geschat) 64654=Gewenste datum voor de sessie (dd-mm-jjjj) */ v_startnext := REGEXP_REPLACE (pbody, '\s', ' '); -- Bepaal 'Naam aanvrager' uit body ter vulling van kenmerk met key=64608! v_errormsg := 'Fout bepalen Naam aanvrager'; IF INSTR (UPPER (v_startnext), 'NAAM AANVRAGER') = 0 OR INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') = 0 OR INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') < INSTR (UPPER (v_startnext), 'NAAM AANVRAGER') THEN RETURN; ELSE v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'NAAM AANVRAGER') + 14)); v_aanvrager := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') - 1)); END IF; -- Bepaal 'Naam opdrachtgever' uit body ter vulling van kenmerk met key=64609! v_errormsg := 'Fout bepalen Naam opdrachtgever'; IF INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') = 0 OR INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') = 0 OR INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') < INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') THEN RETURN; ELSE v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') + 18)); v_opdrachtgever := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') - 1)); END IF; -- Bepaal 'Bedrijf/organisatie' uit body ter vulling van kenmerk met key=64628! v_errormsg := 'Fout bepalen Bedrijf/organisatie'; IF INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') = 0 OR INSTR (UPPER (v_startnext), 'E-MAIL') = 0 OR INSTR (UPPER (v_startnext), 'E-MAIL') < INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') THEN RETURN; ELSE v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') + 19)); v_organisatie := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'E-MAIL') - 1)); END IF; -- Bepaal 'E-mail' uit body ter vulling van kenmerk met key=64648! v_errormsg := 'Fout bepalen E-mail'; IF INSTR (UPPER (v_startnext), 'E-MAIL') = 0 OR INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') = 0 OR INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') < INSTR (UPPER (v_startnext), 'E-MAIL') THEN RETURN; ELSE v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'E-MAIL') + 6)); v_email1 := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') - 1)); END IF; -- Bepaal 'E-mail (opnieuw invullen)' uit body ter vulling van kenmerk met key=64649! v_errormsg := 'Fout bepalen E-mail (opnieuw invullen)'; IF INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') = 0 OR INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') = 0 OR INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') < INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') THEN RETURN; ELSE v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') + 25)); v_email2 := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') - 1)); END IF; -- Bepaal 'Telefoonnummer' uit body ter vulling van kenmerk met key=64650! v_errormsg := 'Fout bepalen Telefoonnummer'; IF INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') = 0 OR INSTR (UPPER (v_startnext), 'VRAAGSTUK') = 0 OR INSTR (UPPER (v_startnext), 'VRAAGSTUK') < INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') THEN RETURN; ELSE v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') + 14)); v_telefoonnr := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'VRAAGSTUK') - 1)); END IF; -- Bepaal 'Vraagstuk' uit body ter vulling van kenmerk met key=64651! v_errormsg := 'Fout bepalen Vraagstuk'; v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'VRAAGSTUK') + 9)); v_nextpos := LEAST (INSTR (UPPER (v_startnext), 'DOELSTELLING (WAT WIL JE BEREIKEN)'), INSTR (UPPER (v_startnext), 'AANTAL DEELNEMERS (GESCHAT)'), INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)')); IF v_nextpos = 0 THEN v_vraagstuk := TRIM (SUBSTR (v_startnext, 1)); ELSE -- v_nextpos > 0 v_vraagstuk := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1)); END IF; -- Bepaal 'Optioneel1' uit body ter vulling van kenmerk met key=64652, 64653 of 64654! v_errormsg := 'Fout bepalen Optioneel1'; v_startnext := TRIM (SUBSTR (v_startnext, v_nextpos)); IF UPPER (v_startnext) LIKE 'DOELSTELLING (WAT WIL JE BEREIKEN)%' THEN v_startnext := TRIM (SUBSTR (v_startnext, 34 + 1)); v_nextpos := LEAST (INSTR (UPPER (v_startnext), 'AANTAL DEELNEMERS (GESCHAT)'), INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)')); IF v_nextpos = 0 THEN v_doelstelling := TRIM (SUBSTR (v_startnext, 1)); ELSE -- v_nextpos > 0 v_doelstelling := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1)); END IF; ELSIF UPPER (v_startnext) LIKE 'AANTAL DEELNEMERS (GESCHAT)%' THEN v_startnext := TRIM (SUBSTR (v_startnext, 27 + 1)); v_nextpos := INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)'); IF v_nextpos = 0 THEN v_aantal := TRIM (SUBSTR (v_startnext, 1)); ELSE -- v_nextpos > 0 v_aantal := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1)); END IF; ELSIF UPPER (v_startnext) LIKE 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)%' THEN v_startnext := TRIM (SUBSTR (v_startnext, 42 + 1)); v_nextpos := 0; v_datum := TRIM (SUBSTR (v_startnext, 1)); END IF; -- Bepaal 'Optioneel2' uit body ter vulling van kenmerk met key=64653 of 64654! v_errormsg := 'Fout bepalen Optioneel2'; v_startnext := TRIM (SUBSTR (v_startnext, v_nextpos)); IF UPPER (v_startnext) LIKE 'AANTAL DEELNEMERS (GESCHAT)%' THEN v_startnext := TRIM (SUBSTR (v_startnext, 27 + 1)); v_nextpos := INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)'); IF v_nextpos = 0 THEN v_aantal := TRIM (SUBSTR (v_startnext, 1)); ELSE -- v_nextpos > 0 v_aantal := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1)); END IF; ELSIF UPPER (v_startnext) LIKE 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)%' THEN v_startnext := TRIM (SUBSTR (v_startnext, 42 + 1)); v_nextpos := 0; v_datum := TRIM (SUBSTR (v_startnext, 1)); END IF; -- Bepaal 'Optioneel3' uit body ter vulling van kenmerk met key=64654! v_errormsg := 'Fout bepalen Optioneel3'; v_startnext := TRIM (SUBSTR (v_startnext, v_nextpos)); IF UPPER (v_startnext) LIKE 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)%' THEN v_startnext := TRIM (SUBSTR (v_startnext, 42 + 1)); v_nextpos := 0; v_datum := TRIM (SUBSTR (v_startnext, 1)); END IF; -- Suggested extensions: -- - Check for MLDUSE-write autorisations -- - Parse the subject to find the appropriate stdmelding, if uniquely possible -- - Append (as a note?) to an existing melding if #key is found in the subject v_errormsg := 'Fout toevoegen LEF-melding'; INSERT INTO mld_melding (mld_melding_module, mld_meldbron_key, mld_alg_locatie_key, mld_alg_onroerendgoed_keys, mld_melding_datum, mld_melding_omschrijving, -- TODO:TO_CLOB??? mld_stdmelding_key, mld_melding_t_uitvoertijd, prs_kostenplaats_key, prs_perslid_key, prs_perslid_key_voor, mld_melding_status, mld_melding_spoed, mld_melding_onderwerp) VALUES ('MLD', 4, -- email NULL, -- TODO:Geen locatie? NULL, SYSDATE, --SUBSTR (pfrom || CHR (13) || CHR (10) || pbody, 1, 4000), SUBSTR (v_aanvrager || CHR (13) || CHR (10) || v_opdrachtgever || CHR (13) || CHR (10) || v_organisatie || CHR (13) || CHR (10) || v_email1 || CHR (13) || CHR (10) || v_email2 || CHR (13) || CHR (10) || v_telefoonnr || CHR (13) || CHR (10) || v_vraagstuk || CHR (13) || CHR (10) || v_doelstelling || CHR (13) || CHR (10) || v_aantal || CHR (13) || CHR (10) || v_datum, 1, 4000), v_stdmelding_key, NULL, --v_stdmelding_uvt, v_kostenplaats_key, v_perslid_key, v_perslid_key, NULL, 3, -- prio normaal SUBSTR (v_onderwerp, 1, 80)) RETURNING mld_melding_key INTO v_melding_key; /* Formuliervelden (letterlijk): 64608=Naam aanvrager 64609=Naam opdrachtgever 64628=Bedrijf/organisatie 64648=E-mail 64649=E-mail (opnieuw invullen) 64650=Telefoonnummer 64651=Vraagstuk 64652=Doelstelling (wat wil je bereiken) 64653=Aantal deelnemers (geschat) 64654=Gewenste datum voor de sessie (dd-mm-jjjj) */ -- Aanname dat kenmerken bestaan en verplichte waarden zijn bepaald! v_errormsg := 'Fout toevoegen kenmerk Naam aanvrager'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64608 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_aanvrager IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64608, SUBSTR (v_aanvrager, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk Naam opdrachtgever'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64609 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_opdrachtgever IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64609, SUBSTR (v_opdrachtgever, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk Bedrijf/organisatie'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64628 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_organisatie IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64628, SUBSTR (v_organisatie, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk E-mail'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64648 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_email1 IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64648, SUBSTR (v_email1, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk E-mail (opnieuw invullen)'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64649 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_email2 IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64649, SUBSTR (v_email2, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk Telefoonnummer'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64650 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_telefoonnr IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64650, SUBSTR (v_telefoonnr, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk Vraagstuk'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64651 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_vraagstuk IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64651, SUBSTR (v_vraagstuk, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk Doelstelling (wat wil je bereiken)'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64652 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_doelstelling IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64652, SUBSTR (v_doelstelling, 1, v_srtkenmerk_lengte)); END IF; v_errormsg := 'Fout toevoegen kenmerk Aantal deelnemers (geschat)'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype) INTO v_srtkenmerk_type FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64653 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'N' AND fac.safe_to_number (v_aantal) IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64653, v_aantal); END IF; v_errormsg := 'Fout toevoegen kenmerk Gewenste datum voor de sessie (dd-mm-jjjj)'; SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte) INTO v_srtkenmerk_type, v_srtkenmerk_lengte FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_kenmerk_verwijder IS NULL AND k.mld_kenmerk_key = 64654 AND k.mld_stdmelding_key = v_stdmelding_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; IF v_srtkenmerk_type = 'C' AND v_datum IS NOT NULL THEN INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde) VALUES (v_melding_key, 64654, SUBSTR (v_datum, 1, v_srtkenmerk_lengte)); END IF; mld.setmeldingstatus (v_melding_key, 2, v_perslid_key); INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || TO_CHAR (v_melding_key)); -- Find the lowest key of a Folder-flexfield. v_errormsg := 'Fout toevoegen originele mail'; SELECT MIN (k1.mld_kenmerk_key) INTO v_folder_kkey FROM mld_kenmerk k1, mld_srtkenmerk sk1 WHERE k1.mld_kenmerk_verwijder IS NULL AND k1.mld_stdmelding_key = v_stdmelding_key AND k1.mld_kenmerk_niveau = 'S' AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key AND sk1.mld_srtkenmerk_kenmerktype = 'M' AND NOT EXISTS (SELECT 1 FROM mld_kenmerk k2, mld_srtkenmerk sk2 WHERE k2.mld_kenmerk_verwijder IS NULL AND k2.mld_stdmelding_key = v_stdmelding_key AND k2.mld_kenmerk_niveau = 'S' AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key AND sk2.mld_srtkenmerk_kenmerktype = 'M' AND k2.mld_kenmerk_key < k1.mld_kenmerk_key); IF v_folder_kkey IS NOT NULL THEN INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'kenmerkorgmailpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || TO_CHAR (v_melding_key) || '\' || TO_CHAR (v_folder_kkey) || '\'); END IF; ELSE -- Ignore afzender. INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'errormsg', 'Afzender [' || pfrom || '] ongeldig - Neem contact op met uw systeembeheerder'); END IF; ELSE INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'errormsg', 'Ontvanger [' || pto || '] ongeldig - Neem contact op met uw systeembeheerder'); END CASE; 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.writelog ('PROCESSEMAIL', 'E', 'RWSN_processemail afgebroken!', '[' || pfrom || '] ' || v_errormsg); INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder'); COMMIT; END; / CREATE OR REPLACE VIEW rwsn_v_rap_mail_error ( hide_f_offset, datum, hint, error ) AS SELECT SYSDATE - imp_log_datum, imp_log_datum, imp_log_hint, imp_log_omschrijving FROM imp_log WHERE imp_log_applicatie = 'PROCESSEMAIL' AND imp_log_datum > SYSDATE - 30; -- RWSN#52630: Rijdend materieel! CREATE OR REPLACE VIEW rwsn_v_rap_rijdendmat ( identificatie, beschrijving, --plaats, -- weglaten --eigenaar, -- weglaten locatiecode, -- nieuw gebouwnaam, -- nieuw discipline, groep, objectsoort, objectbeheerder, --coordinaat, -- weglaten --reserveerbaar, -- weglaten --uitleenbaar, -- weglaten actief, vervaldatum ) AS SELECT d.ins_deel_omschrijving, d.ins_deel_opmerking, --NULL plaats, --NULL eigenaar, l.alg_locatie_code, g.alg_gebouw_naam, td.ins_discipline_omschrijving, sg.ins_srtgroep_omschrijving, sd.ins_srtdeel_omschrijving, pf.prs_perslid_naam_full, --NULL coordinaat, --NULL reserveerbaar, --NULL uitleenbaar, DECODE (d.ins_deel_actief, 0, 'nee', NULL) actief, d.ins_deel_vervaldatum FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, prs_v_perslid_fullnames pf WHERE 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 td.ins_discipline_key = 2101 --AND d.ins_alg_locatie_key = l.alg_locatie_key AND d.ins_alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND d.prs_perslid_key_beh = pf.prs_perslid_key(+); -- RWSN#52630: Rijdend materieel! -- RWSN#62073: Toevoegen Opmerking-kolom (en andere kolommen volgens standaard FIP:6-template)! CREATE OR REPLACE VIEW rwsn_v_rap_rijdendmat_expimp AS WITH kd AS (SELECT sk.vnr, sk.ins_srtkenmerk_key, sk.ins_srtkenmerk_omschrijving, kd.ins_deel_key, kd.waarde FROM (SELECT ROWNUM vnr, ins_srtkenmerk_key, ins_srtkenmerk_omschrijving FROM ( SELECT DISTINCT k.ins_kenmerk_volgnummer, sk.ins_srtkenmerk_key, sk.ins_srtkenmerk_omschrijving FROM ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg, ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = 2101 -- Rijdend materieel AND ((k.ins_kenmerk_niveau = 'S' AND k.ins_srtinstallatie_key = sd.ins_srtdeel_key) OR (k.ins_kenmerk_niveau = 'G' AND k.ins_srtinstallatie_key = sg.ins_srtgroep_key) OR (k.ins_kenmerk_niveau = 'D' AND k.ins_srtinstallatie_key = 2101)) -- Rijdend materieel AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V') ORDER BY k.ins_kenmerk_volgnummer)) sk LEFT JOIN (SELECT sk.ins_srtkenmerk_key, kd.ins_deel_key, DECODE ( sk.ins_srtkenmerk_kenmerktype, 'R', flx.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde), 'S', flx.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde), kd.ins_kenmerkdeel_waarde) waarde FROM ins_v_aanwezigkenmerkdeel kd, ins_v_aanwezigkenmerk k, ins_srtkenmerk sk WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key) kd ON sk.ins_srtkenmerk_key = kd.ins_srtkenmerk_key) SELECT 0 hide_f_result_order, 'disciplineomschrijving' disciplineomschrijving, 'disciplinekostensoort' disciplinekostensoort, 'groepsoortomschrijving' groepsoortomschrijving, 'objectsoortcode' objectsoortcode, 'objectsoortomschrijving' objectsoortomschrijving, 'objectidentificatie' objectomschrijving, 'objectopmerking' objectopmerking, -- RWSN#62073: Opmerking-kolom! 'reserveerbaar' reserveerbaar, 'eenheid' eenheid, 'prijs' prijs, 'locatiecode' locatiecode, 'gebouwcode' gebouwcode, 'bouwlaagvolgnummer' bouwlaagvolgnummer, 'ruimtenummer' ruimtenummer, 'reserveringscope' reserveringscope, 'catalogusnaam' catalogusnaam, 'cataloguskostensoort' cataloguskostensoort, 'persoonmatchcode' persoonmatchcode, 'persoonmatchwaarde' persoonmatchwaarde, 'ingangsdatum' ingangsdatum, 'vervaldatum' vervaldatum, 'aantal' aantal, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 1) kenmerk1, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 2) kenmerk2, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 3) kenmerk3, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 4) kenmerk4, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 5) kenmerk5, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 6) kenmerk6, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 7) kenmerk7, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 8) kenmerk8, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 9) kenmerk9, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 10) kenmerk10, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 11) kenmerk11, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 12) kenmerk12, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 13) kenmerk13, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 14) kenmerk14, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 15) kenmerk15, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 16) kenmerk16, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 17) kenmerk17, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 18) kenmerk18, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 19) kenmerk19, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 20) kenmerk20, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 21) kenmerk21, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 22) kenmerk22, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 23) kenmerk23, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 24) kenmerk24, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 25) kenmerk25, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 26) kenmerk26, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 27) kenmerk27, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 28) kenmerk28, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 29) kenmerk29, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 30) kenmerk30, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 31) kenmerk31, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 32) kenmerk32, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 33) kenmerk33, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 34) kenmerk34, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 35) kenmerk35, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 36) kenmerk36, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 37) kenmerk37, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 38) kenmerk38, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 39) kenmerk39, (SELECT MAX (ins_srtkenmerk_omschrijving) FROM kd WHERE vnr = 40) kenmerk40 FROM DUAL UNION ALL SELECT 1 hide_f_result_order, x.disciplineomschrijving, x.disciplinekostensoort, x.groepsoortomschrijving, x.objectsoortcode, x.objectsoortomschrijving, x.objectomschrijving, x.objectopmerking, -- RWSN#62073: Opmerking-kolom! x.reserveerbaar, x.eenheid, REPLACE (TO_CHAR (x.prijs), '.', ',') prijs, x.locatiecode, x.gebouwcode, TO_CHAR (x.bouwlaagvolgnummer) bouwlaagvolgnummer, x.ruimtenummer, x.reserveringscope, x.catalogusnaam, x.cataloguskostensoort, NULL persoonmatchcode, NULL persoonmatchwaarde, TO_CHAR (x.ingangsdatum, 'dd-mm-yyyy') ingangsdatum, TO_CHAR (x.vervaldatum, 'dd-mm-yyyy') vervaldatum, TO_CHAR (x.aantal) aantal, k1.waarde kenmerk1, k2.waarde kenmerk2, k3.waarde kenmerk3, k4.waarde kenmerk4, k5.waarde kenmerk5, k6.waarde kenmerk6, k7.waarde kenmerk7, k8.waarde kenmerk8, k9.waarde kenmerk9, k10.waarde kenmerk10, k11.waarde kenmerk11, k12.waarde kenmerk12, k13.waarde kenmerk13, k14.waarde kenmerk14, k15.waarde kenmerk15, k16.waarde kenmerk16, k17.waarde kenmerk17, k18.waarde kenmerk18, k19.waarde kenmerk19, k20.waarde kenmerk20, k21.waarde kenmerk21, k22.waarde kenmerk22, k23.waarde kenmerk23, k24.waarde kenmerk24, k25.waarde kenmerk25, k26.waarde kenmerk26, k27.waarde kenmerk27, k28.waarde kenmerk28, k29.waarde kenmerk29, k30.waarde kenmerk30, k31.waarde kenmerk31, k32.waarde kenmerk32, k33.waarde kenmerk33, k34.waarde kenmerk34, k35.waarde kenmerk35, k36.waarde kenmerk36, k37.waarde kenmerk37, k38.waarde kenmerk38, k39.waarde kenmerk39, k40.waarde kenmerk40 FROM (SELECT d.ins_deel_key, td1.ins_discipline_omschrijving disciplineomschrijving, ks1.prs_kostensoort_oms disciplinekostensoort, sg.ins_srtgroep_omschrijving groepsoortomschrijving, sd.ins_srtdeel_code objectsoortcode, sd.ins_srtdeel_omschrijving objectsoortomschrijving, d.ins_deel_omschrijving objectomschrijving, d.ins_deel_opmerking objectopmerking, DECODE (rd.res_deel_key, NULL, NULL, 'J') reserveerbaar, rd.res_deel_eenheid eenheid, rd.res_deel_prijs prijs, l.alg_locatie_code locatiecode, g.alg_gebouw_code gebouwcode, v.alg_verdieping_volgnr bouwlaagvolgnummer, r.alg_ruimte_nr ruimtenummer, DECODE (rd.res_deel_alg_level, 0, 'E', 1, 'D', 2, 'L', 3, 'G', 4, 'V', 5, 'R', NULL) reserveringscope, td2.ins_discipline_omschrijving catalogusnaam, ks2.prs_kostensoort_oms cataloguskostensoort, d.ins_deel_aanmaak ingangsdatum, d.ins_deel_vervaldatum vervaldatum, d.ins_deel_aantal aantal FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td1, prs_kostensoort ks1, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, res_v_aanwezigdeel rd, ins_tab_discipline td2, prs_kostensoort ks2 WHERE d.ins_alg_ruimte_type = 'R' -- Alléén ruimtegebonden objecten! AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td1.ins_discipline_key AND td1.ins_discipline_key = 2101 -- Rijdend materieel! AND td1.prs_kostensoort_key = ks1.prs_kostensoort_key(+) --AND d.ins_alg_locatie_key = l.alg_locatie_key AND d.ins_alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND d.ins_deel_key = rd.res_ins_deel_key(+) AND rd.res_discipline_key = td2.ins_discipline_key(+) AND td2.prs_kostensoort_key = ks2.prs_kostensoort_key(+)) x LEFT JOIN kd k1 ON x.ins_deel_key = k1.ins_deel_key AND k1.vnr = 1 LEFT JOIN kd k2 ON x.ins_deel_key = k2.ins_deel_key AND k2.vnr = 2 LEFT JOIN kd k3 ON x.ins_deel_key = k3.ins_deel_key AND k3.vnr = 3 LEFT JOIN kd k4 ON x.ins_deel_key = k4.ins_deel_key AND k4.vnr = 4 LEFT JOIN kd k5 ON x.ins_deel_key = k5.ins_deel_key AND k5.vnr = 5 LEFT JOIN kd k6 ON x.ins_deel_key = k6.ins_deel_key AND k6.vnr = 6 LEFT JOIN kd k7 ON x.ins_deel_key = k7.ins_deel_key AND k7.vnr = 7 LEFT JOIN kd k8 ON x.ins_deel_key = k8.ins_deel_key AND k8.vnr = 8 LEFT JOIN kd k9 ON x.ins_deel_key = k9.ins_deel_key AND k9.vnr = 9 LEFT JOIN kd k10 ON x.ins_deel_key = k10.ins_deel_key AND k10.vnr = 10 LEFT JOIN kd k11 ON x.ins_deel_key = k11.ins_deel_key AND k11.vnr = 11 LEFT JOIN kd k12 ON x.ins_deel_key = k12.ins_deel_key AND k12.vnr = 12 LEFT JOIN kd k13 ON x.ins_deel_key = k13.ins_deel_key AND k13.vnr = 13 LEFT JOIN kd k14 ON x.ins_deel_key = k14.ins_deel_key AND k14.vnr = 14 LEFT JOIN kd k15 ON x.ins_deel_key = k15.ins_deel_key AND k15.vnr = 15 LEFT JOIN kd k16 ON x.ins_deel_key = k16.ins_deel_key AND k16.vnr = 16 LEFT JOIN kd k17 ON x.ins_deel_key = k17.ins_deel_key AND k17.vnr = 17 LEFT JOIN kd k18 ON x.ins_deel_key = k18.ins_deel_key AND k18.vnr = 18 LEFT JOIN kd k19 ON x.ins_deel_key = k19.ins_deel_key AND k19.vnr = 19 LEFT JOIN kd k20 ON x.ins_deel_key = k20.ins_deel_key AND k20.vnr = 20 LEFT JOIN kd k21 ON x.ins_deel_key = k21.ins_deel_key AND k21.vnr = 21 LEFT JOIN kd k22 ON x.ins_deel_key = k22.ins_deel_key AND k22.vnr = 22 LEFT JOIN kd k23 ON x.ins_deel_key = k23.ins_deel_key AND k23.vnr = 23 LEFT JOIN kd k24 ON x.ins_deel_key = k24.ins_deel_key AND k24.vnr = 24 LEFT JOIN kd k25 ON x.ins_deel_key = k25.ins_deel_key AND k25.vnr = 25 LEFT JOIN kd k26 ON x.ins_deel_key = k26.ins_deel_key AND k26.vnr = 26 LEFT JOIN kd k27 ON x.ins_deel_key = k27.ins_deel_key AND k27.vnr = 27 LEFT JOIN kd k28 ON x.ins_deel_key = k28.ins_deel_key AND k28.vnr = 28 LEFT JOIN kd k29 ON x.ins_deel_key = k29.ins_deel_key AND k29.vnr = 29 LEFT JOIN kd k30 ON x.ins_deel_key = k30.ins_deel_key AND k30.vnr = 30 LEFT JOIN kd k31 ON x.ins_deel_key = k31.ins_deel_key AND k31.vnr = 31 LEFT JOIN kd k32 ON x.ins_deel_key = k32.ins_deel_key AND k32.vnr = 32 LEFT JOIN kd k33 ON x.ins_deel_key = k33.ins_deel_key AND k33.vnr = 33 LEFT JOIN kd k34 ON x.ins_deel_key = k34.ins_deel_key AND k34.vnr = 34 LEFT JOIN kd k35 ON x.ins_deel_key = k35.ins_deel_key AND k35.vnr = 35 LEFT JOIN kd k36 ON x.ins_deel_key = k36.ins_deel_key AND k36.vnr = 36 LEFT JOIN kd k37 ON x.ins_deel_key = k37.ins_deel_key AND k37.vnr = 37 LEFT JOIN kd k38 ON x.ins_deel_key = k38.ins_deel_key AND k38.vnr = 38 LEFT JOIN kd k39 ON x.ins_deel_key = k39.ins_deel_key AND k39.vnr = 39 LEFT JOIN kd k40 ON x.ins_deel_key = k40.ins_deel_key AND k40.vnr = 40; -- RWSN#64390: Generieke export van objecten tbv. import (excl. Rijdend materieel en zonder kenmerken)! CREATE OR REPLACE VIEW rwsn_v_rap_inventaris_expimp AS SELECT x.disciplineomschrijving, x.disciplinekostensoort, x.groepsoortomschrijving, x.objectsoortcode, x.objectsoortomschrijving, x.objectomschrijving, x.objectopmerking, x.reserveerbaar, x.eenheid, REPLACE (TO_CHAR (x.prijs), '.', ',') prijs, x.locatiecode, x.gebouwcode, TO_CHAR (x.bouwlaagvolgnummer) bouwlaagvolgnummer, x.ruimtenummer, x.reserveringscope, x.catalogusnaam, x.cataloguskostensoort, x.persoonmatchcode, x.persoonmatchwaarde, TO_CHAR (x.ingangsdatum, 'dd-mm-yyyy') ingangsdatum, TO_CHAR (x.vervaldatum, 'dd-mm-yyyy') vervaldatum, TO_CHAR (x.aantal) aantal FROM (SELECT td1.ins_discipline_omschrijving disciplineomschrijving, ks1.prs_kostensoort_oms disciplinekostensoort, sg.ins_srtgroep_omschrijving groepsoortomschrijving, sd.ins_srtdeel_code objectsoortcode, sd.ins_srtdeel_omschrijving objectsoortomschrijving, d.ins_deel_omschrijving objectomschrijving, d.ins_deel_opmerking objectopmerking, DECODE (rd.res_deel_key, NULL, NULL, 'J') reserveerbaar, rd.res_deel_eenheid eenheid, rd.res_deel_prijs prijs, l.alg_locatie_code locatiecode, g.alg_gebouw_code gebouwcode, v.alg_verdieping_volgnr bouwlaagvolgnummer, r.alg_ruimte_nr ruimtenummer, DECODE (rd.res_deel_alg_level, 0, 'E', 1, 'D', 2, 'L', 3, 'G', 4, 'V', 5, 'R', NULL) reserveringscope, td2.ins_discipline_omschrijving catalogusnaam, ks2.prs_kostensoort_oms cataloguskostensoort, NULL persoonmatchcode, NULL persoonmatchwaarde, d.ins_deel_aanmaak ingangsdatum, d.ins_deel_vervaldatum vervaldatum, d.ins_deel_aantal aantal FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td1, prs_kostensoort ks1, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, res_v_aanwezigdeel rd, ins_tab_discipline td2, prs_kostensoort ks2 WHERE d.ins_alg_ruimte_type = 'R' -- Ruimtegebonden objecten! AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td1.ins_discipline_key AND td1.ins_discipline_key != 2101 -- Rijdend materieel! AND td1.prs_kostensoort_key = ks1.prs_kostensoort_key(+) --AND d.ins_alg_locatie_key = l.alg_locatie_key AND d.ins_alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND d.ins_deel_key = rd.res_ins_deel_key(+) AND rd.res_discipline_key = td2.ins_discipline_key(+) AND td2.prs_kostensoort_key = ks2.prs_kostensoort_key(+) UNION ALL SELECT td1.ins_discipline_omschrijving disciplineomschrijving, ks1.prs_kostensoort_oms disciplinekostensoort, sg.ins_srtgroep_omschrijving groepsoortomschrijving, sd.ins_srtdeel_code objectsoortcode, sd.ins_srtdeel_omschrijving objectsoortomschrijving, d.ins_deel_omschrijving objectomschrijving, d.ins_deel_opmerking objectopmerking, DECODE (rd.res_deel_key, NULL, NULL, 'J') reserveerbaar, rd.res_deel_eenheid eenheid, rd.res_deel_prijs prijs, NULL locatiecode, NULL gebouwcode, NULL bouwlaagvolgnummer, NULL ruimtenummer, DECODE (rd.res_deel_alg_level, 0, 'E', 1, 'D', 2, 'L', 3, 'G', 4, 'V', 5, 'R', NULL) reserveringscope, td2.ins_discipline_omschrijving catalogusnaam, ks2.prs_kostensoort_oms cataloguskostensoort, DECODE (p.prs_perslid_oslogin, NULL, '3', '2') persoonmatchcode, DECODE (p.prs_perslid_oslogin, NULL, TO_CHAR (p.prs_perslid_key), p.prs_perslid_oslogin) persoonmatchwaarde, d.ins_deel_aanmaak ingangsdatum, d.ins_deel_vervaldatum vervaldatum, d.ins_deel_aantal aantal FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td1, prs_kostensoort ks1, prs_perslid p, res_v_aanwezigdeel rd, ins_tab_discipline td2, prs_kostensoort ks2 WHERE d.ins_alg_ruimte_type = 'P' -- Persoonsgebonden objecten! AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td1.ins_discipline_key AND td1.ins_discipline_key != 2101 -- Rijdend materieel! AND td1.prs_kostensoort_key = ks1.prs_kostensoort_key(+) AND d.ins_alg_ruimte_key = p.prs_perslid_key(+) AND d.ins_deel_key = rd.res_ins_deel_key(+) AND rd.res_discipline_key = td2.ins_discipline_key(+) AND td2.prs_kostensoort_key = ks2.prs_kostensoort_key(+) UNION ALL SELECT td1.ins_discipline_omschrijving disciplineomschrijving, ks1.prs_kostensoort_oms disciplinekostensoort, sg.ins_srtgroep_omschrijving groepsoortomschrijving, sd.ins_srtdeel_code objectsoortcode, sd.ins_srtdeel_omschrijving objectsoortomschrijving, NULL objectomschrijving, 'NIET Ruimte- of persoonsgebonden: ' || TO_CHAR (COUNT ( * )) objectopmerking, NULL reserveerbaar, NULL eenheid, NULL prijs, NULL locatiecode, NULL gebouwcode, NULL bouwlaagvolgnummer, NULL ruimtenummer, NULL reserveringscope, NULL catalogusnaam, NULL cataloguskostensoort, NULL persoonmatchcode, NULL persoonmatchwaarde, NULL ingangsdatum, NULL vervaldatum, COUNT ( * ) aantal FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td1, prs_kostensoort ks1 WHERE d.ins_alg_ruimte_type NOT IN ('R', 'P') AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td1.ins_discipline_key AND td1.ins_discipline_key != 2101 -- Rijdend materieel! AND td1.prs_kostensoort_key = ks1.prs_kostensoort_key(+) GROUP BY td1.ins_discipline_omschrijving, ks1.prs_kostensoort_oms, sg.ins_srtgroep_omschrijving, sd.ins_srtdeel_code, sd.ins_srtdeel_omschrijving) x; -- RWSN#57914: Reminder naar behandelaar als melding x dagen voor gereeddatum. /* AND SIGN(mld.geteinddatum ( m.mld_melding_datum, m.mld_stdmelding_key, m.mld_melding_spoed, NULL, -- Plaats binnen/kleiner locatie! NULL, -- Object met laagste uitvoertijd MLD_T_UITVOERTIJD ( 0.7 * m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid)) - TRUNC (SYSDATE, 'mi')) = -1; */ CREATE OR REPLACE VIEW rwsn_v_noti_mld_eind_reminder ( code, sender, receiver, text, key, xkey ) AS SELECT sn.fac_srtnotificatie_code, NULL, m.mld_melding_behandelaar_key, REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key), m.mld_melding_key, NULL FROM mld_melding m, mld_stdmelding sm, mld_disc_params dp, fac_srtnotificatie sn WHERE m.mld_melding_status IN (4, 7, 99) -- 4-Geaccepteerd, 7-Uitgegeven --AND m.mld_melding_einddatum_std > SYSDATE AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = dp.mld_ins_discipline_key AND dp.mld_disc_params_noti_dagen IS NOT NULL --AND TRUNC (SYSDATE + dp.mld_disc_params_noti_dagen) > TRUNC (m.mld_melding_einddatum_std) --AND TRUNC (SYSDATE + dp.mld_disc_params_noti_dagen) = TRUNC (m.mld_melding_einddatum) AND fac.count_work_days (SYSDATE, m.mld_melding_einddatum) = dp.mld_disc_params_noti_dagen AND sn.fac_srtnotificatie_code = 'CUST21' UNION ALL SELECT sn.fac_srtnotificatie_code, NULL, m.mld_melding_behandelaar_key, REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key), m.mld_melding_key, NULL FROM mld_melding m, mld_stdmelding sm, mld_disc_params dp, fac_srtnotificatie sn WHERE m.mld_melding_status IN (4, 7, 99) -- 4-Geaccepteerd, 7-Uitgegeven --AND m.mld_melding_einddatum_std > SYSDATE AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = dp.mld_ins_discipline_key AND dp.mld_disc_params_noti_dagen IS NOT NULL --AND TRUNC (SYSDATE + 1) > TRUNC (m.mld_melding_einddatum_std) --AND TRUNC (SYSDATE + 1) = TRUNC (m.mld_melding_einddatum) AND dp.mld_disc_params_noti_dagen != 1 AND fac.count_work_days (SYSDATE, m.mld_melding_einddatum) = 1 AND sn.fac_srtnotificatie_code = 'CUST22' ; -- RWSN#67120: Uurlijkse melding-notificaties (oa. CUST23) CREATE OR REPLACE VIEW FMHN_V_NOTI_MLD_DIVERSEN ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY ) AS SELECT sn.fac_srtnotificatie_code, NULL, NULL, REPLACE ( REPLACE ( sn.fac_srtnotificatie_oms, '##ID##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving), m.mld_melding_key, NULL xkey FROM mld_melding m, mld_stdmelding sm, fac_srtnotificatie sn, fac_notificatie_job nj WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_stdmelding_key = 7721 -- Inleveren ICT-middelen AND sn.fac_srtnotificatie_code = 'CUST23' AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_MLD_DIVERSEN' AND fac.gettrackingdate ('MLDNEW', m.mld_melding_key) BETWEEN COALESCE (nj.fac_notificatie_job_lastrun, nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24)) AND nj.fac_notificatie_job_nextrun; -- RWSN#56949: Productie KCC medewerkers (MLD+RES)! CREATE OR REPLACE VIEW rwsn_v_rap_kcc_productie ( medewerker, -- Persoon onder afdeling 'Afd. Meldingenproces' met key=2867 module, -- MLD of RES stroom, -- Vakgroeptype of Activiteit id, -- ID van Melding of Reservering aanmaakdatum, -- Aanmaakdatum van Melding of Reservering status, -- Status van Melding of Reservering trackdatum, trackcode ) AS SELECT pf.prs_perslid_naam_full medewerker, 'MLD' module, sd.ins_srtdiscipline_omschrijving stroom, sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) id, fac.gettrackingdate ('MLDNEW', m.mld_melding_key) aanmaakdatum, ms.mld_statuses_omschrijving status, t.fac_tracking_datum trackdatum, sn.fac_srtnotificatie_code FROM fac_tracking t, fac_srtnotificatie sn, mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd, mld_statuses ms, prs_v_aanwezigperslid p, prs_v_afdeling_boom ab, prs_v_perslid_fullnames pf WHERE t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy') AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_key IN (26, 21, 27, 22, 28) -- MLDNEW/MLDACP/MLDREJ/MLDAFM/MLDUPD AND t.fac_tracking_refkey = m.mld_melding_key AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sd.ins_srtdiscipline_key IN (1, 3, 121, 242) -- Facilitair/KCC/Aanleg en Onderhoud/Tijdelijke Capaciteit AND m.mld_melding_status = ms.mld_statuses_key(+) AND t.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key3 = 2867 -- Afd. Meldingenproces AND p.prs_perslid_key = pf.prs_perslid_key UNION ALL SELECT x.prs_perslid_naam_full medewerker, 'RES' module, x.res_activiteit_omschrijving stroom, TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) id, x.res_rsv_ruimte_aanmaak aanmaakdatum, (SELECT res_status_bo_omschrijving FROM res_status_bo WHERE res_status_bo_key = COALESCE (x.res_status_bo_key, ads.status_bo_key)) status, x.fac_tracking_datum trackdatum, x.fac_srtnotificatie_code FROM (SELECT rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_aanmaak, rrr.res_status_bo_key, ra.res_activiteit_omschrijving, t.fac_tracking_datum, sn.fac_srtnotificatie_code, pf.prs_perslid_naam_full FROM fac_tracking t, fac_srtnotificatie sn, res_rsv_ruimte rrr, res_activiteit ra, prs_v_aanwezigperslid p, prs_v_afdeling_boom ab, prs_v_perslid_fullnames pf WHERE t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy') AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_key IN (34, 35) -- RESNEW/RESUPD AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_dirtlevel = 0 AND rrr.res_rsv_ruimte_volgnr = 1 AND rrr.res_activiteit_key = ra.res_activiteit_key AND t.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key3 = 2867 -- Afd. Meldingenproces AND p.prs_perslid_key = pf.prs_perslid_key) x LEFT JOIN -- Niet meetellen losse Artikel/Deel-reserveringen waar nooit iets bijgeboekt is! ( SELECT res_rsv_ruimte_key, MIN (res_status_bo_key) status_bo_key FROM (SELECT res_rsv_ruimte_key, res_status_bo_key FROM res_rsv_artikel UNION SELECT res_rsv_ruimte_key, res_status_bo_key FROM res_rsv_deel) GROUP BY res_rsv_ruimte_key) ads -- Artikel/Deel-status ON x.res_rsv_ruimte_key = ads.res_rsv_ruimte_key WHERE x.res_status_bo_key IS NOT NULL OR ads.res_rsv_ruimte_key IS NOT NULL UNION ALL SELECT x.prs_perslid_naam_full medewerker, 'RES' module, x.res_activiteit_omschrijving stroom, TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) id, x.res_rsv_ruimte_aanmaak aanmaakdatum, (SELECT res_status_bo_omschrijving FROM res_status_bo WHERE res_status_bo_key = COALESCE (x.res_status_bo_key, ads.status_bo_key)) status, x.fac_tracking_datum trackdatum, x.fac_srtnotificatie_code FROM (SELECT rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_aanmaak, rrr.res_status_bo_key, ra.res_activiteit_omschrijving, t.fac_tracking_datum, sn.fac_srtnotificatie_code, pf.prs_perslid_naam_full FROM fac_tracking t, fac_srtnotificatie sn, res_rsv_ruimte rrr, res_activiteit ra, prs_v_aanwezigperslid p, prs_v_afdeling_boom ab, prs_v_perslid_fullnames pf WHERE t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy') AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_key = 38 -- RESDEL AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_dirtlevel = 0 AND rrr.res_activiteit_key = ra.res_activiteit_key AND t.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key3 = 2867 -- Afd. Meldingenproces AND p.prs_perslid_key = pf.prs_perslid_key AND NOT EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_rsv_ruimte_verwijder IS NOT NULL AND res_reservering_key = rrr.res_reservering_key AND res_rsv_ruimte_volgnr < rrr.res_rsv_ruimte_volgnr)) x LEFT JOIN -- Niet meetellen losse Artikel/Deel-reserveringen waar nooit iets bijgeboekt is! ( SELECT res_rsv_ruimte_key, MIN (res_status_bo_key) status_bo_key FROM (SELECT res_rsv_ruimte_key, res_status_bo_key FROM res_rsv_artikel UNION SELECT res_rsv_ruimte_key, res_status_bo_key FROM res_rsv_deel) GROUP BY res_rsv_ruimte_key) ads -- Artikel/Deel-status ON x.res_rsv_ruimte_key = ads.res_rsv_ruimte_key WHERE x.res_status_bo_key IS NOT NULL OR ads.res_rsv_ruimte_key IS NOT NULL; -- Views en procedures voor MJOP en Condititiemetingen -- View om de wijzigingen in conditiescores inzichtelijk te maken. CREATE OR REPLACE VIEW rwsn_v_rap_track_conditie AS SELECT dg.ins_deel_key, dg.ins_discipline_omschrijving, dg.ins_srtgroep_omschrijving, dg.ins_srtdeel_omschrijving, dg.ins_srtdeel_upper, dg.ins_deel_omschrijving, dg.ins_deel_opmerking, l.alg_locatie_code, l.alg_locatie_omschrijving, dg.alg_gebouw_upper, dg.alg_gebouw_omschrijving, sg.alg_srtgebouw_omschrijving, dg.alg_verdieping_code, dg.alg_ruimte_nr, t.fac_tracking_datum, t.fac_tracking_oms FROM ins_v_deel_gegevens dg, fac_tracking t, alg_srtgebouw sg, alg_gebouw g, alg_locatie l WHERE dg.ins_deel_key = t.fac_tracking_refkey AND fac_tracking_oms LIKE 'Conditie%' AND fac_srtnotificatie_key = 174 -- INSUPD AND dg.alg_gebouw_key = g.alg_gebouw_key AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key AND g.alg_locatie_key = l.alg_locatie_key; CREATE OR REPLACE VIEW rwsn_v_rap_gebrek_gegevens AS SELECT m.mld_melding_key, de.ins_deel_key, ins_discipline_omschrijving, mld_stdmelding_omschrijving, mld_melding_omschrijving, mld_melding_datum, mld_melding_status, MLD.getmeldingstatusdate(m.mld_melding_key, 5) afgemeld, -- MLDAFM (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ERNST' AND k.mld_stdmelding_key = std.mld_stdmelding_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) ernst, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'OMVANG' AND k.mld_stdmelding_key = std.mld_stdmelding_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) omvang, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'INTENSITEIT' AND k.mld_stdmelding_key = std.mld_stdmelding_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) intensiteit, (SELECT FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'CONDITIESCORE' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key) conditie, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ASPECT1' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) aspect1, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ASPECT2' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) aspect2, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ASPECT3' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) aspect3, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ASPECT4' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) aspect4, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ASPECT5' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) aspect5, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ASPECT6' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) aspect6, (SELECT fac_usrdata_omschr FROM mld_kenmerk k, mld_srtkenmerk sk, fac_usrdata ud WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'ASPECT7' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key AND FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) = ud.fac_usrdata_key) aspect7, (SELECT FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'PRIORITEITSCORE' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key) prioriteit, (SELECT FLX.getflex ('MLD', k.mld_kenmerk_key, m.mld_melding_key) FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND sk.mld_srtkenmerk_code = 'KOSTEN' AND k.mld_stdmelding_key = d.ins_srtdiscipline_key) kosten, de.ins_deel_omschrijving, de.ins_deel_opmerking, de.ins_deel_mjb_score1, de.ins_deel_mjb_score2 FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d, mld_melding_object mo, ins_deel de WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = fac.getsetting ('cnd_gebreken_srtdisc_key') AND m.mld_melding_key = mo.mld_melding_key AND mo.ins_deel_key = de.ins_deel_key AND mo.mld_melding_object_verwijder IS NULL; ------------------------------------------ -- -- MJOB specifieke routines -- ------------------------------------------ CREATE OR REPLACE PROCEDURE rwsn_import_ins_elementen (p_import_key IN NUMBER) IS c_delim VARCHAR2 (2) := fac.import_delimiter(p_import_key); v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR (400); v_dummy VARCHAR (255); v_ins_kenmerk_key1 VARCHAR2 (255); v_ins_kenmerk_key2 VARCHAR2 (255); v_ins_kenmerk_key3 VARCHAR2 (255); v_ins_kenmerk_key4 VARCHAR2 (255); v_ins_kenmerk_key5 VARCHAR2 (255); v_ins_kenmerk_key6 VARCHAR2 (255); v_ins_kenmerk_key7 VARCHAR2 (255); v_ins_kenmerk_key8 VARCHAR2 (255); v_ins_kenmerk_key9 VARCHAR2 (255); v_ins_kenmerk_key10 VARCHAR2 (255); v_ins_kenmerk_key11 VARCHAR2 (255); v_ins_kenmerk_key12 VARCHAR2 (255); v_ins_kenmerk_key13 VARCHAR2 (255); v_ins_kenmerk_key14 VARCHAR2 (255); v_ins_kenmerk_key15 VARCHAR2 (255); v_ins_kenmerk_key16 VARCHAR2 (255); v_ins_kenmerk_key17 VARCHAR2 (255); v_ins_kenmerk_key18 VARCHAR2 (255); v_ins_kenmerk_key19 VARCHAR2 (255); v_ins_kenmerk_key20 VARCHAR2 (255); -- De importvelden v_ins_discipline_omschrijving VARCHAR2 (255); -- C60 v_ins_discipline_kostensoort VARCHAR2 (255); --C60 v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60 v_ins_srtdeel_code VARCHAR2 (255); -- C10 v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100 v_ins_deel_omschrijving VARCHAR2 (255); -- C60 v_ins_deel_opmerking VARCHAR2 (1000); -- C320 v_ins_deel_externnr VARCHAR2 (255); -- C60 v_alg_locatie_code VARCHAR2 (255); -- C10 v_alg_gebouw_code VARCHAR2 (255); -- C12 v_alg_verdieping_volgnr VARCHAR2 (255); -- N3 v_alg_ruimte_nr VARCHAR2 (255); -- C20 v_ins_kenmerkwaarde1 VARCHAR2 (4053); v_ins_kenmerkwaarde2 VARCHAR2 (4053); v_ins_kenmerkwaarde3 VARCHAR2 (4053); v_ins_kenmerkwaarde4 VARCHAR2 (4053); v_ins_kenmerkwaarde5 VARCHAR2 (4053); v_ins_kenmerkwaarde6 VARCHAR2 (4053); v_ins_kenmerkwaarde7 VARCHAR2 (4053); v_ins_kenmerkwaarde8 VARCHAR2 (4053); v_ins_kenmerkwaarde9 VARCHAR2 (4053); v_ins_kenmerkwaarde10 VARCHAR2 (4053); v_ins_kenmerkwaarde11 VARCHAR2 (4053); v_ins_kenmerkwaarde12 VARCHAR2 (4053); v_ins_kenmerkwaarde13 VARCHAR2 (4053); v_ins_kenmerkwaarde14 VARCHAR2 (4053); v_ins_kenmerkwaarde15 VARCHAR2 (4053); v_ins_kenmerkwaarde16 VARCHAR2 (4053); v_ins_kenmerkwaarde17 VARCHAR2 (4053); v_ins_kenmerkwaarde18 VARCHAR2 (4053); v_ins_kenmerkwaarde19 VARCHAR2 (4053); v_ins_kenmerkwaarde20 VARCHAR2 (4053); v_ins_deel_aanmaak VARCHAR2 (255); -- DATE v_ins_deel_aanmaak_d DATE; v_ins_deel_vervaldatum VARCHAR2 (255); -- DATE v_ins_deel_vervaldatum_d DATE; v_ins_deel_aantal VARCHAR2 (255); -- N8,2 v_ins_deel_aantal_n NUMBER(8, 2); v_file_index NUMBER; v_alg_gebouw_key NUMBER; v_alg_verdieping_key NUMBER; v_alg_ruimte_key NUMBER; v_ins_deel_key NUMBER; v_ins_srtdeel_key NUMBER; v_ins_srtgroep_key NUMBER; v_ins_discipline_key NUMBER; v_ins_deel_volgnr NUMBER; -- Overige velden: CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; CURSOR c IS SELECT * FROM fac_imp_ins ORDER BY alg_gebouw_code, ins_deel_omschrijving; -- Controleer tijdens import-fase alleen op het bestaan van een kenmerk met de meegegeven omschrijving of kenmerk key. -- De omschrijving (header van kolom) kan de omschrijving zijn van het kenmerksoort of het kenmerk. -- De omschrijving van het kenmerksoort kan namelijk overruled worden door de omschrijving van het kenmerk. -- Daarnaast kan hetzelfde kenmerk vaker voorkomen voor verschillende groepen. -- Of het kenmerksoort/kenmerk wel is gedefinieerd voor de betreffende -- object-discipline/groep/soort, volgt pas tijdens de update-fase)! -- -- p_kw is bijvoorbeeld 'Parkeercode', 'Parkeercode|3', 234 of 234|3 waarbij de tweede en laatste in groep 3 zitten -- het resultaat is NULL (als niet gevonden) of Parkeercode|3 of 234|3 voor kenmer_key 234 in groep 3 -- Als geen groep is meegegeven dan wordt 'Parkeercode|0' opgeleverd (de default groep) FUNCTION bepaal_kenmerk (p_kw IN VARCHAR) RETURN VARCHAR IS v_kenmerk_key NUMBER; v_kenmerk_groep NUMBER; v_kw VARCHAR(250); BEGIN v_kenmerk_groep := 0; v_kw := p_kw; IF INSTR (v_kw, '|') > 1 THEN v_kenmerk_groep := SUBSTR (v_kw, INSTR (v_kw, '|') + 1); v_kw := SUBSTR (v_kw, 1, INSTR (v_kw, '|') - 1); END IF; IF fac.safe_to_number (v_kw) IS NULL THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)! SELECT MIN(k.ins_kenmerk_key) INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND k.ins_kenmerk_groep = v_kenmerk_groep AND COALESCE(UPPER(k.ins_kenmerk_omschrijving), sk.ins_srtkenmerk_upper) = UPPER(v_kw) AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V'); ELSE -- kenmerkwaarde is numeriek (dus key)! SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND k.ins_kenmerk_groep = v_kenmerk_groep AND k.ins_kenmerk_key = fac.safe_to_number (v_kw) AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V'); END IF; IF v_kenmerk_key IS NULL THEN RETURN NULL; ELSE -- Er is een kenmerksoort of kenmerk aanwezig met de omschrijving/kenmerk_key (v_kw) RETURN v_kw || '|' || TO_CHAR(v_kenmerk_groep); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN IF p_kw IS NULL OR UPPER (p_kw) LIKE 'KENMERK%' THEN RETURN NULL; ELSE fac.imp_writelog (p_import_key, 'W', 'Fout bij bepalen kenmerk [' || p_kw || ']', 'Bestaat niet of type ongeldig'); COMMIT; RETURN NULL; END IF; END; BEGIN -- Eerst opruiming DELETE FROM fac_imp_ins; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_file_index := rec1.fac_imp_file_index; v_errormsg := 'Fout bij opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_alg_gebouw_code); -- Objectcode fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code); -- Componentcode fac.imp_getfield (v_newline, c_delim, v_ins_deel_externnr); -- Element-ID fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking); -- Component omschrijving fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde1); -- Opmerkingen fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde2); -- Fabrikant fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde3); -- Kenmerken fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde4); -- Type fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde5); -- Cap fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde6); -- Eenheid Cap fac.imp_getfield (v_newline, c_delim, v_ins_deel_aantal); -- Aantal fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde7); -- Eenheid aantal fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde8); -- Bouwjaar fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde9); -- Theoretische Levensduur fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde10); -- Huidige conditie fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde11); -- Gewenste conditie fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde12); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde13); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde14); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde15); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde16); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde17); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde18); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde19); fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde20); v_aanduiding := '[' || v_alg_gebouw_code || '|' || v_ins_deel_externnr || '|' || v_ins_srtdeel_code || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER (v_alg_gebouw_code) = 'OBJECTCODE' AND UPPER (v_ins_srtdeel_code) = 'ELEMENTCODE RWS' AND UPPER (v_ins_deel_externnr) = 'ELEMENT-ID' AND UPPER (v_ins_deel_opmerking) = 'ELEMENT OMSCHRIJVING' AND UPPER (v_ins_kenmerkwaarde1) = 'OPMERKINGEN' AND UPPER (v_ins_kenmerkwaarde2) = 'FABRIKANT' AND UPPER (v_ins_kenmerkwaarde3) = 'KENMERKEN' AND UPPER (v_ins_kenmerkwaarde4) = 'TYPE' AND UPPER (v_ins_kenmerkwaarde5) = 'CAPACITEIT' AND UPPER (v_ins_kenmerkwaarde6) = 'EENHEID CAPACITEIT' AND UPPER (v_ins_deel_aantal) = 'AANTAL' AND UPPER (v_ins_kenmerkwaarde7) = 'EENHEID AANTAL' AND UPPER (v_ins_kenmerkwaarde8) = 'BOUWJAAR' AND UPPER (v_ins_kenmerkwaarde9) = 'THEORETISCHE LEVENSDUUR' AND UPPER (v_ins_kenmerkwaarde10) = 'HUIDIGE CONDITIESCORE' AND UPPER (v_ins_kenmerkwaarde11) = 'GEWENSTE CONDITIESCORE' THEN v_ins_kenmerk_key1 := bepaal_kenmerk (v_ins_kenmerkwaarde1); v_ins_kenmerk_key2 := bepaal_kenmerk (v_ins_kenmerkwaarde2); v_ins_kenmerk_key3 := bepaal_kenmerk (v_ins_kenmerkwaarde3); v_ins_kenmerk_key4 := bepaal_kenmerk (v_ins_kenmerkwaarde4); v_ins_kenmerk_key5 := bepaal_kenmerk (v_ins_kenmerkwaarde5); v_ins_kenmerk_key6 := bepaal_kenmerk (v_ins_kenmerkwaarde6); v_ins_kenmerk_key7 := bepaal_kenmerk (v_ins_kenmerkwaarde7); v_ins_kenmerk_key8 := bepaal_kenmerk (v_ins_kenmerkwaarde8); v_ins_kenmerk_key9 := bepaal_kenmerk (v_ins_kenmerkwaarde9); v_ins_kenmerk_key10 := bepaal_kenmerk (v_ins_kenmerkwaarde10); v_ins_kenmerk_key11 := bepaal_kenmerk (v_ins_kenmerkwaarde11); v_ins_kenmerk_key12 := bepaal_kenmerk (v_ins_kenmerkwaarde12); v_ins_kenmerk_key13 := bepaal_kenmerk (v_ins_kenmerkwaarde13); v_ins_kenmerk_key14 := bepaal_kenmerk (v_ins_kenmerkwaarde14); v_ins_kenmerk_key15 := bepaal_kenmerk (v_ins_kenmerkwaarde15); v_ins_kenmerk_key16 := bepaal_kenmerk (v_ins_kenmerkwaarde16); v_ins_kenmerk_key17 := bepaal_kenmerk (v_ins_kenmerkwaarde17); v_ins_kenmerk_key18 := bepaal_kenmerk (v_ins_kenmerkwaarde18); v_ins_kenmerk_key19 := bepaal_kenmerk (v_ins_kenmerkwaarde19); v_ins_kenmerk_key20 := bepaal_kenmerk (v_ins_kenmerkwaarde20); header_is_valid := 1; ELSE IF rec1.fac_imp_file_index = 1 THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldige header aangetroffen:', 'OBJECTCODE: ' || UPPER (v_alg_gebouw_code) || CHR(10) || 'ELEMENTCODE RWS: ' || UPPER (v_ins_srtdeel_code) || CHR(10) || 'ELEMENT-ID: ' || UPPER (v_ins_deel_externnr) || CHR(10) || 'ELEMENT OMSCHRIJVING: ' || UPPER (v_ins_deel_opmerking) || CHR(10) || 'OPMERKINGEN: ' || UPPER (v_ins_kenmerkwaarde1) || CHR(10) || 'FABRIKANT: ' || UPPER (v_ins_kenmerkwaarde2) || CHR(10) || 'KENMERKEN: ' || UPPER (v_ins_kenmerkwaarde3) || CHR(10) || 'TYPE: ' || UPPER (v_ins_kenmerkwaarde4) || CHR(10) || 'CAPACITEIT: ' || UPPER (v_ins_kenmerkwaarde5) || CHR(10) || 'EENHEID CAPACITEIT: ' || UPPER (v_ins_kenmerkwaarde6) || CHR(10) || 'AANTAL: ' || UPPER (v_ins_deel_aantal) || CHR(10) || 'EENHEID AANTAL: ' || UPPER (v_ins_kenmerkwaarde7) || CHR(10) || 'BOUWJAAR: ' || UPPER (v_ins_kenmerkwaarde8) || CHR(10) || 'THEORETISCHE LEVENSDUUR: ' || UPPER (v_ins_kenmerkwaarde9) || CHR(10) || 'HUIDIGE CONDITIESCORE: ' || UPPER (v_ins_kenmerkwaarde10) || CHR(10) || 'GEWENSTE CONDITIESCORE: ' || UPPER (v_ins_kenmerkwaarde11)); END IF; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Gebouwcode kan niet gevonden worden'; v_alg_gebouw_code := TRIM (v_alg_gebouw_code); SELECT alg_gebouw_key, alg_locatie_code INTO v_alg_gebouw_key, v_alg_locatie_code FROM alg_gebouw g, alg_locatie l WHERE g.alg_locatie_key = l.alg_locatie_key AND alg_gebouw_verwijder IS NULL AND UPPER(alg_gebouw_code) = v_alg_gebouw_code; v_alg_verdieping_volgnr := 0; BEGIN SELECT alg_verdieping_key INTO v_alg_verdieping_key FROM alg_verdieping WHERE alg_verdieping_verwijder IS NULL AND alg_gebouw_key = v_alg_gebouw_key AND alg_verdieping_volgnr = 0; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO alg_verdieping (alg_gebouw_key, alg_verdieping_volgnr, alg_verdieping_omschrijving, alg_verdieping_code) VALUES (v_alg_gebouw_key, 0, '_Begane grond', '0') RETURNING alg_verdieping_key INTO v_alg_verdieping_key; fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Verdieping aangemaakt'); END; v_alg_ruimte_nr := '_'; BEGIN SELECT alg_ruimte_key INTO v_alg_ruimte_key FROM alg_ruimte WHERE alg_ruimte_verwijder IS NULL AND alg_verdieping_key = v_alg_verdieping_key AND alg_ruimte_nr = '_'; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO alg_ruimte (alg_verdieping_key, alg_ruimte_nr, alg_ruimte_omschrijving) VALUES (v_alg_verdieping_key, '_', 'MJOP ruimte') RETURNING alg_ruimte_key INTO v_alg_ruimte_key; fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Ruimte aangemaakt'); END; -- v_errormsg := 'Bepaal objectsoort'; v_ins_srtdeel_code := TRIM(v_ins_srtdeel_code); SELECT ins_srtdeel_omschrijving, ins_srtdeel_key, ins_srtgroep_key INTO v_ins_srtdeel_omschrijving, v_ins_srtdeel_key, v_ins_srtgroep_key FROM ins_srtdeel WHERE ins_srtdeel_verwijder IS NULL AND ins_srtdeel_code = v_ins_srtdeel_code; v_errormsg := 'Bepaal objectgroep'; SELECT ins_srtgroep_omschrijving, ins_discipline_key INTO v_ins_srtgroep_omschrijving, v_ins_discipline_key FROM ins_srtgroep WHERE ins_srtgroep_key = v_ins_srtgroep_key; v_errormsg := 'Bepaal discipline'; SELECT ins_discipline_omschrijving INTO v_ins_discipline_omschrijving FROM ins_discipline WHERE ins_discipline_key = v_ins_discipline_key; BEGIN v_errormsg := 'Bepaal object id - Kijk of het externnr bestaat'; SELECT d.ins_deel_omschrijving INTO v_ins_deel_omschrijving FROM ins_v_deel_gegevens dg, ins_deel d WHERE dg.ins_deel_key = d.ins_deel_key AND dg.alg_gebouw_upper = v_alg_gebouw_code AND d.ins_deel_externnr = v_ins_deel_externnr; IF v_ins_deel_omschrijving NOT LIKE v_alg_gebouw_code || '%' THEN v_ins_deel_omschrijving := NULL; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN v_ins_deel_omschrijving := NULL; END; IF v_ins_deel_omschrijving IS NULL THEN v_errormsg := 'Bepaal object id - maak een nieuw nummer aan'; SELECT MAX(FAC.safe_to_number(SUBSTR(ins_deel_omschrijving, INSTR(ins_deel_omschrijving, '-', 1, 2)+1, 100))) INTO v_ins_deel_volgnr FROM ins_deel WHERE ins_deel_verwijder IS NULL AND ins_deel_omschrijving LIKE v_alg_gebouw_code || '-' || v_ins_srtdeel_code || '%'; IF v_ins_deel_volgnr IS NULL THEN v_ins_deel_volgnr := 0; END IF; v_ins_deel_omschrijving := v_alg_gebouw_code || '-' || v_ins_srtdeel_code || '-' || LPAD(v_ins_deel_volgnr + 1, 2, '0'); END IF; v_errormsg := 'Objectopmerking ongeldig'; v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking); IF LENGTH (v_ins_deel_opmerking) > 320 THEN v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 320); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Objectopmerking wordt afgebroken tot [' || v_ins_deel_opmerking || ']' ); END IF; -- v_errormsg := 'Aantal ongeldig; maximale grootte 999999.99'; v_ins_deel_aantal := TRIM (v_ins_deel_aantal); v_ins_deel_aantal := REPLACE (v_ins_deel_aantal, ',', '.'); v_ins_deel_aantal_n := NULL; IF (v_ins_deel_aantal IS NOT NULL) THEN IF (fac.safe_to_number (v_ins_deel_aantal) IS NULL) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); ELSE v_ins_deel_aantal_n := fac.safe_to_number (v_ins_deel_aantal); END IF; ELSE v_ins_deel_aantal_n := 1; END IF; -- v_errorhint := 'Bepaling registratiedatum'; v_ins_kenmerkwaarde8 := TRIM(v_ins_kenmerkwaarde8); IF v_ins_kenmerkwaarde8 IS NOT NULL AND LENGTH(v_ins_kenmerkwaarde8) = 4 THEN v_ins_deel_aanmaak := '01-01-' || TRIM(v_ins_kenmerkwaarde8); v_ins_deel_aanmaak_d := TO_DATE(v_ins_deel_aanmaak, 'dd-mm-yyyy'); END IF; -- De rest alleen ff trimmen. v_ins_kenmerkwaarde1 := TRIM (v_ins_kenmerkwaarde1); v_ins_kenmerkwaarde2 := TRIM (v_ins_kenmerkwaarde2); v_ins_kenmerkwaarde3 := TRIM (v_ins_kenmerkwaarde3); v_ins_kenmerkwaarde4 := TRIM (v_ins_kenmerkwaarde4); v_ins_kenmerkwaarde5 := TRIM (v_ins_kenmerkwaarde5); v_ins_kenmerkwaarde6 := TRIM (v_ins_kenmerkwaarde6); v_ins_kenmerkwaarde7 := TRIM (v_ins_kenmerkwaarde7); v_ins_kenmerkwaarde8 := TRIM (v_ins_kenmerkwaarde8); v_ins_kenmerkwaarde9 := TRIM (v_ins_kenmerkwaarde9); v_ins_kenmerkwaarde10 := TRIM (v_ins_kenmerkwaarde10); v_ins_kenmerkwaarde11 := TRIM (v_ins_kenmerkwaarde11); v_ins_kenmerkwaarde12 := TRIM (v_ins_kenmerkwaarde12); v_ins_kenmerkwaarde13 := TRIM (v_ins_kenmerkwaarde13); v_ins_kenmerkwaarde14 := TRIM (v_ins_kenmerkwaarde14); v_ins_kenmerkwaarde15 := TRIM (v_ins_kenmerkwaarde15); v_ins_kenmerkwaarde16 := TRIM (v_ins_kenmerkwaarde16); v_ins_kenmerkwaarde17 := TRIM (v_ins_kenmerkwaarde17); v_ins_kenmerkwaarde18 := TRIM (v_ins_kenmerkwaarde18); v_ins_kenmerkwaarde19 := TRIM (v_ins_kenmerkwaarde19); v_ins_kenmerkwaarde20 := TRIM (v_ins_kenmerkwaarde20); -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout bij wegschrijven importregel'; -- Als uit kenmerkheader een geldige kenmerksoort-key volgt, -- dan is kenmerkwaarde gevuld met =; zoniet, -- dan is kenmerkwaarde gevuld met ! -- NB. Een NULL-waarde resulteert NIET in het wissen van een -- kenmerkveld (bijwerken kan wel, maar wissen dus niet)! INSERT INTO fac_imp_ins ( ins_discipline_omschrijving, ins_discipline_kostensoort, ins_srtgroep_omschrijving, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_deel_omschrijving, ins_deel_opmerking, alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_ruimte_nr, ins_kenmerkwaarde1, ins_kenmerkwaarde2, ins_kenmerkwaarde3, ins_kenmerkwaarde4, ins_kenmerkwaarde5, ins_kenmerkwaarde6, ins_kenmerkwaarde7, ins_kenmerkwaarde8, ins_kenmerkwaarde9, ins_kenmerkwaarde10, ins_kenmerkwaarde11, ins_kenmerkwaarde12, ins_kenmerkwaarde13, ins_kenmerkwaarde14, ins_kenmerkwaarde15, ins_kenmerkwaarde16, ins_kenmerkwaarde17, ins_kenmerkwaarde18, ins_kenmerkwaarde19, ins_kenmerkwaarde20, ins_deel_aanmaak, ins_deel_aantal, ins_deel_externnr ) VALUES ( v_ins_discipline_omschrijving, v_ins_discipline_kostensoort, v_ins_srtgroep_omschrijving, v_ins_srtdeel_code, v_ins_srtdeel_omschrijving, v_ins_deel_omschrijving, v_ins_deel_opmerking, v_alg_locatie_code, v_alg_gebouw_code, v_alg_verdieping_volgnr, v_alg_ruimte_nr, DECODE (v_ins_kenmerk_key1, NULL, v_ins_kenmerkwaarde1, DECODE(v_ins_kenmerk_key1, NULL, NULL, TO_CHAR (v_ins_kenmerk_key1) || '=' || SUBSTR (v_ins_kenmerkwaarde1, 1, 3900))), DECODE (v_ins_kenmerk_key2, NULL, v_ins_kenmerkwaarde2, DECODE(v_ins_kenmerk_key2, NULL, NULL, TO_CHAR (v_ins_kenmerk_key2) || '=' || SUBSTR (v_ins_kenmerkwaarde2, 1, 3900))), DECODE (v_ins_kenmerk_key3, NULL, v_ins_kenmerkwaarde3, DECODE(v_ins_kenmerk_key3, NULL, NULL, TO_CHAR (v_ins_kenmerk_key3) || '=' || SUBSTR (v_ins_kenmerkwaarde3, 1, 3900))), DECODE (v_ins_kenmerk_key4, NULL, v_ins_kenmerkwaarde4, DECODE(v_ins_kenmerk_key4, NULL, NULL, TO_CHAR (v_ins_kenmerk_key4) || '=' || SUBSTR (v_ins_kenmerkwaarde4, 1, 3900))), DECODE (v_ins_kenmerk_key5, NULL, v_ins_kenmerkwaarde5, DECODE(v_ins_kenmerk_key5, NULL, NULL, TO_CHAR (v_ins_kenmerk_key5) || '=' || SUBSTR (v_ins_kenmerkwaarde5, 1, 3900))), DECODE (v_ins_kenmerk_key6, NULL, v_ins_kenmerkwaarde6, DECODE(v_ins_kenmerk_key6, NULL, NULL, TO_CHAR (v_ins_kenmerk_key6) || '=' || SUBSTR (v_ins_kenmerkwaarde6, 1, 3900))), DECODE (v_ins_kenmerk_key7, NULL, v_ins_kenmerkwaarde7, DECODE(v_ins_kenmerk_key7, NULL, NULL, TO_CHAR (v_ins_kenmerk_key7) || '=' || SUBSTR (v_ins_kenmerkwaarde7, 1, 3900))), DECODE (v_ins_kenmerk_key8, NULL, v_ins_kenmerkwaarde8, DECODE(v_ins_kenmerk_key8, NULL, NULL, TO_CHAR (v_ins_kenmerk_key8) || '=' || SUBSTR (v_ins_kenmerkwaarde8, 1, 3900))), DECODE (v_ins_kenmerk_key9, NULL, v_ins_kenmerkwaarde9, DECODE(v_ins_kenmerk_key9, NULL, NULL, TO_CHAR (v_ins_kenmerk_key9) || '=' || SUBSTR (v_ins_kenmerkwaarde9, 1, 3900))), DECODE (v_ins_kenmerk_key10, NULL, v_ins_kenmerkwaarde10, DECODE(v_ins_kenmerk_key10, NULL, NULL, TO_CHAR (v_ins_kenmerk_key10) || '=' || SUBSTR (v_ins_kenmerkwaarde10, 1, 3900))), DECODE (v_ins_kenmerk_key11, NULL, v_ins_kenmerkwaarde11, DECODE(v_ins_kenmerk_key11, NULL, NULL, TO_CHAR (v_ins_kenmerk_key11) || '=' || SUBSTR (v_ins_kenmerkwaarde11, 1, 3900))), DECODE (v_ins_kenmerk_key12, NULL, v_ins_kenmerkwaarde12, DECODE(v_ins_kenmerk_key12, NULL, NULL, TO_CHAR (v_ins_kenmerk_key12) || '=' || SUBSTR (v_ins_kenmerkwaarde12, 1, 3900))), DECODE (v_ins_kenmerk_key13, NULL, v_ins_kenmerkwaarde13, DECODE(v_ins_kenmerk_key13, NULL, NULL, TO_CHAR (v_ins_kenmerk_key13) || '=' || SUBSTR (v_ins_kenmerkwaarde13, 1, 3900))), DECODE (v_ins_kenmerk_key14, NULL, v_ins_kenmerkwaarde14, DECODE(v_ins_kenmerk_key14, NULL, NULL, TO_CHAR (v_ins_kenmerk_key14) || '=' || SUBSTR (v_ins_kenmerkwaarde14, 1, 3900))), DECODE (v_ins_kenmerk_key15, NULL, v_ins_kenmerkwaarde15, DECODE(v_ins_kenmerk_key15, NULL, NULL, TO_CHAR (v_ins_kenmerk_key15) || '=' || SUBSTR (v_ins_kenmerkwaarde15, 1, 3900))), DECODE (v_ins_kenmerk_key16, NULL, v_ins_kenmerkwaarde16, DECODE(v_ins_kenmerk_key16, NULL, NULL, TO_CHAR (v_ins_kenmerk_key16) || '=' || SUBSTR (v_ins_kenmerkwaarde16, 1, 3900))), DECODE (v_ins_kenmerk_key17, NULL, v_ins_kenmerkwaarde17, DECODE(v_ins_kenmerk_key17, NULL, NULL, TO_CHAR (v_ins_kenmerk_key17) || '=' || SUBSTR (v_ins_kenmerkwaarde17, 1, 3900))), DECODE (v_ins_kenmerk_key18, NULL, v_ins_kenmerkwaarde18, DECODE(v_ins_kenmerk_key18, NULL, NULL, TO_CHAR (v_ins_kenmerk_key18) || '=' || SUBSTR (v_ins_kenmerkwaarde18, 1, 3900))), DECODE (v_ins_kenmerk_key19, NULL, v_ins_kenmerkwaarde19, DECODE(v_ins_kenmerk_key19, NULL, NULL, TO_CHAR (v_ins_kenmerk_key19) || '=' || SUBSTR (v_ins_kenmerkwaarde19, 1, 3900))), DECODE (v_ins_kenmerk_key20, NULL, v_ins_kenmerkwaarde20, DECODE(v_ins_kenmerk_key20, NULL, NULL, TO_CHAR (v_ins_kenmerk_key20) || '=' || SUBSTR (v_ins_kenmerkwaarde20, 1, 3900))), v_ins_deel_aanmaak_d, v_ins_deel_aantal_n, v_ins_deel_externnr ); COMMIT; v_count_import := v_count_import + 1; END; END IF; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; -- We gaan nu de nummering van de objecten aanpassen. Ze hebben allemaal het hoogste bestaande nummer + 1 meegekregen. v_alg_gebouw_code := 'Leeg'; v_ins_srtdeel_code := 'Leeg'; FOR rec IN c LOOP BEGIN IF rec.alg_gebouw_code <> v_alg_gebouw_code OR rec.ins_srtdeel_code <> v_ins_srtdeel_code THEN v_ins_deel_volgnr := FAC.safe_to_number ( SUBSTR (rec.ins_deel_omschrijving, INSTR (rec.ins_deel_omschrijving, '-', 1, 2) + 1, 100)); v_alg_gebouw_code := rec.alg_gebouw_code; v_ins_srtdeel_code := rec.ins_srtdeel_code; ELSE v_ins_deel_volgnr := v_ins_deel_volgnr + 1; UPDATE fac_imp_ins SET ins_deel_omschrijving = rec.alg_gebouw_code || '-' || rec.ins_srtdeel_code || '-' || LPAD (v_ins_deel_volgnr, 2, '0') WHERE ins_deel_externnr = rec.ins_deel_externnr AND alg_gebouw_code = v_alg_gebouw_code; END IF; END; END LOOP; IF (header_is_valid = 1) THEN fac.imp_writelog ( p_import_key, 'S', 'Objecten/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Objecten/aantal ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '' ); END IF; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces objecten afgebroken! regel:' || v_file_index); END rwsn_import_ins_elementen; / CREATE OR REPLACE PROCEDURE rwsn_update_ins_elementen ( p_import_key IN NUMBER) IS CURSOR C IS SELECT d.ins_deel_key, d.ins_deel_omschrijving FROM ins_v_deel_gegevens dg, ins_deel d WHERE d.ins_deel_vervaldatum IS NULL AND d.ins_deel_key = dg.ins_deel_key AND NOT EXISTS (SELECT 1 FROM fac_imp_ins i WHERE d.ins_deel_externnr = i.ins_deel_externnr AND dg.alg_gebouw_code = i.alg_gebouw_code) AND dg.alg_gebouw_code IN (SELECT alg_gebouw_code FROM fac_imp_ins) AND dg.ins_discipline_omschrijving = 'MJOB'; CURSOR c_mut_opm IS SELECT dg.ins_deel_key, dg.ins_deel_opmerking ins_deel_opmerking_old, i.ins_deel_opmerking FROM ins_v_deel_gegevens dg, fac_imp_ins i WHERE dg.ins_deel_omschrijving = i.ins_deel_omschrijving AND COALESCE(dg.ins_deel_opmerking, 'QueQeLeQue') <> COALESCE(i.ins_deel_opmerking, 'QueQeLeQue') AND dg.ins_discipline_omschrijving = 'MJOB'; -- aantallen worden niet automatisch bijgewerkt in de update van objecten. CURSOR c_mut_aantal IS SELECT ins_deel_key, dg.ins_deel_aantal ins_deel_aantal_old, i.ins_deel_aantal FROM fac_imp_ins i, ins_v_deel_gegevens dg WHERE dg.ins_deel_omschrijving = i.ins_deel_omschrijving AND i.ins_deel_aantal <> dg.ins_deel_aantal AND dg.ins_discipline_omschrijving = 'MJOB'; CURSOR c_mut IS SELECT dg.ins_deel_key, SUBSTR(ins_srtkenmerk_omschrijving || ': ' || COALESCE(TRIM(ins_kenmerkdeel_waarde), '') || ' --> ' || COALESCE(TRIM(ikenmerkwaarde), ''),1,2000) log FROM (SELECT d.ins_deel_key, k.ins_kenmerk_key, ins_srtkenmerk_omschrijving, REPLACE ( CASE WHEN UPPER(ins_kenmerkwaarde1) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde1 WHEN UPPER(ins_kenmerkwaarde2) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde2 WHEN UPPER(ins_kenmerkwaarde3) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde3 WHEN UPPER(ins_kenmerkwaarde4) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde4 WHEN UPPER(ins_kenmerkwaarde5) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde5 WHEN UPPER(ins_kenmerkwaarde6) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde6 WHEN UPPER(ins_kenmerkwaarde7) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde7 WHEN UPPER(ins_kenmerkwaarde8) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde8 WHEN UPPER(ins_kenmerkwaarde9) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde9 WHEN UPPER(ins_kenmerkwaarde10) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde10 WHEN UPPER(ins_kenmerkwaarde11) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde11 WHEN UPPER(ins_kenmerkwaarde12) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde12 WHEN UPPER(ins_kenmerkwaarde13) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde13 WHEN UPPER(ins_kenmerkwaarde14) like UPPER(ins_srtkenmerk_omschrijving) || '|%' THEN ins_kenmerkwaarde14 ELSE 'Onbekend' END, ins_srtkenmerk_omschrijving || '|0=' ) ikenmerkwaarde FROM fac_imp_ins i, ins_deel d, ins_kenmerk k, ins_srtkenmerk sk WHERE d.ins_discipline_key = k.ins_srtinstallatie_key AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND i.ins_deel_omschrijving = d.ins_deel_omschrijving AND k.ins_kenmerk_niveau = 'D') dg JOIN ins_kenmerkdeel kd ON kd.ins_deel_key = dg.ins_deel_key AND kd.ins_kenmerk_key = dg.ins_kenmerk_key WHERE ikenmerkwaarde <> 'Onbekend' AND COALESCE(ikenmerkwaarde, 'QueQeLeQue') <> COALESCE(ins_kenmerkdeel_waarde, 'QueQeLeQue'); v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR (400); v_fac_srtnotificatie_key FAC_SRTNOTIFICATIE.fac_srtnotificatie_key%TYPE; BEGIN fac_update_ins (p_import_key); SELECT fac_srtnotificatie_key INTO v_fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'INSTRK'; -- Pas de beschrijving van de elementen aan. FOR reco IN c_mut_opm LOOP UPDATE ins_deel SET ins_deel_opmerking = reco.ins_deel_opmerking WHERE ins_deel_key = reco.ins_deel_key; INSERT INTO fac_tracking (fac_srtnotificatie_key, fac_tracking_oms, fac_tracking_refkey) VALUES (v_fac_srtnotificatie_key, 'Object gewijzigd' || CHR(10) || 'Beschrijving: ' || reco.ins_deel_opmerking_old || ' --> ' || reco.ins_deel_opmerking, reco.ins_deel_key); END LOOP; -- Pas de aantallen van de elementen aan. FOR reca IN c_mut_aantal LOOP UPDATE ins_deel SET ins_deel_aantal = reca.ins_deel_aantal WHERE ins_deel_key = reca.ins_deel_key; INSERT INTO fac_tracking (fac_srtnotificatie_key, fac_tracking_oms, fac_tracking_refkey) VALUES (v_fac_srtnotificatie_key, 'Object gewijzigd' || CHR(10) || 'Hoeveelheid: ' || reca.ins_deel_aantal_old || ' --> ' || reca.ins_deel_aantal, reca.ins_deel_key); END LOOP; -- Als er kenmerken wijzigen dan gaan we dat tracken. FOR rec IN c_mut LOOP BEGIN INSERT INTO fac_tracking (fac_srtnotificatie_key, fac_tracking_oms, fac_tracking_refkey) VALUES (v_fac_srtnotificatie_key, 'Object gewijzigd' || CHR(10) || rec.log, rec.ins_deel_key); END; END LOOP; -- controleer op verwijderde records FOR rec IN c LOOP BEGIN UPDATE ins_deel SET ins_deel_vervaldatum = SYSDATE WHERE ins_deel_key = rec.ins_deel_key; fac.imp_writelog (p_import_key, 'I', v_aanduiding || 'Element is verwijderd: ' || rec.ins_deel_omschrijving, ''); COMMIT; 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; -- Pas de logging aan zodat deze te begrijpen is. UPDATE imp_log SET imp_log_hint = 'NL-SfB code komt niet voor in de RWS elementenlijst.' WHERE imp_log_omschrijving LIKE '%Bepaal objectsoort ORACLE (error 100/ORA'||'-01403: Geen gegevens gevonden.)%' AND fac_import_key = p_import_key; UPDATE imp_log SET imp_log_hint = 'Gebouwcode bestaat niet in Facilitor' WHERE imp_log_omschrijving LIKE '%Gebouwcode kan niet gevonden worden ORACLE (error 100/ORA'||'-01403: Geen gegevens gevonden.)%' AND fac_import_key = p_import_key; END rwsn_update_ins_elementen; / -- -- MJOB gebreken -- CREATE OR REPLACE PROCEDURE rwsn_import_ins_gebreken (p_import_key IN NUMBER) IS c_delim VARCHAR2 (2) := fac.import_delimiter(p_import_key); v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); v_file_index NUMBER; v_count NUMBER; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR2 (400); v_gebouw_code VARCHAR2 (255); v_deel_externnr VARCHAR2 (255); v_code_gebrek VARCHAR2 (255); v_conditie_gebrek VARCHAR2 (255); v_ernst_gebrek VARCHAR2 (255); v_gebrekcode_ernst VARCHAR2 (1); v_intensiteit_gebrek VARCHAR2 (255); v_omvang_gebrek VARCHAR2 (255); v_aspect1 VARCHAR2 (255); v_aspect2 VARCHAR2 (255); v_aspect3 VARCHAR2 (255); v_aspect4 VARCHAR2 (255); v_aspect5 VARCHAR2 (255); v_aspect6 VARCHAR2 (255); v_aspect7 VARCHAR2 (255); v_kosten_gebrek VARCHAR2 (255); v_kosten_gebrek_n NUMBER(8,2); v_opmerking VARCHAR2 (4000); v_perslid_email VARCHAR2 (100); v_gebouw_key NUMBER; v_deel_omschrijving INS_DEEL.INS_DEEL_OMSCHRIJVING%TYPE; v_stdmelding_key NUMBER; v_discipline_key NUMBER; v_srtdiscipline_key NUMBER; v_stdmelding_omschrijving MLD_STDMELDING.MLD_STDMELDING_OMSCHRIJVING%TYPE; -- Overige velden: CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; FUNCTION get_aspect_value (p_aspect IN VARCHAR2) RETURN VARCHAR2 IS v_result VARCHAR2 (100); BEGIN v_result := p_aspect; IF p_aspect IS NULL OR p_aspect = 0 THEN v_result := 'NVT'; END IF; IF p_aspect = '1' THEN v_result := 'Gering'; END IF; IF p_aspect = '2' THEN v_result := 'Matig'; END IF; IF p_aspect = '3' THEN v_result := 'Sterk'; END IF; RETURN v_result; END; BEGIN -- Eerst opruiming DELETE FROM cnd_imp_nen2767_results; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; -- Bepalen key van het vakgroeptype SELECT ins_srtdiscipline_key INTO v_srtdiscipline_key FROM ins_srtdiscipline WHERE ins_srtdiscipline_omschrijving = 'NEN2767 - Conditiemeting'; -- Bepalen email invoerder v_errormsg := 'Bepalen email invoerder'; SELECT p.prs_perslid_email INTO v_perslid_email FROM prs_perslid p, fac_import i WHERE p.prs_perslid_key = i.prs_perslid_key AND i.fac_import_key = p_import_key; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_file_index := rec1.fac_imp_file_index; v_errormsg := 'Fout bij opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_gebouw_code); -- Objectcode fac.imp_getfield (v_newline, c_delim, v_deel_externnr); -- Element-ID fac.imp_getfield (v_newline, c_delim, v_code_gebrek); -- NEN code vh gebrek fac.imp_getfield (v_newline, c_delim, v_ernst_gebrek); fac.imp_getfield (v_newline, c_delim, v_intensiteit_gebrek); fac.imp_getfield (v_newline, c_delim, v_omvang_gebrek); fac.imp_getfield (v_newline, c_delim, v_aspect1); -- A. Veiligheid fac.imp_getfield (v_newline, c_delim, v_aspect2); -- B. Binnenmilieu, Gezondheid fac.imp_getfield (v_newline, c_delim, v_aspect3); -- C. Gebruikswaarde en functioneren fac.imp_getfield (v_newline, c_delim, v_aspect4); -- D. Monumentale waarde fac.imp_getfield (v_newline, c_delim, v_aspect5); -- E. Belevingswaarde en aanzien fac.imp_getfield (v_newline, c_delim, v_aspect6); -- F. Storingsonderhoud fac.imp_getfield (v_newline, c_delim, v_aspect7); -- G. Kosten vervolgschade fac.imp_getfield (v_newline, c_delim, v_kosten_gebrek); fac.imp_getfield (v_newline, c_delim, v_opmerking); v_gebouw_code := TRIM(v_gebouw_code); v_deel_externnr := TRIM(v_deel_externnr); v_code_gebrek := TRIM(v_code_gebrek); v_ernst_gebrek := TRIM(v_ernst_gebrek); v_intensiteit_gebrek := TRIM(v_intensiteit_gebrek); v_omvang_gebrek := TRIM(v_omvang_gebrek); v_aspect1 := TRIM(v_aspect1); v_aspect2 := TRIM(v_aspect2); v_aspect3 := TRIM(v_aspect3); v_aspect4 := TRIM(v_aspect4); v_aspect5 := TRIM(v_aspect5); v_aspect6 := TRIM(v_aspect6); v_aspect7 := TRIM(v_aspect7); v_kosten_gebrek := TRIM(v_kosten_gebrek); v_opmerking := TRIM(v_opmerking); v_aanduiding := '[' || v_gebouw_code || '|' || v_deel_externnr || '|' || v_code_gebrek || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER(v_gebouw_code) = 'OBJECTCODE' AND UPPER(v_deel_externnr) = 'ELEMENT-ID' AND UPPER(v_code_gebrek) = 'CODE GEBREK' AND UPPER(v_ernst_gebrek) = 'ERNST GEBREK' AND UPPER(v_intensiteit_gebrek) = 'INTENSITEIT GEBREK' AND UPPER(v_omvang_gebrek) = 'OMVANG GEBREK' AND UPPER(v_aspect1) = 'ASPECT 1' AND UPPER(v_aspect2) = 'ASPECT 2' AND UPPER(v_aspect3) = 'ASPECT 3' AND UPPER(v_aspect4) = 'ASPECT 4' AND UPPER(v_aspect5) = 'ASPECT 5' AND UPPER(v_aspect6) = 'ASPECT 6' AND UPPER(v_aspect7) = 'ASPECT 7' AND UPPER(v_kosten_gebrek) = 'KOSTEN VAN HET GEBREK' AND UPPER(v_opmerking) = 'OPMERKING' THEN header_is_valid := 1; ELSE IF rec1.fac_imp_file_index = 1 THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldige header aangetroffen:', 'OBJECTCODE: ' || UPPER (v_gebouw_code) || CHR(10) || 'ELEMENT-ID: ' || UPPER (v_deel_externnr) || CHR(10) || 'CODE GEBREK: ' || UPPER (v_code_gebrek) || CHR(10) || 'ERNST GEBREK: ' || UPPER (v_ernst_gebrek) || CHR(10) || 'INTENSITEIT GEBREK: ' || UPPER (v_intensiteit_gebrek) || CHR(10) || 'OMVANG GEBREK: ' || UPPER (v_omvang_gebrek) || CHR(10) || 'ASPECT 1: ' || UPPER (v_aspect1) || CHR(10) || 'ASPECT 2: ' || UPPER (v_aspect2) || CHR(10) || 'ASPECT 3: ' || UPPER (v_aspect3) || CHR(10) || 'ASPECT 4: ' || UPPER (v_aspect4) || CHR(10) || 'ASPECT 5: ' || UPPER (v_aspect5) || CHR(10) || 'ASPECT 6: ' || UPPER (v_aspect6) || CHR(10) || 'ASPECT 7: ' || UPPER (v_aspect7) || CHR(10) || 'KOSTEN VAN HET GEBREK: ' || UPPER (v_kosten_gebrek) || CHR(10) || 'OPMERKING: ' || UPPER (v_opmerking)); END IF; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Gebouwcode kan niet gevonden worden'; v_gebouw_code := TRIM (v_gebouw_code); SELECT alg_gebouw_key INTO v_gebouw_key FROM alg_gebouw g WHERE alg_gebouw_verwijder IS NULL AND UPPER(alg_gebouw_code) = v_gebouw_code; v_errormsg := 'Bepaal object id - Kijk of het externnr bestaat'; SELECT d.ins_deel_omschrijving INTO v_deel_omschrijving FROM ins_v_deel_gegevens dg, ins_deel d WHERE dg.ins_deel_key = d.ins_deel_key AND dg.alg_gebouw_upper = v_gebouw_code AND d.ins_deel_externnr = v_deel_externnr; v_errormsg := 'Objectopmerking ongeldig'; v_opmerking := TRIM (v_opmerking); IF LENGTH (v_opmerking) > 2000 THEN v_opmerking := SUBSTR (v_opmerking, 1, 2000); fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Opmerking wordt afgebroken tot [' || v_opmerking || ']' ); END IF; -- v_errormsg := 'Kosten ongeldig; maximale grootte 999999.99 ' || v_kosten_gebrek; v_kosten_gebrek := TRIM (v_kosten_gebrek); v_kosten_gebrek := REPLACE (v_kosten_gebrek, ',', '.'); v_kosten_gebrek_n := NULL; IF v_kosten_gebrek IS NOT NULL THEN IF (fac.safe_to_number (v_kosten_gebrek) IS NULL) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); ELSE v_kosten_gebrek_n := fac.safe_to_number (v_kosten_gebrek); END IF; END IF; -- v_errormsg := 'Bepaling gebrekscode'; IF v_code_gebrek IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key,'I',v_aanduiding,'Gebrekcode niet aanwezig.'); ELSE v_code_gebrek := UPPER(REPLACE(v_code_gebrek, ' ')); BEGIN SELECT mld_stdmelding_key, mld_stdmelding_omschrijving INTO v_stdmelding_key, v_stdmelding_omschrijving FROM mld_stdmelding WHERE mld_stdmelding_code = v_code_gebrek; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN v_errorhint := 'Bepaling leverancier specifieke gebrekscode'; -- Is dit een eigen toegevoegd gebrek. Dan begint het met een _ SELECT mld_stdmelding_key, mld_stdmelding_omschrijving INTO v_stdmelding_key, v_stdmelding_omschrijving FROM mld_stdmelding WHERE mld_stdmelding_code = '_' || v_code_gebrek; fac.imp_writelog (p_import_key,'W',v_aanduiding,'Gebrekcode voldoet niet aan NEN2767 maar leverancierspecifieke code wordt gebruikt.'); EXCEPTION WHEN NO_DATA_FOUND THEN -- Nu gaan we een leverancier specifieke code toevoegen v_errorhint := 'Toevoegen leverancierspecifieke gebrekscode'; -- Nu gaan we een leverancier specifieke code toevoegen BEGIN SELECT ins_discipline_key INTO v_discipline_key FROM ins_tab_discipline d WHERE REGEXP_SUBSTR (v_code_gebrek || 'Leverancier specifiek gebrek', '[[:alpha:]]*[[:digit:]]*') = SUBSTR (ins_discipline_omschrijving, 1, INSTR (ins_discipline_omschrijving, ' ') - 1) AND d.ins_srtdiscipline_key = v_srtdiscipline_key AND ins_discipline_code <> 'GEEN'; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_code, ins_discipline_omschrijving, ins_srtdiscipline_key) VALUES ('MLD', REGEXP_SUBSTR (v_code_gebrek, '[[:alpha:]]*[[:digit:]]*'), REGEXP_SUBSTR (v_code_gebrek, '[[:alpha:]]*[[:digit:]]*') || ' - Leverancier specifiek gebrek', v_srtdiscipline_key) RETURNING ins_discipline_key INTO v_discipline_key; fac.imp_writelog (p_import_key,'W',v_aanduiding,'Vakgroep voldoet niet aan NEN2767 maar leverancierspecifieke vakgroep wordt aangemaakt.'); END; v_errorhint := 'Toevoegen leverancierspecifieke gebrekscode'; INSERT INTO mld_stdmelding (mld_stdmelding_code, mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_hint, mld_stdmelding_subject, mld_stdmelding_t_accepttijd, mld_stdmelding_t_uitvoertijd, mld_stdmelding_t_uitvtijd_pr1, mld_stdmelding_t_uitvtijd_pr2, mld_stdmelding_t_uitvtijd_pr4, alg_onrgoed_niveau, alg_onrgoed_obj_niveau, ins_srtinst_verplichtstatus, mld_stdmelding_slabewaken) VALUES ( '_' || v_code_gebrek, v_discipline_key, v_code_gebrek || ' Leverancier specifiek gebrek', v_code_gebrek || ' Leverancier specifiek gebrek', 0, MLD_T_UITVOERTIJD (NULL, 'U'), MLD_T_UITVOERTIJD (2, 'D'), MLD_T_UITVOERTIJD (NULL, 'D'), MLD_T_UITVOERTIJD (NULL, 'D'), MLD_T_UITVOERTIJD (NULL, 'D'), 'G', 'G', 2, 0) RETURNING mld_stdmelding_key, mld_stdmelding_omschrijving INTO v_stdmelding_key, v_stdmelding_omschrijving; v_errorhint := 'Toevoegen kenmerk omvang'; INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_default, mld_kenmerk_niveau, mld_kenmerk_verplicht, mld_kenmerk_toonbaar, mld_kenmerk_volgnummer) SELECT (SELECT mld_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'OMVANG'), v_stdmelding_key, NULL, 'S', 1, NULL, 20 FROM DUAL; v_gebrekcode_ernst := SUBSTR(v_code_gebrek, LENGTH(REGEXP_SUBSTR ( v_code_gebrek, '[[:alpha:]]*[[:digit:]]*'))+1,1); v_errorhint := 'Toevoegen kenmerk ernst'; INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_default, mld_kenmerk_niveau, mld_kenmerk_verplicht, mld_kenmerk_toonbaar, mld_kenmerk_volgnummer) SELECT (SELECT mld_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'ERNST'), v_stdmelding_key, (SELECT fac_usrdata_key FROM fac_usrdata WHERE fac_usrdata_omschr LIKE v_gebrekcode_ernst || ' - % gebrek'), 'S', 1, NULL, 10 FROM DUAL; v_errorhint := 'Toevoegen kenmerk intensiteit'; INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_default, mld_kenmerk_niveau, mld_kenmerk_verplicht, mld_kenmerk_toonbaar, mld_kenmerk_volgnummer) SELECT (SELECT mld_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'INTENSITEIT'), v_stdmelding_key, NULL, 'S', 1, NULL, 30 FROM DUAL; fac.imp_writelog (p_import_key,'W',v_aanduiding,'Gebrekcode voldoet niet aan NEN2767 maar leverancierspecifieke code wordt aangemaakt.'); END; v_code_gebrek := '_' || v_code_gebrek; END; END IF; IF v_ongeldig = 0 THEN -- Als de codering ingevuld wordt gaan we zelf op zoek naar de omschrijving. IF v_ernst_gebrek IN ('E', 'G', 'S') THEN CASE v_ernst_gebrek WHEN 'G' THEN v_ernst_gebrek := 'G - Gering gebrek'; WHEN 'S' THEN v_ernst_gebrek := 'S - Serieus gebrek'; WHEN 'E' THEN v_ernst_gebrek := 'E - Ernstig gebrek'; END CASE; END IF; -- Bepalen of de ingelezen ernst wel overeenkomt met de ernst die bij het gebrek hoort. SELECT COUNT (*) INTO v_count FROM mld_srtkenmerk sk, mld_kenmerk k, mld_stdmelding std, fac_usrdata ud WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key AND k.mld_kenmerk_niveau = 'S' AND k.mld_stdmelding_key = std.mld_stdmelding_key AND sk.mld_srtkenmerk_code = 'ERNST' AND mld_stdmelding_code = v_code_gebrek AND fac_usrdata_omschr = v_ernst_gebrek AND k.mld_kenmerk_default LIKE '%' || ud.fac_usrdata_key || '%'; IF v_count <> 1 THEN fac.imp_writelog ( p_import_key, 'W', v_aanduiding, 'Ernst komt niet overeen met default bij gebrekcode.'); END IF; IF (v_ernst_gebrek IS NULL) OR (LENGTH (v_ernst_gebrek) > 50) THEN fac.imp_writelog ( p_import_key, 'W', v_aanduiding, v_errorhint || ' - Regel wordt overgeslagen'); v_ongeldig := 1; END IF; -- v_errorhint := 'Ongeldig kolom OMVANG (moet 1,2,3,4 of 5 zijn) [' || v_omvang_gebrek || ']'; -- Als de codering ingevuld wordt gaan we zelf op zoek naar de omschrijving. IF fac.safe_to_number(v_omvang_gebrek) IN (1, 2, 3, 4, 5) THEN CASE v_omvang_gebrek WHEN 1 THEN v_omvang_gebrek := '< 2% Incidenteel'; WHEN 2 THEN v_omvang_gebrek := '2% tot 10% Plaatselijk'; WHEN 3 THEN v_omvang_gebrek := '10% tot 30% Regelmatig'; WHEN 4 THEN v_omvang_gebrek := '30% tot 70% Aanzienlijk'; WHEN 5 THEN v_omvang_gebrek := '> 70% Algemeen'; END CASE; ELSE fac.imp_writelog ( p_import_key, 'W', v_aanduiding, v_errorhint || ' - Regel wordt overgeslagen'); v_ongeldig := 1; END IF; -- v_errorhint := 'Ongeldig kolom INTENSITEIT (moet 1,2 of 3 zijn): [' || v_intensiteit_gebrek || ']' || v_intensiteit_gebrek; -- Als de codering ingevuld wordt gaan we zelf op zoek naar de omschrijving. IF fac.safe_to_number(v_intensiteit_gebrek) IN (1, 2, 3) THEN CASE v_intensiteit_gebrek WHEN 1 THEN v_intensiteit_gebrek := '1 - Beginstadium'; WHEN 2 THEN v_intensiteit_gebrek := '2 - Gevorderd stadium'; WHEN 3 THEN v_intensiteit_gebrek := '3 - Eindstadium'; END CASE; ELSE fac.imp_writelog ( p_import_key, 'W', v_aanduiding, v_errorhint || ' - Regel wordt overgeslagen'); v_ongeldig := 1; END IF; v_aspect1 := get_aspect_value (v_aspect1); v_aspect2 := get_aspect_value (v_aspect2); v_aspect3 := get_aspect_value (v_aspect3); v_aspect4 := get_aspect_value (v_aspect4); v_aspect5 := get_aspect_value (v_aspect5); v_aspect6 := get_aspect_value (v_aspect6); v_aspect7 := get_aspect_value (v_aspect7); IF (v_ongeldig = 0) THEN BEGIN v_errorhint := 'Fout bij toevoegen regel aan importtabel cnd_imp_nen2767_results'; INSERT INTO cnd_imp_nen2767_results ( fac_import_key, alg_gebouw_code, ins_deel_omschrijving, mld_melding_datum, mld_melding_omschrijving, prs_perslid_email, gebrekcode, ernst, omvang, intensiteit, aspect1, aspect2, aspect3, aspect4, aspect5, aspect6, aspect7, kosten) VALUES (p_import_key, v_gebouw_code, v_deel_omschrijving, TO_CHAR(SYSDATE, 'dd-mm-yyyy'), v_stdmelding_omschrijving, v_perslid_email, v_code_gebrek, v_ernst_gebrek, v_omvang_gebrek, v_intensiteit_gebrek, v_aspect1, v_aspect2, v_aspect3, v_aspect4, v_aspect5, v_aspect6, v_aspect7, v_kosten_gebrek); v_count_import := v_count_import + 1; COMMIT; 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, 'E', v_aanduiding || v_errormsg, 'Ingelezen regel kan niet worden weggeschreven!'); COMMIT; END; END IF; -- ongeldig COMMIT; v_count_import := v_count_import + 1; END IF; -- ongeldig 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 (p_import_key, 'W', v_aanduiding || v_errormsg, v_errorhint); COMMIT; END; END LOOP; IF (header_is_valid = 1) THEN fac.imp_writelog ( p_import_key, 'S', 'Objecten/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Objecten/aantal ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '' ); END IF; -- Pas de logging aan zodat deze te begrijpen is. UPDATE imp_log SET imp_log_hint = 'Element bestaat niet in Facilitor' WHERE imp_log_omschrijving LIKE '%Kijk of het externnr bestaat%' AND fac_import_key = p_import_key; UPDATE imp_log SET imp_log_hint = 'Gebouwcode bestaat niet in Facilitor' WHERE imp_log_omschrijving LIKE '%Gebouwcode kan niet gevonden worden ORACLE (error 100/ORA'||'-01403: Geen gegevens gevonden.)%' AND fac_import_key = p_import_key; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces objecten afgebroken! regel:' || v_file_index); END rwsn_import_ins_gebreken; / CREATE OR REPLACE PROCEDURE rwsn_update_ins_gebreken ( p_import_key IN NUMBER) IS CURSOR c_geen IS SELECT m.mld_melding_key FROM ins_v_deel_gegevens dg, mld_melding m, mld_melding_object mo WHERE mo.ins_deel_key = dg.ins_deel_key AND mo.mld_melding_key = m.mld_melding_key AND m.mld_melding_status IN (1, 3, 4, 7) -- Nieuw, Te accepteren, In behandeling, Uitgegeven) AND ins_discipline_omschrijving = 'MJOB' AND alg_gebouw_upper IN (SELECT alg_gebouw_code FROM cnd_imp_nen2767_results) AND NOT EXISTS (SELECT 1 FROM cnd_imp_nen2767_results i WHERE i.ins_deel_omschrijving = dg.ins_deel_omschrijving); CURSOR c_nieuw IS SELECT * FROM cnd_imp_nen2767_results WHERE fac_import_key = p_import_key AND flex10 IS NULL ; CURSOR c_bestaand IS SELECT * FROM cnd_imp_nen2767_results WHERE fac_import_key = p_import_key AND flex10 IS NOT NULL; CURSOR c_checknieuw IS SELECT gebrekcode, ins_deel_omschrijving, COUNT (*) aantal FROM cnd_imp_nen2767_results WHERE flex10 IS NULL GROUP BY gebrekcode, ins_deel_omschrijving; CURSOR c_melding (c_gebrekcode VARCHAR2, c_deel_omschrijving VARCHAR2) IS SELECT m.mld_melding_key FROM mld_melding m, mld_stdmelding std, mld_melding_object mo, ins_v_deel_gegevens dg WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = mo.mld_melding_key AND mo.ins_deel_key = dg.ins_deel_key AND dg.ins_deel_omschrijving = c_deel_omschrijving AND m.mld_melding_status IN (1, 3, 4, 7) -- Nieuw, Te accepteren, In behandeling, Uitgegeven) AND std.mld_stdmelding_code = c_gebrekcode; v_aanduiding VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10); v_count_tot_n NUMBER (10); v_count_import NUMBER (10); v_mld_melding_key NUMBER (10); v_alg_gebouw_key NUMBER (10); v_ins_deel_key NUMBER (10); v_alg_ruimte_key NUMBER (10); v_prs_perslid_key NUMBER (10); v_mld_melding_datum VARCHAR2 (100); v_prs_perslid_email VARCHAR2 (100); v_prs_behandelaar_key NUMBER (10); v_mld_stdmelding_key NUMBER (10); v_ernst_kenmerk_key NUMBER (10); v_ernst_key NUMBER (10); v_omvang_kenmerk_key NUMBER (10); v_omvang_key NUMBER (10); v_intensiteit_kenmerk_key NUMBER (10); v_intensiteit_key NUMBER (10); v_foto_kenmerk_key NUMBER (10); v_kosten_kenmerk_key NUMBER (10) := NULL; v_kosten_srtkenmerk_key NUMBER (10); v_ernst_srtkenmerk_key NUMBER (10); v_omvang_srtkenmerk_key NUMBER (10); v_intensiteit_srtkenmerk_key NUMBER (10); v_mld_melding_omschrijving VARCHAR2 (4000); v_omvang VARCHAR2 (1000); v_intensiteit VARCHAR2 (1000); v_aspect1 VARCHAR2 (1000); v_aspect2 VARCHAR2 (1000); v_aspect3 VARCHAR2 (1000); v_aspect4 VARCHAR2 (1000); v_aspect5 VARCHAR2 (1000); v_aspect6 VARCHAR2 (1000); v_aspect7 VARCHAR2 (1000); v_inspecteur VARCHAR2 (1000); v_behandelaar VARCHAR2 (1000); v_foto VARCHAR2 (1000); v_kosten VARCHAR2 (1000); v_plandatum_date DATE; v_dienst VARCHAR2 (1000); v_taakgroep VARCHAR2 (1000); v_datumgereedinspecteur VARCHAR2 (1000); v_geadviseerdstartjaar VARCHAR2 (1000); v_flex1_kenmerk_key NUMBER (10); v_flex2_kenmerk_key NUMBER (10); v_flex3_kenmerk_key NUMBER (10); v_flex4_kenmerk_key NUMBER (10); v_flex5_kenmerk_key NUMBER (10); v_flex6_kenmerk_key NUMBER (10); v_flex7_kenmerk_key NUMBER (10); v_flex8_kenmerk_key NUMBER (10); v_flex1_waarde VARCHAR2 (1000); v_flex1_waarde_key NUMBER (10); v_flex2_waarde VARCHAR2 (1000); v_flex2_waarde_key NUMBER (10); v_flex3_waarde VARCHAR2 (1000); v_flex4_waarde VARCHAR2 (1000); v_conditiescore NUMBER (10) ; v_prioscore NUMBER (10) ; v_herberekenen NUMBER (1) :=0; v_melding_GV_aantal NUMBER(10); v_melding_GV VARCHAR2 (1000); v_mld_melding_status NUMBER(10); PROCEDURE set_aspect (p_aspect IN VARCHAR2, p_aspect_waarde IN VARCHAR2, p_mld_melding_key IN NUMBER) IS v_key NUMBER (10); v_kenmerk_key NUMBER (10); v_srtkenmerk_key NUMBER (10); BEGIN SELECT MAX (mld_srtkenmerk_key) INTO v_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = p_aspect; IF v_srtkenmerk_key IS NOT NULL THEN v_errorhint := p_aspect || ' (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen'; SELECT ud.fac_usrdata_key, k.mld_kenmerk_key INTO v_key, v_kenmerk_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_upper = UPPER (p_aspect_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; mld.upsertmeldingkenmerk (v_kenmerk_key, p_mld_melding_key, v_key); END IF; END; BEGIN -- Elementen die geen gebreken meer hebben en wel een conditiescore > 1 gaan we voorzien van de geen gebrek melding v_errorhint := 'Geen gebrek meldingen toevoegen'; FOR rec IN c_geen LOOP BEGIN mld.setmeldingstatus(rec.mld_melding_key, 5, 4, 0); -- Afgemeld, Facilitor cnd.process_mjb_score_effects (rec.mld_melding_key); END; END LOOP; -- we gaan kijken of het gebrek al voorkomt bij het element. Als dat zo is dan wordt flex10 gelijk aan het meldingnummer -- het kan voorkomen dat er meerdere gebreken op een element aanwezig zijn met dezelfde gebrekcode. Dan kunnen we ze niet meer mappen, -- we gaan dan de bestaande meldingen afmelden en de gebreken als nieuwe gebreken behandelen. FOR rec IN c_checknieuw LOOP BEGIN IF rec.aantal > 1 THEN -- afmelden van bestaande gebreken. Hierdoor worden de dubbele gebreken opnieuw ingelezen. FOR recm IN c_melding (rec.gebrekcode, rec.ins_deel_omschrijving) LOOP mld.setmeldingstatus(recm.mld_melding_key, 5, 4, 0); -- Afgemeld, Facilitor END LOOP; ELSE SELECT m.mld_melding_key INTO v_mld_melding_key FROM mld_melding m, mld_stdmelding std, mld_melding_object mo, ins_v_deel_gegevens dg WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND m.mld_melding_key = mo.mld_melding_key AND mo.ins_deel_key = dg.ins_deel_key AND dg.ins_deel_omschrijving = rec.ins_deel_omschrijving AND m.mld_melding_status IN (1, 3, 4, 7) -- Nieuw, Te accepteren, In behandeling, Uitgegeven) AND std.mld_stdmelding_code = rec.gebrekcode; UPDATE cnd_imp_nen2767_results i SET flex10 = v_mld_melding_key WHERE i.gebrekcode = rec.gebrekcode AND i.ins_deel_omschrijving = rec.ins_deel_omschrijving; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; -- Er bestaat geen gebrek. Dan is het een nieuw gebrek END; END LOOP; v_errorhint := 'Bestaande meldingen markeren'; v_count_tot := 0; v_count_tot_n := 0; v_count_import := 0; v_errorhint := 'Ernst kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd'; SELECT mld_srtkenmerk_key INTO v_ernst_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'ERNST'; v_errorhint := 'Omvang kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd'; SELECT mld_srtkenmerk_key INTO v_omvang_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'OMVANG'; v_errorhint := 'Intensiteit kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd'; SELECT mld_srtkenmerk_key INTO v_intensiteit_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'INTENSITEIT'; v_errorhint := 'Fout bij bepalen kenmerk foto-bestand'; SELECT max(k.mld_kenmerk_key) INTO v_foto_kenmerk_key FROM mld_kenmerk k, mld_srtkenmerk sk WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND k.mld_kenmerk_niveau = 'T' AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key') AND sk.mld_srtkenmerk_upper = 'FOTONAAM' ; v_errorhint := 'Kosten kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd'; SELECT MAX (mld_srtkenmerk_key) INTO v_kosten_srtkenmerk_key FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'KOSTEN'; IF v_kosten_srtkenmerk_key IS NOT NULL THEN SELECT mld_kenmerk_key INTO v_kosten_kenmerk_key FROM mld_kenmerk WHERE mld_srtkenmerk_key = v_kosten_srtkenmerk_key; END IF; FOR rec IN c_nieuw LOOP BEGIN v_count_tot := v_count_tot + 1; v_aanduiding := '[' || rec.alg_gebouw_code || '-' || rec.ins_deel_omschrijving || '-' || rec.gebrekcode || '] '; v_errorhint := 'Gebouwcode niet gevonden (bestaat niet), regel wordt overgeslagen'; v_alg_gebouw_key := -1; IF rec.alg_gebouw_code IS NOT NULL THEN SELECT alg_gebouw_key INTO v_alg_gebouw_key FROM alg_v_aanweziggebouw WHERE alg_gebouw_upper = UPPER (rec.alg_gebouw_code); END IF; v_errorhint := 'Element (object) niet gevonden (bestaat niet bij gebouw), regel wordt overgeslagen'; -- Uitgangspunt hierbij is dat objectnaam uniek is per gebouw, op zich mag in Facilitor de objectnaam per objectsoort per locatie uniek zijn. SELECT ins_deel_key, r.alg_ruimte_key INTO v_ins_deel_key, v_alg_ruimte_key FROM ins_v_aanwezigdeel, alg_ruimte r, alg_verdieping v WHERE ins_deel_upper = UPPER (rec.ins_deel_omschrijving) AND ins_alg_ruimte_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND ( v_alg_gebouw_key = -1 OR v.alg_gebouw_key = v_alg_gebouw_key) AND ins_alg_ruimte_type = 'R'; v_errorhint := 'Mailadres van inspecteur (persoon) niet gevonden (bestaat niet), regel wordt overgeslagen'; SELECT prs_perslid_key INTO v_prs_perslid_key FROM prs_v_aanwezigperslid WHERE UPPER (prs_perslid_email) = UPPER (rec.prs_perslid_email); v_errorhint := 'Mailadres van behandelaar (persoon) niet gevonden (bestaat niet), regel wordt overgeslagen'; IF rec.flex9 IS NOT NULL THEN SELECT prs_perslid_key INTO v_prs_behandelaar_key FROM prs_v_aanwezigperslid WHERE UPPER (prs_perslid_email) = UPPER (rec.flex9); ELSE v_prs_behandelaar_key := NULL ; END IF; v_errorhint := 'Gebrek (melding) niet gevonden (bestaat niet), regel wordt overgeslagen'; SELECT sm.mld_stdmelding_key INTO v_mld_stdmelding_key FROM mld_stdmelding sm WHERE UPPER(mld_stdmelding_code) = UPPER (rec.gebrekcode); IF UPPER(rec.gebrekcode) = 'GEEN' THEN v_errorhint := 'Geen Gebrek melding. Ernst, Omvang en Intensiteit worden overgeslagen'; ELSE v_errorhint := 'Ernst (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen'; -- We vullen de ERNST altijd met de default-waarde bij kenmerk_key SELECT ud.fac_usrdata_key, k.mld_kenmerk_key INTO v_ernst_key, v_ernst_kenmerk_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k WHERE sk.mld_srtkenmerk_key = v_ernst_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = k.mld_kenmerk_default AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND k.mld_stdmelding_key = v_mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S'; v_errorhint := 'Omvang (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen'; SELECT ud.fac_usrdata_key, k.mld_kenmerk_key INTO v_omvang_key, v_omvang_kenmerk_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_upper = UPPER (rec.omvang) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND k.mld_stdmelding_key = v_mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S'; v_errorhint := 'Intensiteit (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen'; SELECT ud.fac_usrdata_key, k.mld_kenmerk_key INTO v_intensiteit_key, v_intensiteit_kenmerk_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_upper = UPPER (rec.intensiteit) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND k.mld_stdmelding_key = v_mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S'; END IF; v_errorhint := 'Toevoegen melding'; INSERT INTO mld_melding (mld_melding_module, mld_meldbron_key, mld_melding_datum, mld_melding_omschrijving, mld_stdmelding_key, mld_alg_onroerendgoed_keys, mld_melding_einddatum, prs_perslid_key, prs_perslid_key_voor, -- mld_melding_behandelaar_key, mld_melding_status, mld_melding_spoed) VALUES ( 'MLD', 6, fac.safe_to_date (rec.mld_melding_datum, 'dd-mm-yyyy'), rec.mld_melding_omschrijving, v_mld_stdmelding_key, v_alg_ruimte_key, rec.plandatum, v_prs_perslid_key, v_prs_perslid_key, -- v_prs_behandelaar_key, NULL, 3) RETURNING mld_melding_key INTO v_mld_melding_key; mld.setmeldingstatus(v_mld_melding_key, 2, v_prs_perslid_key, 0); v_errorhint := 'Koppelen object'; INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key) VALUES (v_mld_melding_key, v_ins_deel_key); IF UPPER(rec.gebrekcode) <> 'GEEN' THEN v_errorhint := 'Toevoegen Ernst kenmerk'; mld.upsertmeldingkenmerk (v_ernst_kenmerk_key, v_mld_melding_key, v_ernst_key); v_errorhint := 'Toevoegen Omvang kenmerk'; mld.upsertmeldingkenmerk (v_omvang_kenmerk_key, v_mld_melding_key, v_omvang_key); v_errorhint := 'Toevoegen Intensiteit kenmerk'; mld.upsertmeldingkenmerk (v_intensiteit_kenmerk_key, v_mld_melding_key, v_intensiteit_key); END IF; set_aspect ('ASPECT1', rec.aspect1, v_mld_melding_key); set_aspect ('ASPECT2', rec.aspect2, v_mld_melding_key); set_aspect ('ASPECT3', rec.aspect3, v_mld_melding_key); set_aspect ('ASPECT4', rec.aspect4, v_mld_melding_key); set_aspect ('ASPECT5', rec.aspect5, v_mld_melding_key); set_aspect ('ASPECT6', rec.aspect6, v_mld_melding_key); set_aspect ('ASPECT7', rec.aspect7, v_mld_melding_key); v_errorhint := 'Toevoegen Foto kenmerk'; IF rec.foto IS NOT NULL THEN mld.upsertmeldingkenmerk (v_foto_kenmerk_key, v_mld_melding_key, rec.foto); END IF; v_errorhint := 'Toevoegen Kosten kenmerk'; IF rec.kosten IS NOT NULL AND v_kosten_kenmerk_key IS NOT NULL THEN mld.upsertmeldingkenmerk (v_kosten_kenmerk_key, v_mld_melding_key, TO_CHAR(rec.kosten)); END IF; -- Bij direct accepteren moet ook de CND-berekening uitgevoerd worden ---- En indien meegegeven wordt ook de behandelaar op melding gezet. v_errorhint := 'Meldingen direct accepteren '; IF fac.getsetting('cnd_autoaccept') = 1 THEN mld.setmeldingstatus(v_mld_melding_key, 4, v_prs_perslid_key, 0); BEGIN cnd.process_mjb_score_effects (v_mld_melding_key); END; COMMIT; IF v_prs_behandelaar_key IS NOT NULL THEN UPDATE mld_melding SET mld_melding_behandelaar_key = v_prs_behandelaar_key WHERE mld_melding_key = v_mld_melding_key ; /* -- Notificatie naar behandelaar fac.putnotificationsrtprio ( NULL, v_behandelaar_key, 'MLDBE2', v_mld_melding_key, 'Melding ' || N || v_mld_melding_key || ' is door de klant aangepast.', 2, NULL, NULL, NULL, 2, NULL); */ END IF; END IF; v_count_import := v_count_import + 1; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint); COMMIT; END; END LOOP; FOR rec IN c_bestaand LOOP BEGIN v_count_tot := v_count_tot + 1; v_count_tot_n := v_count_tot_n + 1; v_aanduiding := '[' || rec.alg_gebouw_code || '-' || rec.ins_deel_omschrijving || '-' || rec.gebrekcode || '- lopende melding ' || rec.flex10 || '] '; v_mld_melding_key := fac.safe_to_number(rec.flex10) ; -- Gaan eerst alle waarden vullen uit de lopende melding -- v_errorhint := 'Vullen huidige waarde OPMERKING van lopende melding'; v_mld_melding_omschrijving := ''; --SELECT max(mld_melding_omschrijving) SELECT max(TO_CHAR (SUBSTR (mld_melding_omschrijving, 1, 4000))) INTO v_mld_melding_omschrijving FROM mld_melding WHERE mld_melding_key = v_mld_melding_key ; -- v_errorhint := 'Vullen huidige waarde OMVANG van lopende melding'; v_omvang := ''; SELECT ud.fac_usrdata_omschr, k.mld_kenmerk_key INTO v_omvang, v_omvang_kenmerk_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'S'; v_errorhint := 'Omvang (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen'; SELECT ud.fac_usrdata_key INTO v_omvang_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_upper = UPPER (rec.omvang) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'S'; -- v_errorhint := 'Vullen huidige waarde INTENSITEIT van lopende melding'; v_intensiteit := ''; SELECT ud.fac_usrdata_omschr, k.mld_kenmerk_key INTO v_intensiteit, v_intensiteit_kenmerk_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'S'; v_errorhint := 'Intensiteit (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen'; SELECT ud.fac_usrdata_key INTO v_intensiteit_key FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_upper = UPPER (rec.intensiteit) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'S'; -- v_errorhint := 'Vullen huidige waarde ASPECT1 van lopende melding'; v_aspect1 := ''; SELECT ud.fac_usrdata_omschr INTO v_aspect1 FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_code = 'ASPECT1' AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'T'; -- v_errorhint := 'Vullen huidige waarde ASPECT2 van lopende melding'; v_aspect2 := ''; SELECT ud.fac_usrdata_omschr INTO v_aspect2 FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_code = 'ASPECT2' AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'T'; -- v_errorhint := 'Vullen huidige waarde ASPECT3 van lopende melding'; v_aspect3 := ''; SELECT ud.fac_usrdata_omschr INTO v_aspect3 FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_code = 'ASPECT3' AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'T'; -- v_errorhint := 'Vullen huidige waarde ASPECT4 van lopende melding'; v_aspect4 := ''; SELECT ud.fac_usrdata_omschr INTO v_aspect4 FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_code = 'ASPECT4' AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'T'; -- v_errorhint := 'Vullen huidige waarde ASPECT5 van lopende melding'; v_aspect5 := ''; SELECT ud.fac_usrdata_omschr INTO v_aspect5 FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_code = 'ASPECT5' AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'T'; -- v_errorhint := 'Vullen huidige waarde ASPECT6 van lopende melding'; v_aspect6 := ''; SELECT ud.fac_usrdata_omschr INTO v_aspect6 FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_code = 'ASPECT6' AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'T'; -- v_errorhint := 'Vullen huidige waarde ASPECT7 van lopende melding'; v_aspect7 := ''; SELECT ud.fac_usrdata_omschr INTO v_aspect7 FROM mld_srtkenmerk sk, fac_kenmerkdomein kd, fac_usrtab ut, fac_usrdata ud, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_code = 'ASPECT7' AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key AND ut.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrtab_key = kd.fac_usrtab_key AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde) AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = v_mld_melding_key AND k.mld_kenmerk_niveau = 'T'; -- v_errorhint := 'Vullen huidige waarde FOTO van lopende melding'; v_foto := ''; -- v_foto_kenmerk_key; SELECT max(km.mld_kenmerkmelding_waarde) INTO v_foto FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = v_mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'FOTONAAM'); -- v_errorhint := 'Vullen huidige waarde KOSTEN van lopende melding'; v_kosten := ''; SELECT max(km.mld_kenmerkmelding_waarde) INTO v_kosten FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = v_mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'KOSTEN'); -- v_errorhint := 'Vullen huidige waarde PLANDATUM van lopende melding'; SELECT max(mld_melding_einddatum) INTO v_plandatum_date FROM mld_melding WHERE mld_melding_key = v_mld_melding_key ; -- Conditiescore v_errorhint := 'Vullen huidige waarde CONDITIESCORE van lopende melding'; v_conditiescore := ''; SELECT max(km.mld_kenmerkmelding_waarde) INTO v_conditiescore FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = v_mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'CONDITIESCORE'); -- Prioriteitsscore v_errorhint := 'Vullen huidige waarde PRIORITEITS-SCORE van lopende melding'; v_prioscore := ''; SELECT max(km.mld_kenmerkmelding_waarde) INTO v_prioscore FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_melding_key = v_mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'PRIORITEITSCORE'); -- v_errorhint := 'Bepalen STATUS van lopende melding'; v_mld_melding_status := ''; SELECT max(mld_melding_status) INTO v_mld_melding_status FROM mld_melding WHERE mld_melding_key = v_mld_melding_key ; -- v_errorhint := 'Bepalen INSPECTEUR / AANVRAGER van lopende melding'; v_inspecteur := ''; SELECT p.prs_perslid_email INTO v_inspecteur FROM mld_melding m, prs_perslid p WHERE m.prs_perslid_key = p.prs_perslid_key AND mld_melding_key = v_mld_melding_key ; -- v_errorhint := 'Bepalen BEHANDELAAR van lopende melding'; v_behandelaar := ''; SELECT max(p.prs_perslid_email) INTO v_behandelaar FROM mld_melding m, prs_perslid p WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key AND mld_melding_key = v_mld_melding_key ; -- Alles gevuld. Nu alle meldingsvelden updaten als REC-waarde gevuld is en als deze afwijkt van de huidige waarde v_herberekenen:=0; -- Omschrijving melding - Opmerking melding v_errorhint := 'Aanpassen opmerking bij melding'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Omschrijving aangevuld met: ' || rec.mld_melding_omschrijving ; IF v_mld_melding_omschrijving <> rec.mld_melding_omschrijving AND rec.mld_melding_omschrijving IS NOT NULL THEN UPDATE mld_melding SET mld_melding_omschrijving = v_mld_melding_omschrijving || CHR (13) || CHR(13) || CHR (10) || to_char(sysdate,'DD-MM-YYYY') || ':' || CHR(13) || CHR (10) || rec.mld_melding_omschrijving WHERE mld_melding_key = v_mld_melding_key; END IF; -- Omvang v_errorhint := 'Aanpassen Omvang kenmerk'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Omvang: (' || v_omvang || ') --> ' || rec.omvang ; IF rec.omvang IS NOT NULL AND v_omvang <> rec.omvang THEN mld.upsertmeldingkenmerk (v_omvang_kenmerk_key, v_mld_melding_key, v_omvang_key); v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; v_errorhint := 'Aanpassen Intensiteit kenmerk'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Intensiteit: (' || v_intensiteit || ') --> ' || rec.intensiteit ; IF rec.intensiteit IS NOT NULL AND v_intensiteit <> rec.intensiteit THEN mld.upsertmeldingkenmerk (v_intensiteit_kenmerk_key, v_mld_melding_key, v_intensiteit_key); v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Aspect 1 v_errorhint := 'Aanpassen aspectwaarde 1'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect1: (' || v_aspect1 || ') --> ' || rec.aspect1 ; IF NOT(rec.aspect1 = 'NVT') AND v_aspect1 <> rec.aspect1 AND NOT(INSTR(v_aspect1,'NVT')>0 AND INSTR(rec.aspect1,'NVT')>0) THEN IF rec.aspect1 = '0 - NVT' THEN set_aspect ('ASPECT1', 'NVT', v_mld_melding_key); ELSE set_aspect ('ASPECT1', rec.aspect1, v_mld_melding_key); END IF; v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Aspect 2 v_errorhint := 'Aanpassen aspectwaarde 2'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect2: (' || v_aspect2 || ') --> ' || rec.aspect2 ; IF NOT(rec.aspect2 = 'NVT') AND v_aspect2 <> rec.aspect2 AND NOT(INSTR(v_aspect2,'NVT')>0 AND INSTR(rec.aspect2,'NVT')>0) THEN IF rec.aspect2 = '0 - NVT' THEN set_aspect ('ASPECT2', 'NVT', v_mld_melding_key); ELSE set_aspect ('ASPECT2', rec.aspect2, v_mld_melding_key); END IF; v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Aspect 3 v_errorhint := 'Aanpassen aspectwaarde 3'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect3: (' || v_aspect3 || ') --> ' || rec.aspect3 ; IF NOT(rec.aspect3 = 'NVT') AND v_aspect3 <> rec.aspect3 AND NOT(INSTR(v_aspect3,'NVT')>0 AND INSTR(rec.aspect3,'NVT')>0) THEN IF rec.aspect3 = '0 - NVT' THEN set_aspect ('ASPECT3', 'NVT', v_mld_melding_key); ELSE set_aspect ('ASPECT3', rec.aspect3, v_mld_melding_key); END IF; v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Aspect 4 v_errorhint := 'Aanpassen aspectwaarde 4'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect4: (' || v_aspect4 || ') --> ' || rec.aspect4 ; IF NOT(rec.aspect4 = 'NVT') AND v_aspect4 <> rec.aspect4 AND NOT(INSTR(v_aspect4,'NVT')>0 AND INSTR(rec.aspect4,'NVT')>0) THEN IF rec.aspect4 = '0 - NVT' THEN set_aspect ('ASPECT4', 'NVT', v_mld_melding_key); ELSE set_aspect ('ASPECT4', rec.aspect4, v_mld_melding_key); END IF; v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Aspect 5 v_errorhint := 'Aanpassen aspectwaarde 5'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect5: (' || v_aspect5 || ') --> ' || rec.aspect5 ; IF NOT(rec.aspect5 = 'NVT') AND v_aspect5 <> rec.aspect5 AND NOT(INSTR(v_aspect5,'NVT')>0 AND INSTR(rec.aspect5,'NVT')>0) THEN IF rec.aspect5 = '0 - NVT' THEN set_aspect ('ASPECT5', 'NVT', v_mld_melding_key); ELSE set_aspect ('ASPECT5', rec.aspect5, v_mld_melding_key); END IF; v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Aspect 6 v_errorhint := 'Aanpassen aspectwaarde 6'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect6: (' || v_aspect6 || ') --> ' || rec.aspect6 ; IF NOT(rec.aspect6 = 'NVT') AND v_aspect6 <> rec.aspect6 AND NOT(INSTR(v_aspect6,'NVT')>0 AND INSTR(rec.aspect6,'NVT')>0) THEN IF rec.aspect6 = '0 - NVT' THEN set_aspect ('ASPECT6', 'NVT', v_mld_melding_key); ELSE set_aspect ('ASPECT6', rec.aspect6, v_mld_melding_key); END IF; v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Aspect 7 v_errorhint := 'Aanpassen aspectwaarde 7'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect7: (' || v_aspect7 || ') --> ' || rec.aspect7 ; IF NOT(rec.aspect7 = 'NVT') AND v_aspect7 <> rec.aspect7 AND NOT(INSTR(v_aspect7,'NVT')>0 AND INSTR(rec.aspect7,'NVT')>0) THEN IF rec.aspect7 = '0 - NVT' THEN set_aspect ('ASPECT7', 'NVT', v_mld_melding_key); ELSE set_aspect ('ASPECT7', rec.aspect7, v_mld_melding_key); END IF; v_herberekenen:=1; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- v_errorhint := 'Aanpassen Foto kenmerk'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Fotonaam: (' || v_foto || ') --> ' || rec.foto ; IF rec.foto IS NOT NULL AND COALESCE(v_foto, '') <> rec.foto AND v_foto_kenmerk_key IS NOT NULL THEN mld.upsertmeldingkenmerk (v_foto_kenmerk_key, v_mld_melding_key, rec.foto); fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- v_errorhint := 'Aanpassen Kosten kenmerk'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Kosten: (' || v_kosten || ') --> ' || rec.kosten ; IF rec.kosten IS NOT NULL AND COALESCE(fac.safe_to_number(v_kosten), -1) <> rec.kosten AND v_kosten_kenmerk_key IS NOT NULL THEN mld.upsertmeldingkenmerk (v_kosten_kenmerk_key, v_mld_melding_key, TO_CHAR(rec.kosten)); fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Plandatum v_errorhint := 'Aanpassen Plandatum'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Plandatum: (' || TO_CHAR(v_plandatum_date) || ') --> ' || TO_CHAR(rec.plandatum) ; IF rec.plandatum IS NOT NULL AND v_plandatum_date <> rec.plandatum THEN UPDATE mld_melding SET mld_melding_einddatum = rec.plandatum WHERE mld_melding_key = v_mld_melding_key ; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; -- Inspecteur v_errorhint := 'Aanpassen Inspecteur / Aanvrager'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Inspecteur: (' || v_inspecteur || ') --> ' || rec.prs_perslid_email ; IF (rec.prs_perslid_email IS NOT NULL OR LENGTH (rec.prs_perslid_email) > 200) AND COALESCE(v_inspecteur, '') <> rec.prs_perslid_email THEN SELECT prs_perslid_key INTO v_prs_perslid_key FROM prs_v_aanwezigperslid WHERE UPPER (prs_perslid_email) = UPPER (rec.prs_perslid_email); IF v_prs_perslid_key IS NOT NULL THEN UPDATE mld_melding SET prs_perslid_key = v_prs_perslid_key, prs_perslid_key_voor = v_prs_perslid_key WHERE mld_melding_key = v_mld_melding_key ; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; END IF; -- Her-berekenen van de Conditie- en Prioriteitscore ---- Alleen als de melding status lopend heeft.. ---- Alleen als de omvang, intensiteit of 1 vd aspectwaarden is veranderd.. v_errorhint := 'Herberekenen conditie- en prio-score'; v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is herberekend via upload gebreken:' || CHR(13) || CHR(10) || 'Oorspronkelijke conditiescore: ' || TO_CHAR(v_conditiescore) || CHR(13) || CHR(10) || 'Oorspronkelijke prioriteitscore: ' || TO_CHAR(v_prioscore) ; IF v_mld_melding_status IN (0,4,7,99) AND v_herberekenen=1 THEN BEGIN cnd.process_mjb_score_effects (v_mld_melding_key); END; COMMIT; fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding); END IF; v_count_import := v_count_import + 1; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint); COMMIT; END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'UPDATE NEN2767_RESULTS: aantal regels te verwerken: ' || TO_CHAR (v_count_tot) || ' / aantal geldige regels: ' || TO_CHAR (v_count_import) || ' / aantal BIJGEWERKTE, BESTAANDE gebreken: ' || TO_CHAR (v_count_tot_n) , ''); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint); COMMIT; END rwsn_update_ins_gebreken; / -- -- MJOB Taken -- CREATE OR REPLACE PROCEDURE rwsn_import_ins_mjob_taken (p_import_key IN NUMBER) IS c_delim VARCHAR2 (2) := fac.import_delimiter(p_import_key); v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); v_file_index NUMBER; v_count NUMBER; v_dummy VARCHAR2 (100); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR2 (400); v_gebouw_code VARCHAR2 (255); v_deel_externnr VARCHAR2 (255); v_deel_omschrijving VARCHAR2(200); v_srtcontrole_omschrijving VARCHAR2(200); v_srtcontrole_prijs VARCHAR2(200); v_srtcontrole_startjaar VARCHAR2(200); v_srtcontrole_periode VARCHAR2(200); -- Overige velden: CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN -- Eerst opruiming DELETE FROM rwsn_imp_ins_mjob_taken; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_file_index := rec1.fac_imp_file_index; v_errormsg := 'Fout bij opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_gebouw_code); -- Objectcode fac.imp_getfield (v_newline, c_delim, v_deel_externnr); -- Element-ID fac.imp_getfield (v_newline, c_delim, v_srtcontrole_omschrijving); -- Taak fac.imp_getfield (v_newline, c_delim, v_srtcontrole_prijs); fac.imp_getfield (v_newline, c_delim, v_srtcontrole_startjaar); fac.imp_getfield (v_newline, c_delim, v_srtcontrole_periode); v_gebouw_code := TRIM(v_gebouw_code); v_deel_externnr := TRIM(v_deel_externnr); v_srtcontrole_omschrijving := TRIM(v_srtcontrole_omschrijving); v_srtcontrole_prijs := TRIM(v_srtcontrole_prijs); v_srtcontrole_startjaar := TRIM(v_srtcontrole_startjaar); v_srtcontrole_periode := TRIM(v_srtcontrole_periode); v_aanduiding := '[' || v_gebouw_code || '|' || v_deel_externnr || '|' || v_srtcontrole_startjaar || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER(v_gebouw_code) = 'OBJECTCODE' AND UPPER(v_deel_externnr) = 'ELEMENT-ID' AND UPPER(v_srtcontrole_omschrijving) = 'TAAK OMSCHRIJVING' AND UPPER(v_srtcontrole_prijs) = 'TAAK EENHEIDSPRIJS' AND UPPER(v_srtcontrole_startjaar) = 'STARTJAAR' AND UPPER(v_srtcontrole_periode) = 'TAAK CYCLUS' THEN header_is_valid := 1; ELSE IF rec1.fac_imp_file_index = 1 THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldige header aangetroffen:', 'OBJECTCODE: ' || UPPER (v_gebouw_code) || CHR(10) || 'ELEMENT-ID: ' || UPPER (v_deel_externnr) || CHR(10) || 'TAAK OMSCHRIJVING: ' || UPPER (v_srtcontrole_omschrijving) || CHR(10) || 'TAAK EENHEIDSPRIJS: ' || UPPER (v_srtcontrole_prijs) || CHR(10) || 'STARTJAAR: ' || UPPER (v_srtcontrole_startjaar) || CHR(10) || 'TAAK CYCLUS: ' || UPPER (v_srtcontrole_periode)); END IF; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Gebouwcode kan niet gevonden worden'; SELECT alg_gebouw_key INTO v_dummy FROM alg_gebouw g WHERE alg_gebouw_verwijder IS NULL AND UPPER(alg_gebouw_code) = v_gebouw_code; v_errormsg := 'Bepaal object id - Kijk of het externnr bestaat'; SELECT d.ins_deel_omschrijving INTO v_deel_omschrijving FROM ins_v_deel_gegevens dg, ins_deel d WHERE dg.ins_deel_key = d.ins_deel_key AND dg.alg_gebouw_upper = v_gebouw_code AND d.ins_deel_externnr = v_deel_externnr; -- v_errormsg := 'Prijs ongeldig; maximale grootte 999999.99'; v_srtcontrole_prijs := REPLACE (v_srtcontrole_prijs, ',', '.'); IF fac.safe_to_number (v_srtcontrole_prijs) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || ' Prijs:' || v_srtcontrole_prijs || '-' || v_errormsg, 'Prijs is niet geldig.'); END IF; -- v_errormsg := 'Startjaar ongeldig; 9999'; IF fac.safe_to_date ('01-01-' || v_srtcontrole_startjaar, 'dd-mm-yyyy') IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || ' Jaar:' || v_srtcontrole_startjaar || '-' || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errorhint := 'Bepaling cyclus'; IF fac.safe_to_number (v_srtcontrole_periode) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || ' Cyclus:' || v_srtcontrole_periode || '-' || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'Bepaal object id - Kijk of het externnr bestaat'; SELECT d.ins_deel_omschrijving INTO v_deel_omschrijving FROM ins_v_deel_gegevens dg, ins_deel d WHERE dg.ins_deel_key = d.ins_deel_key AND dg.alg_gebouw_upper = v_gebouw_code AND d.ins_deel_externnr = v_deel_externnr; IF (v_ongeldig = 0) THEN BEGIN v_errorhint := 'Fout bij toevoegen regel aan importtabel cnd_imp_nen2767_results'; INSERT INTO rwsn_imp_ins_mjob_taken (alg_gebouw_code, ins_deel_omschrijving, ins_srtcontrole_omschrijving, ins_srtcontrole_prijs, ins_srtcontrole_startjaar, ins_srtcontrole_periode, ins_deel_externnr) VALUES (v_gebouw_code, v_deel_omschrijving, v_srtcontrole_omschrijving || ' (' || v_srtcontrole_periode || 'j) - ' || v_srtcontrole_startjaar, v_srtcontrole_prijs, v_srtcontrole_startjaar, v_srtcontrole_periode, v_deel_externnr); v_count_import := v_count_import + 1; COMMIT; 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, 'E', v_aanduiding || v_errormsg, 'Ingelezen regel kan niet worden weggeschreven!'); COMMIT; END; END IF; -- ongeldig COMMIT; END IF; -- ongeldig 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 (p_import_key, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; IF (header_is_valid = 1) THEN fac.imp_writelog ( p_import_key, 'S', 'Objecten/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_import_key, 'S', 'Objecten/aantal ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '' ); END IF; UPDATE imp_log SET imp_log_hint = 'Element bestaat niet in Facilitor' WHERE imp_log_omschrijving LIKE '%Bepaal object id - Kijk of het externnr bestaat ORACLE (error 100/ORA'||'-01403: Geen gegevens gevonden.)%' AND fac_import_key = p_import_key; UPDATE imp_log SET imp_log_hint = 'Gebouwcode bestaat niet in Facilitor' WHERE imp_log_omschrijving LIKE '%Gebouwcode kan niet gevonden worden ORACLE (error 100/ORA'||'-01403: Geen gegevens gevonden.)%' AND fac_import_key = p_import_key; COMMIT; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces objecten afgebroken! regel:' || v_file_index); END rwsn_import_ins_mjob_taken; / CREATE OR REPLACE PROCEDURE rwsn_update_ins_mjob_taken ( p_import_key IN NUMBER) IS v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR (400); v_ins_discipline_key NUMBER; v_ctr_discipline_key NUMBER; v_srtcontrole_key NUMBER; v_srtcontroledl_xcp_key NUMBER; v_deel_key NUMBER; -- Overige velden: CURSOR c IS SELECT alg_gebouw_code, ins_deel_omschrijving, ins_srtcontrole_omschrijving, SUM(ins_srtcontrole_prijs) ins_srtcontrole_prijs, ins_srtcontrole_startjaar, ins_srtcontrole_periode, ins_deel_externnr FROM rwsn_imp_ins_mjob_taken GROUP BY alg_gebouw_code, ins_deel_omschrijving, ins_srtcontrole_omschrijving, ins_srtcontrole_startjaar, ins_srtcontrole_periode, ins_deel_externnr ORDER BY alg_gebouw_code, ins_deel_omschrijving; CURSOR c_del (c_discipline_key NUMBER) IS SELECT xcp.* FROM ins_v_deel_gegevens dg, ins_srtcontroledl_xcp xcp, ins_srtcontrole sc WHERE dg.ins_deel_key = xcp.ins_deel_key AND dg.ins_discipline_key = c_discipline_key AND xcp.ins_srtcontrole_key = sc.ins_srtcontrole_key AND alg_gebouw_upper IN (SELECT DISTINCT alg_gebouw_code FROM rwsn_imp_ins_mjob_taken) AND NOT EXISTS (SELECT 1 FROM rwsn_imp_ins_mjob_taken imt WHERE imt.INS_DEEL_OMSCHRIJVING = dg.ins_deel_omschrijving AND sc.ins_srtcontrole_omschrijving = imt.ins_srtcontrole_omschrijving AND xcp.ins_srtcontroledl_xcp_startdat = TO_DATE ('01-01-' || imt.ins_srtcontrole_startjaar, 'dd-mm-yyyy')); BEGIN v_errorhint := 'Zoek de taakcategorie Vervanging'; SELECT ins_discipline_key INTO v_ctr_discipline_key FROM ctr_discipline d, ctr_disc_params dp WHERE d.ins_discipline_key = dp.ctr_ins_discipline_key AND dp.ctr_disc_params_ismjob = 1 AND d.ins_discipline_omschrijving = 'Vervanging'; v_errorhint := 'Zoek de discipline MJOB'; SELECT ins_discipline_key INTO v_ins_discipline_key FROM ins_discipline d WHERE d.ins_discipline_omschrijving = 'MJOB'; FOR rec IN c LOOP BEGIN v_errorhint := 'Controleer of de generieke taak voor vervanging (xj) al bestaat'; SELECT ins_srtcontrole_key INTO v_srtcontrole_key FROM ins_srtcontrole WHERE ins_srtinstallatie_key = v_ins_discipline_key AND ctr_discipline_key = v_ctr_discipline_key AND ins_srtcontrole_omschrijving = rec.ins_srtcontrole_omschrijving; EXCEPTION WHEN NO_DATA_FOUND THEN v_errorhint := 'Voeg de generieke taak vervanging toe'; INSERT INTO ins_srtcontrole ( ins_srtinstallatie_key, ins_srtcontrole_niveau, ins_srtcontrole_omschrijving, ctr_discipline_key, ins_srtcontrole_mode, ins_srtcontrole_periode, ins_srtcontrole_eenheid, ins_srtcontrole_level, ins_srtcontrole_materiaal, ins_srtcontrole_percentage) VALUES ( v_ins_discipline_key, 'D', rec.ins_srtcontrole_omschrijving, v_ctr_discipline_key, 1, -- interval 0, -- periode 4, -- eenheid (altijd jaarlijks bij mjob) 10, -- we kennen geen niveaus omdat we alleen maar vervangen 0, -- bedrag is altijd 0 omdat we deze per object gaan overrullen. 100) RETURNING ins_srtcontrole_key INTO v_srtcontrole_key; END; BEGIN v_aanduiding := rec.ins_deel_omschrijving; -- Zoek het object v_errorhint := 'Zoek het elemement op'; SELECT ins_deel_key INTO v_deel_key FROM ins_deel WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving; BEGIN v_errorhint := 'Bestaat er al een taak voor dit element met hetzelfde startjaar?'; SELECT ins_srtcontroledl_xcp_key INTO v_srtcontroledl_xcp_key FROM ins_srtcontroledl_xcp xcp WHERE ins_deel_key = v_deel_key AND ins_srtcontrole_key = v_srtcontrole_key AND xcp.ins_srtcontroledl_xcp_startdat = TO_DATE ('01-01-' || rec.ins_srtcontrole_startjaar, 'dd-mm-yyyy'); v_errorhint := 'Bijwerken van de taak bij het element'; UPDATE ins_srtcontroledl_xcp SET ins_srtcontroledl_xcp_materia = rec.ins_srtcontrole_prijs, ins_srtcontroledl_xcp_opmerk = rec.ins_srtcontrole_omschrijving WHERE ins_srtcontroledl_xcp_key = v_srtcontroledl_xcp_key; EXCEPTION WHEN NO_DATA_FOUND THEN v_errorhint := 'Aanmaken van de taak bij het element'; INSERT INTO ins_srtcontroledl_xcp (ins_deel_key, ins_srtcontrole_key, ins_srtcontroledl_xcp_materia, ins_srtcontroledl_xcp_startdat, ins_srtcontroledl_xcp_periode, ins_scenario_key, ins_srtcontroledl_xcp_opmerk) VALUES (v_deel_key, v_srtcontrole_key, rec.ins_srtcontrole_prijs, TO_DATE ('01-01-' || rec.ins_srtcontrole_startjaar, 'dd-mm-yyyy'), rec.ins_srtcontrole_periode, 1, rec.ins_srtcontrole_omschrijving); END; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint); END; END LOOP; -- taken die niet voorkomen in de import gaan we verwijderen v_errorhint := 'Verwijderen van taken'; FOR rec_del IN c_del (v_ins_discipline_key) LOOP v_aanduiding := rec_del.ins_srtcontroledl_xcp_key; DELETE ins_srtcontroledl_xcp WHERE ins_srtcontroledl_xcp_key = rec_del.ins_srtcontroledl_xcp_key; END LOOP; 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 (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint); END rwsn_update_ins_mjob_taken; / CREATE OR REPLACE PROCEDURE rwsn_daily AS BEGIN RWSN.cnd_accept_melding; END; / -- RWSN#80431: Gebruikers die dit jaar en het voorgaande jaar zijn aangemaakt -- via SAML provisioning op basis van tracking, waarin dan staat: -- Gebruiker '...' aangemaakt met key 12345 voor idp '1' CREATE OR REPLACE VIEW RWSN_V_RAP_PRS_VIA_SAML ( user_key, aanmaakdatum, naam, email, laatste_login ) AS SELECT p.prs_perslid_key, p.prs_perslid_aanmaak, pf.prs_perslid_naam_full, p.prs_perslid_email, p.prs_perslid_login FROM prs_perslid p, fac_tracking t, prs_v_perslid_fullnames_all pf WHERE p.prs_perslid_aanmaak > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') -- Sinds 1-1 vorig jaar AND p.prs_perslid_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 210 -- PRSUPD AND INSTR (UPPER (t.fac_tracking_oms), 'VOOR IDP ''1''') > 0 -- Aangemaakt via SAML/IDP=1 AND p.prs_perslid_key = pf.prs_perslid_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