1778 lines
71 KiB
MySQL
1778 lines
71 KiB
MySQL
-- Script containing customer specific configuration sql statements for HVDF
|
|
-- (c) 2009 SG|facilitor bv
|
|
-- $Revision: 10 $
|
|
-- $Modtime: 6-12-11 11:47 $
|
|
--
|
|
-- Support: +31 53 4800700
|
|
|
|
set echo on
|
|
|
|
spool hvdf.lst
|
|
|
|
CREATE OR REPLACE VIEW hvdf_v_import_log
|
|
AS
|
|
SELECT imp_log_status fclt_f_status,
|
|
imp_log_omschrijving omschrijving,
|
|
imp_log_hint opmerking
|
|
FROM imp_log
|
|
WHERE imp_log_applicatie = 'PRS';
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE hvdf_import_prs (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
-- LET OP: moet idem zijn als declaratie bij hvdf_UPDATE_PRS
|
|
c_first_import VARCHAR2 (30) := 'Initiele import';
|
|
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_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_srtperslid_omschrijving VARCHAR2 (256);
|
|
v_prs_perslid_telefoonnr VARCHAR2 (256);
|
|
v_prs_perslid_email VARCHAR2 (256);
|
|
v_prs_perslid_oslogin VARCHAR2 (256);
|
|
|
|
-- Overig:
|
|
v_alg_locatie_code VARCHAR2 (256);
|
|
v_alg_gebouw_code VARCHAR2 (256);
|
|
|
|
|
|
CURSOR c1
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_imp_file_applicatie = p_applname
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'I',
|
|
c_first_import,
|
|
'Controle importbestand op aantal personen wordt overgeslagen'
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
DELETE FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
END IF;
|
|
|
|
DELETE FROM hvdf_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_alg_locatie_code);
|
|
-- 02
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
|
|
-- 03
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
|
-- 04
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
|
-- 05
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
|
|
-- 06
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
|
|
-- 07
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
|
|
-- 08
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
|
-- 09
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
|
-- 10
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
|
-- 11
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
|
-- 12
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
|
|
|
|
|
|
|
--
|
|
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_alg_locatie_code) = 'LOCATIECODE'
|
|
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
|
|
AND UPPER (v_prs_afdeling_naam) = 'AFDELINGSCODE'
|
|
AND UPPER (v_prs_perslid_naam) = 'PERSOONACHTERNAAM'
|
|
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_perslid_telefoonnr) = 'TELEFOONNUMMER'
|
|
AND UPPER (v_prs_perslid_email) = 'EMAIL'
|
|
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
|
|
AND UPPER (v_prs_perslid_nr) = 'PERSONEELSNUMMER'
|
|
AND UPPER (v_prs_perslid_oslogin) = 'LOGINNAAM'
|
|
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 LENGTH (v_prs_perslid_nr) > 16
|
|
THEN
|
|
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Personeelsnummer te lang',
|
|
'Personeelsnummer wordt afgebroken tot ['
|
|
|| v_prs_perslid_nr
|
|
|| ']'
|
|
);
|
|
ELSE
|
|
IF (v_prs_perslid_nr IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || 'Personeelsnummer onbekend',
|
|
'Personeelsnummer is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
END IF;
|
|
END IF;
|
|
COMMIT;
|
|
|
|
--
|
|
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_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Naam te lang',
|
|
'Naam wordt afgebroken tot ['
|
|
|| v_prs_perslid_naam
|
|
|| ']'
|
|
);
|
|
ELSE
|
|
IF (v_prs_perslid_naam IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || 'Naam onbekend',
|
|
'Naam is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
END IF;
|
|
END IF;
|
|
COMMIT;
|
|
|
|
--
|
|
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_applname,
|
|
p_applrun,
|
|
'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_applname,
|
|
p_applrun,
|
|
'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_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Voornaam is te lang',
|
|
'Voornaam wordt afgebroken tot ['
|
|
|| v_prs_perslid_voornaam
|
|
|| ']'
|
|
);
|
|
ELSE
|
|
IF (v_prs_perslid_voornaam IS NULL)
|
|
THEN
|
|
v_prs_perslid_voornaam := '-';
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Voornaam onbekend',
|
|
'Voornaam wordt gezet op [-]'
|
|
);
|
|
END IF;
|
|
END IF;
|
|
COMMIT;
|
|
|
|
--
|
|
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_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Afdelingscode te lang',
|
|
'Afdelingscode wordt afgebroken tot ['
|
|
|| v_prs_afdeling_naam
|
|
|| ']'
|
|
);
|
|
ELSE
|
|
IF (v_prs_afdeling_naam IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || 'Afdelingscode onbekend',
|
|
'Afdelingscode is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
END IF;
|
|
END IF;
|
|
COMMIT;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige functie';
|
|
v_prs_srtperslid_omschrijving := TRIM (v_prs_srtperslid_omschrijving);
|
|
|
|
IF LENGTH (v_prs_srtperslid_omschrijving) > 30
|
|
THEN
|
|
v_prs_srtperslid_omschrijving :=
|
|
SUBSTR (v_prs_srtperslid_omschrijving, 1, 30);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Functie te lang',
|
|
'Functie wordt afgebroken tot ['
|
|
|| v_prs_srtperslid_omschrijving
|
|
|| ']'
|
|
);
|
|
ELSE
|
|
IF (v_prs_srtperslid_omschrijving IS NULL)
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || 'Functie onbekend',
|
|
'Functie is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
END IF;
|
|
END IF;
|
|
COMMIT;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige plaats/locatiecode';
|
|
v_alg_locatie_code := TRIM(v_alg_locatie_code);
|
|
|
|
IF LENGTH (v_alg_locatie_code) > 5
|
|
THEN
|
|
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 5);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Locatiecode te lang',
|
|
'Locatiecode wordt afgebroken tot ['
|
|
|| v_alg_locatie_code
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige plaats/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_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Gebouwcode te lang',
|
|
'Gebouwcode wordt afgebroken tot ['
|
|
|| v_alg_gebouw_code
|
|
|| ']'
|
|
);
|
|
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_applname,
|
|
p_applrun,
|
|
'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_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'E-mailadres te lang',
|
|
'E-mailadres wordt afgebroken tot ['
|
|
|| v_prs_perslid_email
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig loginnaam';
|
|
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
|
|
|
|
IF LENGTH (v_prs_perslid_oslogin) > 30
|
|
THEN
|
|
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'W',
|
|
v_aanduiding || 'Loginnaam te lang',
|
|
'Loginnaam wordt afgebroken tot ['
|
|
|| v_prs_perslid_oslogin
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
BEGIN
|
|
v_errorhint :=
|
|
'Fout bij toevoegen regel aan importtabel hvdf_IMP_PRS';
|
|
|
|
INSERT INTO hvdf_imp_prs
|
|
(prs_perslid_nr, prs_perslid_naam,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_voornaam, prs_afdeling_naam,
|
|
prs_srtperslid_omschrijving,
|
|
alg_locatie_code, alg_gebouw_code,
|
|
alg_verdieping_volgnr, alg_ruimte_nr,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_email,
|
|
prs_perslid_oslogin
|
|
)
|
|
VALUES (v_prs_perslid_nr, v_prs_perslid_naam,
|
|
v_prs_perslid_tussenvoegsel,
|
|
v_prs_perslid_voorletters,
|
|
v_prs_perslid_voornaam, v_prs_afdeling_naam,
|
|
v_prs_srtperslid_omschrijving,
|
|
v_alg_locatie_code, v_alg_gebouw_code,
|
|
NULL, NULL,
|
|
v_prs_perslid_telefoonnr,
|
|
v_prs_perslid_email,
|
|
v_prs_perslid_oslogin
|
|
);
|
|
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_applname,
|
|
p_applrun,
|
|
'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_applname,
|
|
p_applrun,
|
|
'E',
|
|
'Ongeldig importbestand',
|
|
'Geen header of header niet volgens specificatie!'
|
|
);
|
|
ELSE
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'S',
|
|
'Persoon: aantal ingelezen regels: '
|
|
|| TO_CHAR (v_count_tot),
|
|
''
|
|
);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END hvdf_import_prs;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE hvdf_update_prs (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
IS
|
|
-- LET OP: moet idem zijn als declaratie bij hvdf_IMPORT_PRS
|
|
c_first_import VARCHAR2 (30) := 'Initiele import';
|
|
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
|
|
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer
|
|
c_max_delta_percentage NUMBER (10) := 20;
|
|
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
|
|
c_ruimte_nr VARCHAR2 (10) := '000';
|
|
-- Groep waar personen in geplaatst worden (indien nog geen groep)
|
|
c_groep_upper VARCHAR2 (30) := '_DEFAULT';
|
|
c_key_default_rol NUMBER(10) := 1;
|
|
c_key_JGZ_rol NUMBER(10) := 22;
|
|
c_key_Risicobeheers_rol NUMBER(10) := 62;
|
|
c_key_ConcernStaf_rol NUMBER(10) := 63;
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_first_import_count NUMBER (10);
|
|
v_count_prs_actual NUMBER (10);
|
|
v_count_prs_import NUMBER (10); -- Matching actual persons!
|
|
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_srtperslid_key NUMBER (10);
|
|
v_oslogin VARCHAR2 (30);
|
|
v_locatie_key NUMBER (10);
|
|
v_gebouw_key NUMBER (10);
|
|
v_verdieping_key NUMBER (10);
|
|
v_ruimte_key NUMBER (10);
|
|
v_wp_key NUMBER (10);
|
|
v_wp_volgnr NUMBER (3);
|
|
v_wp_oms VARCHAR2 (30);
|
|
v_groep_defaultnaam VARCHAR2 (30);
|
|
|
|
-- Let op! Met eindatum zijn personen die niet meer in dienst zijn.
|
|
-- 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 NOT EXISTS (
|
|
SELECT 1
|
|
FROM hvdf_imp_prs ip
|
|
WHERE ip.prs_perslid_nr = p.prs_perslid_nr);
|
|
|
|
-- Let op! Met eindatum zijn personen die niet meer in dienst zijn.
|
|
CURSOR csperslid
|
|
IS
|
|
SELECT UPPER(prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
|
|
FROM hvdf_imp_prs
|
|
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
|
|
|
|
|
CURSOR cperslid
|
|
IS
|
|
SELECT *
|
|
FROM hvdf_imp_prs;
|
|
|
|
CURSOR cwp
|
|
IS
|
|
SELECT p.*, ip.alg_locatie_code, ip.alg_gebouw_code
|
|
FROM hvdf_imp_prs ip, prs_v_aanwezigperslid p
|
|
WHERE ip.alg_locatie_code IS NOT NULL
|
|
AND ip.alg_gebouw_code IS NOT NULL
|
|
AND UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr);
|
|
|
|
-- Alle actieve personen met personeelsnummer (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_v_aanwezigperslidwerkplek pw
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
-- Alle aanwezige personen met personeelsnummer (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);
|
|
|
|
-- Alle aanwezige JGZ-personen met personeelsnummer (ie. de import-doelgroep) krijgen de rol FE-RES (key = 22)
|
|
-- (indien ze dat nog niet hebben) om een JGZ Spreekkamer te kunnen reserveren.
|
|
-- Een JGZ-er is een persoon op een prs_afdeling die het divisie-kenmerk (referentie naar domein en eigen tabel)
|
|
-- JGZ heeft. Dit kenmerk heeft key=1000 en de waarde JGZ heeft key = 1.
|
|
CURSOR cJGZpersonen
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam, p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_kenmerklink k
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_key = K.PRS_LINK_KEY
|
|
AND K.PRS_KENMERKLINK_NIVEAU = 'A'
|
|
AND k.prs_kenmerk_key = 1000
|
|
AND k.prs_kenmerklink_waarde = 1
|
|
AND NOT EXISTS (select 'x' from fac_gebruikersgroep rol
|
|
WHERE p.prs_perslid_key = ROL.PRS_PERSLID_KEY
|
|
AND ROL.FAC_GROEP_KEY = c_key_JGZ_rol);
|
|
|
|
CURSOR cRisicoBeheeringpersonen
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam, p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_kenmerklink k
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_key = K.PRS_LINK_KEY
|
|
AND K.PRS_KENMERKLINK_NIVEAU = 'A'
|
|
AND k.prs_kenmerk_key = 1000
|
|
AND k.prs_kenmerklink_waarde = 2
|
|
AND NOT EXISTS (select 'x' from fac_gebruikersgroep rol
|
|
WHERE p.prs_perslid_key = ROL.PRS_PERSLID_KEY
|
|
AND ROL.FAC_GROEP_KEY = c_key_Risicobeheers_rol);
|
|
|
|
|
|
|
|
CURSOR cConcernStafpersonen
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam, p.prs_perslid_voornaam
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_kenmerklink k
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_afdeling_key = K.PRS_LINK_KEY
|
|
AND K.PRS_KENMERKLINK_NIVEAU = 'A'
|
|
AND k.prs_kenmerk_key = 1000
|
|
AND k.prs_kenmerklink_waarde = 81
|
|
AND NOT EXISTS (select 'x' from fac_gebruikersgroep rol
|
|
WHERE p.prs_perslid_key = ROL.PRS_PERSLID_KEY
|
|
AND ROL.FAC_GROEP_KEY = c_key_ConcernStaf_rol);
|
|
|
|
|
|
|
|
|
|
BEGIN
|
|
SELECT COUNT (*)
|
|
INTO v_first_import_count
|
|
FROM imp_log
|
|
WHERE imp_log_omschrijving = c_first_import
|
|
AND imp_log_applicatie = p_applname;
|
|
|
|
SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
|
|
INTO v_count_prs_actual
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_verwijder IS NULL AND prs_perslid_nr IS NOT NULL;
|
|
|
|
SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
|
|
INTO v_count_prs_import
|
|
FROM prs_perslid p, hvdf_imp_prs ip
|
|
WHERE p.prs_perslid_nr IS NOT NULL
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND p.prs_perslid_nr = ip.prs_perslid_nr;
|
|
|
|
IF ( (v_first_import_count = 1)
|
|
OR (TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) >=
|
|
(100 - c_max_delta_percentage
|
|
)
|
|
)
|
|
)
|
|
THEN
|
|
-- Geldig importbestand wat betreft aantal personen
|
|
FOR recdelprs IN cdelprs
|
|
LOOP
|
|
BEGIN
|
|
-- 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_applname,
|
|
p_applrun,
|
|
'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?
|
|
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 zetten persoon';
|
|
|
|
-- Persoon INACTIEF zetten (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_applname,
|
|
p_applrun,
|
|
'I',
|
|
'Persoon met nummer ['
|
|
|| recdelprs.prs_perslid_nr
|
|
|| '] en naam ['
|
|
|| recdelprs.prs_perslid_naam
|
|
|| ', '
|
|
|| recdelprs.prs_perslid_voornaam
|
|
|| '] is INACTIEF gezet',
|
|
'Persoon is INACTIEF gezet'
|
|
);
|
|
ELSE
|
|
v_errorhint := 'Fout bij INACTIEF maken persoon';
|
|
|
|
-- Persoon INACTIEF maken (reset oslogin; indien handmatig INACTIEF gezet)
|
|
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_applname,
|
|
p_applrun,
|
|
'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'
|
|
);
|
|
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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
v_count_tot := 0;
|
|
v_count_error := 0;
|
|
|
|
FOR recsperslid IN csperslid
|
|
LOOP
|
|
BEGIN
|
|
v_count_tot := v_count_tot + 1;
|
|
v_aanduiding := recsperslid.prs_srtperslid_omschrijving || ' - ';
|
|
v_errorhint := 'Fout bij bepalen functie';
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_srtperslid
|
|
WHERE UPPER (prs_srtperslid_omschrijving) =
|
|
UPPER (recsperslid.prs_srtperslid_omschrijving)
|
|
AND prs_srtperslid_verwijder IS NULL;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen functie';
|
|
|
|
INSERT INTO prs_srtperslid
|
|
(prs_srtperslid_omschrijving
|
|
)
|
|
VALUES (recsperslid.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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'S',
|
|
'Functie: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'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_srtperslid
|
|
WHERE prs_srtperslid_verwijder IS NULL
|
|
AND 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_afdeling
|
|
WHERE prs_afdeling_verwijder IS NULL
|
|
AND UPPER (prs_afdeling_naam) =
|
|
UPPER (recperslid.prs_afdeling_naam);
|
|
|
|
v_errorhint := 'Fout bij bepalen persoon';
|
|
|
|
SELECT COUNT (*), MAX (prs_perslid_key)
|
|
INTO v_count, v_perslid_key
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_verwijder IS NULL
|
|
AND UPPER (prs_perslid_nr) = UPPER (recperslid.prs_perslid_nr);
|
|
|
|
|
|
-- Login afleiden uit e-mail (alles voor @)
|
|
-- v_oslogin := SUBSTR (recperslid.prs_perslid_email, 1, INSTR (recperslid.prs_perslid_email, '@', 1, 1) - 1);
|
|
-- Hier wordt loginnaam expliciet (anders) in het importbestand meegegeven.
|
|
v_oslogin := recperslid.prs_perslid_oslogin;
|
|
|
|
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_naam,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_email,
|
|
prs_perslid_nr, prs_perslid_oslogin
|
|
)
|
|
VALUES ('PRS', v_srtperslid_key,
|
|
v_afdeling_key, recperslid.prs_perslid_naam,
|
|
recperslid.prs_perslid_voorletters,
|
|
recperslid.prs_perslid_tussenvoegsel,
|
|
recperslid.prs_perslid_voornaam,
|
|
recperslid.prs_perslid_telefoonnr,
|
|
recperslid.prs_perslid_email,
|
|
recperslid.prs_perslid_nr, v_oslogin
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
IF (v_count > 1)
|
|
THEN
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding
|
|
|| ' kan persoon niet 1-duidig bepalen',
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
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_voorletters = recperslid.prs_perslid_voorletters,
|
|
prs_perslid_tussenvoegsel = recperslid.prs_perslid_tussenvoegsel,
|
|
prs_perslid_voornaam = recperslid.prs_perslid_voornaam,
|
|
prs_perslid_telefoonnr = COALESCE (recperslid.prs_perslid_telefoonnr, prs_perslid_telefoonnr),
|
|
prs_perslid_email = COALESCE (recperslid.prs_perslid_email, prs_perslid_email),
|
|
prs_perslid_nr = recperslid.prs_perslid_nr,
|
|
prs_perslid_oslogin = COALESCE (v_oslogin, prs_perslid_oslogin)
|
|
WHERE prs_perslid_key = v_perslid_key;
|
|
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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'S',
|
|
'Persoon: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'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
|
|
|| ' - ';
|
|
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_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 alg_locatie_key = v_locatie_key
|
|
AND UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code);
|
|
|
|
v_errorhint := 'Fout bij bepalen verdieping';
|
|
|
|
SELECT alg_verdieping_key
|
|
INTO v_verdieping_key
|
|
FROM alg_v_aanwezigverdieping
|
|
WHERE alg_gebouw_key = v_gebouw_key
|
|
AND alg_verdieping_volgnr = (SELECT MIN (v.alg_verdieping_volgnr)
|
|
FROM alg_verdieping v
|
|
WHERE v.alg_gebouw_key = v_gebouw_key
|
|
AND v.alg_verdieping_volgnr >= 0);
|
|
|
|
v_errorhint :=
|
|
'Fout bij bepalen of persoon in gebouw een werkplek heeft';
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_v_aanwezigperslidwerkplek pw,
|
|
prs_werkplek wp,
|
|
alg_ruimte r,
|
|
alg_verdieping v
|
|
WHERE pw.prs_perslid_key = v_perslid_key
|
|
AND pw.prs_werkplek_key = wp.prs_werkplek_key
|
|
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = v_gebouw_key;
|
|
|
|
-- v_count=0 -> persoon verhuist naar/krijgt wp in gebouw.
|
|
IF (v_count = 0)
|
|
THEN
|
|
v_errorhint := 'Fout bij bepalen ruimte';
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE r.alg_verdieping_key = v_verdieping_key
|
|
AND r.alg_ruimte_nr = c_ruimte_nr;
|
|
|
|
-- v_count=0 -> ruimte '000' bestaat nog niet.
|
|
IF (v_count = 0)
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen ruimte';
|
|
|
|
INSERT INTO alg_ruimte
|
|
(alg_verdieping_key, alg_srtruimte_key,
|
|
alg_ruimte_nr
|
|
)
|
|
VALUES (v_verdieping_key, 21, -- facilitaire ruimte
|
|
c_ruimte_nr
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
v_errorhint := 'Fout bij bepalen ruimte';
|
|
|
|
SELECT alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE r.alg_verdieping_key = v_verdieping_key
|
|
AND r.alg_ruimte_nr = c_ruimte_nr;
|
|
|
|
v_errorhint := 'Fout bij bepalen vrije werkplek';
|
|
|
|
SELECT COUNT (w.prs_werkplek_key)
|
|
INTO v_count
|
|
FROM prs_werkplek w
|
|
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM prs_v_aanwezigperslidwerkplek pw
|
|
WHERE pw.prs_werkplek_key =
|
|
w.prs_werkplek_key);
|
|
|
|
IF (v_count > 0)
|
|
THEN
|
|
SELECT MIN (w.prs_werkplek_key)
|
|
INTO v_wp_key
|
|
FROM prs_werkplek w
|
|
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM prs_v_aanwezigperslidwerkplek pw
|
|
WHERE pw.prs_werkplek_key =
|
|
w.prs_werkplek_key);
|
|
|
|
-- Verwijder (keihard) de mogelijk eerder logisch verwijderde
|
|
-- koppeling tussen dezelfde persoon en werkplek!!!
|
|
DELETE FROM prs_perslidwerkplek pw
|
|
WHERE pw.prs_perslid_key = v_perslid_key
|
|
AND pw.prs_werkplek_key = v_wp_key
|
|
AND pw.prs_perslidwerkplek_verwijder IS NOT NULL;
|
|
|
|
v_errorhint :=
|
|
'Fout bij koppelen persoon aan vrije werkplek';
|
|
|
|
INSERT INTO prs_perslidwerkplek
|
|
(prs_perslid_key, prs_werkplek_key,
|
|
prs_perslidwerkplek_bezetting
|
|
)
|
|
VALUES (v_perslid_key, v_wp_key,
|
|
100
|
|
);
|
|
COMMIT;
|
|
ELSE
|
|
v_errorhint := 'Fout bij bepalen nieuwe werkplek';
|
|
|
|
SELECT prs_s_prs_werkplek_key.NEXTVAL
|
|
INTO v_wp_key
|
|
FROM DUAL;
|
|
|
|
SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
|
|
INTO v_wp_volgnr
|
|
FROM prs_werkplek w
|
|
WHERE w.prs_alg_ruimte_key = v_ruimte_key;
|
|
|
|
v_wp_oms := c_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
|
|
|
|
v_errorhint := 'Fout bij aanmaken nieuwe werkplek';
|
|
|
|
INSERT INTO prs_werkplek
|
|
(prs_werkplek_key, prs_werkplek_module,
|
|
prs_werkplek_volgnr,
|
|
prs_werkplek_omschrijving, prs_alg_ruimte_key
|
|
)
|
|
VALUES (v_wp_key, 'PRR',
|
|
v_wp_volgnr,
|
|
v_wp_oms, v_ruimte_key
|
|
);
|
|
|
|
v_errorhint :=
|
|
'Fout bij koppelen persoon aan nieuwe werkplek';
|
|
|
|
INSERT INTO prs_perslidwerkplek
|
|
(prs_perslid_key, prs_werkplek_key,
|
|
prs_perslidwerkplek_bezetting
|
|
)
|
|
VALUES (v_perslid_key, v_wp_key,
|
|
100
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'S',
|
|
'Werkplek: verwerkte regels zonder foutmelding: '
|
|
|| TO_CHAR (v_count_tot - v_count_error),
|
|
''
|
|
);
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'S',
|
|
'Werkplek: verwerkte regels met foutmelding: '
|
|
|| TO_CHAR (v_count_error),
|
|
''
|
|
);
|
|
COMMIT;
|
|
|
|
FOR recnowp IN cnowp
|
|
LOOP
|
|
BEGIN
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- Iedereen krijgt _default-rol die nog geen groep heeft.
|
|
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 met key [' || c_key_default_rol || ']';
|
|
|
|
SELECT fac_groep_upper
|
|
INTO v_groep_defaultnaam
|
|
FROM fac_groep
|
|
WHERE fac_groep_key = c_key_default_rol
|
|
AND fac_groep_verwijder IS NULL;
|
|
|
|
|
|
v_errorhint :=
|
|
'Fout bij koppelen persoon aan groep met key [' || c_key_default_rol || ']';
|
|
|
|
INSERT INTO fac_gebruikersgroep
|
|
(fac_groep_key, prs_perslid_key
|
|
)
|
|
VALUES (c_key_default_rol, 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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- Iedere JGZ-er krijgt de rol (key = 22) om een JGZ-spreekkamer te kunnen reserveren.
|
|
FOR JGZpersoon IN cJGZpersonen
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
JGZpersoon.prs_perslid_nr
|
|
|| '|'
|
|
|| JGZpersoon.prs_perslid_naam
|
|
|| '|'
|
|
|| JGZpersoon.prs_perslid_voornaam
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen groep met key [' || c_key_JGZ_rol || ']';
|
|
|
|
SELECT fac_groep_upper
|
|
INTO v_groep_defaultnaam
|
|
FROM fac_groep
|
|
WHERE fac_groep_key = c_key_JGZ_rol
|
|
AND fac_groep_verwijder IS NULL;
|
|
|
|
|
|
v_errorhint :=
|
|
'Fout bij koppelen persoon aan groep met key [' || c_key_JGZ_rol || ']';
|
|
|
|
INSERT INTO fac_gebruikersgroep
|
|
(fac_groep_key, prs_perslid_key
|
|
)
|
|
VALUES (c_key_JGZ_rol, JGZpersoon.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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- Iedere persoon uit Risicobeheersing krijgt de rol (key = 62) om een brandweerdienstauto te kunnen reserveren.
|
|
FOR RisBeheersPersoon IN cRisicoBeheeringpersonen
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
RisBeheersPersoon.prs_perslid_nr
|
|
|| '|'
|
|
|| RisBeheersPersoon.prs_perslid_naam
|
|
|| '|'
|
|
|| RisBeheersPersoon.prs_perslid_voornaam
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen groep met key [' || c_key_Risicobeheers_rol || ']';
|
|
|
|
SELECT fac_groep_upper
|
|
INTO v_groep_defaultnaam
|
|
FROM fac_groep
|
|
WHERE fac_groep_key = c_key_Risicobeheers_rol
|
|
AND fac_groep_verwijder IS NULL;
|
|
|
|
|
|
v_errorhint :=
|
|
'Fout bij koppelen persoon aan groep met key [' || c_key_Risicobeheers_rol || ']';
|
|
|
|
INSERT INTO fac_gebruikersgroep
|
|
(fac_groep_key, prs_perslid_key
|
|
)
|
|
VALUES (c_key_Risicobeheers_rol, RisBeheersPersoon.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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- Iedere persoon uit Concernstaf krijgt de rol (key = 63) om een concernstafdienstauto te kunnen reserveren.
|
|
FOR ConcernStafPersoon IN cConcernStafpersonen
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
ConcernStafPersoon.prs_perslid_nr
|
|
|| '|'
|
|
|| ConcernStafPersoon.prs_perslid_naam
|
|
|| '|'
|
|
|| ConcernStafPersoon.prs_perslid_voornaam
|
|
|| ' - ';
|
|
v_errorhint := 'Fout bij bepalen groep met key [' || c_key_ConcernStaf_rol || ']';
|
|
|
|
SELECT fac_groep_upper
|
|
INTO v_groep_defaultnaam
|
|
FROM fac_groep
|
|
WHERE fac_groep_key = c_key_ConcernStaf_rol
|
|
AND fac_groep_verwijder IS NULL;
|
|
|
|
|
|
v_errorhint :=
|
|
'Fout bij koppelen persoon aan groep met key [' || c_key_ConcernStaf_rol || ']';
|
|
|
|
INSERT INTO fac_gebruikersgroep
|
|
(fac_groep_key, prs_perslid_key
|
|
)
|
|
VALUES (c_key_ConcernStaf_rol, ConcernStafPersoon.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_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint
|
|
);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
ELSE
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'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)
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF; -- Geldig importbestand wat betreft aantal inserts
|
|
COMMIT;
|
|
END hvdf_update_prs;
|
|
/
|
|
|
|
|
|
create or replace view hvdf_v_res_ritten as
|
|
select res.res_reservering_key, ruim.res_rsv_ruimte_key, ruim.res_rsv_ruimte_volgnr, ruim.res_rsv_ruimte_omschrijving AS omschrijving, ruim.res_rsv_ruimte_opmerking AS opmerking, auto.ins_deel_omschrijving AS auto,
|
|
rdeel.res_rsv_deel_van datum_van, to_char (rdeel.res_rsv_deel_van, 'HH24:MI') tijd_van,
|
|
rdeel.res_rsv_deel_tot datum_tot, to_char (rdeel.res_rsv_deel_tot, 'HH24:MI') tijd_tot,
|
|
p.prs_perslid_naam
|
|
|| DECODE (COALESCE (p.prs_perslid_voorletters, ''), '', '', ', ' || p.prs_perslid_voorletters)
|
|
|| DECODE (COALESCE (p.prs_perslid_tussenvoegsel, ''), '', '', ' ' || p.prs_perslid_tussenvoegsel)
|
|
|| DECODE (COALESCE (p.prs_perslid_voornaam, ''), '', '', ' (' || p.prs_perslid_voornaam || ')') gastheervrouw,
|
|
p.prs_perslid_key,
|
|
afd.prs_afdeling_naam, afd.prs_afdeling_omschrijving,
|
|
kpl.prs_kostenplaats_nr, kpl.prs_kostenplaats_omschrijving
|
|
from res_v_aanwezigreservering res, res_v_aanwezigrsv_ruimte ruim, res_v_aanwezigrsv_deel rdeel, res_deel deel, res_v_ins_deel auto,
|
|
prs_perslid p, prs_afdeling afd, prs_kostenplaats kpl
|
|
where res.res_reservering_key = ruim.res_reservering_key
|
|
and ruim.res_rsv_ruimte_key = rdeel.res_rsv_ruimte_key (+)
|
|
and rdeel.res_deel_key = auto.res_deel_key (+)
|
|
and rdeel.res_deel_key = deel.res_deel_key
|
|
and p.prs_perslid_key = ruim.res_rsv_ruimte_host_key
|
|
and p.prs_afdeling_key = afd.prs_afdeling_key
|
|
and ruim.prs_kostenplaats_key = kpl.prs_kostenplaats_key (+)
|
|
and ruim.res_activiteit_key = 21;
|
|
|
|
|
|
CREATE OR REPLACE FORCE VIEW hvdf_v_ritten_kenmerken
|
|
as select ritres.res_reservering_key, ritres.res_rsv_ruimte_volgnr, ritres.omschrijving, ritres.opmerking, ritres.auto,
|
|
ritres.datum_van, ritres.tijd_van,
|
|
ritres.datum_tot, ritres.tijd_tot,
|
|
ritres.prs_perslid_key, ritres.gastheervrouw,
|
|
ritres.prs_afdeling_naam || ' - ' || ritres.prs_afdeling_omschrijving AS afdeling, ritres.prs_kostenplaats_nr, ritres.prs_kostenplaats_omschrijving,
|
|
(SELECT fd.fac_usrdata_omschr
|
|
FROM fac_usrdata fd,
|
|
res_kenmerkwaarde k
|
|
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
|
-- Kenmerk Getankt (key = 5)
|
|
AND k.res_kenmerk_key = 5
|
|
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key) getankt,
|
|
(SELECT fd.fac_usrdata_omschr
|
|
FROM fac_usrdata fd,
|
|
res_kenmerkwaarde k
|
|
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
|
-- Kenmerk Schade (key = 6)
|
|
AND k.res_kenmerk_key = 6
|
|
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key) schade,
|
|
(SELECT k.res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde k
|
|
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
|
-- Kenmerk Bestemming (key = 1)
|
|
AND k.res_kenmerk_key = 1) bestemming,
|
|
(SELECT fac.safe_to_number(replace (k.res_kenmerkreservering_waarde,',','.'))
|
|
FROM res_kenmerkwaarde k
|
|
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
|
-- Kenmerk Beginstand-km (key = 1)
|
|
AND k.res_kenmerk_key = 2) begin_km,
|
|
(SELECT fac.safe_to_number(replace (k.res_kenmerkreservering_waarde,',','.'))
|
|
FROM res_kenmerkwaarde k
|
|
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
|
-- Kenmerk Eindstand-km (key = 3)
|
|
AND k.res_kenmerk_key = 3) eind_km
|
|
from hvdf_v_res_ritten ritres;
|
|
|
|
|
|
CREATE OR REPLACE FORCE VIEW hvdf_v_rit_km_spec
|
|
AS select auto AS fclt_f_auto,
|
|
to_char(datum_van,'yyyy') AS fclt_f_jaar,
|
|
to_char(datum_van,'yyyy-mm-dd') AS datum,
|
|
decode(to_char(datum_van,'D'),1,'Zondag',2,'Maandag',3,'Dinsdag',4,'Woensdag',5,'Donderdag',6,'Vrijdag',7,'Zaterdag','') As dag,
|
|
tijd_van AS vertrektijd,
|
|
tijd_tot AS aankomsttijd,
|
|
gastheervrouw AS fclt_f_chauffeur,
|
|
afdeling AS fclt_f_cluster,
|
|
PRS_KOSTENPLAATS_NR AS fclt_f_kostenplaatsnr,
|
|
PRS_KOSTENPLAATS_OMSCHRIJVING AS kostenplaatsomschrijving,
|
|
bestemming, omschrijving AS reden, to_char(begin_km) AS begin_km, to_char(eind_km) AS eind_km,
|
|
to_number(eind_km - begin_km) AS Aantal_km
|
|
from hvdf_v_ritten_kenmerken;
|
|
|
|
|
|
CREATE OR REPLACE FORCE VIEW hvdf_v_rit_km_controle
|
|
as select * from hvdf_v_rit_km_spec;
|
|
|
|
|
|
CREATE OR REPLACE FORCE VIEW hvdf_v_repro_afleverlocatie
|
|
AS SELECT l.alg_locatie_key, l.alg_locatie_code || ' - ' || l.alg_locatie_plaats || ' - ' || l.alg_locatie_adres as alg_afleverlocatie_omschr
|
|
FROM alg_locatie l, alg_onrgoedkenmerk ok
|
|
WHERE ok.alg_onrgoed_key = l.alg_locatie_key
|
|
and OK.ALG_ONRGOED_NIVEAU = 'L'
|
|
and OK.ALG_KENMERK_KEY = 1000
|
|
and OK.ALG_ONRGOEDKENMERK_VERWIJDER is null
|
|
and OK.ALG_ONRGOEDKENMERK_WAARDE = '3';
|
|
|
|
-- MB : kl.prs_kenmerk_key = 1020 is kenmerk 'Backoffice signalering' bij persoon (wake-up call).
|
|
-- : kl.prs_kenmerklink_waarde = 3 is de waarde JA, d.w.z. persoon wil gesignaleerd worden.
|
|
|
|
CREATE OR REPLACE VIEW hvdf_v_wakeup_backoffice
|
|
AS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_voornaam, p.prs_perslid_voorletters,
|
|
d.ins_discipline_key, d.ins_discipline_omschrijving
|
|
FROM prs_perslid p, mld_discipline d, fac_v_webgebruiker g, fac_functie f, prs_kenmerklink kl
|
|
WHERE p.prs_perslid_key = g.prs_perslid_key
|
|
AND g.ins_discipline_key = d.ins_discipline_key
|
|
AND g.fac_functie_key = f.fac_functie_key
|
|
AND f.fac_functie_code = 'WEB_MLDBOF'
|
|
AND (g.fac_gebruiker_prs_level_write<9 OR g.fac_gebruiker_alg_level_write<9)
|
|
AND kl.prs_link_key = p.prs_perslid_key
|
|
AND kl.prs_kenmerklink_niveau = 'P'
|
|
AND kl.prs_kenmerk_key = 1020
|
|
AND kl.prs_kenmerklink_waarde = 3;
|
|
|
|
-- MB : nj.fac_notificatie_job_key = 2 is de notificatiejob voor backoffice notificatie die in HVDF5.sql wordt geinsert
|
|
CREATE OR REPLACE VIEW hvdf_v_notify_backoffice (code, sender, receiver, text, KEY, par1, par2, xkey)
|
|
AS
|
|
SELECT sn.fac_srtnotificatie_code, fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key), bo.prs_perslid_key,
|
|
sn.fac_srtnotificatie_oms, m.mld_melding_key, m.mld_stdmelding_key, m.mld_melding_omschrijving, NULL
|
|
FROM mld_melding m, mld_stdmelding std, hvdf_v_wakeup_backoffice bo, fac_notificatie_job nj, fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = 'CUST01'
|
|
AND m.mld_melding_status = 2
|
|
AND nj.fac_notificatie_job_key = 21
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND bo.ins_discipline_key = std.mld_ins_discipline_key
|
|
AND fac.gettrackingdate ('MLDNEW', m.mld_melding_key) >= nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval/24);
|
|
|
|
|
|
CREATE OR REPLACE VIEW HVDF_V_VERHUURDER
|
|
AS
|
|
SELECT PRS_BEDRIJF_KEY, PRS_BEDRIJF_NAAM, prs_bedrijf_post_adres, prs_bedrijf_post_postcode, prs_bedrijf_post_plaats,
|
|
prs_bedrijf_post_land, prs_bedrijf_bezoek_adres, prs_bedrijf_bezoek_postcode, prs_bedrijf_bezoek_plaats,
|
|
prs_bedrijf_bezoek_land, prs_bedrijf_telefoon, prs_bedrijf_fax, prs_bedrijf_email,
|
|
prs_bedrijf_contact_persoon, prs_bedrijf_contact_telefoon, prs_bedrijf_contact_fax
|
|
FROM prs_bedrijf
|
|
WHERE prs_bedrijf_verwijder IS NULL
|
|
AND prs_bedrijf_huurder = 1;
|
|
|
|
-- Verhuurder (verhuurbedrijf) met alle gegevens heeft key = 1337
|
|
CREATE OR REPLACE VIEW HVDF_V_RAP_LOCATIE
|
|
(fclt_f_district,
|
|
fclt_f_locatiecode,
|
|
alg_locatie_omschrijving, alg_locatie_adres, alg_locatie_postcode, fclt_f_plaatsnaam, alg_locatie_land,
|
|
alg_locatie_post_adres, alg_locatie_post_postcode, alg_locatie_post_plaats, alg_locatie_post_land,
|
|
alg_locatie_verantw, alg_locatie_verantw_tel, alg_locatie_email,
|
|
fclt_f_verhuurbedrijf, prs_bedrijf_bezoek_adres, prs_bedrijf_bezoek_postcode, prs_bedrijf_bezoek_plaats,
|
|
prs_bedrijf_post_adres, prs_bedrijf_post_postcode, prs_bedrijf_post_plaats,
|
|
prs_bedrijf_telefoon,prs_bedrijf_fax, prs_bedrijf_contact_persoon, prs_bedrijf_contact_telefoon,prs_bedrijf_email,
|
|
locatie_contactpersoon, locatie_contactpersoon_functie, locatie_contactpersoon_telnr, locatie_contactpersoon_email,
|
|
locatie_beheerder, locatie_beheerder_telnr, locatie_beheerder_email,
|
|
fclt_f_huurvorm, huur_dagdelen, locatie_medegebruikers, locatie_medegebruik, locatie_pp, locatie_parkeer_vergunning,
|
|
locatie_foto, fclt_f_reproadres
|
|
)
|
|
AS
|
|
SELECT d.alg_district_omschrijving, l.alg_locatie_code, alg_locatie_omschrijving,
|
|
l.alg_locatie_adres, l.alg_locatie_postcode, l.alg_locatie_plaats, l.alg_locatie_land,
|
|
l.alg_locatie_post_adres, l.alg_locatie_post_postcode, l.alg_locatie_post_plaats, l.alg_locatie_post_land,
|
|
l.alg_locatie_verantw, l.alg_locatie_verantw_tel, l.alg_locatie_email,
|
|
b.prs_bedrijf_naam, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_bezoek_plaats,
|
|
b.prs_bedrijf_post_adres, b.prs_bedrijf_post_postcode, b.prs_bedrijf_post_plaats,
|
|
b.prs_bedrijf_telefoon,b.prs_bedrijf_fax,
|
|
b.prs_bedrijf_contact_persoon, b.prs_bedrijf_contact_telefoon,b.prs_bedrijf_email,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Contactpersoon Locatie = 1040
|
|
AND k.alg_kenmerk_key = 1040) locatie_contactpersoon,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Functie Contactpersoon Locatie = 1039
|
|
AND k.alg_kenmerk_key = 1339) locatie_contactpersoon_functie,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Telnr Contactpersoon Locatie = 1340
|
|
AND k.alg_kenmerk_key = 1340) locatie_contactpersoon_telnr,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Email Contactpersoon Locatie = 1341
|
|
AND k.alg_kenmerk_key = 1341) locatie_contactpersoon_email,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Beheerder Locatie = 1043
|
|
AND k.alg_kenmerk_key = 1343) locatie_beheerder,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Telnr Beheerder Locatie = 1345
|
|
AND k.alg_kenmerk_key = 1345) locatie_beheerder_telnr,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Email Beheerder Locatie = 1346
|
|
AND k.alg_kenmerk_key = 1346) locatie_beheerder_email,
|
|
(SELECT fd.fac_usrdata_omschr
|
|
FROM fac_usrdata fd, alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Huur(deel/volledig) = 1349
|
|
AND k.alg_kenmerk_key = 1349
|
|
AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) = fd.fac_usrdata_key) huurvorm,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Aantal dagdelen huur = 1080
|
|
AND k.alg_kenmerk_key = 1080) huur_dagdelen,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Medegebruikers van gebouw = 1060
|
|
AND k.alg_kenmerk_key = 1060) locatie_medegebruikers,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Medegebruik pantry-lift = 1352
|
|
AND k.alg_kenmerk_key = 1352) locatie_medegebruik,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Aantal PP = 1351
|
|
AND k.alg_kenmerk_key = 1351) locatie_pp,
|
|
(SELECT k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Parkeervergunning = 1260
|
|
AND k.alg_kenmerk_key = 1260) locatie_parkeer_vergunning,
|
|
(SELECT l.alg_locatie_key || '\' || k.alg_kenmerk_key || '\' || k.alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Kenmerk Locatiefoto = 1353
|
|
AND k.alg_kenmerk_key = 1353) locatie_foto,
|
|
(SELECT COALESCE(
|
|
(SELECT fd.fac_usrdata_omschr
|
|
FROM fac_usrdata fd, alg_onrgoedkenmerk k
|
|
WHERE k.alg_onrgoed_key = l.alg_locatie_key
|
|
-- Afleverlocatie voor reprodienst (key = 1000)
|
|
AND k.alg_kenmerk_key = 1000
|
|
AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) = fd.fac_usrdata_key)
|
|
, 'Nee') FROM DUAL) repro_afleveradres
|
|
FROM alg_locatie l, alg_district d, prs_bedrijf b, alg_onrgoedkenmerk ok
|
|
WHERE alg_locatie_verwijder is null
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND ok.alg_kenmerk_key (+) = 1337
|
|
AND ok.alg_onrgoed_key (+) = l.alg_locatie_key
|
|
AND b.prs_bedrijf_key (+) = fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde);
|
|
|
|
|
|
BEGIN adm.systrackscript('$Workfile: hvdf.sql $', '$Revision: 10 $', 0); END;
|
|
/
|
|
|
|
BEGIN fac.registercustversion('HVDF', 6); END;
|
|
/
|
|
|
|
commit;
|
|
|
|
spool off
|