-- -- $Id$ -- -- Script containing customer specific sql statements for the A-Point database DEFINE thisfile = 'APGR.SQL' DEFINE dbuser = '^APGR' DEFINE custid = 'APGR' SET ECHO ON SET DEFINE ON COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; WHENEVER SQLERROR EXIT; SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL; WHENEVER SQLERROR CONTINUE; SPOOL &fcltlogfile SET DEFINE OFF ------ payload begin ------ -- -- Personen import -- CREATE OR REPLACE PROCEDURE apgr_import_prs (p_import_key IN NUMBER) AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errormsg VARCHAR2 (400); v_errorhint VARCHAR2 (400); v_newline FAC_IMP_FILE.FAC_IMP_FILE_LINE%TYPE; CURSOR c1 IS SELECT l.alg_locatie_code, pw.alg_gebouw_code, pw.alg_verdieping_volgnr, pw.alg_ruimte_nr, p.prs_perslid_oslogin FROM prs_v_perslidwerkplek_gegevens pw, prs_perslid p, alg_locatie l, fac_imp_perslid f WHERE p.prs_perslid_key = pw.prs_perslid_key AND pw.alg_locatie_key = l.alg_locatie_key AND UPPER (p.prs_perslid_oslogin) = UPPER (f.prs_perslid_oslogin) AND p.prs_perslid_verwijder IS NULL; BEGIN BEGIN SELECT fac_imp_file_line INTO v_newline FROM fac_imp_file WHERE fac_import_key = p_import_key AND fac_imp_file_index = 1; IF v_newline LIKE CHR (TO_NUMBER ('EF', 'xx')) || CHR (TO_NUMBER ('BB', 'xx')) || CHR (TO_NUMBER ('BF', 'xx')) || '%' 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; -- Verwijder de dubbele quotes v_newline := REPLACE (v_newline, '"'); UPDATE fac_imp_file SET fac_imp_file_line = v_newline WHERE fac_import_key = p_import_key AND fac_imp_file_index = 1; EXCEPTION WHEN OTHERS THEN fac.imp_writelog (p_import_key, 'E', 'Fout bij controle op Byte Order Mark', '' ); END; v_errorhint := 'Generieke update'; -- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc prs.import_perslid (p_import_key, '0;0;0;0;0;0;8;11;0;6;' || '0;0;0;0;0;10;5;4;0;0;' || '1;9;0;0;0;0;3;0;0;0;'|| '0;0;0;0;0;0;0;0;0;0;'|| '0;0;0;0;0;0', 'title;Type;Group;mail;telephoneNumber;givenName;company;department;sAMAccountName;ipPhone;sn%' ); -- Handmatig ingelezen prs_perslid_nr behouden, deze staat niet in de AD export UPDATE fac_imp_perslid SET prs_perslid_nr = (SELECT p.prs_perslid_nr FROM prs_v_perslid_gegevens p WHERE UPPER (fac_imp_perslid.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin)); -- De AD export kent geen plaatsgegevens, dus deze moeten behouden blijven uit de handmatige prs import BEGIN FOR rec in c1 LOOP UPDATE fac_imp_perslid SET alg_locatie_code = rec.alg_locatie_code, alg_gebouw_code = rec.alg_gebouw_code, alg_verdieping_volgnr = rec.alg_verdieping_volgnr, alg_ruimte_nr = rec.alg_ruimte_nr WHERE UPPER (prs_perslid_oslogin) = UPPER (rec.prs_perslid_oslogin); END LOOP; END; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); END apgr_import_prs; / CREATE OR REPLACE PROCEDURE apgr_update_prs ( p_import_key IN NUMBER ) IS -- Alle personen verwijderen die niet meer in import bestand voorkomen. CURSOR c_del IS SELECT p.prs_perslid_key FROM prs_v_aanwezigperslid p WHERE ( p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak AND p.prs_perslid_oslogin2 IS NULL AND NOT EXISTS (SELECT 1 FROM fac_imp_perslid i WHERE UPPER (i.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin)) ORDER BY 1; v_count NUMBER; BEGIN -- generic update SELECT count(*) INTO v_count FROM fac_imp_perslid; IF v_count < 150 THEN fac.imp_writelog (p_import_key, 'E', 'Het aantal te importeren personen is te klein (' || TO_CHAR (v_count) || ')', 'Zie Specificatie' ); RETURN; END IF; -- 'LOGIN' betekent dat op basis van OSLOGIN wordt gematched. -- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen prs.update_perslid (p_import_key, 'LOGIN', NULL); apgr_post_update_prs(p_import_key); -- Verwijder personen die niet meer in de import voorkomen. FOR rec IN c_del LOOP BEGIN prs.delete_perslid (p_import_key, rec.prs_perslid_key); END; END LOOP; END apgr_update_prs; / CREATE OR REPLACE PROCEDURE apgr_post_update_prs (p_import_key IN NUMBER) AS -- Persoon aan authorisatiegroep toevoegen als deze daar nog niet in zat. CURSOR c_auth IS SELECT DISTINCT p.prs_perslid_key, f.fac_groep_key FROM prs_perslid p, fac_groep f, fac_imp_perslid i, fac_gebruikersgroep g WHERE UPPER (i.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin) AND UPPER (i.prs_kenmerk1) = f.fac_groep_upper AND p.prs_perslid_verwijder IS NULL AND NOT EXISTS (SELECT 'x' FROM fac_gebruikersgroep WHERE prs_perslid_key = p.prs_perslid_key AND fac_groep_key = f.fac_groep_key); BEGIN FOR rec IN c_auth LOOP BEGIN INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key) VALUES (rec.prs_perslid_key, rec.fac_groep_key); END; END LOOP; END; / -- Import van statusupdates en kosten uit ESIS voor opdrachten van Explora EST CREATE OR REPLACE PROCEDURE apgr_import_esis (p_import_key IN NUMBER) AS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (1000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); header_is_valid NUMBER := 0; v_count_tot NUMBER (10) := 0; v_count_import NUMBER (10) := 0; v_ongeldig NUMBER (1) := 0; -- De importvelden v_opdrachtnummer VARCHAR2 (255); v_status VARCHAR2 (255); v_updatedatum VARCHAR2 (255); v_kosten VARCHAR2 (10); CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN -- Eerst de importtable leeg maken. DELETE FROM apgr_imp_esis WHERE imp_log_run <> p_import_key; COMMIT; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout opvragen te importeren regel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_opdrachtnummer); fac.imp_getfield (v_newline, c_delim, v_status); fac.imp_getfield (v_newline, c_delim, v_updatedatum); fac.imp_getfield (v_newline, c_delim, v_kosten); v_aanduiding := '[' || v_opdrachtnummer || '|' || v_status || '|' || v_updatedatum || '] '; -- 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 (TRIM (v_opdrachtnummer)) = 'OPDRACHTNUMMER' AND UPPER (TRIM (v_status)) = 'STATUS' AND UPPER (TRIM (v_updatedatum)) = 'UPDATEDATUM' AND UPPER (TRIM (v_kosten)) = 'KOSTEN' THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Fout inlezen ticketnumber'; v_opdrachtnummer := TRIM (v_opdrachtnummer); IF (v_opdrachtnummer IS NULL) THEN fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Opdrachtnummer ongeldig; regel wordt overgeslagen!'); v_ongeldig := 1; END IF; -- v_errormsg := 'Fout inlezen updatedatum'; v_updatedatum := TRIM (v_updatedatum); IF (v_updatedatum IS NULL) THEN fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Updatedatum ongeldig; regel wordt overgeslagen!'); v_ongeldig := 1; END IF; -- Insert geformatteerde import record IF (v_ongeldig = 0) THEN BEGIN v_errormsg := 'Fout bij wegschrijven importregel'; INSERT INTO apgr_imp_esis (imp_log_run, opdrachtnummer, status, updatedatum, kosten) VALUES (p_import_key, v_opdrachtnummer, v_status, fac.safe_to_date (v_updatedatum, 'dd-mm-yyyy hh24:mi:ss'), fac.safe_to_number (v_kosten)); 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, 'E', v_aanduiding || v_errormsg, ''); 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', '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), ''); END IF; 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 updates uit ESIS afgebroken!'); END; / CREATE OR REPLACE PROCEDURE apgr_update_esis (p_import_key IN NUMBER) AS -- Cursor loopt over alle ingelezen updateregels uit ESIS CURSOR c1 IS SELECT opdrachtnummer, -- Opdrachtnummer met of zonder prefix DECODE (fac.safe_to_number (SUBSTR (opdrachtnummer, 1, 1)), NULL, TRIM (SUBSTR (opdrachtnummer, 2)), opdrachtnummer) opdr_id, status, updatedatum, kosten FROM apgr_imp_esis WHERE imp_log_run = p_import_key ORDER BY 4, 2; v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_count_tot NUMBER (10); v_mld_key NUMBER (10); v_opdr_key NUMBER (10); v_opdr_status NUMBER (10); BEGIN -- Loop door alle ingelezen updateregels uit ESIS en verwerk deze. v_count_tot := 0; FOR rec IN c1 LOOP BEGIN v_aanduiding := '[' || rec.opdrachtnummer || ']'; v_count_tot := v_count_tot + 1; v_mld_key := -1; v_opdr_key := -1; v_errormsg := 'Fout bepalen opdracht.'; SELECT o.mld_melding_key, o.mld_opdr_key, so.mld_statusopdr_key INTO v_mld_key, v_opdr_key, v_opdr_status FROM mld_opdr o, mld_statusopdr so WHERE o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = rec.opdr_id AND UPPER (so.mld_statusopdr_omschrijving) = UPPER (rec.status); -- Alleen iets doen als melding/opdracht succesvol is bepaald. IF (v_mld_key > 0 AND v_opdr_key > 0) THEN -- Als er kosten zijn dan voeren we die op. IF (rec.kosten IS NOT NULL) THEN v_errormsg := 'Fout bijwerken kosten.'; UPDATE mld_opdr SET mld_opdr_kosten = rec.kosten WHERE mld_opdr_key = v_opdr_key; END IF; -- Update opdrachtstatus v_errormsg := 'Fout verwerken opdrachtstatus.'; MLD.setopdrachtstatus (v_opdr_key, v_opdr_status, NULL); COMMIT; 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 verwerken opdrachtupdates uit ESIS.'); END; END LOOP; fac.imp_writelog ( p_import_key, 'S', 'Proces: ' || TO_CHAR (v_count_tot) || ' opdrachtupdates uit ESIS verwerkt.', ''); COMMIT; END; / -- Vanaf hier rapportages -- Deze voegt de FCLT_3D_GEBOUW_KEY toe aan de meldingen UDR -- Zoals gerealiseerd in melding FSN#11071 CREATE OR REPLACE VIEW APGR_V_MELDING_GEBOUW ( MELDING_KEY, MELDINGNUMMER, MELDING_REGIO, MELDING_DISTRICT, MELDING_LOCATIECODE, MELDING_LOCATIE, MELDING_LOCATIEPLAATS, FCLT_3D_LOCATIE_KEY, MELDING_GEBOUWCODE, MELDING_GEBOUW, FCLT_3D_GEBOUW_KEY, MELDING_VERDIEPING, MELDING_RUIMTENR, MELDING_RUIMTE, MELDING_ORDERNR, KOSTENSOORTGROEP, KOSTENSOORT, KOSTENPLAATS, KOSTENPLAATS_OMS, MELDER, MELDER_KEY, AFDELING, AFDELING_OMSCHRIJVING, FCLT_3D_AFDELING_KEY, BEDRIJF_KEY, INVOERDER, MELDBRON, SOORTMELDING, FCLT_3D_DISCIPLINE_KEY, PRODUCTGROEP, SUBPRODUCTGROEP, BEHANDELGROEP, BEHANDELAAR, BEHANDELAAR_KEY, SUBPRODUCTGROEPGROEP, FCLT_3D_DISCIPLINE2_KEY, ACTIEVE_BEHANDELGROEP, ACTIEVE_BEHANDELAAR_KEY, ACTIEVE_BEHANDELAAR, MELDING_STATUS, SLA_NVT, SLA_WERKDGN, SLA_WERKUREN, SLA_RESPIJTDGN, SLA_RESPIJTUREN, SLA_ACCPTDGN, SLA_ACCPTUREN, PLAN_UITVOERTIJD_SLA, MELDING_DATUM, MELDING_EINDDATUM, MELDING_ACCEPTDATUM, MELDING_AFGEMELD, MELDING_ACCEPTED, DOORLOOPTIJD_WERKDGN, DOORLOOPTIJD_WERKUREN, ONDERWERP, VOMSCHRIJVING, MELDING_OPMERKING, PRIORITEIT, PRIORITEITTXT, RATING, RATING_OPMERKING, BOLLETJE, ACCEPT_SLA_DAGEN, ACCEPT_SLA_UREN, UITVOERING_SLA_DAGEN, UITVOERING_SLA_UREN, AFSPRAAK_SLA_DAGEN, AFSPRAAK_SLA_UREN, ACCEPT_SLA_OPTIJD, UITVOERING_SLA_OPTIJD, AFSPRAAK_SLA_OPTIJD, SELFSERVICE ) AS SELECT mld_melding_key, meldingnummer, alg_regio_omschrijving, alg_district_omschrijving, locatie, locatie_omschrijving, locatie_plaats, alg_locatie_key, gebouw, gebouw_naam, gebouw_key, verdieping, ruimte, ruimte_omschrijving, melding_ordernr, kostensoortgroep, kostensoort, kostenplaats, kostenplaats_oms, melder, prs_perslid_key, afdeling, afdeling_omschrijving, afdeling_key, prs_bedrijf_key, invoerder, meldbron, soortmelding, stdm_ins_discipline_key, productgroep, subproductgroep, behandelgroep, behandelaar, behandelaar_key, subproductgroepgroep, mld_ins_discipline_key, actieve_behandelgroep, actieve_behandelaar_key, actieve_behandelaar, status, sla_nvt, sla_werkdgn, sla_werkuren, sla_respijtdgn, sla_respijturen, sla_accptdgn, sla_accpturen, plan_uitvoertijd_sla, datum, einddatum, acceptdatum, afgemeld, accepted, DECODE (x.t_doorlooptijd.eenheid, 'D', x.t_doorlooptijd.tijdsduur, NULL) doorlooptijd_werkdgn, DECODE (x.t_doorlooptijd.eenheid, 'U', x.t_doorlooptijd.tijdsduur, NULL) doorlooptijd_werkuren, onderwerp, omschrijving, opmerking, mld_melding_spoed prioriteit, DECODE (mld_melding_spoed, 3, lcl.l ('lcl_mld_urg_normaal'), 1, lcl.l ('lcl_mld_urg_kritiek'), 2, lcl.l ('lcl_mld_urg_hoog'), 4, lcl.l ('lcl_mld_urg_laag')), mld_melding_satisfaction, mld_melding_satisfaction_op, mld_melding_flag, DECODE (x.t_doorlooptijd.eenheid, 'D', acceptdatum - COALESCE (accepted, afgemeld), NULL) accept_sla_dagen, CAST ( DECODE (x.t_doorlooptijd.eenheid, 'U', (acceptdatum - COALESCE (accepted, afgemeld)) * 24, NULL) AS NUMBER (7, 2)) accept_sla_uren, DECODE ( x.t_doorlooptijd.eenheid, 'D', mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), NULL) uitvoering_sla_dagen, CAST ( DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijturen, 0), NULL) AS NUMBER (7, 2)) uitvoering_sla_uren, DECODE ( x.t_doorlooptijd.eenheid, 'D', einddatum - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), NULL) afspraak_sla_dagen, CAST ( DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijtdgn, 0), NULL) AS NUMBER (7, 2)) afspraak_sla_uren, CASE WHEN acceptdatum IS NULL OR -- Dan is er geen acceptatietijd gedefinieerd en dus altijd op tijd. DECODE (x.t_doorlooptijd.eenheid, 'D', acceptdatum - COALESCE (accepted, afgemeld), 0) + DECODE ( x.t_doorlooptijd.eenheid, 'U', (acceptdatum - COALESCE (accepted, afgemeld)) * 24, 0) >= 0 THEN lcl.l ('lcl_yes') ELSE lcl.l ('lcl_no') END accept_sla_optijd, CASE WHEN DECODE ( x.t_doorlooptijd.eenheid, 'D', mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), 0) + DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijturen, 0), 0) >= 0 THEN lcl.l ('lcl_yes') ELSE lcl.l ('lcl_no') END uitvoering_sla_optijd, CASE WHEN DECODE ( x.t_doorlooptijd.eenheid, 'D', einddatum - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), 0) + DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijtdgn, 0), 0) >= 0 THEN lcl.l ('lcl_yes') ELSE lcl.l ('lcl_no') END afspraak_sla_optijd, DECODE (invoerder, melder, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) selfservice FROM (SELECT m.mld_melding_key, m.prs_perslid_key, sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnummer, alg_regio_omschrijving, alg_district_omschrijving, alg_locatie_code locatie, alg_locatie_omschrijving locatie_omschrijving, alg_locatie_plaats locatie_plaats, l.alg_locatie_key, og.alg_gebouw_code gebouw, og.alg_gebouw_naam gebouw_naam, og.alg_gebouw_key gebouw_key, og.alg_verdieping_code verdieping, og.alg_ruimte_nr ruimte, og.alg_ruimte_omschrijving ruimte_omschrijving, m.mld_melding_ordernr melding_ordernr, (SELECT ksg.prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg, prs_kostensoort ks WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key AND ks.prs_kostensoort_key = (SELECT COALESCE (sm.prs_kostensoort_key, disc.prs_kostensoort_key) FROM mld_stdmelding sm, mld_discipline disc WHERE sm.mld_ins_discipline_key = disc.ins_discipline_key AND sm.mld_stdmelding_key = s.mld_stdmelding_key)) kostensoortgroep, (SELECT ks.prs_kostensoort_oms FROM prs_kostensoort ks WHERE ks.prs_kostensoort_key = (SELECT COALESCE (sm.prs_kostensoort_key, disc.prs_kostensoort_key) FROM mld_stdmelding sm, mld_discipline disc WHERE sm.mld_ins_discipline_key = disc.ins_discipline_key AND sm.mld_stdmelding_key = s.mld_stdmelding_key)) kostensoort, (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key) kostenplaats, (SELECT k.prs_kostenplaats_omschrijving FROM prs_kostenplaats k WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key) kostenplaats_oms, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.prs_perslid_key) melder, (SELECT prs_afdeling_naam FROM prs_afdeling afd, prs_perslid pp WHERE afd.prs_afdeling_key = pp.prs_afdeling_key AND pp.prs_perslid_key = m.prs_perslid_key) afdeling, (SELECT prs_afdeling_omschrijving FROM prs_afdeling afd, prs_perslid pp WHERE afd.prs_afdeling_key = pp.prs_afdeling_key AND pp.prs_perslid_key = m.prs_perslid_key) afdeling_omschrijving, (SELECT prs_afdeling_key FROM prs_perslid pp WHERE pp.prs_perslid_key = m.prs_perslid_key) afdeling_key, (SELECT prs_bedrijf_key FROM prs_v_afdeling pva, prs_perslid pp WHERE pva.prs_afdeling_key = pp.prs_afdeling_key AND pp.prs_perslid_key = m.prs_perslid_key) prs_bedrijf_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = mld.getmeldinguser (m.mld_melding_key)) invoerder, (SELECT mb.mld_meldbron_omschrijving FROM mld_meldbron mb WHERE mb.mld_meldbron_key = m.mld_meldbron_key) meldbron, m.mld_meldbron_key, sd.ins_srtdiscipline_key ins_srtdiscipline_key, sd.ins_srtdiscipline_omschrijving soortmelding, md.ins_discipline_key stdm_ins_discipline_key, md.ins_discipline_omschrijving productgroep, s.mld_stdmelding_omschrijving subproductgroep, smg.mld_stdmeldinggroep_naam subproductgroepgroep, mbg.mld_behandelgroep_naam behandelgroep, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.mld_melding_behandelaar_key) behandelaar, m.mld_melding_behandelaar_key behandelaar_key, m.mld_ins_discipline_key mld_ins_discipline_key, (SELECT md2.ins_discipline_omschrijving FROM mld_discipline md2 WHERE md2.ins_discipline_key = m.mld_ins_discipline_key) actieve_behandelgroep, m.mld_melding_behandelaar2_key actieve_behandelaar_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.mld_melding_behandelaar2_key) actieve_behandelaar, (SELECT mld_statuses_omschrijving FROM mld_statuses sta WHERE sta.mld_statuses_key = m.mld_melding_status) status, CASE WHEN m.mld_melding_einddatum > COALESCE ( fac.gettrackingdate ('MLDAFM', m.mld_melding_key), fac.gettrackingdate ('MLDREJ', m.mld_melding_key), SYSDATE) THEN 1 ELSE 0 END plan_uitvoertijd_sla, CASE WHEN m.mld_melding_indult = 1 OR s.mld_stdmelding_slabewaken = 0 THEN 1 ELSE 0 END sla_nvt, DECODE (m.mld_melding_t_uitvoertijd.eenheid, 'D', m.mld_melding_t_uitvoertijd.tijdsduur, NULL) sla_werkdgn, DECODE (m.mld_melding_t_uitvoertijd.eenheid, 'U', m.mld_melding_t_uitvoertijd.tijdsduur, NULL) sla_werkuren, DECODE (m.mld_melding_t_respijt.eenheid, 'D', m.mld_melding_t_respijt.tijdsduur, NULL) sla_respijtdgn, DECODE (m.mld_melding_t_respijt.eenheid, 'U', m.mld_melding_t_respijt.tijdsduur, NULL) sla_respijturen, DECODE (m.mld_melding_t_accepttijd.eenheid, 'D', m.mld_melding_t_accepttijd.tijdsduur, NULL) sla_accptdgn, DECODE (m.mld_melding_t_accepttijd.eenheid, 'U', m.mld_melding_t_accepttijd.tijdsduur, NULL) sla_accpturen, m.mld_melding_datum datum, CASE WHEN s.mld_stdmelding_planbaar = 2 THEN TO_DATE (NULL) ELSE m.mld_melding_einddatum END einddatum, mld.getacceptdatum (m.mld_melding_datum, m.mld_stdmelding_key, og.alg_onroerendgoed_keys) acceptdatum, COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5), mld.getmeldingstatusdate (m.mld_melding_key, 1)) afgemeld, COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 4), mld.getmeldingstatusdate (m.mld_melding_key, 1)) accepted, mld.getactualuitvoer (m.mld_melding_key) t_doorlooptijd, m.mld_melding_onderwerp onderwerp, m.mld_melding_omschrijving omschrijving, m.mld_melding_opmerking opmerking, m.mld_melding_spoed, m.mld_melding_satisfaction, m.mld_melding_satisfaction_op, m.mld_melding_flag FROM mld_melding m, mld_stdmelding s, alg_locatie l, alg_district d, alg_regio r, alg_v_allonrgoed_gegevens og, mld_discipline md, mld_disc_params mdp, mld_behandelgroep mbg, ins_srtdiscipline sd, mld_stdmeldinggroep smg WHERE s.mld_stdmelding_key = m.mld_stdmelding_key AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key AND md.ins_discipline_key = s.mld_ins_discipline_key AND md.ins_discipline_key = mdp.mld_ins_discipline_key AND s.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+) AND mdp.mld_behandelgroep_key = mbg.mld_behandelgroep_key(+) AND l.alg_district_key = d.alg_district_key(+) AND d.alg_regio_key = r.alg_regio_key(+) AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) AND m.fac_activiteit_key IS NULL AND m.mld_melding_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')) x; -- Ook voorzien van FCLT_3D_GEBOUW_KEY CREATE OR REPLACE VIEW APGR_V_INS_GEBOUW ( DEEL_KEY, DISCIPLINE, SOORT, GROEP, SOORTCODE, OMSCHRIJVING, PLAATSEIGENAAR, PLAATSEIGENAARTYPE, PLAATSAANDUIDING, EIGENAAR, 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, FCLT_3D_GEBOUW_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.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, ii.alg_gebouw_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, i.ins_discipline_key, i.ins_alg_ruimte_key, NULL alg_locatie_key, NULL alg_gebouw_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 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, i.ins_discipline_key, p.prs_afdeling_key, NULL alg_locatie_key, NULL alg_gebouw_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 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 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 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 discipline_key, NULL, NULL alg_locatie_key, NULL alg_gebouw_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 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, i.ins_discipline_key, NULL, l.alg_locatie_key, o.alg_gebouw_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 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; -- Hier hetzelfde, ook FCLT_3D_GEBOUW_KEY CREATE OR REPLACE VIEW APGR_V_INSDEELMELDING_GEBOUW ( DEEL_KEY, DISCIPLINE, SOORT, GROEP, SOORTCODE, OMSCHRIJVING, PLAATSEIGENAAR, PLAATSEIGENAARTYPE, PLAATSAANDUIDING, EIGENAAR, 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, FCLT_3D_GEBOUW_KEY, MELDING_KEY, MELDINGNUMMER, MELDING_DISTRICT, MELDING_LOCATIECODE, MELDING_LOCATIE, MELDING_LOCATIEPLAATS, MELDING_GEBOUWCODE, MELDING_GEBOUW, MELDING_VERDIEPING, MELDING_RUIMTENR, MELDING_RUIMTE, MELDING_ORDERNR, KOSTENSOORTGROEP, KOSTENSOORT, KOSTENPLAATS, KOSTENPLAATS_OMS, MELDER, MELDER_KEY, AFDELING, AFDELING_OMSCHRIJVING, BEDRIJF_KEY, INVOERDER, MELDBRON, SOORTMELDING, PRODUCTGROEP, SUBPRODUCTGROEP, BEHANDELGROEP, BEHANDELAAR, BEHANDELAAR_KEY, SUBPRODUCTGROEPGROEP, MELDING_STATUS, SLA_NVT, SLA_WERKDGN, SLA_WERKUREN, SLA_RESPIJTDGN, SLA_RESPIJTUREN, SLA_ACCPTDGN, SLA_ACCPTUREN, PLAN_UITVOERTIJD_SLA, MELDING_DATUM, MELDING_EINDDATUM, MELDING_ACCEPTDATUM, MELDING_AFGEMELD, MELDING_ACCEPTED, DOORLOOPTIJD_WERKDGN, DOORLOOPTIJD_WERKUREN, ONDERWERP, VOMSCHRIJVING, MELDING_OPMERKING, PRIORITEIT, PRIORITEITTXT, RATING, RATING_OPMERKING, BOLLETJE, ACCEPT_SLA_DAGEN, ACCEPT_SLA_UREN, UITVOERING_SLA_DAGEN, UITVOERING_SLA_UREN, AFSPRAAK_SLA_DAGEN, AFSPRAAK_SLA_UREN, ACCEPT_SLA_OPTIJD, UITVOERING_SLA_OPTIJD, AFSPRAAK_SLA_OPTIJD, SELFSERVICE ) AS SELECT d.deel_key, d.discipline, d.soort, d.groep, d.soortcode, d.omschrijving, d.plaatseigenaar, d.plaatseigenaartype, d.plaatsaanduiding, d.eigenaar, d.opmerking, d.regio, d.district, d.locatie_code, d.locatie_omschrijving, d.locatie_plaats, d.gebouwcode, d.gebouw, d.terreinsectorcode, d.terreinsector, d.verdiepingcode, d.ruimtenr, d.werkplekvolgnr, d.werkplek, d.uitleenbaar, d.uitgeleend, d.res_opmerking, d.beheerder, d.vervaldatum, d.actief, d.aantal, d.state, d.statedate, d.fclt_3d_discipline_key, d.fclt_3d_afdeling_key, d.fclt_3d_locatie_key, d.fclt_3d_gebouw_key, m.melding_key, m.meldingnummer, m.melding_district, m.melding_locatiecode, m.melding_locatie, m.melding_locatieplaats, m.melding_gebouwcode, m.melding_gebouw, m.melding_verdieping, m.melding_ruimtenr, m.melding_ruimte, m.melding_ordernr, m.kostensoortgroep, m.kostensoort, m.kostenplaats, m.kostenplaats_oms, m.melder, m.melder_key, m.afdeling, m.afdeling_omschrijving, m.bedrijf_key, m.invoerder, m.meldbron, m.soortmelding, m.productgroep, m.subproductgroep, m.behandelgroep, m.behandelaar, m.behandelaar_key, m.subproductgroepgroep, m.melding_status, m.sla_nvt, m.sla_werkdgn, m.sla_werkuren, m.sla_respijtdgn, m.sla_respijturen, m.sla_accptdgn, m.sla_accpturen, m.plan_uitvoertijd_sla, m.melding_datum, m.melding_einddatum, m.melding_acceptdatum, m.melding_afgemeld, m.melding_accepted, m.doorlooptijd_werkdgn, m.doorlooptijd_werkuren, m.onderwerp, m.vomschrijving, m.melding_opmerking, m.prioriteit, m.prioriteittxt, m.rating, m.rating_opmerking, m.bolletje, m.accept_sla_dagen, m.accept_sla_uren, m.uitvoering_sla_dagen, m.uitvoering_sla_uren, m.afspraak_sla_dagen, m.afspraak_sla_uren, m.accept_sla_optijd, m.uitvoering_sla_optijd, m.afspraak_sla_optijd, m.selfservice FROM apgr_v_ins_gebouw d, mld_v_udr_melding m, mld_melding_object mo WHERE mo.mld_melding_key = m.melding_key AND mo.ins_deel_key = d.deel_key; -- En de laatste FCLT_3D_GEBOUW_KEY CREATE OR REPLACE VIEW APGR_V_INSKENMERK_GEBOUW ( DEEL_KEY, DISCIPLINE, SOORT, GROEP, SOORTCODE, OMSCHRIJVING, PLAATSEIGENAAR, PLAATSEIGENAARTYPE, PLAATSAANDUIDING, EIGENAAR, 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, FCLT_3D_GEBOUW_KEY, KENMERK, WAARDE_C, WAARDE_N, WAARDE_D ) AS SELECT m."DEEL_KEY", m."DISCIPLINE", m."SOORT", m."GROEP", m."SOORTCODE", m."OMSCHRIJVING", m."PLAATSEIGENAAR", m."PLAATSEIGENAARTYPE", m."PLAATSAANDUIDING", m."EIGENAAR", m."OPMERKING", m."REGIO", m."DISTRICT", m."LOCATIE_CODE", m."LOCATIE_OMSCHRIJVING", m."LOCATIE_PLAATS", m."GEBOUWCODE", m."GEBOUW", m."TERREINSECTORCODE", m."TERREINSECTOR", m."VERDIEPINGCODE", m."RUIMTENR", m."WERKPLEKVOLGNR", m."WERKPLEK", m."UITLEENBAAR", m."UITGELEEND", m."RES_OPMERKING", m."BEHEERDER", m."VERVALDATUM", m."ACTIEF", m."AANTAL", m."STATE", m."STATEDATE", m."FCLT_3D_DISCIPLINE_KEY", m."FCLT_3D_AFDELING_KEY", m."FCLT_3D_LOCATIE_KEY", m."FCLT_3D_GEBOUW_KEY", lcl.x ('skm.ins_srtkenmerk_omschrijving', skm.ins_srtkenmerk_key, ins_srtkenmerk_omschrijving) kenmerk, CASE WHEN skm.ins_srtkenmerk_kenmerktype = 'R' OR skm.ins_srtkenmerk_kenmerktype = 'S' THEN flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.ins_kenmerkdeel_waarde) WHEN skm.ins_srtkenmerk_kenmerktype = 'C' OR skm.ins_srtkenmerk_kenmerktype = 'F' THEN km.ins_kenmerkdeel_waarde ELSE NULL END waarde_c, CASE WHEN skm.ins_srtkenmerk_kenmerktype = 'N' OR skm.ins_srtkenmerk_kenmerktype = 'B' THEN TO_NUMBER (km.ins_kenmerkdeel_waarde) ELSE TO_NUMBER (NULL) END waarde_n, CASE WHEN skm.ins_srtkenmerk_kenmerktype = 'D' THEN TO_DATE (km.ins_kenmerkdeel_waarde, 'DD-MM-YYYY') ELSE TO_DATE (NULL) END waarde_d FROM apgr_v_ins_gebouw M, ins_kenmerkdeel km, ins_kenmerk K, ins_srtkenmerk skm WHERE km.ins_deel_key = m.deel_key AND km.ins_kenmerkdeel_verwijder IS NULL AND k.ins_kenmerk_verwijder IS NULL AND skm.ins_srtkenmerk_verwijder IS NULL AND km.ins_kenmerk_key = k.ins_kenmerk_key(+) AND k.ins_srtkenmerk_key = skm.ins_srtkenmerk_key(+); -- Melding doorlooptijden statistiek CREATE OR REPLACE VIEW apgr_v_rap_mldstats AS SELECT MAX (actiedatum) laatste_actie, TRUNC (SYSDATE) - TRUNC (MAX (actiedatum)) dagen_stil, p.prs_perslid_naam_full melder, m.mld_melding_key, sr.ins_srtdiscipline_prefix || m.mld_melding_key meldingnr, m.mld_melding_datum geregistreerd, st.mld_statuses_omschrijving, sr.ins_srtdiscipline_omschrijving vakgroeptype, md.ins_discipline_omschrijving vakgroep, mld_stdmelding_omschrijving melding, mld_melding_onderwerp, pb.prs_perslid_naam_full behandelaar, bhg.ins_discipline_omschrijving behandelteam, abh.prs_perslid_naam_full actieve_behandelaar, m.mld_melding_behandelaar2_key actieve_behandelaar_key, a.prs_afdeling_omschrijving afdeling, DECODE (BITAND (m.mld_melding_actiecode, 1), 1, 'Behandelaar', 'Melder') actie_bij, CASE WHEN mld_melding_flag > 0 THEN lcl.l ('lcl_mld_flag' || mld_melding_flag) END actiestatus FROM mld_melding m, mld_statuses st, mld_stdmelding ms, mld_discipline md, ins_srtdiscipline sr, prs_v_perslid_fullnames pb, prs_v_perslid_fullnames p, mld_discipline bhg, prs_v_perslid_fullnames abh, prs_afdeling a, (SELECT n.mld_melding_key, n.mld_melding_note_aanmaak actiedatum FROM mld_melding_note n UNION ALL SELECT fac_tracking_refkey, tr.fac_tracking_datum FROM fac_tracking tr, fac_srtnotificatie str WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key AND str.fac_srtnotificatie_xmlnode IN ('melding')) d WHERE m.mld_melding_key = d.mld_melding_key AND m.mld_melding_status = st.mld_statuses_key AND ms.mld_stdmelding_key = m.mld_stdmelding_key AND md.ins_discipline_key = ms.mld_ins_discipline_key AND md.ins_srtdiscipline_key = sr.ins_srtdiscipline_key AND sr.ins_srtdiscipline_module = 'MLD' AND mld_melding_behandelaar_key = pb.prs_perslid_key(+) AND m.prs_perslid_key = p.prs_perslid_key AND mld_melding_status NOT IN (1, 5, 6) AND fac_activiteit_key IS NULL AND m.mld_ins_discipline_key = bhg.ins_discipline_key(+) AND m.mld_melding_behandelaar2_key = abh.prs_perslid_key(+) AND m.prs_afdeling_key = a.prs_afdeling_key(+) GROUP BY m.mld_melding_key, m.prs_kostenplaats_key, p.prs_perslid_naam_full, m.prs_perslid_key, mld_melding_datum, st.mld_statuses_omschrijving, md.ins_discipline_omschrijving, bhg.ins_discipline_omschrijving, mld_stdmelding_omschrijving, sr.ins_srtdiscipline_omschrijving, sr.ins_srtdiscipline_prefix, mld_melding_onderwerp, pb.prs_perslid_naam_full, abh.prs_perslid_naam_full, m.mld_melding_behandelaar2_key, mld_melding_flag, m.mld_melding_actiecode, a.prs_afdeling_naam, a.prs_afdeling_omschrijving; -- En dan nu de export naar Simac Palette (opdr en bes). CREATE OR REPLACE VIEW apgr_v_rap_opdrsimac ( opdrachtnummer, opdrachtdatum, melder, locatie, kostenplaats, leveranciernr, rekeningnummer, opdr_onderwerp, opdr_omschr, linenr, -- voor opdr atijd 1 item, -- vakgroep van de melding? omschrijving, -- opdrachtafhandeling kosten -- prijs ) AS SELECT DISTINCT i.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr, TO_CHAR (o.mld_opdr_datumbegin, 'YYYY-MM-DD'), (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.prs_perslid_key), al.alg_locatie_omschrijving, pk.prs_kostenplaats_nr, b.prs_leverancier_nr, b.prs_bedrijf_opmerking, m.mld_melding_onderwerp, m.mld_melding_omschrijving, '1', i.ins_srtdiscipline_omschrijving || ' ' || std.mld_stdmelding_omschrijving, o.mld_opdr_opmerking, COALESCE (o.mld_opdr_kosten, 500) FROM mld_opdr o, mld_melding m, mld_stdmelding std, prs_bedrijf b, ins_srtdiscipline i, mld_discipline md, mld_kenmerkopdr mk, prs_kostenplaats pk, alg_locatie al, ( SELECT fac_tracking_refkey key, MAX (fac_tracking_datum) datum FROM fac_tracking WHERE fac_srtnotificatie_key = 71 GROUP BY fac_tracking_refkey) track WHERE o.mld_melding_key = m.mld_melding_key(+) AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key = i.ins_srtdiscipline_key AND o.mld_opdr_key = mk.mld_opdr_key AND o.prs_kostenplaats_key = pk.prs_kostenplaats_key AND o.mld_uitvoerende_keys = b.prs_bedrijf_key AND m.mld_alg_locatie_key = al.alg_locatie_key AND mk.mld_kenmerk_key = 362 AND mk.mld_kenmerkopdr_waarde = '401' AND o.mld_statusopdr_key = 6 AND o.mld_opdr_key = track.key AND TRUNC (track.datum) = TRUNC (SYSDATE - 1); CREATE OR REPLACE VIEW apgr_v_rap_bessimac ( bestelopdrnummer, besteldatum, kostenplaats, status, besteller, adres, leveranciernr, rekeningnummer, bestelregel, artikel, eenheid, artikelnummer, aantal, artikelprijs, besteld_voor, bestelopdr_key ) AS SELECT bo.bes_bestelopdr_id bestelopdrnummer, TO_CHAR (bo.bes_bestelopdr_datum, 'YYYY-MM-DD') besteldatum, pk.prs_kostenplaats_nr, bs.bes_bestelopdrstatuses_omschr status, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = b.prs_perslid_key) besteller, ma.mld_adres_naam, pb.prs_leverancier_nr, pb.prs_bedrijf_opmerking, boi.bes_bestelopdr_item_posnr bestelregel, boi.bes_bestelopdr_item_omschrijv artikel, bs.bes_srtdeel_eenheid eenheid, bs.bes_srtdeel_nr artikelnummer, boi.bes_bestelopdr_item_aantal aantal, boi.bes_bestelopdr_item_prijs artikelprijs, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = b.prs_perslid_key_voor) besteld_voor, bo.bes_bestelopdr_key FROM bes_bestelling b, bes_bestelling_item bi, bes_bestelopdr_item boi, bes_bestelopdrstatuses bs, bes_bestelopdr bo, bes_srtdeel bs, prs_bedrijf pb, prs_kostenplaats pk, mld_adres ma, ( SELECT fac_tracking_refkey key, MAX (fac_tracking_datum) datum FROM fac_tracking WHERE fac_srtnotificatie_key = 20 GROUP BY fac_tracking_refkey) track WHERE b.bes_bestelling_key = bi.bes_bestelling_key AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key AND bo.bes_bestelopdr_key IS NOT NULL AND bo.bes_bestelopdr_status = bs.bes_bestelopdrstatuses_key AND bo.prs_bedrijf_key = pb.prs_bedrijf_key AND bi.bes_srtdeel_key = bs.bes_srtdeel_key AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key AND b.mld_adres_key_lev = ma.mld_adres_key AND bo.bes_bestelopdr_status = 6 AND bo.bes_bestelopdr_key = track.key AND TRUNC (track.datum) = TRUNC (SYSDATE - 1) ORDER BY bo.bes_bestelopdr_id, boi.bes_bestelopdr_item_posnr; CREATE OR REPLACE VIEW apgr_v_export_opdr_xml ( result, result_order ) AS SELECT '', 0 FROM DUAL UNION ALL SELECT '', 1 FROM DUAL UNION ALL SELECT '' || '20008200' || '' || ao.opdrachtnummer || '' || '' || '' || ao.opdrachtdatum || '' || '' || ao.leveranciernr || '' || '' || 'EUR' || '' || '' || '' || '' || '' || '' || ao.opdrachtnummer || ': ' || ao.opdr_onderwerp || '' || '' || ao.opdr_omschr || '' || '' || '' || '' || '' || ao.melder || '' || '' || ao.locatie || '' || '' || '1' || '1' || '' || '' -- Orderregel || '20008200' -- Nummer van A-Point Groep || '' || ao.opdrachtnummer || '' || '' || ao.linenr || '' || '0' || '' || '' || '' || '' || ao.item || '' || '' || ao.omschrijving || '' || '' || '1' || '' || '' || ao.kosten || '' || '' || ao.kosten || '' || '0' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' -- Financiele gegevens van orderregel || '20008200' || '' || '' || '01' -- Per orderregel, max 128 || '' || ao.rekeningnummer || '' -- reknr. staat in opmerking veld bij leverancier || '' || ao.kostenplaats || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '100' -- ALTIJD 100 procent || '' || '' || '' || '' || '' || '' || '', 2 FROM apgr_v_rap_opdrsimac ao UNION ALL SELECT '', 3 FROM DUAL; CREATE OR REPLACE VIEW apgr_v_export_bes_xml ( result, result_order ) AS SELECT '', 0 FROM DUAL UNION ALL SELECT '', 1 FROM DUAL UNION ALL SELECT '' || '20008200' || '' || ab.bestelopdrnummer || '' || '' || '' || ab.besteldatum || '' || '' || ab.leveranciernr || '' || '' || 'EUR' || '' || '' || '' || '' || '' || 'Bestelling: ' || ab.bestelopdrnummer || '' || '' || '' || '' || '' || '' || ab.besteller || '' || '' || ab.adres || '' || '' || '1' || '1' || '' || '' -- Orderregel || '20008200' -- Nummer van A-Point Groep || '' || ab.bestelopdrnummer || '' || '' || ab.bestelregel || '' || '0' || '' || '' || '' || '' || ab.artikel || '' || '' || '' || '' || ab.aantal || '' || '' || ab.eenheid || '' || '' || ab.artikelprijs || '' || '' || ab.aantal * ab.artikelprijs ||'' || '0' || '' || '' || '' || '' || ab.artikelnummer || '' || '' || '' || '' || '' || '' || '' || '' -- Financiele gegevens van orderregel || '20008200' || '' || '' || '' || ab.bestelregel || '' -- Per orderregel, max 128 || '' || ab.rekeningnummer || '' -- reknr. moet nog als SQL worden opgenomen (kenmerk van bestelling / opdracht?) || '' || ab.kostenplaats || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '' || '100' -- ALTIJD 100 procent || '' || '' || '' || '' || '' || '' || '', 2 FROM apgr_v_rap_bessimac ab UNION ALL SELECT '', 3 FROM DUAL; -- Views t.b.v. koppeling met EST ESIS CREATE OR REPLACE VIEW apgr_v_rap_opdrest ( opdr_key, vestiging_id, machine_code, onderwerp, omschrijving, melder, melder_mobiel, opdrachtnummer, opdrachtdatum ) AS SELECT o.mld_opdr_key, (SELECT ak.alg_onrgoedkenmerk_waarde FROM alg_onrgoedkenmerk ak WHERE ak.alg_kenmerk_key = 1000 AND ak.alg_onrgoed_key = og.alg_gebouw_key) vestiging_id, (SELECT ins_kenmerkdeel_waarde FROM ins_kenmerkdeel WHERE ins_deel_key = ob.ins_deel_key AND ins_kenmerk_key = 32) || ' / ' || (SELECT ins_kenmerkdeel_waarde FROM ins_kenmerkdeel WHERE ins_deel_key = ob.ins_deel_key AND ins_kenmerk_key = 31) machine_code, o.mld_opdr_omschrijving, o.mld_opdr_opmerking, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.prs_perslid_key) melder, (SELECT p.prs_perslid_mobiel FROM prs_perslid p WHERE p.prs_perslid_key = m.prs_perslid_key) mobiel, i.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrnr, o.mld_opdr_datumbegin FROM mld_opdr o, mld_melding m, mld_stdmelding std, prs_bedrijf b, ins_srtdiscipline i, mld_discipline md, alg_locatie al, ins_deel ob, mld_melding_object mmo, alg_v_allonrgoed_gegevens og, ( SELECT MAX (fac_tracking_refkey) key, MAX (fac_tracking_datum) datum FROM fac_tracking WHERE fac_srtnotificatie_key = 70 -- Toegekend (nog voor ORDVER) GROUP BY fac_tracking_refkey) track WHERE o.mld_melding_key = m.mld_melding_key(+) AND m.mld_melding_key = mmo.mld_melding_key(+) AND ob.ins_deel_key = mmo.ins_deel_key AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key = i.ins_srtdiscipline_key AND o.mld_uitvoerende_keys = b.prs_bedrijf_key AND m.mld_alg_locatie_key = al.alg_locatie_key AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys AND b.prs_bedrijf_key = 525 -- Explora EST AND o.mld_opdr_key = track.key AND track.datum > SYSDATE - INTERVAL '15' MINUTE; CREATE OR REPLACE VIEW apgr_v_export_est_xml ( result, result_order, ticket ) AS SELECT '', 0, '910051_' || TO_CHAR (SYSDATE, 'YY-MM-DD HH24MI') || ' ' || o.opdr_key FROM apgr_v_rap_opdrest o UNION ALL SELECT '' || 'd5640150-3f58-11e9-af79-080027f683cc' || '3' || '0' || '0' || '0' || '' || o.vestiging_id || '' || '' || o.machine_code || '' || '' || o.onderwerp || '. ' || o.omschrijving || '' || '' || o.melder || '' || '' || o.melder_mobiel || '' || '' || o.opdrachtnummer || '' || '' || o.opdrachtdatum || '' || '', 1, '910051_' || TO_CHAR (SYSDATE, 'YY-MM-DD HH24MI') || ' ' || o.opdr_key FROM apgr_v_rap_opdrest o UNION ALL SELECT '', 2, '910051_' || TO_CHAR (SYSDATE, 'YY-MM-DD HH24MI') || ' ' || o.opdr_key FROM apgr_v_rap_opdrest o; -- Procedure voor het inserten van tracking bij versturen XML naar ESIS. CREATE OR REPLACE PROCEDURE apgr_export_esis (p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2) AS CURSOR c1 IS SELECT opdr_key, vestiging_id, machine_code, onderwerp, omschrijving, melder, melder_mobiel, opdrachtnummer, opdrachtdatum FROM apgr_v_rap_opdrest; BEGIN FOR rec IN c1 LOOP INSERT INTO fac_tracking (fac_tracking_datum, fac_srtnotificatie_key, fac_tracking_refkey, fac_tracking_oms, prs_perslid_key) VALUES (SYSDATE, 85, rec.opdr_key, 'Opdracht verzonden via koppeling ESIS.', 3); END LOOP; END; / -- En nu de CUST notificaties -- Mail naar geselecteerd directielid voor nieuwe medewerker CREATE OR REPLACE VIEW APGR_V_NOTI_NMDW ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY, XSENDER, XEMAIL, XMOBILE ) AS SELECT 'CUST01', NULL, mkm.mld_kenmerkmelding_waarde, 'Er staat een melding voor u klaar voor het goedkeuren van een nieuwe medewerker (' || 'A/' || m.mld_melding_key || ')', m.mld_melding_key, NULL, NULL, NULL, NULL FROM mld_melding m, mld_kenmerkmelding mkm, mld_kenmerk mk, fac_tracking t WHERE m.mld_stdmelding_key = 341 AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key AND mkm.mld_melding_key = m.mld_melding_key AND mk.mld_srtkenmerk_key = 221 AND t.fac_tracking_refkey = m.mld_melding_key AND t.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'MLDNEW') AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE UPPER(fac_notificatie_job_view) = 'APGR_V_NOTI_NMDW') AND (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE UPPER(fac_notificatie_job_view) = 'APGR_V_NOTI_NMDW'); -- Mail naar mailbox van HRM voor goedkeuren nieuwe medewerker aanvraag -- Flag 1 instellen voor XEMAIL! CREATE OR REPLACE VIEW APGR_V_NOTI_GOEDHRM ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY, XEMAIL, XMOBILE ) AS SELECT 'CUST02', NULL, NULL, 'Er staat een melding nieuwe medewerker klaar ter goedkeuring voor HR (' || 'A/' || m.mld_melding_key || ')', m.mld_melding_key, NULL, 'HRM@a-point.nl', NULL FROM mld_melding m, fac_tracking t WHERE m.mld_stdmelding_key = 301 AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'MLDNEW') AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE UPPER(fac_notificatie_job_view) = 'APGR_V_NOTI_GOEDHRM') AND (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE UPPER(fac_notificatie_job_view) = 'APGR_V_NOTI_GOEDHRM'); ------ 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