Files
Customer/ARBO/arbo.sql
Arthur Egberink 786fc60de7 ARBO#56645 -- Aanpassen personenkoppeling ivm uitbreiding richting Human Capital Care
svn path=/Customer/trunk/; revision=45312
2019-12-20 16:16:57 +00:00

3528 lines
143 KiB
MySQL

--
-- $Id$
--
-- Script containing customer specific db-configuration for ARBO.
DEFINE thisfile = 'ARBO.SQL'
DEFINE dbuser = '^ARBO'
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 ------
CREATE OR REPLACE VIEW arbo_v_rap_import_log
AS
SELECT imp_log_status fclt_f_status,
imp_log_omschrijving omschrijving,
imp_log_hint opmerking
FROM imp_log l
WHERE l.fac_import_key = (SELECT MAX (fac_import_key)
FROM fac_import
WHERE fac_import_app_key = 61);
/* Formatted on 30-3-2011 14:00:30 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE arbo_import_prs (p_import_key IN NUMBER)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
-- LET OP: moet idem zijn als declaratie bij ARBO_UPDATE_PRS
v_newline VARCHAR2 (1000); -- Input line
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER := 0;
v_ongeldig NUMBER (1);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_count NUMBER;
-- De importvelden:
v_prs_perslid_nr VARCHAR2 (256);
v_prs_perslid_titel VARCHAR2 (256);
v_prs_perslid_naam VARCHAR2 (256);
v_prs_perslid_tussenvoegsel VARCHAR2 (256);
v_prs_perslid_voorletters VARCHAR2 (256);
v_prs_perslid_voornaam VARCHAR2 (256);
v_prs_afdeling_naam VARCHAR2 (256);
v_prs_afdeling_omschrijving VARCHAR2 (256);
v_prs_srtperslid_omschrijving VARCHAR2 (256);
v_alg_locatie_code VARCHAR2 (256);
v_alg_gebouw_code VARCHAR2 (256);
v_alg_verdieping_code VARCHAR2 (256);
v_alg_ruimte_nr VARCHAR2 (256);
v_prs_perslid_telefoonnr VARCHAR2 (256);
v_prs_perslid_email VARCHAR2 (256);
v_prs_perslid_oslogin VARCHAR2 (256);
v_prs_perslid_ingangsdatum VARCHAR2 (256);
v_prs_perslid_einddatum VARCHAR2 (256);
-- Overig:
v_prs_perslid_ingangs_date DATE;
v_prs_perslid_eind_date DATE;
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM arbo_imp_prs;
COMMIT;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_aanduiding := '';
v_errorhint := 'Fout bij opvragen te importeren rij';
v_ongeldig := 0;
-- Lees alle veldwaarden
-- 01
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
-- 02
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_titel);
-- 03
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
-- 04
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_tussenvoegsel);
-- 05
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_voorletters);
-- 06
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_voornaam);
-- 07
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
-- 08
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_afdeling_omschrijving);
-- 09
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_srtperslid_omschrijving);
-- 10
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code);
-- 11
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
-- 12
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_alg_verdieping_code);
-- 13
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_ruimte_nr);
-- 14
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_telefoonnr);
-- 15
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
-- 16
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_oslogin);
-- 17
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_ingangsdatum);
-- 18
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_einddatum);
--
v_aanduiding :=
'['
|| v_prs_perslid_nr
|| '|'
|| v_prs_perslid_naam
|| '|'
|| v_prs_perslid_tussenvoegsel
|| '|'
|| v_prs_perslid_voornaam
|| '] ';
-- 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_prs_perslid_nr) = 'PERSONEELSNUMMER'
AND UPPER (v_prs_perslid_titel) = 'TITEL'
AND UPPER (v_prs_perslid_naam) = 'NAAM'
AND UPPER (v_prs_perslid_tussenvoegsel) = 'TUSSENVOEGSEL'
AND UPPER (v_prs_perslid_voorletters) = 'VOORLETTERS'
AND UPPER (v_prs_perslid_voornaam) = 'VOORNAAM'
AND UPPER (v_prs_afdeling_naam) = 'AFDELINGSCODE'
AND UPPER (v_prs_afdeling_omschrijving) =
'AFDELINGSOMSCHRIJVING'
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
AND UPPER (v_alg_verdieping_code) = 'BOUWLAAGVOLGNUMMER'
AND UPPER (v_alg_ruimte_nr) = 'RUIMTENUMMER'
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEFOON'
AND UPPER (v_prs_perslid_email) = 'EMAIL'
AND UPPER (v_prs_perslid_oslogin) = 'LOGINNAAM'
AND UPPER (v_prs_perslid_ingangsdatum) = 'INDIENSTDATUM'
AND UPPER (v_prs_perslid_einddatum) = 'UITDIENSTDATUM'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errorhint := 'Ongeldig personeelsnummer';
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
IF (v_prs_perslid_nr IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || 'Personeelsnummer (= login) onbekend',
'Personeelsnummer is verplicht; regel wordt overgeslagen!'
);
COMMIT;
ELSE
-- Personeelsnummers met lengte <5 links aanvullen met nullen!!!
-- LET OP: Personeelsnummer wordt 1-op-1 gebruikt als loginnaam!
IF LENGTH (v_prs_perslid_nr) < 5
THEN
v_prs_perslid_nr := SUBSTR ('0000' || v_prs_perslid_nr, -5);
ELSE
IF LENGTH (v_prs_perslid_nr) > 16
THEN
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Personeelsnummer te lang',
'Personeelsnummer wordt afgebroken tot ['
|| v_prs_perslid_nr
|| ']'
);
COMMIT;
END IF;
END IF;
END IF;
--
v_errorhint := 'Ongeldige titel';
v_prs_perslid_titel := TRIM (v_prs_perslid_titel);
IF LENGTH (v_prs_perslid_titel) > 15
THEN
v_prs_perslid_titel := SUBSTR (v_prs_perslid_titel, 1, 15);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Titel te lang',
'Titel wordt afgebroken tot ['
|| v_prs_perslid_titel
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige naam';
v_prs_perslid_naam := TRIM (v_prs_perslid_naam);
IF LENGTH (v_prs_perslid_naam) > 30
THEN
v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Naam te lang',
'Naam wordt afgebroken tot [' || v_prs_perslid_naam || ']'
);
COMMIT;
ELSE
IF (v_prs_perslid_naam IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || 'Naam onbekend',
'Naam is verplicht; regel wordt overgeslagen!'
);
COMMIT;
END IF;
END IF;
--
v_errorhint := 'Ongeldig tussenvoegsel';
v_prs_perslid_tussenvoegsel := TRIM (v_prs_perslid_tussenvoegsel);
IF LENGTH (v_prs_perslid_tussenvoegsel) > 10
THEN
v_prs_perslid_tussenvoegsel :=
SUBSTR (v_prs_perslid_tussenvoegsel, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Tussenvoegsel te lang',
'Tussenvoegsel wordt afgebroken tot ['
|| v_prs_perslid_tussenvoegsel
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige voorletters';
v_prs_perslid_voorletters := TRIM (v_prs_perslid_voorletters);
IF LENGTH (v_prs_perslid_voorletters) > 10
THEN
v_prs_perslid_voorletters :=
SUBSTR (v_prs_perslid_voorletters, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Voorletters te lang',
'Voorletters worden afgebroken tot ['
|| v_prs_perslid_voorletters
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige voornaam';
v_prs_perslid_voornaam := TRIM (v_prs_perslid_voornaam);
IF LENGTH (v_prs_perslid_voornaam) > 30
THEN
v_prs_perslid_voornaam :=
SUBSTR (v_prs_perslid_voornaam, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Voornaam is te lang',
'Voornaam wordt afgebroken tot ['
|| v_prs_perslid_voornaam
|| ']'
);
COMMIT;
ELSE
IF (v_prs_perslid_voornaam IS NULL)
THEN
v_prs_perslid_voornaam := '-';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Voornaam onbekend',
'Voornaam wordt gezet op [-]');
COMMIT;
END IF;
END IF;
--
v_errorhint := 'Ongeldige afdelingscode';
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
IF LENGTH (v_prs_afdeling_naam) > 10
THEN
v_prs_afdeling_naam := SUBSTR (v_prs_afdeling_naam, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Afdelingscode te lang',
'Afdelingscode wordt afgebroken tot ['
|| v_prs_afdeling_naam
|| ']'
);
COMMIT;
ELSE
IF (v_prs_afdeling_naam IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || 'Afdelingscode onbekend',
'Afdelingscode is verplicht; regel wordt overgeslagen!'
);
COMMIT;
END IF;
END IF;
--
v_errorhint := 'Ongeldige afdelingsomschrijving';
v_prs_afdeling_omschrijving := TRIM (v_prs_afdeling_omschrijving);
IF LENGTH (v_prs_afdeling_omschrijving) > 60
THEN
v_prs_afdeling_omschrijving :=
SUBSTR (v_prs_afdeling_omschrijving, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Afdelingsomschrijving te lang',
'Afdelingsomschrijving wordt afgebroken tot ['
|| v_prs_afdeling_omschrijving
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige functie';
v_prs_srtperslid_omschrijving :=
TRIM (v_prs_srtperslid_omschrijving);
IF LENGTH (v_prs_srtperslid_omschrijving) > 60
THEN
v_prs_srtperslid_omschrijving :=
SUBSTR (v_prs_srtperslid_omschrijving, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Functie te lang',
'Functie wordt afgebroken tot ['
|| v_prs_srtperslid_omschrijving
|| ']'
);
COMMIT;
ELSE
IF (v_prs_srtperslid_omschrijving IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_import_key,
'E',
v_aanduiding || 'Functie onbekend',
'Functie is verplicht; regel wordt overgeslagen!'
);
COMMIT;
END IF;
END IF;
--
v_errorhint := 'Ongeldige locatiecode';
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 || 'Locatiecode te lang',
'Locatiecode wordt afgebroken tot ['
|| v_alg_locatie_code
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige gebouwcode';
v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
IF LENGTH (v_alg_gebouw_code) > 10
THEN
v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Gebouwcode te lang',
'Gebouwcode wordt afgebroken tot ['
|| v_alg_gebouw_code
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige verdiepingcode';
v_alg_verdieping_code := TRIM (v_alg_verdieping_code);
IF LENGTH (v_alg_verdieping_code) > 10
THEN
v_alg_verdieping_code := SUBSTR (v_alg_verdieping_code, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Verdiepingcode te lang',
'Verdiepingcode wordt afgebroken tot ['
|| v_alg_verdieping_code
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldig ruimtenummer';
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 || 'Ruimtenummer te lang',
'Ruimtenummer wordt afgebroken tot ['
|| v_alg_ruimte_nr
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldig telefoonnummer';
v_prs_perslid_telefoonnr := TRIM (v_prs_perslid_telefoonnr);
IF LENGTH (v_prs_perslid_telefoonnr) > 15
THEN
v_prs_perslid_telefoonnr :=
SUBSTR (v_prs_perslid_telefoonnr, 1, 15);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Telefoonnummer te lang',
'Telefoonnummer wordt afgebroken tot ['
|| v_prs_perslid_telefoonnr
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldig e-mailadres';
v_prs_perslid_email := TRIM (v_prs_perslid_email);
IF LENGTH (v_prs_perslid_email) > 50
THEN
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 50);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'E-mailadres te lang',
'E-mailadres wordt afgebroken tot ['
|| v_prs_perslid_email
|| ']'
);
COMMIT;
END IF;
-- LET OP: Personeelsnummer wordt 1-op-1 gebruikt als loginnaam!
v_errorhint := 'Ongeldige loginnaam';
v_prs_perslid_oslogin := v_prs_perslid_nr;
IF LENGTH (v_prs_perslid_oslogin) > 30
THEN
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Loginnaam te lang',
'Loginnaam wordt afgebroken tot ['
|| v_prs_perslid_oslogin
|| ']'
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldige datum in dienst';
v_prs_perslid_ingangsdatum := TRIM (v_prs_perslid_ingangsdatum);
IF v_prs_perslid_ingangsdatum IS NOT NULL
THEN
BEGIN
v_prs_perslid_ingangs_date :=
TO_DATE (v_prs_perslid_ingangsdatum, 'dd-mm-yyyy');
EXCEPTION
WHEN OTHERS
THEN
v_ongeldig := 1;
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,
'Regel wordt overgeslagen!');
COMMIT;
END;
ELSE
v_prs_perslid_ingangs_date := NULL;
END IF;
--
v_errorhint := 'Ongeldige datum uit dienst';
v_prs_perslid_einddatum := TRIM (v_prs_perslid_einddatum);
IF v_prs_perslid_einddatum IS NOT NULL
THEN
BEGIN
v_prs_perslid_eind_date :=
TO_DATE (v_prs_perslid_einddatum, 'dd-mm-yyyy');
EXCEPTION
WHEN OTHERS
THEN
v_ongeldig := 1;
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,
'Regel wordt overgeslagen!');
COMMIT;
END;
ELSE
v_prs_perslid_eind_date := NULL;
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errorhint :=
'Fout bij toevoegen regel aan importtabel ARBO_IMP_PRS';
INSERT INTO arbo_imp_prs (imp_datum,
prs_perslid_nr,
prs_perslid_titel,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voorletters,
prs_perslid_voornaam,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_srtperslid_omschrijving,
alg_gebouw_code,
alg_verdieping_code,
alg_ruimte_nr,
prs_perslid_telefoonnr,
prs_perslid_email,
prs_perslid_oslogin,
prs_perslid_ingangsdatum,
prs_perslid_einddatum)
VALUES (SYSDATE,
v_prs_perslid_nr,
v_prs_perslid_titel,
v_prs_perslid_naam,
v_prs_perslid_tussenvoegsel,
v_prs_perslid_voorletters,
v_prs_perslid_voornaam,
v_prs_afdeling_naam,
v_prs_afdeling_omschrijving,
v_prs_srtperslid_omschrijving,
v_alg_gebouw_code,
v_alg_verdieping_code,
v_alg_ruimte_nr,
v_prs_perslid_telefoonnr,
v_prs_perslid_email,
v_prs_perslid_oslogin,
v_prs_perslid_ingangs_date,
v_prs_perslid_eind_date);
COMMIT;
v_count_import := v_count_import + 1;
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;
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',
'Persoon: aantal ingelezen regels: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Persoon: aantal ongeldige 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, 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 arbo_import_prs;
/
/* Formatted on 30-3-2011 14:00:30 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE arbo_update_prs (p_import_key IN NUMBER)
IS
-- LET OP: moet idem zijn als declaratie bij ARBO_IMPORT_PRS
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
c_max_delta_percentage NUMBER (10) := 20;
-- Groep waar personen in geplaatst worden (indien nog geen groep)
c_groep_upper VARCHAR2 (30) := '_DEFAULT';
c_profiel_omschrijving VARCHAR2 (30) := 'DEFAULT';
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
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_error NUMBER (10);
v_count NUMBER (10);
--
v_perslid_key NUMBER (10);
v_afdeling_key NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_srtperslid_key NUMBER (10);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_gebouw_code VARCHAR2 (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_ruimte_nr VARCHAR2 (10);
v_wp_volgnr NUMBER (3);
v_wp_oms VARCHAR2 (30);
v_wp_key NUMBER (10);
v_groep_key NUMBER (10);
v_profiel_key NUMBER (10);
-- Let op! Personen die niet meer in dienst zijn -> niet in arbo_imp_prs!
-- Dubbele nummers? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
CURSOR cdelprs
IS
SELECT p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_voornaam
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr IS NOT NULL
--AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\'
AND NOT EXISTS
(SELECT 1
FROM arbo_imp_prs ip
WHERE UPPER (ip.prs_perslid_nr) =
UPPER (p.prs_perslid_nr));
-- Let op! Personen die niet meer in dienst zijn -> niet in arbo_imp_prs!
CURSOR csrtperslid
IS
SELECT MIN (prs_perslid_nr) prs_perslid_nr,
MIN (prs_perslid_naam) prs_perslid_naam,
MIN (prs_perslid_voornaam) prs_perslid_voornaam,
MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
FROM arbo_imp_prs
GROUP BY UPPER (prs_srtperslid_omschrijving);
-- Let op! Personen die niet meer in dienst zijn -> niet in arbo_imp_prs!
-- Dubbele nummers? Dan wordt slechts 1 set persoongegevens toegevoegd!
-- Ook wordt in deze loop de afdelingsomschrijving eventueel bijgewerkt!
CURSOR cperslid
IS
SELECT * FROM arbo_imp_prs;
-- Let op! Personen die niet meer in dienst zijn -> niet in arbo_imp_prs!
-- Dubbele nummers? Dan krijgt iemand mogelijk de verkeerde plaats!
CURSOR cwp
IS
SELECT p.*,
ip.alg_locatie_code,
ip.alg_gebouw_code,
ip.alg_verdieping_code,
ip.alg_ruimte_nr
FROM arbo_imp_prs ip, prs_v_aanwezigperslid p
WHERE UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr)
AND ( ip.alg_locatie_code IS NOT NULL
OR ip.alg_gebouw_code IS NOT NULL
OR ip.alg_verdieping_code IS NOT NULL
OR ip.alg_ruimte_nr IS NOT NULL);
-- Alle actieve personen met nummer (ie. de import-doelgroep) zonder een werkplek
CURSOR cnowp
IS
SELECT p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_voornaam
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr IS NOT NULL
AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
AND NOT EXISTS
(SELECT 1
FROM prs_perslidwerkplek pw
WHERE pw.prs_perslid_key = p.prs_perslid_key);
-- Alle aanwezige personen met nummer (ie. de import-doelgroep) niet in een groep
CURSOR cnogroup
IS
SELECT p.prs_perslid_key,
p.prs_perslid_nr,
p.prs_perslid_naam,
p.prs_perslid_voornaam
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep g
WHERE g.prs_perslid_key = p.prs_perslid_key);
BEGIN
-- Bepaal nummer-match tussen Facilitor en RECENT importbestand ofwel het aantal
-- actieve personen na import.
-- RECENT betekent niet meer dan een kwartiertje oud (14,4 minuten); dit voorkomt
-- dat - als er geen nieuw importbestand is aangeleverd - telkens dezelfde fouten
-- worden gerapporteerd (nl. op basis van een oud importbestand in ARBO_IMP_PRS).
SELECT COUNT ( * )
INTO v_count_prs_import
FROM prs_v_aanwezigperslid p, arbo_imp_prs ip
WHERE p.prs_perslid_nr IS NOT NULL
AND UPPER (p.prs_perslid_nr) = UPPER (ip.prs_perslid_nr)
AND (ip.imp_datum + 0.01) > SYSDATE;
-- Bepaal huidig aantal actieve personen in Facilitor.
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
INTO v_count_prs_actual
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr IS NOT NULL;
IF ( (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
(100 - c_max_delta_percentage)))
THEN
-- Geldig importbestand wat betreft aantal personen
v_errorhint := 'Fout bij bepalen profiel';
SELECT MAX (fac_profiel_key), COUNT ( * )
INTO v_profiel_key, v_count
FROM fac_profiel
WHERE UPPER (TRIM (fac_profiel_omschrijving)) =
c_profiel_omschrijving;
IF (v_count = 0)
THEN
fac.imp_writelog (
p_import_key,
'I',
'Standaard profiel ['
|| c_profiel_omschrijving
|| '] niet gevonden.',
'Personen zonder profiel kunnen niet worden gekoppeld aan een profiel.'
);
COMMIT;
END IF;
FOR recdelprs IN cdelprs
LOOP
BEGIN
v_aanduiding :=
recdelprs.prs_perslid_nr
|| '|'
|| recdelprs.prs_perslid_naam
|| '|'
|| recdelprs.prs_perslid_voornaam
|| ' - ';
v_errorhint := 'Fout bij bepalen verplichtingen';
-- Heeft persoon actuele/toekomstige verplichtingen?
SELECT COUNT ( * )
INTO v_count
FROM prs_perslid p, prs_v_verplichting_keys r
WHERE p.prs_perslid_key = r.prs_perslid_key
AND p.prs_perslid_key = recdelprs.prs_perslid_key;
IF v_count = 0
THEN
v_errorhint := 'Fout bij verwijderen persoon';
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recdelprs.prs_perslid_nr
|| '] en naam ['
|| recdelprs.prs_perslid_naam
|| ', '
|| recdelprs.prs_perslid_voornaam
|| '] is verwijderd',
'Persoon is verwijderd'
);
COMMIT;
ELSE
-- Staat persoon INACTIEF?
v_errorhint := 'Fout bij bepalen INACTIEF';
SELECT COUNT ( * )
INTO v_count
FROM prs_perslid p
WHERE p.prs_perslid_naam LIKE c_persoon_inactief || '%'
AND p.prs_perslid_key = recdelprs.prs_perslid_key;
IF v_count = 0
THEN
v_errorhint := 'Fout bij INACTIEF maken persoon';
-- Persoon INACTIEF maken (update naam + reset oslogin)
UPDATE prs_perslid
SET prs_perslid_naam =
SUBSTR (c_persoon_inactief || prs_perslid_naam,
1,
30),
prs_perslid_oslogin = NULL
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recdelprs.prs_perslid_nr
|| '] en naam ['
|| recdelprs.prs_perslid_naam
|| ', '
|| recdelprs.prs_perslid_voornaam
|| '] is INACTIEF gemaakt',
'Persoon is INACTIEF gemaakt'
);
ELSE
v_errorhint := 'Fout bij INACTIEF houden persoon';
-- Persoon INACTIEF houden (reset oslogin; indien handmatig INACTIEF gemaakt)
UPDATE prs_perslid
SET prs_perslid_oslogin = NULL
WHERE prs_perslid_naam LIKE c_persoon_inactief || '%'
AND prs_perslid_oslogin IS NOT NULL;
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recdelprs.prs_perslid_nr
|| '] en naam ['
|| recdelprs.prs_perslid_naam
|| ', '
|| recdelprs.prs_perslid_voornaam
|| '] is INACTIEF',
'Persoon is INACTIEF'
);
END IF;
COMMIT;
END IF;
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;
v_count_tot := 0;
v_count_error := 0;
FOR recsrtperslid IN csrtperslid
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recsrtperslid.prs_perslid_nr
|| '|'
|| recsrtperslid.prs_perslid_naam
|| '|'
|| recsrtperslid.prs_perslid_voornaam
|| '|'
|| recsrtperslid.prs_srtperslid_omschrijving
|| ' - ';
v_errorhint := 'Fout bij bepalen functie';
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigsrtperslid
WHERE UPPER (prs_srtperslid_omschrijving) =
UPPER (recsrtperslid.prs_srtperslid_omschrijving);
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen functie';
INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving)
VALUES (recsrtperslid.prs_srtperslid_omschrijving);
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
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',
'Functie: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Functie: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
FOR recperslid IN cperslid
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recperslid.prs_perslid_nr
|| '|'
|| recperslid.prs_perslid_naam
|| '|'
|| recperslid.prs_perslid_voornaam
|| ' - ';
v_errorhint :=
'Fout bij bepalen functie ['
|| recperslid.prs_srtperslid_omschrijving
|| ']';
SELECT prs_srtperslid_key
INTO v_srtperslid_key
FROM prs_v_aanwezigsrtperslid
WHERE UPPER (prs_srtperslid_omschrijving) =
UPPER (recperslid.prs_srtperslid_omschrijving);
v_errorhint :=
'Fout bij bepalen afdeling ['
|| recperslid.prs_afdeling_naam
|| ']';
SELECT prs_afdeling_key
INTO v_afdeling_key
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_upper =
UPPER (recperslid.prs_afdeling_naam);
v_errorhint :=
'Fout bij wijzigen afdelingsomschrijving ['
|| recperslid.prs_afdeling_naam
|| '|'
|| recperslid.prs_afdeling_omschrijving
|| ']';
UPDATE prs_afdeling
SET prs_afdeling_omschrijving =
COALESCE (recperslid.prs_afdeling_omschrijving,
prs_afdeling_omschrijving)
WHERE prs_afdeling_key = v_afdeling_key;
COMMIT;
v_errorhint :=
'Fout bij bepalen kostenplaats ['
|| recperslid.prs_afdeling_naam
|| ']';
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigkostenplaats
WHERE prs_kostenplaats_upper =
UPPER (recperslid.prs_afdeling_naam);
IF v_count = 1
THEN
SELECT prs_kostenplaats_key
INTO v_kostenplaats_key
FROM prs_v_aanwezigkostenplaats
WHERE prs_kostenplaats_upper =
UPPER (recperslid.prs_afdeling_naam);
v_errorhint :=
'Fout bij wijzigen kostenplaatsomschrijving ['
|| recperslid.prs_afdeling_naam
|| '|'
|| recperslid.prs_afdeling_omschrijving
|| ']';
UPDATE prs_kostenplaats
SET prs_kostenplaats_omschrijving =
COALESCE (recperslid.prs_afdeling_omschrijving,
prs_kostenplaats_omschrijving)
WHERE prs_kostenplaats_key = v_kostenplaats_key;
COMMIT;
ELSE
fac.imp_writelog (
p_import_key,
'I',
v_aanduiding || v_errorhint,
'Kostenplaats volgens afdeling bestaat niet!'
);
COMMIT;
END IF;
v_errorhint := 'Fout bij bepalen persoon';
SELECT COUNT ( * ), MAX (prs_perslid_key)
INTO v_count, v_perslid_key
FROM prs_v_aanwezigperslid
WHERE UPPER (prs_perslid_nr) =
UPPER (recperslid.prs_perslid_nr);
IF v_count > 1
THEN
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errorhint,
'Kan persoon niet 1-duidig bepalen!');
COMMIT;
ELSE
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen persoon';
INSERT INTO prs_perslid (
prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
prs_perslid_nr,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voorletters,
prs_perslid_voornaam,
prs_perslid_titel,
prs_perslid_telefoonnr,
prs_perslid_email,
prs_perslid_oslogin,
prs_perslid_ingangsdatum,
prs_perslid_einddatum,
fac_profiel_key
)
VALUES (
'PRS',
v_srtperslid_key,
v_afdeling_key,
recperslid.prs_perslid_nr,
recperslid.prs_perslid_naam,
recperslid.prs_perslid_tussenvoegsel,
recperslid.prs_perslid_voorletters,
recperslid.prs_perslid_voornaam,
recperslid.prs_perslid_titel,
recperslid.prs_perslid_telefoonnr,
recperslid.prs_perslid_email,
recperslid.prs_perslid_oslogin,
COALESCE (
recperslid.prs_perslid_ingangsdatum,
SYSDATE
),
recperslid.prs_perslid_einddatum,
v_profiel_key
)
RETURNING prs_perslid_key INTO v_perslid_key;
ELSE
v_errorhint := 'Fout bij wijzigen persoon';
UPDATE prs_perslid
SET prs_srtperslid_key = v_srtperslid_key,
prs_afdeling_key = v_afdeling_key,
prs_perslid_naam = recperslid.prs_perslid_naam,
prs_perslid_tussenvoegsel =
recperslid.prs_perslid_tussenvoegsel,
prs_perslid_voorletters =
recperslid.prs_perslid_voorletters,
prs_perslid_voornaam =
recperslid.prs_perslid_voornaam,
prs_perslid_titel = recperslid.prs_perslid_titel,
prs_perslid_telefoonnr =
recperslid.prs_perslid_telefoonnr,
prs_perslid_email = recperslid.prs_perslid_email,
prs_perslid_oslogin =
recperslid.prs_perslid_oslogin,
prs_perslid_ingangsdatum =
COALESCE (recperslid.prs_perslid_ingangsdatum,
prs_perslid_ingangsdatum),
prs_perslid_einddatum =
recperslid.prs_perslid_einddatum,
fac_profiel_key =
COALESCE (fac_profiel_key, v_profiel_key)
WHERE prs_perslid_key = v_perslid_key;
END IF;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
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',
'Persoon: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Persoon: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
v_count_tot := 0;
v_count_error := 0;
FOR recwp IN cwp
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recwp.prs_perslid_nr
|| '|'
|| recwp.prs_perslid_naam
|| '|'
|| recwp.prs_perslid_voornaam
|| '|'
|| recwp.alg_locatie_code
|| '|'
|| recwp.alg_gebouw_code
|| '|'
|| recwp.alg_verdieping_code
|| '|'
|| recwp.alg_ruimte_nr
|| ' - ';
v_errorhint := 'Fout bij bepalen persoon';
SELECT prs_perslid_key
INTO v_perslid_key
FROM prs_v_aanwezigperslid
WHERE UPPER (prs_perslid_nr) = UPPER (recwp.prs_perslid_nr);
v_locatie_key := NULL;
v_gebouw_key := NULL;
v_verdieping_key := NULL;
v_ruimte_key := NULL;
v_errorhint := 'Fout bij bepalen locatie';
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_v_aanweziglocatie
WHERE UPPER (alg_locatie_code) = UPPER (recwp.alg_locatie_code);
v_errorhint := 'Fout bij bepalen gebouw';
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_v_aanweziggebouw
WHERE UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code)
AND alg_locatie_key = v_locatie_key;
v_errorhint := 'Fout bij bepalen verdieping';
SELECT alg_verdieping_key
INTO v_verdieping_key
FROM alg_v_aanwezigverdieping
WHERE UPPER (alg_verdieping_code) = UPPER (recwp.alg_verdieping_code)
AND alg_gebouw_key = v_gebouw_key;
v_errorhint := 'Fout bij bepalen ruimte';
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_v_aanwezigruimte
WHERE UPPER (alg_ruimte_nr) = UPPER (recwp.alg_ruimte_nr)
AND alg_verdieping_key = v_verdieping_key;
v_errorhint := 'Fout bij verhuizen naar nieuwe werkplek';
PRS.movetoruimte (v_perslid_key, v_ruimte_key, 'L');
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
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',
'Werkplek: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Werkplek: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
''
);
COMMIT;
FOR recnowp IN cnowp
LOOP
BEGIN
fac.imp_writelog (
p_import_key,
'I',
'Persoon met nummer ['
|| recnowp.prs_perslid_nr
|| '] en naam ['
|| recnowp.prs_perslid_naam
|| ', '
|| recnowp.prs_perslid_voornaam
|| '] heeft geen werkplek',
'Geen werkplek'
);
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,
v_errorhint);
COMMIT;
END;
END LOOP;
FOR recnogroup IN cnogroup
LOOP
BEGIN
v_aanduiding :=
recnogroup.prs_perslid_nr
|| '|'
|| recnogroup.prs_perslid_naam
|| '|'
|| recnogroup.prs_perslid_voornaam
|| ' - ';
v_errorhint := 'Fout bij bepalen groep [' || c_groep_upper || ']';
SELECT fac_groep_key
INTO v_groep_key
FROM fac_groep
WHERE fac_groep_upper = c_groep_upper;
v_errorhint :=
'Fout bij koppelen persoon aan groep ['
|| c_groep_upper
|| ']';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
VALUES (v_groep_key, recnogroup.prs_perslid_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,
v_errorhint);
COMMIT;
END;
END LOOP;
-- Verwijder ongebruikte functies; deze import bepaalt de functies!
DELETE FROM prs_srtperslid sp
WHERE NOT EXISTS
(SELECT 1
FROM prs_perslid p
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key);
COMMIT;
ELSE
IF (v_count_prs_import = 0)
THEN
fac.imp_writelog (
p_import_key,
'S',
'Geen nieuw/recent bestand met te importeren personen aangetroffen!',
''
);
ELSE
fac.imp_writelog (
p_import_key,
'E',
'Verschil tussen het actuele aantal en het te importeren aantal personen te groot; zie specificatie!',
'- max. verschilpercentage = ['
|| TO_CHAR (c_max_delta_percentage)
|| '%] <br> '
|| '- #personen importbestand = ['
|| TO_CHAR (v_count_prs_import)
|| '] <br> '
|| '- #personen Facilitor = ['
|| TO_CHAR (v_count_prs_actual)
|| ']'
);
END IF;
COMMIT;
END IF;
COMMIT;
END arbo_update_prs;
/
/*
CREATE OR REPLACE PROCEDURE arbo_import_perslid (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR(255);
BEGIN
v_seq_of_columns := '0;0;0;0;0;0;1;6;0;5;0;0;0;0;0;8;9;7;0;2;4;0;0;0;0;0;3;10;11;12;13;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0';
prs.import_perslid(p_import_key, v_seq_of_columns, '%');
UPDATE fac_imp_perslid p
SET prs_kenmerk10 = (SELECT fac_import_filenaam FROM fac_import i WHERE fac_import_key = p_import_key),
prs_kenmerk11 = (SELECT TO_CHAR(fac_import_datum_gelezen, 'yyyy-mm-dd hh24:mi:ss') FROM fac_import i WHERE fac_import_key = p_import_key)
WHERE p.fac_import_key = p_import_key;
-- Bewaar de oude data omdat we een aantal imports per nacht krijgen
INSERT INTO arbo_imp_perslid
SELECT * FROM fac_imp_perslid;
END;
/
*/
CREATE OR REPLACE PROCEDURE arbo_import_perslid (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (255);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
BEGIN
v_seq_of_columns := '0;0;0;0;0;0;5;11;0;10;'
-- v_alg_locatie_code 1
-- v_alg_gebouw_code 2
-- v_alg_verdieping_volgnr 3
-- v_alg_ruimte_nr 4
-- v_prs_werkplek_volgnr 5
-- v_prs_werkplek_omschrijving 6
-- v_prs_afdeling_naam 7
-- v_prs_perslid_naam 8
-- v_prs_perslid_tussenvoegsel 9
-- v_prs_perslid_voornaam 10
|| '0;0;0;0;0;0;0;13;0;1;'
-- v_prs_perslid_voorletters 11
-- v_prs_perslid_partner_naam 12
-- v_prs_perslid_partner_tussenv 13
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
-- 2 personen die de geboortenaam van de partner willen gebruiken
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
-- v_prs_perslid_telefoonnr 16
-- v_prs_perslid_mobiel 17
-- v_prs_perslid_email 18
-- v_prs_perslid_dienstverband 19
-- v_prs_perslid_nr 20
|| '12;1;0;0;0;0;2;3;11;4;'
-- v_prs_srtperslid_omschrijving 21
-- v_prs_perslid_oslogin 22
-- v_prs_perslid_wachtwoord 23
-- v_prs_perslid_titel 24
-- v_prs_perslid_apikey 25
-- v_dummy 26
-- v_prs_kenmerk1 27
-- v_prs_kenmerk2 28
-- v_prs_kenmerk3 29
-- v_prs_kenmerk4 30
|| '6;7;8;9;5;14;0;0;0;0;'
|| '0;0;0;0;0;0';
prs.import_perslid(p_import_key, v_seq_of_columns, 'Werknemernummer;Niveau 2;Niveau 3;Niveau 4;Afdelingsnummer;Afdeling;Kostenplaats.Code;KPL_VERKORT;Kostenplaats;Roepnaam;Werknemer;Functie;Werknemer.Email_werk;Alternatief emailadres tbv SSO%');
-- Verwijder alles acther de komma, dan houden we de achternaam over
v_errorhint := 'Verwijder voornaam van samengestelde string';
-- Nog even checken
DELETE fac_imp_perslid
WHERE LOWER (prs_srtperslid_omschrijving) LIKE '%receptioniste%'
AND prs_kenmerk1 <> 'HumanCapitalCare B.V.';
UPDATE fac_imp_perslid
SET prs_perslid_naam = SUBSTR (prs_kenmerk3, 1, INSTR (prs_kenmerk3, ',') - 1),
prs_perslid_tussenvoegsel = TRIM(SUBSTR(prs_kenmerk3, INSTR(prs_kenmerk3, '.', -1)+1));
UPDATE fac_imp_perslid
SET prs_perslid_nr = TO_CHAR(prs_perslid_nr, 'FM00000')
WHERE length(prs_perslid_nr) < 5;
UPDATE fac_imp_perslid
SET prs_kenmerk7 =
DECODE (prs_kenmerk1,
'HumanTotalCare B.V.', 'HTC',
'Focus Nederland B.V.', 'FOCUS',
'ArboNed B.V.', 'AN',
'HumanCapitalCare B.V.', 'HCC',
'IT&Care B.V.', 'IT',
'Mensely B.V.', 'MENS')
|| '-'
|| prs_kenmerk7
WHERE prs_kenmerk7 IN ('BB',
'DIR',
'FIN',
'FZ',
'HR',
'IO',
'JZ',
'MAR',
'RD',
'TD');
UPDATE fac_imp_perslid
SET prs_afdeling_naam = prs_afdeling_naam || '-' || prs_kenmerk6;
UPDATE fac_imp_perslid i
SET prs_perslid_email = COALESCE(i.prs_perslid_email, (SELECT prs_perslid_email
FROM prs_perslid p
WHERE i.prs_perslid_nr = p.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL));
END;
/
CREATE OR REPLACE PROCEDURE arbo_update_perslid (p_import_key IN NUMBER)
IS
CURSOR c IS
SELECT DISTINCT prs_kenmerk1 bedrijf_naam,
prs_kenmerk2 afdeling_oms1,
prs_kenmerk4 afdeling_oms2,
prs_kenmerk5 afdeling_oms3,
prs_kenmerk6 kostenplaats_id,
prs_kenmerk9 afdeling_naam,
prs_kenmerk7 kostenplaats_nr
FROM fac_imp_perslid
ORDER BY prs_kenmerk1,
prs_kenmerk2,
prs_kenmerk4,
prs_kenmerk5,
prs_kenmerk6;
CURSOR c_upd IS
SELECT i.prs_perslid_key, prs_kenmerk10 alt_email
FROM fac_imp_perslid i, prs_perslid p
WHERE i.prs_perslid_key = p.prs_perslid_key
AND prs_kenmerk10 IS NOT NULL;
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_nr IS NOT NULL
AND i.prs_perslid_nr IS NULL
AND p.prs_perslid_verwijder IS NULL;
v_bedrijf_key NUMBER (10);
v_afdeling_key1 NUMBER (10);
v_afdeling_key2 NUMBER (10);
v_afdeling_key3 NUMBER (10);
v_afdeling_key4 NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_aanduiding VARCHAR2 (100);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
v_count NUMBER;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_aanduiding := '';
v_errorhint := 'Toevoegen kostenplaatsen';
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaats_module,
prs_kostenplaatsgrp_key)
SELECT DISTINCT prs_kenmerk7,
prs_kenmerk8,
'PRS',
1
FROM fac_imp_perslid
WHERE NOT EXISTS
(SELECT prs_kostenplaats_key
FROM prs_kostenplaats
WHERE prs_kostenplaats_nr = prs_kenmerk7
AND prs_kostenplaats_verwijder IS NULL);
v_errorhint := 'Aanpassen kostenplaatsen';
UPDATE prs_kostenplaats k
SET prs_kostenplaats_omschrijving =
(SELECT MIN (prs_kenmerk8)
FROM fac_imp_perslid i
WHERE k.prs_kostenplaats_nr = i.prs_kenmerk7)
WHERE EXISTS
(SELECT prs_kenmerk7
FROM fac_imp_perslid i
WHERE k.prs_kostenplaats_nr = i.prs_kenmerk7)
AND k.prs_kostenplaats_verwijder IS NULL;
v_errorhint := 'Toevoegen bedrijven';
INSERT INTO prs_bedrijf (prs_bedrijf_naam, prs_bedrijf_intern)
SELECT DISTINCT prs_kenmerk1, 1
FROM fac_imp_perslid
WHERE NOT EXISTS
(SELECT prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_bedrijf_intern = 1
AND prs_bedrijf_verwijder IS NULL
AND prs_kenmerk1 = prs_bedrijf_naam);
FOR rec IN c
LOOP
v_aanduiding := rec.afdeling_naam;
BEGIN
v_errorhint := 'Zoek bedrijf';
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_bedrijf b
WHERE rec.bedrijf_naam = b.prs_bedrijf_naam
AND prs_bedrijf_intern = 1
AND prs_bedrijf_verwijder IS NULL;
v_errorhint := 'Zoek kostenplaats';
SELECT prs_kostenplaats_key
INTO v_kostenplaats_key
FROM prs_kostenplaats k
WHERE rec.kostenplaats_nr = k.prs_kostenplaats_nr
AND k.prs_kostenplaats_verwijder IS NULL;
v_errorhint := 'Zoek afdeling1';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key1
FROM prs_v_afdeling a
WHERE a.prs_afdeling_omschrijving = rec.afdeling_oms1
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 1
AND a.prs_bedrijf_key = v_bedrijf_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key1
FROM DUAL;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_bedrijf_key)
VALUES (v_afdeling_key1,
v_afdeling_key1,
rec.afdeling_oms1,
v_bedrijf_key);
END;
v_errorhint := 'Zoek afdeling2';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key2
FROM prs_v_afdeling a
WHERE a.prs_afdeling_omschrijving = rec.afdeling_oms2
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 2
AND a.prs_afdeling_parentkey = v_afdeling_key1;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key2
FROM DUAL;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_afdeling_parentkey)
VALUES (v_afdeling_key2,
v_afdeling_key2,
rec.afdeling_oms2,
v_afdeling_key1);
END;
v_errorhint := 'Zoek afdeling3';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key3
FROM prs_v_afdeling a
WHERE a.prs_afdeling_upper = rec.afdeling_naam
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 3
AND a.prs_afdeling_parentkey = v_afdeling_key2;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key3
FROM DUAL;
v_errorhint :=
'Voeg afdeling3 toe '
|| v_afdeling_key3
|| '-'
|| rec.afdeling_naam
|| '-'
|| rec.afdeling_oms3
|| '-'
|| v_afdeling_key2;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_afdeling_parentkey)
VALUES (v_afdeling_key3,
rec.afdeling_naam,
rec.afdeling_oms3,
v_afdeling_key2);
END;
v_errorhint := 'Zoek afdeling4';
BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key4
FROM prs_v_afdeling a
WHERE a.prs_afdeling_upper =
rec.afdeling_naam || '-' || rec.kostenplaats_id
AND prs_afdeling_verwijder IS NULL
AND a.niveau = 4
AND a.prs_afdeling_parentkey = v_afdeling_key3;
UPDATE prs_afdeling a
SET a.prs_afdeling_omschrijving = rec.afdeling_oms3,
a.prs_kostenplaats_key = v_kostenplaats_key
WHERE a.prs_afdeling_key = v_afdeling_key4;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SELECT prs_s_prs_afdeling_key.NEXTVAL
INTO v_afdeling_key4
FROM DUAL;
v_errorhint :=
'Voeg afdeling4 toe '
|| v_afdeling_key4
|| '-'
|| rec.afdeling_naam
|| '-'
|| rec.afdeling_oms3
|| '-'
|| v_afdeling_key3
|| '-'
|| rec.kostenplaats_id;
INSERT INTO prs_afdeling (prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_kostenplaats_key,
prs_afdeling_parentkey)
VALUES (
v_afdeling_key4,
rec.afdeling_naam
|| '-'
|| rec.kostenplaats_id,
rec.afdeling_oms3,
v_kostenplaats_key,
v_afdeling_key3);
END;
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);
END;
END LOOP;
SELECT COUNT(*)
INTO v_count
FROM fac_imp_perslid;
IF v_count > 500
THEN
-- Voordat we gaan importeren gaan we op zoek of we nog mensen moeten verwijderen die niet in de import voorkomen.
-- Nu komt het ook regelmatig voor dat mensen een ander personeelsnummer krijgen terwijl ze de login behouden. Deze
-- mensen proberen we om te hangen en het personeelsnummer aan te passen.
FOR rec IN c_del LOOP
BEGIN
v_errorhint := 'Verwijderen persoon: ' || rec.prs_perslid_key || '-' || rec.prs_perslid_nr || '-' || rec.prs_perslid_oslogin;
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
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;
END LOOP;
END IF;
prs.update_perslid (p_import_key, 'NR', NULL);
v_errorhint := 'Update personen';
FOR rec IN c_upd LOOP
BEGIN
v_errorhint := 'Update persoon: ' || rec.prs_perslid_key || '-' || rec.alt_email;
PRS.upsertkenmerk (1020, rec.prs_perslid_key, rec.alt_email);
END;
END LOOP;
-- Nu gaan we proberen de afdelingen op te ruimen
BEGIN
v_errorhint := 'Opschonen afdeling niveau 4';
UPDATE prs_afdeling
SET prs_afdeling_verwijder = SYSDATE
WHERE prs_afdeling_key IN
(SELECT prs_afdeling_key
FROM prs_v_afdeling_boom ab
WHERE niveau = 4
AND NOT EXISTS
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
WHERE v.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE a.prs_afdeling_parentkey =
ab.prs_afdeling_key)
AND prs_afdeling_verwijder IS NULL);
v_errorhint := 'Opschonen afdeling niveau 3';
UPDATE prs_afdeling
SET prs_afdeling_verwijder = SYSDATE
WHERE prs_afdeling_key IN
(SELECT prs_afdeling_key
FROM prs_v_afdeling_boom ab
WHERE niveau = 3
AND NOT EXISTS
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
WHERE v.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE a.prs_afdeling_parentkey =
ab.prs_afdeling_key)
AND prs_afdeling_verwijder IS NULL);
v_errorhint := 'Opschonen afdeling niveau 2';
UPDATE prs_afdeling
SET prs_afdeling_verwijder = SYSDATE
WHERE prs_afdeling_key IN
(SELECT prs_afdeling_key
FROM prs_v_afdeling_boom ab
WHERE niveau = 2
AND NOT EXISTS
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
WHERE v.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE a.prs_afdeling_parentkey =
ab.prs_afdeling_key)
AND prs_afdeling_verwijder IS NULL);
v_errorhint := 'Opschonen afdeling niveau 1';
UPDATE prs_afdeling
SET prs_afdeling_verwijder = SYSDATE
WHERE prs_afdeling_key IN
(SELECT prs_afdeling_key
FROM prs_v_afdeling_boom ab
WHERE niveau = 1
AND NOT EXISTS
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_afd_verplichting v
WHERE v.prs_afdeling_key =
ab.prs_afdeling_key)
AND NOT EXISTS
(SELECT prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE a.prs_afdeling_parentkey =
ab.prs_afdeling_key)
AND prs_afdeling_verwijder IS NULL);
END;
COMMIT;
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);
END;
/
-- ARBO#20210 AutoClose alle bestellingen noti-dagen na aanmaken.
CREATE OR REPLACE PROCEDURE arbo_select_autoclose (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
NULL;
END;
/
CREATE OR REPLACE FORCE VIEW arbo_v_export_autoclose (RESULT, result_order)
AS
SELECT '', 0
FROM DUAL
WHERE 1 = 0;
/
/* Formatted on 1-4-2011 14:48:18 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE arbo_export_autoclose (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
BEGIN
FOR rc
IN (SELECT boi.bes_bestelopdr_item_key, bo.bes_bestelopdr_key
FROM bes_bestelopdr_item boi,
bes_bestelopdr bo,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params bdp
WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.bes_bestelopdr_status = 4 -- In bestelling
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
--AND sg.ins_discipline_key = -1
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
AND (b.bes_bestelling_datum IS NULL
OR fac.datumtijdplusuitvoertijd (
b.bes_bestelling_leverdatum,
bdp.bes_disc_params_noti_dagen,
'DAGEN'
) < SYSDATE))
LOOP
UPDATE bes_bestelopdr_item
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
WHERE bes_bestelopdr_item_key = rc.bes_bestelopdr_item_key;
bes.updatebestelopdrstatus (rc.bes_bestelopdr_key, NULL);
COMMIT;
END LOOP;
FOR rc
IN (SELECT bi.bes_bestelling_item_key, bi.bes_bestelling_key
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
WHERE bi.bes_bestelling_item_aantal <>
NVL (bi.bes_bestelling_item_aantalontv, 0)
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_item_aantal =
boi.bes_bestelopdr_item_aantalontv)
LOOP
UPDATE bes_bestelling_item
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
WHERE bes_bestelling_item_key = rc.bes_bestelling_item_key;
bes.updatebestellingstatus (rc.bes_bestelling_key, NULL);
COMMIT;
END LOOP;
END;
/
/* Formatted on 14-10-2011 16:26:54 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW arbo_v_rap_ruimteoverzicht
(
fclt_f_locatie,
fclt_f_gebouw,
fclt_f_verdieping,
ruimtenr,
omschrijving,
fclt_f_ruimtefunctie,
fclt_f_vloersoort,
oppervlak
)
AS
SELECT a.alg_locatie_code,
a.alg_gebouw_code,
a.alg_verdieping_code,
a.alg_ruimte_nr,
a.alg_ruimte_omschrijving,
a.ruimtefunctie,
b.vloersoort,
a.opp
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
sr.alg_srtruimte_upper ruimtefunctie,
r.alg_ruimte_bruto_vloeropp opp
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_srtruimte sr
WHERE 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 r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) a
LEFT JOIN
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr vloersoort
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1020 -- Vloersoort
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key) b
ON a.alg_ruimte_key = b.alg_onrgoed_key;
-- Bevat CUST01- en CUST02-reminder naar beheerder verantwoordelijk voor de
-- keuring van betreffende objecten.
-- CUST01: wekelijks mbt. over 2 tot 3 weken te keuren objecten!
-- CUST02: wekelijks mbt. objecten waarvan keuringsdatum een week is verstreken!
/* Formatted on 26-1-2012 10:10:10 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_NOTI_KEURINGREMINDER
(
code,
sender,
receiver,
text,
KEY,
par1,
par2,
xkey
)
AS
SELECT DISTINCT
sn.fac_srtnotificatie_code code,
NULL sender,
gg.prs_perslid_key receiver,
REPLACE (
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##SRTGROEP##',
DECODE (x.min_srtgroep_oms,
x.max_srtgroep_oms, x.min_srtgroep_oms,
x.min_srtgroep_oms || ', ...')
),
'##AANTAL##',
x.aantal
),
'##REGIO##',
(SELECT alg_regio_omschrijving
FROM alg_regio
WHERE alg_regio_key = x.alg_regio_key)
)
subject,
x.dummy_deel_key, -- Dummy key!!!
NULL,
NULL,
x.alg_regio_key
FROM ( SELECT o.alg_regio_key,
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
MIN (o.ins_deel_key) dummy_deel_key,
COUNT (DISTINCT o.ins_deel_key) aantal
FROM (SELECT scs.ins_srtinstallatie_key
ins_srtdeel_key,
scs.ins_srtcontrole_key,
scs.ins_srtcontrole_omschrijving,
scs.ins_srtcontrole_periode
FROM ins_srtcontrole scs
WHERE scs.ins_srtcontrole_niveau = 'S'
UNION ALL
SELECT sd.ins_srtdeel_key,
scg.ins_srtcontrole_key,
scg.ins_srtcontrole_omschrijving,
scg.ins_srtcontrole_periode
FROM ins_srtcontrole scg, ins_srtdeel sd
WHERE scg.ins_srtcontrole_niveau = 'G'
AND scg.ins_srtinstallatie_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
scd.ins_srtcontrole_key,
scd.ins_srtcontrole_omschrijving,
scd.ins_srtcontrole_periode
FROM ins_srtcontrole scd,
ins_srtgroep sg,
ins_srtdeel sd
WHERE scd.ins_srtcontrole_niveau = 'D'
AND scd.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
LEFT JOIN
(SELECT d.ins_deel_key,
d.ins_deel_aanmaak,
sd.ins_srtdeel_key,
sg.ins_srtgroep_omschrijving,
td.ins_discipline_key,
td.ins_discipline_omschrijving,
d.alg_regio_key
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_locatie l,
alg_district d
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 d.ins_alg_locatie_key =
l.alg_locatie_key
AND l.alg_district_key =
d.alg_district_key) o -- Objecten
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
LEFT JOIN
(SELECT dsc.ins_deel_key,
dsc.ins_srtcontrole_key,
dsc.ins_deelsrtcontrole_datum,
dsc.ins_deelsrtcontrole_opmerking
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deelsrtcontrole_datum =
(SELECT MAX (
ins_deelsrtcontrole_datum
)
FROM ins_deelsrtcontrole
WHERE ins_deel_key =
dsc.ins_deel_key
AND ins_srtcontrole_key =
dsc.ins_srtcontrole_key))
olc -- ObjectLaatsteControle
ON o.ins_deel_key = olc.ins_deel_key
AND cso.ins_srtcontrole_key =
olc.ins_srtcontrole_key
WHERE COALESCE (olc.ins_deelsrtcontrole_datum,
o.ins_deel_aanmaak)
+ cso.ins_srtcontrole_periode BETWEEN TRUNC (
SYSDATE + 14
)
AND TRUNC (
SYSDATE + 21
)
GROUP BY o.alg_regio_key) x,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
prs_werkplek wp,
prs_perslidwerkplek pw,
fac_gebruikersgroep gg,
fac_srtnotificatie sn
WHERE x.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_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = wp.prs_alg_ruimte_key
AND wp.prs_werkplek_key = pw.prs_werkplek_key
AND pw.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key IN (23, 161) -- BO Huismeester/Onderhoudscoordinator
AND sn.fac_srtnotificatie_code = 'CUST01'
UNION ALL
SELECT DISTINCT
sn.fac_srtnotificatie_code code,
NULL sender,
gg.prs_perslid_key receiver,
REPLACE (
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##SRTGROEP##',
DECODE (x.min_srtgroep_oms,
x.max_srtgroep_oms, x.min_srtgroep_oms,
x.min_srtgroep_oms || ', ...')
),
'##AANTAL##',
x.aantal
),
'##REGIO##',
(SELECT alg_regio_omschrijving
FROM alg_regio
WHERE alg_regio_key = x.alg_regio_key)
)
subject,
x.dummy_deel_key, -- Dummy key!!!
NULL,
NULL,
x.alg_regio_key
FROM ( SELECT o.alg_regio_key,
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
MIN (o.ins_deel_key) dummy_deel_key,
COUNT (DISTINCT o.ins_deel_key) aantal
FROM (SELECT scs.ins_srtinstallatie_key
ins_srtdeel_key,
scs.ins_srtcontrole_key,
scs.ins_srtcontrole_omschrijving,
scs.ins_srtcontrole_periode
FROM ins_srtcontrole scs
WHERE scs.ins_srtcontrole_niveau = 'S'
UNION ALL
SELECT sd.ins_srtdeel_key,
scg.ins_srtcontrole_key,
scg.ins_srtcontrole_omschrijving,
scg.ins_srtcontrole_periode
FROM ins_srtcontrole scg, ins_srtdeel sd
WHERE scg.ins_srtcontrole_niveau = 'G'
AND scg.ins_srtinstallatie_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
scd.ins_srtcontrole_key,
scd.ins_srtcontrole_omschrijving,
scd.ins_srtcontrole_periode
FROM ins_srtcontrole scd,
ins_srtgroep sg,
ins_srtdeel sd
WHERE scd.ins_srtcontrole_niveau = 'D'
AND scd.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
LEFT JOIN
(SELECT d.ins_deel_key,
d.ins_deel_aanmaak,
sd.ins_srtdeel_key,
sg.ins_srtgroep_omschrijving,
td.ins_discipline_key,
td.ins_discipline_omschrijving,
d.alg_regio_key
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_locatie l,
alg_district d
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 d.ins_alg_locatie_key =
l.alg_locatie_key
AND l.alg_district_key =
d.alg_district_key) o -- Objecten
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
LEFT JOIN
(SELECT dsc.ins_deel_key,
dsc.ins_srtcontrole_key,
dsc.ins_deelsrtcontrole_datum,
dsc.ins_deelsrtcontrole_opmerking
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deelsrtcontrole_datum =
(SELECT MAX (
ins_deelsrtcontrole_datum
)
FROM ins_deelsrtcontrole
WHERE ins_deel_key =
dsc.ins_deel_key
AND ins_srtcontrole_key =
dsc.ins_srtcontrole_key))
olc -- ObjectLaatsteControle
ON o.ins_deel_key = olc.ins_deel_key
AND cso.ins_srtcontrole_key =
olc.ins_srtcontrole_key
WHERE COALESCE (olc.ins_deelsrtcontrole_datum,
o.ins_deel_aanmaak)
+ cso.ins_srtcontrole_periode < TRUNC (SYSDATE - 7)
GROUP BY o.alg_regio_key) x,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
prs_werkplek wp,
prs_perslidwerkplek pw,
fac_gebruikersgroep gg,
fac_srtnotificatie sn
WHERE x.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_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = wp.prs_alg_ruimte_key
AND wp.prs_werkplek_key = pw.prs_werkplek_key
AND pw.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key IN (23, 161) -- BO Huismeester/Onderhoudscoordinator
AND sn.fac_srtnotificatie_code = 'CUST02';
/* Formatted on 9-2-2012 13:24:42 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_UC_RELATIES (BEDRIJF_KEY, BEDRIJF_NAAM)
AS
SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b
WHERE b.prs_bedrijf_uitvoerende = 1 OR b.prs_bedrijf_contract = 1;
/* Formatted on 30-3-2012 14:52:32 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_GRAPH_MLD_PMND
(
FCLT_XAS_,
FCLT_YAS_,
VOLGORDE
)
AS
SELECT DECODE (SUBSTR (TO_CHAR (m.mld_melding_datum, 'yyyymm'), 5),
'01', 'Januari',
'02', 'Februari',
'03', 'Maart',
'04', 'April',
'05', 'Mei',
'06', 'Juni',
'07', 'Juli',
'08', 'Augustus',
'09', 'September',
'10', 'Oktober',
'11', 'November',
'December'),
COUNT (d.ins_discipline_omschrijving),
TO_CHAR (m.mld_melding_datum, 'yyyymm')
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline d
WHERE m.mld_melding_datum BETWEEN ADD_MONTHS (
TO_DATE (
TO_CHAR (SYSDATE, 'yyyymm')
|| '01',
'yyyymmdd'
),
-11
)
AND SYSDATE
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
GROUP BY TO_CHAR (m.mld_melding_datum, 'yyyymm');
/* Formatted on 2-4-2012 13:45:04 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_GRAPH_MLD_BEHANDELAAR
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_
)
AS
SELECT behandelaar,
COUNT (mld_key) - SUM (uitvoeringoptijd) totaal,
SUM (uitvoeringoptijd) op_tijd
FROM (SELECT m.mld_melding_key mld_key,
CASE SIGN(fac.datumtijdplusuitvoertijd (
m.mld_melding_datum,
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
m.mld_melding_t_uitvoertijd.eenheid --was 'DAGEN'
)
- SYSDATE)
WHEN -1
THEN
0
ELSE
1
END
uitvoeringoptijd,
DECODE (
m.mld_melding_status,
4,
DECODE (
(SELECT COUNT ( * )
FROM mld_opdr o
WHERE o.mld_melding_key = m.mld_melding_key
AND o.mld_statusopdr_key IN
(3, 4, 5, 8)), -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd
0,
p.prs_perslid_naam_full,
NULL
),
7,
NULL,
p.prs_perslid_naam_full
)
behandelaar
FROM mld_melding m, prs_v_perslid_fullnames p
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
AND m.mld_melding_status IN (2, 3, 4, 7, 0)) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
WHERE behandelaar IS NOT NULL
GROUP BY behandelaar
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT '-', 0 totaal, 0 op_tijd
FROM DUAL
WHERE EXISTS (SELECT 1
FROM mld_melding m
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0));
/* Formatted on 2-4-2012 13:45:04 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_GRAPH_MLD_UITVOERENDE
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_
)
AS
SELECT uitvoerende,
COUNT (opdr_key) - SUM (uitvoeringoptijd) totaal,
SUM (uitvoeringoptijd) op_tijd
FROM (SELECT o.mld_opdr_key opdr_key,
CASE SIGN(fac.datumtijdplusuitvoertijd (
m.mld_melding_datum,
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
m.mld_melding_t_uitvoertijd.eenheid --was 'DAGEN'
)
- SYSDATE)
WHEN -1
THEN
0
ELSE
1
END
uitvoeringoptijd,
b.prs_bedrijf_naam uitvoerende
FROM mld_opdr o, mld_melding m, prs_bedrijf b
WHERE o.mld_melding_key = m.mld_melding_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_statusopdr_key IN (3, 4, 5, 8)) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd
WHERE uitvoerende IS NOT NULL
GROUP BY uitvoerende
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
SELECT '-', 0 totaal, 0 op_tijd
FROM DUAL
WHERE EXISTS
(SELECT 1
FROM mld_opdr o, prs_bedrijf b
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_statusopdr_key IN (3, 4, 5, 8));
/* Formatted on 30-3-2012 15:48:14 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_GRAPH_VAKGROEP_OPEN
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_URL,
FCLT_3D_DISCIPLINE_KEY
)
AS
SELECT md.ins_discipline_omschrijving,
COUNT (md.ins_discipline_omschrijving),
'appl/mld/mld_search.asp?urole=fo'
|| '&'
|| 'autosearch=1'
|| '&'
|| 'disc_key_str='
|| md.ins_discipline_key,
md.ins_discipline_key
FROM mld_melding m, mld_stdmelding sm, mld_discipline md
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
GROUP BY md.ins_discipline_key, md.ins_discipline_omschrijving
ORDER BY COUNT (md.ins_discipline_omschrijving) DESC;
/* Formatted on 30-3-2012 16:26:36 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_GRAPH_PPI_ACP
(
FCLT_XAS_,
FCLT_YAS_
)
AS
SELECT SUM (acceptatieoptijd) aantal, COUNT (mld_key) totaal
FROM (SELECT DISTINCT
m.mld_melding_key mld_key,
CASE SIGN(fac.datumtijdplusuitvoertijd (
fac.gettrackingdate ('MLDNEW',
m.mld_melding_key),
sm.mld_stdmelding_t_accepttijd.tijdsduur, --was sm.mld_stdmelding_urgentie,
sm.mld_stdmelding_t_accepttijd.eenheid --was 'UREN'
)
- SYSDATE)
WHEN -1
THEN
0
ELSE
1
END
acceptatieoptijd
FROM mld_melding m, mld_stdmelding sm
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_melding_status IN (2, 3) -- 2-Ingevoerd, 3-Ingezien
);
/* Formatted on 30-3-2012 16:26:36 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW ARBO_V_GRAPH_PPI_AFM
(
FCLT_XAS_,
FCLT_YAS_
)
AS
SELECT SUM (uitvoeringoptijd) aantal, COUNT (mld_key) totaal
FROM (SELECT DISTINCT
m.mld_melding_key mld_key,
CASE SIGN(fac.datumtijdplusuitvoertijd (
m.mld_melding_datum,
m.mld_melding_t_uitvoertijd.tijdsduur, --was m.mld_melding_uitvoertijd,
m.mld_melding_t_uitvoertijd.eenheid --was 'DAGEN'
)
- SYSDATE)
WHEN -1
THEN
0
ELSE
1
END
uitvoeringoptijd
FROM mld_melding m
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
);
/* Formatted on 13-11-2014 10:25:35 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW arbo_v_rap_hv_per_loc
(
fclt_f_vestigingsoort,
fclt_f_vestiging,
fclt_x_zichtbaar,
contractnummer,
einddatum,
opzegtermijn,
contractopmerking,
huurkosten_pj,
servkosten_pj,
ovrgkosten_pj,
aantal_m2,
huurkosten_m2,
servkosten_m2,
bezet_m2,
leeg_m2,
bezettingsperc
)
AS
SELECT ok.vestigingsoort,
basis.alg_locatie_omschrijving,
DECODE (basis.zichtbaar, 1, 'Ja', 'Nee'),
hvcnt.contractnummer,
TO_CHAR (hvcnt.einddatum, 'dd-mm-yyyy'),
hvcnt.opzegtermijn,
hvcnt.contractopmerking,
fac.safe_to_number (hvcnt.huurkosten),
fac.safe_to_number (hvcnt.servicekosten),
fac.safe_to_number (hvcnt.overigekosten),
ROUND (COALESCE (totm2.opp, 0), 2) totaal,
DECODE (
totm2.opp,
NULL,
NULL,
0,
NULL,
REPLACE (
TO_CHAR (
ROUND (
fac.safe_to_number (
COALESCE (hvcnt.huurkosten, '0') / totm2.opp
),
2
),
'999999990D99'
),
'.',
','
)
),
DECODE (
totm2.opp,
NULL,
NULL,
0,
NULL,
REPLACE (
TO_CHAR (
ROUND (
fac.safe_to_number (
COALESCE (hvcnt.servicekosten, '0') / totm2.opp
),
2
),
'999999990D99'
),
'.',
','
)
),
ROUND (COALESCE (bezm2.opp, 0), 2) bezet,
ROUND (COALESCE (totm2.opp, 0) - COALESCE (bezm2.opp, 0), 2) leeg,
DECODE (
totm2.opp,
NULL,
NULL,
0,
NULL,
TO_CHAR (100 * ROUND (COALESCE (bezm2.opp, 0) / totm2.opp, 2))
|| '%'
)
FROM ( SELECT l.alg_locatie_key,
MIN (alg_locatie_omschrijving)
alg_locatie_omschrijving,
SUM(DECODE (sg.alg_srtgebouw_passief,
1, 0,
1))
zichtbaar
FROM alg_v_aanweziglocatie l,
alg_v_aanweziggebouw g,
alg_v_aanwezigsrtgebouw sg
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_srtgebouw_key =
sg.alg_srtgebouw_key(+)
GROUP BY l.alg_locatie_key) basis
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr vestigingsoort
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1280 -- Vestigingsoort
AND ok.alg_onrgoed_niveau = 'L'
AND fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde
) = ud.fac_usrdata_key) ok
ON basis.alg_locatie_key = ok.alg_onrgoed_key
LEFT JOIN
( SELECT g.alg_locatie_key,
SUM (g.alg_gebouw_bruto_vloeropp) opp
--SUM (r.alg_ruimte_bruto_vloeropp) opp
FROM alg_gebouw g
--alg_verdieping v,
--alg_v_aanwezigruimte r
--WHERE g.alg_gebouw_key = v.alg_gebouw_key
-- AND v.alg_verdieping_key =
-- r.alg_verdieping_key
GROUP BY g.alg_locatie_key) totm2
ON basis.alg_locatie_key = totm2.alg_locatie_key
LEFT JOIN
( SELECT g.alg_locatie_key,
SUM (r.alg_ruimte_bruto_vloeropp) opp
FROM alg_gebouw g,
alg_verdieping v,
alg_v_aanwezigruimte r,
prs_werkplek wp,
( SELECT prs_werkplek_key, COUNT ( * )
FROM prs_perslidwerkplek
GROUP BY prs_werkplek_key) pw
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = wp.prs_alg_ruimte_key
AND wp.prs_werkplek_key = pw.prs_werkplek_key
GROUP BY g.alg_locatie_key) bezm2
ON basis.alg_locatie_key = bezm2.alg_locatie_key
LEFT JOIN
(SELECT cp.cnt_alg_plaats_key,
c.cnt_contract_nummer_intern contractnummer,
c.cnt_contract_looptijd_tot einddatum,
t.cnt_termijn_omschrijving opzegtermijn,
c.cnt_contract_opmerking contractopmerking,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_kenmerk_key = 44 -- Huur
AND kc.cnt_contract_key =
c.cnt_contract_key)
huurkosten,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_kenmerk_key = 101 -- Service
AND kc.cnt_contract_key =
c.cnt_contract_key)
servicekosten,
(SELECT kc.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_kenmerk_key = 163 -- Overig
AND kc.cnt_contract_key =
c.cnt_contract_key)
overigekosten
FROM cnt_contract_plaats cp,
cnt_v_aanwezigcontract c,
cnt_termijn t
WHERE cp.cnt_alg_plaats_code = 'L'
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 181 -- Huurcontracten
AND c.cnt_contract_opzegtermijn = t.cnt_termijn_key)
hvcnt
ON basis.alg_locatie_key = hvcnt.cnt_alg_plaats_key;
/* Formatted on 13-11-2014 10:35:25 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW arbo_v_rap_hv_per_afd
(
hide_f_sortering,
fclt_f_afdeling,
fclt_f_vestiging,
tot_m2,
afd_m2,
bezettingsperc
)
AS
SELECT prs_afdeling_naam || '1',
prs_afdeling_omschrijving || ' (' || prs_afdeling_naam || ')',
totm2.alg_locatie_omschrijving,
REPLACE (
TO_CHAR (ROUND (COALESCE (totm2.opp, 0), 2), '999999990D99'),
'.',
','),
REPLACE (
TO_CHAR (ROUND (COALESCE (afdm2.opp, 0), 2), '999999990D99'),
'.',
','),
DECODE (
totm2.opp,
NULL,
NULL,
0,
NULL,
TO_CHAR (100 * ROUND (COALESCE (afdm2.opp, 0) / totm2.opp, 2))
|| '%')
bezetting
FROM (SELECT prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL) basis
LEFT JOIN ( SELECT ra.prs_afdeling_key,
g.alg_locatie_key,
SUM( (r.alg_ruimte_bruto_vloeropp
* ra.prs_ruimteafdeling_bezetting)
/ 100)
opp
FROM prs_ruimteafdeling ra,
alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g
WHERE ra.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
GROUP BY ra.prs_afdeling_key, g.alg_locatie_key) afdm2
ON basis.prs_afdeling_key = afdm2.prs_afdeling_key
LEFT JOIN ( SELECT l.alg_locatie_key,
l.alg_locatie_omschrijving,
SUM (r.alg_ruimte_bruto_vloeropp) opp
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE 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 l.alg_locatie_key, l.alg_locatie_omschrijving)
totm2
ON afdm2.alg_locatie_key = totm2.alg_locatie_key
WHERE totm2.alg_locatie_key IS NOT NULL
UNION ALL
SELECT prs_afdeling_naam || '2',
prs_afdeling_omschrijving || ' (' || prs_afdeling_naam || ')',
'*** Landelijk ***',
REPLACE (
TO_CHAR (ROUND (COALESCE (totm2.opp, 0), 2), '999999990D99'),
'.',
','),
REPLACE (
TO_CHAR (ROUND (COALESCE (afdm2.opp, 0), 2), '999999990D99'),
'.',
','),
DECODE (
totm2.opp,
NULL,
NULL,
0,
NULL,
TO_CHAR (100 * ROUND (COALESCE (afdm2.opp, 0) / totm2.opp, 2))
|| '%')
bezetting
FROM (SELECT prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL) basis
LEFT JOIN ( SELECT ra.prs_afdeling_key,
SUM( (r.alg_ruimte_bruto_vloeropp
* ra.prs_ruimteafdeling_bezetting)
/ 100)
opp
FROM prs_ruimteafdeling ra, alg_v_aanwezigruimte r
WHERE ra.alg_ruimte_key = r.alg_ruimte_key
GROUP BY ra.prs_afdeling_key) afdm2
ON basis.prs_afdeling_key = afdm2.prs_afdeling_key
LEFT JOIN (SELECT SUM (g.alg_gebouw_bruto_vloeropp) opp
FROM alg_v_aanweziggebouw g) totm2
ON 1 = 1;
/* Formatted on 7-6-2012 14:22:35 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW arbo_v_rap_cntoverzicht
(
fclt_f_dienst,
fclt_f_contractsoort,
contractnummer,
startdatum,
einddatum,
opzegtermijn,
fclt_f_scope,
contractwaarde
)
AS
SELECT basis.dienst,
basis.contractsoort,
basis.contractnummer,
TO_CHAR (basis.startdatum, 'dd-mm-yyyy'),
TO_CHAR (basis.einddatum, 'dd-mm-yyyy'),
basis.opzegtermijn,
x.scope,
basis.contractwaarde
FROM (SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern contractnummer,
c.cnt_contract_looptijd_van startdatum,
c.cnt_contract_looptijd_tot einddatum,
c.cnt_contract_kosten contractwaarde,
cd.ins_discipline_omschrijving contractsoort,
t.cnt_termijn_omschrijving opzegtermijn,
d.prs_dienst_omschrijving dienst
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
cnt_termijn t,
prs_dienst d
WHERE c.ins_discipline_key != 181 -- Huurcontracten
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_contract_opzegtermijn = t.cnt_termijn_key
AND c.prs_dienst_key = d.prs_dienst_key) basis
LEFT JOIN
(SELECT cp.cnt_contract_key,
l.alg_locatie_code
|| ' ('
|| l.alg_locatie_omschrijving
|| ')'
scope
FROM cnt_contract_plaats cp, alg_locatie l
WHERE cp.cnt_alg_plaats_code = 'L'
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
UNION ALL
SELECT cp.cnt_contract_key,
g.alg_gebouw_code || ' ' || g.alg_gebouw_naam scope
FROM cnt_contract_plaats cp, alg_gebouw g
WHERE cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
UNION ALL
SELECT co.cnt_contract_key,
sd.ins_srtdeel_omschrijving scope
FROM cnt_contract_object co, ins_srtdeel sd
WHERE co.cnt_contract_object_verwijder IS NULL
AND co.cnt_ins_srtdeel_key = sd.ins_srtdeel_key
UNION ALL
SELECT co.cnt_contract_key,
d.ins_deel_omschrijving
|| ' ('
|| sd.ins_srtdeel_omschrijving
|| ')'
scope
FROM cnt_contract_object co, ins_deel d, ins_srtdeel sd
WHERE co.cnt_contract_object_verwijder IS NULL
AND co.cnt_ins_deel_key = d.ins_deel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key) x
ON basis.cnt_contract_key = x.cnt_contract_key;
/* Formatted on 15-5-2012 10:55:15 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW arbo_v_rap_rtm_openmld
(
fclt_f_rubriek,
kengetal
)
AS
SELECT '# Totaal', TO_CHAR (COUNT ( * )) aantal
FROM mld_melding m
WHERE m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
UNION ALL
SELECT 'Intern: ' || FCLT_XAS_, TO_CHAR (FCLT_YAS_ + FCLT_YAS2_) aantal
FROM ARBO_V_GRAPH_MLD_BEHANDELAAR
WHERE FCLT_XAS_ != '-'
UNION ALL
SELECT 'Extern: ' || FCLT_XAS_, TO_CHAR (FCLT_YAS_ + FCLT_YAS2_) aantal
FROM ARBO_V_GRAPH_MLD_UITVOERENDE
WHERE FCLT_XAS_ != '-'
UNION ALL
SELECT 'Vakgroep: ' || FCLT_XAS_, TO_CHAR (FCLT_YAS_) aantal
FROM ARBO_V_GRAPH_VAKGROEP_OPEN
UNION ALL
SELECT '% Acceptatie (nog) op tijd',
DECODE (
FCLT_YAS_,
0,
NULL,
NULL,
NULL,
REPLACE (
TO_CHAR (
ROUND ( (COALESCE (FCLT_XAS_, 0) / FCLT_YAS_) * 100, 1),
'990D9'
),
'.',
','
)
|| '%'
)
aantal
FROM ARBO_V_GRAPH_PPI_ACP
UNION ALL
SELECT '% Uitvoering (nog) op tijd',
DECODE (
FCLT_YAS_,
0,
NULL,
NULL,
NULL,
REPLACE (
TO_CHAR (
ROUND ( (COALESCE (FCLT_XAS_, 0) / FCLT_YAS_) * 100, 1),
'990D9'
),
'.',
','
)
|| '%'
)
aantal
FROM ARBO_V_GRAPH_PPI_AFM;
/* Formatted on 15-5-2012 11:12:04 (QP5 v5.115.810.9015)
CREATE OR REPLACE VIEW arbo_v_rap_res_top5_noshow
(
fclt_f_maand,
gebruiker,
afdeling,
no_shows
)
AS
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
pf.prs_perslid_naam_full,
a.prs_afdeling_omschrijving || ' (' || a.prs_afdeling_naam || ')',
COUNT ( * ) aantal
FROM res_v_aanwezigrsv_ruimte rrr,
prs_perslid p,
prs_v_perslid_fullnames pf,
prs_afdeling a
WHERE (rrr.res_rsv_ruimte_noshow = 1
OR rrr.res_rsv_ruimte_bezoekers_shown IS NOT NULL)
AND rrr.res_rsv_ruimte_contact_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.res_rsv_ruimte_van >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND rrr.res_rsv_ruimte_van <
TO_DATE (TO_CHAR (SYSDATE, 'yyyy-mm') || '-01',
'yyyy-mm-dd')
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm'),
pf.prs_perslid_naam_full,
a.prs_afdeling_omschrijving
|| ' ('
|| a.prs_afdeling_naam
|| ')';
*/
/* Formatted on 15-5-2012 12:44:46 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW arbo_v_rap_res_top5_noshow
(
fclt_f_maand,
hide_f_sortering,
gebruiker,
afdeling,
no_shows
)
AS
SELECT maand,
r,
gebruiker,
afdeling,
aantal
FROM (SELECT maand,
gebruiker,
afdeling,
aantal,
RANK ()
OVER (PARTITION BY maand
ORDER BY maand, aantal DESC, gebruiker)
r
FROM ( SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm')
maand,
pf.prs_perslid_naam_full gebruiker,
a.prs_afdeling_omschrijving
|| ' ('
|| a.prs_afdeling_naam
|| ')'
afdeling,
COUNT ( * ) aantal
FROM res_v_aanwezigrsv_ruimte rrr,
prs_perslid p,
prs_v_perslid_fullnames pf,
prs_afdeling a
WHERE (rrr.res_rsv_ruimte_noshow = 1
OR rrr.res_rsv_ruimte_bezoekers_shown IS NOT NULL)
AND rrr.res_rsv_ruimte_contact_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.res_rsv_ruimte_van >
TRUNC (ADD_MONTHS (SYSDATE, -12),
'yyyy')
AND rrr.res_rsv_ruimte_van <
TO_DATE (
TO_CHAR (SYSDATE, 'yyyy-mm')
|| '-01',
'yyyy-mm-dd'
)
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm'),
pf.prs_perslid_naam_full,
a.prs_afdeling_omschrijving
|| ' ('
|| a.prs_afdeling_naam
|| ')'))
WHERE r <= 5;
/* Formatted on 15-5-2012 9:58:14 (QP5 v5.115.810.9015)
CREATE OR REPLACE VIEW arbo_v_rap_res_bezetting
(
fclt_f_maand,
fclt_f_zaal,
gebruik_uren,
beschikbaar_uren,
bezettingsperc
)
AS
SELECT bes.maand,
bes.res_ruimte_nr,
bez.uren bez_uren,
bes.uren bes_uren,
DECODE (
bes.uren,
0,
NULL,
REPLACE (
TO_CHAR (
ROUND ( (COALESCE (bez.uren, 0) / bes.uren) * 100, 1),
'990D9'
),
'.',
','
)
|| '%'
)
bezetting
FROM (SELECT periode.maand,
rr.res_ruimte_nr,
DECODE (
periode.maand,
'2012-05', -- T/m 5.2.1 fout in count_work_days!
21,
fac.count_work_days (
TO_DATE (periode.maand || '-01', 'yyyy-mm-dd')
- 1,
LAST_DAY(TO_DATE (periode.maand || '-01',
'yyyy-mm-dd'))
)
)
* (COALESCE (rr.res_ruimte_eindtijd, 20)
- COALESCE (rr.res_ruimte_begintijd, 7))
uren
FROM res_ruimte rr,
( SELECT TO_CHAR (ADD_MONTHS (bdate, LEVEL - 1),
'yyyy-mm')
maand
FROM (SELECT TRUNC (
ADD_MONTHS (SYSDATE, -12),
'yyyy'
)
bdate,
TO_DATE (
TO_CHAR (SYSDATE, 'yyyy-mm')
|| '-01',
'yyyy-mm-dd'
)
- 1
edate
FROM DUAL)
CONNECT BY LEVEL <=
MONTHS_BETWEEN (
TRUNC (edate, 'mm'),
TRUNC (bdate, 'mm')
)
+ 1) periode
WHERE rr.res_discipline_key NOT IN (121, 401)
AND rr.res_ruimte_aanmaak <
TO_DATE (periode.maand || '-01', 'yyyy-mm-dd')
AND (rr.res_ruimte_verwijder IS NULL
OR rr.res_ruimte_verwijder >
LAST_DAY(TO_DATE (periode.maand || '-01',
'yyyy-mm-dd')))) bes
LEFT JOIN
( SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
rr.res_ruimte_nr,
SUM(LEAST (
fac.safe_to_number (
TO_CHAR (rrr.res_rsv_ruimte_tot, 'sssss')
)
/ 3600,
COALESCE (rr.res_ruimte_eindtijd, 20)
)
- GREATEST (
fac.safe_to_number(TO_CHAR (
rrr.res_rsv_ruimte_van,
'sssss'
))
/ 3600,
COALESCE (rr.res_ruimte_begintijd, 7)
))
uren
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Def.
AND rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rrr.res_rsv_ruimte_van >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND TO_CHAR (rrr.res_rsv_ruimte_van, 'd') >= 2 -- Ma
AND TO_CHAR (rrr.res_rsv_ruimte_van, 'd') <= 6 -- Vr
AND TRUNC (rrr.res_rsv_ruimte_van) NOT IN
(SELECT TRUNC (mld_vrije_dagen_datum)
FROM mld_vrije_dagen)
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm'),
rr.res_ruimte_nr) bez
ON bes.maand = bez.maand
AND bes.res_ruimte_nr = bez.res_ruimte_nr;
*/
/* Formatted on 13-11-2014 11:05:00 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW arbo_v_rap_res_bezetting
(
fclt_f_maand,
fclt_f_vestiging,
fclt_f_kamer,
gebruik_uren,
beschikbaar_uren,
bezettingsperc
)
AS
SELECT bes.maand,
rg.alg_locatie_omschrijving,
rg.alg_ruimte_aanduiding
|| ' ['
|| rr.res_ruimte_nr
|| DECODE (bes.aantal, 1, ']', '...]'),
bez.uren bez_uren,
bes.uren bes_uren,
DECODE (
bes.uren,
0,
NULL,
REPLACE (
TO_CHAR (
ROUND ( (COALESCE (bez.uren, 0) / bes.uren) * 100, 1),
'990D9'),
'.',
',')
|| '%')
bezetting
FROM ( SELECT periode.maand,
ra.alg_ruimte_key,
COUNT (rr.res_ruimte_key) aantal,
MAX(DECODE (
periode.maand,
'2012-05', -- T/m 5.2.1 fout in count_work_days!
21,
fac.count_work_days (
TO_DATE (periode.maand || '-01', 'yyyy-mm-dd')
- 1,
LAST_DAY(TO_DATE (periode.maand || '-01',
'yyyy-mm-dd'))))
* (COALESCE (rr.res_ruimte_eindtijd, 20)
- COALESCE (rr.res_ruimte_begintijd, 7)))
uren
FROM res_ruimte rr,
res_alg_ruimte ra,
( SELECT TO_CHAR (ADD_MONTHS (bdate, LEVEL - 1),
'yyyy-mm')
maand
FROM (SELECT TRUNC (ADD_MONTHS (SYSDATE, -12),
'yyyy')
bdate
FROM DUAL)
CONNECT BY LEVEL <=
MONTHS_BETWEEN (TRUNC (SYSDATE, 'mm'),
TRUNC (bdate, 'mm')))
periode
WHERE rr.res_discipline_key NOT IN (121, 401)
AND rr.res_ruimte_key = ra.res_ruimte_key
AND ra.res_alg_ruimte_aanmaak <
TO_DATE (periode.maand || '-01', 'yyyy-mm-dd')
AND (ra.res_alg_ruimte_verwijder IS NULL
OR ra.res_alg_ruimte_verwijder >
LAST_DAY(TO_DATE (periode.maand || '-01',
'yyyy-mm-dd')))
GROUP BY periode.maand, ra.alg_ruimte_key) bes
LEFT JOIN
( SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
ra.alg_ruimte_key,
SUM(LEAST (
fac.safe_to_number (
TO_CHAR (rrr.res_rsv_ruimte_tot, 'sssss'))
/ 3600,
COALESCE (rr.res_ruimte_eindtijd, 20))
- GREATEST (
fac.safe_to_number (
TO_CHAR (rrr.res_rsv_ruimte_van, 'sssss'))
/ 3600,
COALESCE (rr.res_ruimte_begintijd, 7)))
uren
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling ro,
res_ruimte rr,
res_alg_ruimte ra
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Def.
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = ra.res_ruimte_key
AND rrr.res_rsv_ruimte_van >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND TO_CHAR (rrr.res_rsv_ruimte_van, 'd') >= 2 -- Ma
AND TO_CHAR (rrr.res_rsv_ruimte_van, 'd') <= 6 -- Vr
AND TRUNC (rrr.res_rsv_ruimte_van) NOT IN
(SELECT TRUNC (mld_vrije_dagen_datum)
FROM mld_vrije_dagen)
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm'),
ra.alg_ruimte_key) bez
ON bes.maand = bez.maand
AND bes.alg_ruimte_key = bez.alg_ruimte_key,
alg_v_ruimte_gegevens_all rg,
(SELECT alg_ruimte_key, res_ruimte_key
FROM (SELECT rar1.alg_ruimte_key,
rar1.res_ruimte_key,
RANK ()
OVER (
PARTITION BY rar1.alg_ruimte_key
ORDER BY
rar1.alg_ruimte_key,
DECODE (rar1.res_alg_ruimte_verwijder,
NULL, 1,
2),
rar2.aantal)
r
FROM res_alg_ruimte rar1,
( SELECT res_ruimte_key,
COUNT (alg_ruimte_key) aantal
FROM res_alg_ruimte
GROUP BY res_ruimte_key) rar2
WHERE rar1.res_ruimte_key = rar2.res_ruimte_key(+))
WHERE r = 1) rar,
res_ruimte rr
WHERE bes.alg_ruimte_key = rg.alg_ruimte_key
AND rg.alg_ruimte_key = rar.alg_ruimte_key
AND rar.res_ruimte_key = rr.res_ruimte_key;
/* Formatted on 13-11-2014 11:05:30 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW arbo_v_rap_bez_aantal
(
fclt_f_maand,
fclt_f_vestiging,
aantal_bezoekers
)
AS
SELECT TO_CHAR (a.bez_afspraak_datum, 'yyyy-mm') maand,
l.alg_locatie_omschrijving,
COUNT ( * ) sum_visitors
FROM bez_afspraak a, bez_bezoekers b, alg_locatie l
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND a.alg_locatie_key = l.alg_locatie_key
AND a.bez_afspraak_datum >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND a.bez_afspraak_datum <
TO_DATE (TO_CHAR (SYSDATE, 'yyyy-mm') || '-01', 'yyyy-mm-dd')
GROUP BY TO_CHAR (a.bez_afspraak_datum, 'yyyy-mm'),
l.alg_locatie_omschrijving;
-- ARBO#26005 view tbv kenmerkdomein met koffieautomaten
-- key 202 = groep koffieautomaat
CREATE OR REPLACE VIEW ARBO_V_MLD_KOFFIEAUTOMATEN
(
INS_DEEL_KEY,
OMSCHRIJVING
)
AS
SELECT ins_deel_key,
l.alg_locatie_omschrijving
|| ' - '
|| v.alg_verdieping_code
|| '-'
|| r.alg_ruimte_nr
|| ' ('
|| r.alg_ruimte_omschrijving
|| ')'
|| ' - '
|| ins_deel_omschrijving
omschrijving
FROM ins_deel d,
ins_srtdeel srt,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE d.ins_srtdeel_key = srt.ins_srtdeel_key
AND srt.ins_srtgroep_key = 202 -- objectgroep koffieautomaat
AND ins_deel_verwijder IS NULL
AND ins_srtdeel_verwijder IS NULL
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
ORDER BY alg_locatie_omschrijving, alg_verdieping_code;
CREATE OR REPLACE VIEW arbo_v_perslid_fullnames_all
(
prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
prs_perslid_verwijder
)
AS
SELECT prs_perslid_key,
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 || ')')
prs_perslid_naam_full,
DECODE (p.prs_perslid_voornaam,
NULL, '',
p.prs_perslid_voornaam || ' ')
|| DECODE (p.prs_perslid_tussenvoegsel,
NULL, '',
p.prs_perslid_tussenvoegsel || ' ')
|| prs_perslid_naam
prs_perslid_naam_friendly,
prs_perslid_verwijder
FROM prs_perslid p
WHERE (SUBSTR (prs_perslid_oslogin, 0, 1) != '_'
OR prs_perslid_oslogin IS NULL);
------ 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