3855 lines
154 KiB
SQL
3855 lines
154 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific db-configuration for IVET.
|
|
|
|
DEFINE thisfile = 'IVET.SQL'
|
|
DEFINE dbuser = '^IVET'
|
|
|
|
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 ivet_v_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 = 21);
|
|
|
|
-- IVET#25262: Van SAP_ID naar WIN_ID!
|
|
/* Formatted on 30-1-2013 10:24:44 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE ivet_import_prs (p_import_key IN NUMBER)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
-- LET OP: moet idem zijn als declaratie bij IVET_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_sap_id VARCHAR2 (256);
|
|
v_pers_nr VARCHAR2 (256);
|
|
v_win_id 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_kantoor 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);
|
|
v_postadres VARCHAR2 (256);
|
|
-- Overig:
|
|
v_alg_gebouw_code VARCHAR2 (256);
|
|
v_alg_verdieping_code VARCHAR2 (256);
|
|
v_alg_ruimte_nr VARCHAR2 (256);
|
|
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 ivet_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_sap_id);
|
|
-- 02
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_pers_nr);
|
|
-- 03
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_win_id);
|
|
-- 04
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_titel);
|
|
-- 05
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
|
-- 06
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_perslid_tussenvoegsel);
|
|
-- 07
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_perslid_voorletters);
|
|
-- 08
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_perslid_voornaam);
|
|
-- 09
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
|
-- 10
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_afdeling_omschrijving);
|
|
-- 11
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_srtperslid_omschrijving);
|
|
-- 12
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_kantoor);
|
|
-- 13
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_perslid_telefoonnr);
|
|
-- 14
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
|
-- 15
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_perslid_oslogin);
|
|
-- 16
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_perslid_ingangsdatum);
|
|
-- 17
|
|
fac.imp_getfield (v_newline,
|
|
c_fielddelimitor,
|
|
v_prs_perslid_einddatum);
|
|
-- 18
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_postadres);
|
|
--
|
|
v_aanduiding :=
|
|
'['
|
|
|| v_sap_id
|
|
|| '|'
|
|
|| 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_sap_id) = 'SAP-ID'
|
|
AND UPPER (v_pers_nr) = 'PERSONEELSNUMMER'
|
|
AND UPPER (v_win_id) = 'WIN-ID'
|
|
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_kantoor) = 'KANTOOR'
|
|
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'
|
|
--AND UPPER (v_prs_perslid_einddatum) = 'POSTADRES'
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE
|
|
v_count_tot := v_count_tot + 1;
|
|
-- Controleer alle veldwaarden
|
|
v_errorhint := 'Ongeldige SAP-ID';
|
|
v_sap_id := TRIM (v_sap_id);
|
|
|
|
IF v_sap_id IS NULL OR LENGTH (v_sap_id) > 16
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'SAP-ID onbekend/te lang',
|
|
'SAP-ID is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig personeelsnummer';
|
|
v_pers_nr := TRIM (v_pers_nr);
|
|
|
|
IF LENGTH (v_pers_nr) > 50
|
|
THEN
|
|
v_pers_nr := SUBSTR (v_pers_nr, 1, 50);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Personeelsnummer te lang',
|
|
'Personeelsnummer wordt afgebroken tot ['
|
|
|| v_pers_nr
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige WIN-ID';
|
|
v_win_id := TRIM (v_win_id);
|
|
|
|
IF v_win_id IS NULL OR LENGTH (v_win_id) > 100
|
|
THEN
|
|
v_ongeldig := 1;
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'WIN-ID onbekend/te lang',
|
|
'WIN-ID is verplicht; regel wordt overgeslagen!'
|
|
);
|
|
COMMIT;
|
|
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;
|
|
|
|
-- LET OP: Kantoor wordt uitgesplitst naar gebouw, verdieping en ruimte!
|
|
v_errorhint := 'Ongeldige locatieomschrijving';
|
|
v_kantoor := TRIM (v_kantoor);
|
|
-- Neem tekens voor de - (streep) en vervang v_kantoor door tekens na de streep.
|
|
v_errorhint := 'Ongeldige gebouwcode';
|
|
v_alg_gebouw_code :=
|
|
SUBSTR (v_kantoor, 1, INSTR (v_kantoor,
|
|
'-',
|
|
1,
|
|
1)
|
|
- 1);
|
|
v_kantoor :=
|
|
SUBSTR (v_kantoor, INSTR (v_kantoor,
|
|
'-',
|
|
1,
|
|
1)
|
|
+ 1);
|
|
|
|
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',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_alg_gebouw_code
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
-- Neem tekens voor de . (punt) en vervang v_kantoor door tekens na de punt.
|
|
v_errorhint := 'Ongeldige verdiepingcode';
|
|
v_alg_verdieping_code :=
|
|
SUBSTR (v_kantoor, 1, INSTR (v_kantoor,
|
|
'.',
|
|
1,
|
|
1)
|
|
- 1);
|
|
v_kantoor :=
|
|
SUBSTR (v_kantoor, INSTR (v_kantoor,
|
|
'.',
|
|
1,
|
|
1)
|
|
+ 1);
|
|
|
|
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',
|
|
'Aanduiding wordt afgebroken tot ['
|
|
|| v_alg_verdieping_code
|
|
|| ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig ruimtenummer';
|
|
v_alg_ruimte_nr := v_kantoor; -- v_kantoor bevat nu het gedeelte na de punt.
|
|
|
|
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',
|
|
'Aanduiding 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;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldige 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_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;
|
|
|
|
--
|
|
v_errorhint := 'Ongeldig postadres';
|
|
v_postadres := TRIM (v_postadres);
|
|
|
|
IF LENGTH (v_postadres) > 30
|
|
THEN
|
|
v_postadres := SUBSTR (v_postadres, 1, 30);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Postadres te lang',
|
|
'Postadres wordt afgebroken tot [' || v_postadres || ']'
|
|
);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
BEGIN
|
|
v_errorhint :=
|
|
'Fout bij toevoegen regel aan importtabel IVET_IMP_PRS';
|
|
|
|
INSERT INTO ivet_imp_prs (imp_datum,
|
|
sap_id,
|
|
pers_nr,
|
|
win_id,
|
|
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,
|
|
postadres)
|
|
VALUES (SYSDATE,
|
|
v_sap_id,
|
|
v_pers_nr,
|
|
v_win_id,
|
|
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,
|
|
v_postadres);
|
|
|
|
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 ivet_import_prs;
|
|
/
|
|
|
|
-- IVET#25262: Van SAP_ID naar WIN_ID!
|
|
/* Formatted on 12-9-2013 10:20:02 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE ivet_update_prs (p_import_key IN NUMBER)
|
|
IS
|
|
-- LET OP: moet idem zijn als declaratie bij IVET_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;
|
|
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
|
|
c_gebouw_code VARCHAR2 (10) := 'PP001';
|
|
c_ruimte_nr VARCHAR2 (10) := '000';
|
|
-- Groep waar personen in geplaatst worden (indien nog geen groep)
|
|
c_groep_upper VARCHAR2 (30) := '_DEFAULT';
|
|
c_profiel_omschrijving VARCHAR2 (30) := 'DEFAULT';
|
|
c_postadres_kkey NUMBER (10) := 1000;
|
|
c_win_id_kkey NUMBER (10) := 1020;
|
|
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_srtperslid_key NUMBER (10);
|
|
v_afdeling_key NUMBER (10);
|
|
v_kostenplaats_key NUMBER (10);
|
|
v_perslid_key NUMBER (10);
|
|
v_kenmerklink_key NUMBER (10);
|
|
v_district_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 ivet_imp_prs!
|
|
-- Dubbele WIN-IDs? 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, prs_v_aanwezigkenmerklink kl
|
|
WHERE p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM ivet_imp_prs ip
|
|
WHERE UPPER (ip.win_id) =
|
|
UPPER (kl.prs_kenmerklink_waarde));
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in ivet_imp_prs!
|
|
CURSOR csrtperslid
|
|
IS
|
|
SELECT MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
|
|
FROM ivet_imp_prs
|
|
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in ivet_imp_prs!
|
|
-- Dubbele WIN-IDs? Dan wordt slechts 1 set persoongegevens toegevoegd!
|
|
-- Ook wordt in deze loop de afdelingsomschrijving eventueel bijgewerkt!
|
|
CURSOR cperslid
|
|
IS
|
|
SELECT * FROM ivet_imp_prs;
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in ivet_imp_prs!
|
|
-- Dubbele WIN-IDs? Dan krijgt iemand mogelijk de verkeerde plaats!
|
|
CURSOR cwp
|
|
IS
|
|
SELECT p.*,
|
|
ip.win_id,
|
|
ip.alg_gebouw_code,
|
|
ip.alg_verdieping_code,
|
|
ip.alg_verdieping_code || '.' || ip.alg_ruimte_nr
|
|
alg_ruimte_nr
|
|
FROM ivet_imp_prs ip,
|
|
prs_v_aanwezigkenmerklink kl,
|
|
prs_v_aanwezigperslid p
|
|
WHERE UPPER (ip.win_id) = UPPER (kl.prs_kenmerklink_waarde)
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey
|
|
AND kl.prs_link_key = p.prs_perslid_key;
|
|
|
|
-- Alle actieve personen met WIN-ID (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, prs_v_aanwezigkenmerklink kl
|
|
WHERE p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey
|
|
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 WIN-ID (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, prs_v_aanwezigkenmerklink kl
|
|
WHERE p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep g
|
|
WHERE g.prs_perslid_key = p.prs_perslid_key);
|
|
BEGIN
|
|
-- Bepaal WIN-ID-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 IVET_IMP_PRS).
|
|
SELECT COUNT ( * )
|
|
INTO v_count_prs_import
|
|
FROM prs_v_aanwezigperslid p,
|
|
prs_v_aanwezigkenmerklink kl,
|
|
ivet_imp_prs ip
|
|
WHERE p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey
|
|
AND UPPER (kl.prs_kenmerklink_waarde) = UPPER (ip.win_id)
|
|
AND (ip.imp_datum + 0.01) > SYSDATE;
|
|
|
|
-- Bepaal huidig aantal actieve personen met WIN_ID in Facilitor.
|
|
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
|
INTO v_count_prs_actual
|
|
FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl
|
|
WHERE p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey;
|
|
|
|
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 SAP-ID ['
|
|
|| 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 SAP-ID ['
|
|
|| 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 SAP-ID ['
|
|
|| 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_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.sap_id
|
|
|| '|'
|
|
|| 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 p, prs_v_aanwezigkenmerklink kl
|
|
WHERE p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey
|
|
AND UPPER (kl.prs_kenmerklink_waarde) =
|
|
UPPER (recperslid.win_id);
|
|
|
|
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.sap_id,
|
|
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;
|
|
|
|
v_errorhint := 'Fout bij toevoegen WIN-ID';
|
|
|
|
INSERT INTO prs_kenmerklink (prs_link_key,
|
|
prs_kenmerklink_niveau,
|
|
prs_kenmerk_key,
|
|
prs_kenmerklink_waarde)
|
|
VALUES (v_perslid_key,
|
|
'P',
|
|
c_win_id_kkey,
|
|
recperslid.win_id);
|
|
|
|
COMMIT;
|
|
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;
|
|
|
|
IF LENGTH (recperslid.postadres) > 0
|
|
THEN
|
|
v_errorhint := 'Fout bij bepalen postadres';
|
|
|
|
SELECT COUNT ( * ), MAX (prs_kenmerklink_key)
|
|
INTO v_count, v_kenmerklink_key
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_link_key = v_perslid_key
|
|
AND prs_kenmerklink_niveau = 'P'
|
|
AND prs_kenmerk_key = c_postadres_kkey;
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint := 'Fout bij toevoegen postadres';
|
|
|
|
INSERT INTO prs_kenmerklink (prs_link_key,
|
|
prs_kenmerklink_niveau,
|
|
prs_kenmerk_key,
|
|
prs_kenmerklink_waarde)
|
|
VALUES (v_perslid_key,
|
|
'P',
|
|
c_postadres_kkey,
|
|
recperslid.postadres);
|
|
ELSE -- v_count = 1
|
|
v_errorhint := 'Fout bij wijzigen postadres';
|
|
|
|
UPDATE prs_kenmerklink
|
|
SET prs_kenmerklink_waarde = recperslid.postadres
|
|
WHERE prs_kenmerklink_key = v_kenmerklink_key;
|
|
END IF;
|
|
|
|
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_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_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 p, prs_v_aanwezigkenmerklink kl
|
|
WHERE p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = c_win_id_kkey
|
|
AND UPPER (kl.prs_kenmerklink_waarde) =
|
|
UPPER (recwp.win_id);
|
|
|
|
v_district_key := NULL;
|
|
v_gebouw_key := NULL;
|
|
v_gebouw_code := recwp.alg_gebouw_code;
|
|
v_verdieping_key := NULL;
|
|
v_ruimte_key := NULL;
|
|
v_ruimte_nr := recwp.alg_ruimte_nr;
|
|
v_errorhint := 'Fout bij bepalen gebouw';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_gebouw_upper = UPPER (v_gebouw_code);
|
|
|
|
IF v_count = 1
|
|
THEN
|
|
SELECT alg_gebouw_key
|
|
INTO v_gebouw_key
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_gebouw_upper = UPPER (v_gebouw_code);
|
|
ELSE -- Gebouw bestaat niet (of >1 keer)!
|
|
v_gebouw_code := c_gebouw_code;
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
v_aanduiding || v_errorhint,
|
|
'Kan gebouw niet (1-duidig) bepalen!');
|
|
COMMIT;
|
|
END IF;
|
|
|
|
v_errorhint := 'Fout bij bepalen district';
|
|
|
|
SELECT l.alg_district_key
|
|
INTO v_district_key
|
|
FROM alg_gebouw g, alg_locatie l
|
|
WHERE g.alg_gebouw_upper = UPPER (v_gebouw_code)
|
|
AND g.alg_locatie_key = l.alg_locatie_key;
|
|
|
|
v_errorhint := 'Fout bij bepalen verdieping';
|
|
|
|
IF v_gebouw_key IS NOT NULL
|
|
THEN
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_v_aanwezigverdieping
|
|
WHERE alg_gebouw_key = v_gebouw_key
|
|
AND UPPER (alg_verdieping_code) =
|
|
UPPER (recwp.alg_verdieping_code);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
v_aanduiding || v_errorhint,
|
|
'Verdieping bestaat niet!');
|
|
COMMIT;
|
|
ELSE -- Verdieping bestaat!
|
|
SELECT alg_verdieping_key
|
|
INTO v_verdieping_key
|
|
FROM alg_v_aanwezigverdieping
|
|
WHERE alg_gebouw_key = v_gebouw_key
|
|
AND UPPER (alg_verdieping_code) =
|
|
UPPER (recwp.alg_verdieping_code);
|
|
END IF;
|
|
END IF;
|
|
|
|
v_errorhint := 'Fout bij bepalen ruimte';
|
|
|
|
IF v_verdieping_key IS NOT NULL
|
|
THEN
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_key = v_verdieping_key
|
|
AND alg_ruimte_upper_nr = UPPER (recwp.alg_ruimte_nr);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
v_aanduiding || v_errorhint,
|
|
'Ruimte bestaat niet!');
|
|
COMMIT;
|
|
ELSE -- Ruimte bestaat!
|
|
SELECT alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_key = v_verdieping_key
|
|
AND alg_ruimte_upper_nr =
|
|
UPPER (recwp.alg_ruimte_nr);
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Als hierboven de ruimte uit de import niet is gevonden, dan
|
|
-- koppel de persoon aan ruimte '000' op default verdieping in
|
|
-- gebouw uit de import (of anders 'PP001')!
|
|
v_errorhint :=
|
|
'Fout bij bepalen default verdieping in gebouw '
|
|
|| v_gebouw_code;
|
|
|
|
IF v_verdieping_key IS NULL
|
|
THEN
|
|
SELECT alg_verdieping_key
|
|
INTO v_verdieping_key
|
|
FROM alg_v_aanweziggebouw g, alg_v_aanwezigverdieping v
|
|
WHERE g.alg_gebouw_upper = UPPER (v_gebouw_code)
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_volgnr =
|
|
(SELECT MIN (alg_verdieping_volgnr)
|
|
FROM alg_verdieping
|
|
WHERE alg_gebouw_key = g.alg_gebouw_key);
|
|
END IF;
|
|
|
|
v_errorhint :=
|
|
'Fout bij bepalen fictieve ruimte in gebouw ' || v_gebouw_code;
|
|
|
|
IF v_ruimte_key IS NULL
|
|
THEN
|
|
v_ruimte_nr := c_ruimte_nr;
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_key = v_verdieping_key
|
|
AND alg_ruimte_upper_nr = c_ruimte_nr;
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
v_errorhint :=
|
|
'Fout bij toevoegen fictieve ruimte in gebouw '
|
|
|| v_gebouw_code;
|
|
|
|
INSERT INTO alg_ruimte (
|
|
alg_verdieping_key,
|
|
alg_srtruimte_key,
|
|
alg_ruimte_nr
|
|
)
|
|
VALUES (v_verdieping_key, 1241, -- Fictieve ruimte
|
|
c_ruimte_nr)
|
|
RETURNING alg_ruimte_key INTO v_ruimte_key;
|
|
|
|
COMMIT;
|
|
ELSE
|
|
SELECT r.alg_ruimte_key
|
|
INTO v_ruimte_key
|
|
FROM alg_v_aanwezigruimte r
|
|
WHERE r.alg_verdieping_key = v_verdieping_key
|
|
AND r.alg_ruimte_upper_nr = c_ruimte_nr;
|
|
END IF;
|
|
END IF;
|
|
|
|
v_errorhint := 'Fout bij bepalen of werkplek is gewijzigd';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_perslidwerkplek pw, prs_werkplek w
|
|
WHERE pw.prs_perslid_key = v_perslid_key
|
|
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = v_ruimte_key;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
-- Verwijderen oude -niet virtuele!- werkplek(ken) in hetzelfde
|
|
-- district!
|
|
-- 12-03-10/MvdH: NIET verwijderen bij bezetting < 5, afgestemd
|
|
-- dat dat -tijdelijk- speciale gevallen zijn (tbv. autorisatie;
|
|
-- hoezo obscuur...)!
|
|
v_errorhint := 'Fout bij verwijderen oude werkplek in district';
|
|
|
|
IF (fac.getSetting ('prs_werkplek_implicit') = '0') --Expliciet
|
|
THEN
|
|
DELETE FROM prs_perslidwerkplek pw
|
|
WHERE pw.prs_perslid_key = v_perslid_key
|
|
AND pw.prs_perslidwerkplek_bezetting > 5
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM prs_werkplek w,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l
|
|
WHERE w.prs_werkplek_virtueel = 0
|
|
AND w.prs_werkplek_key = pw.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = v_district_key);
|
|
ELSE -- Impliciet
|
|
DELETE FROM prs_werkplek w
|
|
WHERE w.prs_werkplek_virtueel = 0
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw,
|
|
alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l
|
|
WHERE pw.prs_perslid_key =
|
|
v_perslid_key
|
|
AND pw.prs_perslidwerkplek_bezetting > 5
|
|
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = v_district_key);
|
|
END IF;
|
|
|
|
COMMIT;
|
|
|
|
-- Persoon krijgt wp op fictieve of echte ruimte.
|
|
PRS.movetoruimte (v_perslid_key, v_ruimte_key, NULL);
|
|
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',
|
|
'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 SAP-ID ['
|
|
|| 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!
|
|
UPDATE prs_srtperslid sp
|
|
SET sp.prs_srtperslid_verwijder = SYSDATE
|
|
WHERE sp.prs_srtperslid_verwijder IS NULL
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_v_aanwezigperslid 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 ivet_update_prs;
|
|
/
|
|
|
|
/* Formatted on 29-4-2016 11:18:05 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW ivet_v_rap_zalenzetters
|
|
(
|
|
hide_f_sort_datum_tijd_ruimte,
|
|
hide_f_sort_res_nr,
|
|
hide_f_sort_categorie,
|
|
fclt_f_datum,
|
|
res_nr,
|
|
begin_eind,
|
|
tijd,
|
|
tijd_vc,
|
|
ruimte,
|
|
deelnemers,
|
|
activiteit_voorzieningen,
|
|
budgetnummer,
|
|
opmerking
|
|
)
|
|
AS
|
|
SELECT DECODE (
|
|
rrr.alg_ruimte_key,
|
|
NULL,
|
|
(SELECT DECODE (SUBSTR (rr.res_ruimte_nr, -1), '*', '99')
|
|
|| TO_CHAR (res_geg.res_reservering_van, 'YYYYMMDD HH24:MI')
|
|
|| rr.res_ruimte_nr
|
|
FROM res_ruimte_opstelling rro, res_ruimte rr
|
|
WHERE rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key),
|
|
(SELECT TO_CHAR (res_geg.res_reservering_van, 'YYYYMMDD HH24:MI')
|
|
|| rg.alg_ruimte_aanduiding
|
|
FROM alg_v_ruimte_gegevens rg
|
|
WHERE rg.alg_ruimte_key = rrr.alg_ruimte_key))
|
|
sort_ruimte,
|
|
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
|
sort_resnr,
|
|
res_geg.res_type sort_categorie,
|
|
TO_CHAR (res_geg.res_reservering_van, 'DD-MM-YYYY') datum,
|
|
(CASE
|
|
WHEN res_geg.res_type = '1R' OR res_geg.wissel = 1
|
|
THEN
|
|
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
|
ELSE
|
|
''
|
|
END)
|
|
resnr,
|
|
(CASE
|
|
WHEN res_geg.res_type = '1R'
|
|
AND res_geg.res_reservering_tot IS NOT NULL
|
|
THEN
|
|
'Begin'
|
|
ELSE
|
|
DECODE (res_geg.res_reservering_tot,
|
|
NULL, 'Eind',
|
|
DECODE (res_geg.wissel, 1, 'Wissel', ''))
|
|
END)
|
|
begin_eind,
|
|
(CASE
|
|
WHEN res_geg.res_type = '1R' OR res_geg.wissel = 1
|
|
THEN
|
|
TO_CHAR (res_geg.res_reservering_van, 'HH24:MI')
|
|
ELSE
|
|
''
|
|
END)
|
|
van,
|
|
DECODE (
|
|
res_geg.res_activiteit_key,
|
|
21, TO_CHAR (res_geg.res_reservering_van + (1 / 96), 'HH24:MI'),
|
|
NULL)
|
|
van_vc,
|
|
(CASE
|
|
WHEN res_geg.res_type = '1R' OR res_geg.wissel = 1
|
|
THEN
|
|
DECODE (
|
|
rrr.alg_ruimte_key,
|
|
NULL,
|
|
(SELECT rr.res_ruimte_nr
|
|
FROM res_ruimte_opstelling rro, res_ruimte rr
|
|
WHERE rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key),
|
|
(SELECT rg.alg_ruimte_aanduiding
|
|
FROM alg_v_ruimte_gegevens rg
|
|
WHERE rg.alg_ruimte_key = rrr.alg_ruimte_key))
|
|
ELSE
|
|
''
|
|
END)
|
|
ruimte,
|
|
TO_CHAR (res_geg.deelnemers) deelnemers,
|
|
(CASE
|
|
WHEN res_geg.res_type = '2V'
|
|
THEN
|
|
res_geg.res_voorziening
|
|
WHEN res_geg.res_type = '3C'
|
|
THEN
|
|
TO_CHAR (res_geg.aantal) || ' x ' || res_geg.res_voorziening
|
|
ELSE
|
|
DECODE (res_geg.res_next_van,
|
|
NULL, res_geg.res_voorziening,
|
|
TO_CHAR (res_geg.res_next_van, 'HH24:MI'))
|
|
END)
|
|
voorzieningen,
|
|
DECODE (res_geg.res_type, '1R', res_geg.res_kostenplaats_nr, NULL)
|
|
budgetnummer,
|
|
DECODE (res_geg.res_type, '1R', res_geg.res_reservering_opm, NULL)
|
|
opmerking
|
|
FROM (SELECT '1R' res_type, -- begin/wissel-ruimten met v, c of vc!
|
|
rrr.res_rsv_ruimte_key,
|
|
rrr.res_activiteit_key,
|
|
rrr.res_rsv_ruimte_bezoekers deelnemers,
|
|
rrr.res_rsv_ruimte_van res_reservering_van,
|
|
rrr.res_rsv_ruimte_tot res_reservering_tot,
|
|
rrr.res_rsv_ruimte_opmerking res_reservering_opm,
|
|
TO_NUMBER (NULL) aantal,
|
|
ra.res_activiteit_omschrijving res_voorziening,
|
|
NULL artikelnummer,
|
|
kp.prs_kostenplaats_nr res_kostenplaats_nr,
|
|
NULL res_next_van,
|
|
0 wissel,
|
|
DECODE (
|
|
rrr.res_activiteit_key,
|
|
21, 1, -- videoconference (vc)
|
|
(SELECT COUNT ( * )
|
|
FROM res_v_aanwezigrsv_deel rrd, res_v_aanwezigrsv_artikel rra
|
|
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
OR rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key))
|
|
service
|
|
FROM res_v_aanwezigrsv_ruimte rrr, res_activiteit ra, prs_kostenplaats kp
|
|
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_activiteit_key NOT IN (101, 161, 281, 301, 321) -- Uitleen, Lunchvoucher, Brandmeldcentrale, Pas sessie, Passen orth. schoenen
|
|
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
|
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 5)
|
|
UNION ALL -- eind-ruimten (reserveerbaar)!
|
|
SELECT '1R' res_type,
|
|
rrr.res_rsv_ruimte_key,
|
|
NULL res_activiteit_key,
|
|
NULL deelnemers,
|
|
rrr.res_rsv_ruimte_tot res_reservering_van,
|
|
NULL res_reservering_tot,
|
|
NULL res_reservering_opm,
|
|
TO_NUMBER (NULL) aantal,
|
|
NULL res_voorziening,
|
|
NULL artikelnummer,
|
|
NULL res_kostenplaats_nr,
|
|
(SELECT MIN (x.res_rsv_ruimte_van)
|
|
FROM res_v_aanwezigrsv_ruimte x, res_ruimte_opstelling y
|
|
WHERE x.res_ruimte_opstel_key = y.res_ruimte_opstel_key
|
|
AND y.res_ruimte_key = rr.res_ruimte_key
|
|
AND TRUNC (x.res_rsv_ruimte_van) = TRUNC (rrr.res_rsv_ruimte_tot)
|
|
AND x.res_rsv_ruimte_van > rrr.res_rsv_ruimte_tot)
|
|
res_next_van,
|
|
0 wissel,
|
|
1 service
|
|
FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling rro, res_ruimte rr
|
|
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 5)
|
|
UNION ALL -- eind-ruimten (meerdaags los=met v)!
|
|
SELECT '1R' res_type,
|
|
rrr.res_rsv_ruimte_key,
|
|
rrr.res_activiteit_key,
|
|
rrr.res_rsv_ruimte_bezoekers deelnemers,
|
|
rrr.res_rsv_ruimte_tot res_reservering_van,
|
|
NULL res_reservering_tot,
|
|
rrr.res_rsv_ruimte_opmerking res_reservering_opm,
|
|
TO_NUMBER (NULL) aantal,
|
|
ra.res_activiteit_omschrijving res_voorziening,
|
|
NULL artikelnummer,
|
|
kp.prs_kostenplaats_nr res_kostenplaats_nr,
|
|
NULL res_next_van,
|
|
0 wissel,
|
|
1 service
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
prs_kostenplaats kp
|
|
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
|
AND ra.res_activiteit_key NOT IN (281, 101, 301, 321) -- Brandmeldcentrale, Uitellenauto, Pas sessie, Passen orth schoenen
|
|
AND TRUNC (rrr.res_rsv_ruimte_van) != TRUNC (rrr.res_rsv_ruimte_tot)
|
|
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 5)
|
|
UNION ALL -- begin/wissel-voorzieningen (bij ruimte en los)!
|
|
SELECT '2V' res_type,
|
|
rrr.res_rsv_ruimte_key,
|
|
NULL res_activiteit_key,
|
|
NULL deelnemers,
|
|
rrd.res_rsv_deel_van res_reservering_van,
|
|
rrd.res_rsv_deel_tot res_reservering_tot,
|
|
NULL res_reservering_opm,
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal, -- duur in uren
|
|
LTRIM (id.ins_deel_omschrijving) || DECODE (rd.res_deel_eenheid, NULL, '', ' (' || rd.res_deel_eenheid || ')')
|
|
res_voorziening,
|
|
NULL artikelnummer,
|
|
NULL res_kostenplaats_nr,
|
|
NULL res_next_van,
|
|
DECODE (rrd.res_rsv_deel_van, rrr.res_rsv_ruimte_van, 0, 1)
|
|
wissel,
|
|
1 service
|
|
FROM res_v_aanwezigrsv_deel rrd, res_v_aanwezigrsv_ruimte rrr, res_deel rd, ins_deel id
|
|
WHERE rrd.res_rsv_deel_dirtlevel = 0
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_discipline_key NOT IN (741, 2121, 2162, 2221) -- Bestelauto, Brandmeldcentrale, Pasbus, Orthopedie
|
|
AND rd.res_ins_deel_key = id.ins_deel_key
|
|
AND rrd.res_rsv_deel_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 5)
|
|
UNION ALL -- eind-voorzieningen (meerdaags los=met v)!
|
|
SELECT '2V' res_type,
|
|
rrr.res_rsv_ruimte_key,
|
|
NULL res_activiteit_key,
|
|
NULL deelnemers,
|
|
rrd.res_rsv_deel_tot res_reservering_van,
|
|
rrd.res_rsv_deel_tot res_reservering_tot,
|
|
NULL res_reservering_opm,
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal, -- duur in uren
|
|
LTRIM (id.ins_deel_omschrijving) || DECODE (rd.res_deel_eenheid, NULL, '', ' (' || rd.res_deel_eenheid || ')')
|
|
res_voorziening,
|
|
NULL artikelnummer,
|
|
NULL res_kostenplaats_nr,
|
|
NULL res_next_van,
|
|
0 wissel,
|
|
1 service
|
|
FROM res_v_aanwezigrsv_deel rrd, res_v_aanwezigrsv_ruimte rrr, res_deel rd, ins_deel id
|
|
WHERE rrd.res_rsv_deel_dirtlevel = 0
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = id.ins_deel_key
|
|
AND rd.res_discipline_key NOT IN (2121, 741, 2162, 2221) -- Branmdeldcentrale, Bestelauto, Pasbus, Orthopedie
|
|
AND TRUNC (rrd.res_rsv_deel_van) != TRUNC (rrd.res_rsv_deel_tot)
|
|
AND rrd.res_rsv_deel_tot BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 5)
|
|
UNION ALL -- koppelruimten wand plaatsen
|
|
SELECT '2V' res_type,
|
|
rrr.res_rsv_ruimte_key,
|
|
NULL,
|
|
rrr.res_rsv_ruimte_bezoekers deelnemers,
|
|
rrr.res_rsv_ruimte_van res_reservering_van,
|
|
rrr.res_rsv_ruimte_tot res_reservering_tot,
|
|
rrr.res_rsv_ruimte_opmerking res_reservering_opm,
|
|
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24
|
|
aantal,
|
|
wand.voorziening voorziening,
|
|
NULL artikelnummer,
|
|
NULL res_kostenplaats_nr,
|
|
NULL res_next_van,
|
|
1 wissel,
|
|
1 service
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
(SELECT res_rsv_ruimte_key, voorziening
|
|
FROM ( SELECT rro2.res_ruimte_key org,
|
|
LAG (rro2.res_ruimte_key)
|
|
OVER (ORDER BY rrr2.res_rsv_ruimte_van)
|
|
prev,
|
|
res_rsv_ruimte_key,
|
|
'Wand ' || rr2.res_ruimte_nr
|
|
|| DECODE (rro2.res_ruimte_key,
|
|
341, ' Verwijderen',
|
|
' Plaatsen')
|
|
voorziening
|
|
FROM res_v_aanwezigrsv_ruimte rrr2,
|
|
res_ruimte_opstelling rro2,
|
|
res_ruimte rr2
|
|
WHERE rro2.res_ruimte_opstel_key = rrr2.res_ruimte_opstel_key
|
|
AND rr2.res_ruimte_key = rro2.res_ruimte_key
|
|
AND rro2.res_ruimte_key IN (282, 283, 341)
|
|
ORDER BY rrr2.res_rsv_ruimte_van)
|
|
WHERE ( (org = 341 AND prev IN (282, 283))
|
|
OR (org IN (282, 283) AND prev = 341)
|
|
OR (prev IS NULL))
|
|
UNION
|
|
SELECT res_rsv_ruimte_key, voorziening
|
|
FROM ( SELECT rro2.res_ruimte_key org,
|
|
LAG (rro2.res_ruimte_key)
|
|
OVER (ORDER BY rrr2.res_rsv_ruimte_van)
|
|
prev,
|
|
res_rsv_ruimte_key,
|
|
'Wand ' || rr2.res_ruimte_nr
|
|
|| DECODE (rro2.res_ruimte_key,
|
|
581, ' Verwijderen',
|
|
' Plaatsen')
|
|
voorziening
|
|
FROM res_v_aanwezigrsv_ruimte rrr2,
|
|
res_ruimte_opstelling rro2,
|
|
res_ruimte rr2
|
|
WHERE rro2.res_ruimte_opstel_key = rrr2.res_ruimte_opstel_key
|
|
AND rr2.res_ruimte_key = rro2.res_ruimte_key
|
|
AND rro2.res_ruimte_key IN (562, 563, 581)
|
|
ORDER BY rrr2.res_rsv_ruimte_van)
|
|
WHERE ( (org = 581 AND prev IN (562, 563))
|
|
OR (org IN (562, 563) AND prev = 581)
|
|
OR (prev IS NULL))) wand
|
|
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 5)
|
|
AND rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
|
|
AND rrr.res_rsv_ruimte_key = wand.res_rsv_ruimte_key
|
|
UNION ALL -- begin/wissel-catering (bij ruimte en los)!
|
|
SELECT '3C' res_type,
|
|
rrr.res_rsv_ruimte_key,
|
|
NULL res_activiteit_key,
|
|
NULL deelnemers,
|
|
rra.res_rsv_artikel_levering res_reservering_van,
|
|
rrr.res_rsv_ruimte_tot res_reservering_tot,
|
|
NULL res_reservering_opm,
|
|
rra.res_rsv_artikel_aantal aantal,
|
|
LTRIM (ra.res_artikel_omschrijving) || DECODE (ra.res_artikel_eenheid, NULL, '', ' (' || ra.res_artikel_eenheid || ')')
|
|
res_voorziening,
|
|
ra.res_artikel_nr artikelnummer,
|
|
NULL res_kostenplaats_nr,
|
|
NULL res_next_van,
|
|
DECODE (rra.res_rsv_artikel_levering, rrr.res_rsv_ruimte_van, 0, 1)
|
|
wissel,
|
|
1 service
|
|
FROM res_v_aanwezigrsv_artikel rra, res_v_aanwezigrsv_ruimte rrr, res_artikel ra
|
|
WHERE rra.res_rsv_artikel_dirtlevel = 0
|
|
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND ra.res_discipline_key NOT IN (1781) -- Lunchvoucher
|
|
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 5))
|
|
res_geg,
|
|
res_v_aanwezigrsv_ruimte rrr
|
|
WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND (res_reservering_opm IS NOT NULL OR res_geg.service > 0)
|
|
ORDER BY 1, 2, 3;
|
|
|
|
-- Bevat CUST01/02-reminders naar resp. medewerkers in autorisatiegroep 'BO
|
|
-- autorisatie (Security)' met key=2462 en medewerkers die 9 maanden geleden
|
|
-- om toegang hebben verzocht (dus binnenkort deze toegang verloopt).
|
|
-- CUST01: dagelijks ('s ochtends) mbt. de voorgaande dag aangemaakte nieuwe
|
|
-- verzoeken!
|
|
-- CUST02: dagelijks mbt. 9 maanden (~275d) geleden ingediende verzoeken!
|
|
/* Formatted on 3-4-2013 10:36:24 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_noti_aut_toegang
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
KEY,
|
|
par1,
|
|
par2,
|
|
xkey
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key,
|
|
REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key),
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
fac_srtnotificatie sn,
|
|
fac_gebruikersgroep gg
|
|
WHERE TRUNC (m.mld_melding_datum + 1) = TRUNC (SYSDATE)
|
|
--AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
|
|
--AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
|
|
-- TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = 1421 -- Aut. toegang afdeling
|
|
--AND m.mld_workflowstep_key IS NOT NULL -- WF-melding?
|
|
AND m.mld_melding_key = mld_melding_start_key -- WF-startmelding?
|
|
AND sn.fac_srtnotificatie_code = 'CUST01'
|
|
AND gg.fac_groep_key = 2462 -- BO autorisatie (Security)
|
|
UNION ALL
|
|
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
m.prs_perslid_key,
|
|
sn.fac_srtnotificatie_oms,
|
|
m.mld_melding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m, mld_stdmelding sm, fac_srtnotificatie sn
|
|
WHERE TRUNC (m.mld_melding_datum + 275) = TRUNC (SYSDATE)
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = 1421 -- Aut. toegang afdeling
|
|
--AND m.mld_workflowstep_key IS NOT NULL -- WF-melding?
|
|
AND m.mld_melding_key = mld_melding_start_key -- WF-startmelding?
|
|
AND sn.fac_srtnotificatie_code = 'CUST02';
|
|
|
|
------------------------------------------------------------------------------
|
|
-- CAD SYNCHRONISATIE views
|
|
-- Er worden per gebouw verschillende ruimtenummeringsconventies gebruikt
|
|
-- Per conventie is er een sync-view, die afhankelijk van een gebouwkenmerk
|
|
-- (key=?) wordt toegepast.
|
|
--
|
|
-- Als in database ruimtenr=Rn, verdiepingscode=Vc en verdiepingsvolgnr=Vn,
|
|
-- dan herkennen we deze labels in de tekening:
|
|
-- 1. Rn-part -> het gedeelte na de punt '.'
|
|
-- 2. Vc.Rn
|
|
-- 3. [0]Vn.Rn -> als 0<Vn<10 (dus niet Vn=-1), dan prefix met 0
|
|
-- 4. Rn
|
|
------------------------------------------------------------------------------
|
|
CREATE OR REPLACE VIEW ivet_v_sync_alg_ruimte
|
|
(
|
|
alg_ruimte_key,
|
|
alg_verdieping_key,
|
|
cadlabel
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_verdieping_key,
|
|
DECODE (
|
|
k.alg_onrgoedkenmerk_waarde,
|
|
1,
|
|
SUBSTR (r.alg_ruimte_nr, INSTR (r.alg_ruimte_nr, '.') + 1), -- Rn-part
|
|
2,
|
|
v.alg_verdieping_code || '.' || r.alg_ruimte_nr, -- Vc.Rn
|
|
3,
|
|
SUBSTR ('0' || v.alg_verdieping_volgnr, -2) || '.' || r.alg_ruimte_nr, -- [0]Vn.Rn
|
|
4,
|
|
r.alg_ruimte_nr, -- Rn
|
|
SUBSTR (r.alg_ruimte_nr, INSTR (r.alg_ruimte_nr, '.') + 1)) -- Rn-part
|
|
cadlabel
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_verdieping v,
|
|
(SELECT *
|
|
FROM alg_v_aanwezigonrgoedkenmerk
|
|
WHERE alg_kenmerk_key = -1) k
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = k.alg_onrgoed_key(+);
|
|
|
|
CREATE OR REPLACE VIEW ivet_v_sync_prj_ruimte
|
|
(
|
|
prj_scenario_key,
|
|
prj_ruimte_key,
|
|
alg_verdieping_key,
|
|
cadlabel
|
|
)
|
|
AS
|
|
SELECT r.prj_scenario_key,
|
|
r.prj_ruimte_key,
|
|
r.alg_verdieping_key,
|
|
--r.prj_ruimte_nr,
|
|
DECODE (
|
|
k.alg_onrgoedkenmerk_waarde,
|
|
1,
|
|
SUBSTR (r.prj_ruimte_nr, INSTR (r.prj_ruimte_nr, '.') + 1), -- Rn-part
|
|
2,
|
|
v.alg_verdieping_code || '.' || r.prj_ruimte_nr, -- Vc.Rn
|
|
3,
|
|
SUBSTR ('0' || v.alg_verdieping_volgnr, -2) || '.' || r.prj_ruimte_nr, -- [0]Vn.Rn
|
|
4,
|
|
r.prj_ruimte_nr, -- Rn
|
|
SUBSTR (r.prj_ruimte_nr, INSTR (r.prj_ruimte_nr, '.') + 1)) -- Rn-part
|
|
cadlabel
|
|
FROM prj_ruimte r,
|
|
alg_verdieping v,
|
|
(SELECT *
|
|
FROM alg_v_aanwezigonrgoedkenmerk
|
|
WHERE alg_kenmerk_key = -1) k
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = k.alg_onrgoed_key(+);
|
|
|
|
/* Formatted on 6-9-2011 10:57:39 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_label_wpbewoner
|
|
(
|
|
prs_werkplek_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT wp.prs_werkplek_key,
|
|
DECODE (bew.aantal, 0, '[Vrij]', 1, bew.naam, bew.naam || '...')
|
|
FROM (SELECT prs_werkplek_key FROM prs_werkplek) wp
|
|
LEFT JOIN
|
|
( SELECT pw.prs_werkplek_key,
|
|
COUNT ( * ) aantal,
|
|
MAX (p.prs_perslid_naam_full) naam
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_v_perslid_fullnames p
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key
|
|
GROUP BY pw.prs_werkplek_key) bew
|
|
ON wp.prs_werkplek_key = bew.prs_werkplek_key;
|
|
|
|
/* Formatted on 19-4-2012 17:00:48 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_label_bg_match
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT a.prs_alg_ruimte_key,
|
|
DECODE (
|
|
SIGN (ROUND ( (b.opp / (a.aantal * 7)) * 100, 0) - 110),
|
|
1,
|
|
2, -- Te Leeg
|
|
DECODE (
|
|
SIGN (ROUND ( (b.opp / (a.aantal * 7)) * 100, 0) - 90),
|
|
-1,
|
|
1, -- Te vol
|
|
0 -- Volgens norm
|
|
)
|
|
)
|
|
FROM ( SELECT wp.prs_alg_ruimte_key,
|
|
COUNT (pw.prs_perslid_key) aantal
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek wp
|
|
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
|
|
GROUP BY wp.prs_alg_ruimte_key) a
|
|
LEFT JOIN
|
|
(SELECT r.alg_ruimte_key,
|
|
COALESCE (r.alg_ruimte_bruto_vloeropp, 0) opp
|
|
FROM alg_v_aanwezigruimte r) b
|
|
ON a.prs_alg_ruimte_key = b.alg_ruimte_key;
|
|
|
|
/* Formatted on 19-4-2012 17:00:48 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_label_bg_delta
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT a.prs_alg_ruimte_key, TO_CHAR (ROUND (b.opp - (a.aantal * 7), 2))
|
|
FROM ( SELECT wp.prs_alg_ruimte_key,
|
|
COUNT (pw.prs_perslid_key) aantal
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek wp
|
|
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
|
|
GROUP BY wp.prs_alg_ruimte_key) a
|
|
LEFT JOIN
|
|
(SELECT r.alg_ruimte_key,
|
|
COALESCE (r.alg_ruimte_bruto_vloeropp, 0) opp
|
|
FROM alg_v_aanwezigruimte r) b
|
|
ON a.prs_alg_ruimte_key = b.alg_ruimte_key;
|
|
|
|
/* Formatted on 19-4-2012 17:00:48 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_label_gemopp_pp
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT a.prs_alg_ruimte_key, TO_CHAR (ROUND (b.opp / a.aantal, 2))
|
|
FROM ( SELECT wp.prs_alg_ruimte_key,
|
|
COUNT (pw.prs_perslid_key) aantal
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek wp
|
|
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
|
|
GROUP BY wp.prs_alg_ruimte_key) a
|
|
LEFT JOIN
|
|
(SELECT r.alg_ruimte_key,
|
|
COALESCE (r.alg_ruimte_bruto_vloeropp, 0) opp
|
|
FROM alg_v_aanwezigruimte r) b
|
|
ON a.prs_alg_ruimte_key = b.alg_ruimte_key;
|
|
|
|
/* Formatted on 16-3-2012 15:40:50 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_thema_ruimte_afd
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
--waarde_key
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, '[Geen]',
|
|
1, SUBSTR (y.prs_afdeling_omschrijving, 1, 60),
|
|
'Meer dan 1 afdeling!')
|
|
--DECODE (y.aantal, NULL, -1, 1, y.prs_afdeling_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) x
|
|
LEFT JOIN
|
|
( SELECT w.prs_alg_ruimte_key,
|
|
MIN (a.prs_afdeling_omschrijving)
|
|
prs_afdeling_omschrijving,
|
|
MIN (a.prs_afdeling_key) prs_afdeling_key,
|
|
COUNT (DISTINCT a.prs_afdeling_key) aantal
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek w,
|
|
prs_v_aanwezigperslid p,
|
|
prs_afdeling a
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY w.prs_alg_ruimte_key) y
|
|
ON x.alg_ruimte_key = y.prs_alg_ruimte_key
|
|
UNION ALL
|
|
SELECT NULL, SUBSTR (a.prs_afdeling_omschrijving, 1, 60) --, a.prs_afdeling_key
|
|
FROM prs_afdeling a
|
|
WHERE a.prs_afdeling_verwijder IS NULL
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek w,
|
|
prs_v_aanwezigperslid p
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT DISTINCT NULL, SUBSTR (a.prs_afdeling_omschrijving, 1, 60) --, a.prs_afdeling_key
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_v_aanwezigperslid p,
|
|
prs_afdeling a
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_werkplek w
|
|
WHERE w.prs_werkplek_key = pw.prs_werkplek_key)
|
|
/
|
|
|
|
/* Formatted on 16-3-2012 15:40:50 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_thema_ruimte_kpn
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
--waarde_key
|
|
)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (y.aantal,
|
|
NULL, '[Geen]',
|
|
1, SUBSTR (y.prs_kostenplaats_nr, 1, 30),
|
|
'Meer dan 1 kostenplaats!')
|
|
--DECODE (y.aantal, NULL, -1, 1, y.prs_kostenplaats_key, NULL)
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) x
|
|
LEFT JOIN
|
|
( SELECT w.prs_alg_ruimte_key,
|
|
MIN (kp.prs_kostenplaats_nr) prs_kostenplaats_nr,
|
|
MIN (kp.prs_kostenplaats_key) prs_kostenplaats_key,
|
|
COUNT (DISTINCT kp.prs_kostenplaats_key) aantal
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek w,
|
|
prs_v_aanwezigperslid p,
|
|
prs_afdeling a,
|
|
prs_kostenplaats kp
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
GROUP BY w.prs_alg_ruimte_key) y
|
|
ON x.alg_ruimte_key = y.prs_alg_ruimte_key
|
|
UNION ALL
|
|
SELECT NULL, SUBSTR (kp.prs_kostenplaats_nr, 1, 30) --, kp.prs_kostenplaats_key
|
|
FROM prs_v_aanwezigkostenplaats kp
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_werkplek w,
|
|
prs_v_aanwezigperslid p,
|
|
prs_afdeling a
|
|
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
|
AND pw.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key)
|
|
UNION ALL
|
|
SELECT DISTINCT NULL, SUBSTR (kp.prs_kostenplaats_nr, 1, 30) --, kp.prs_kostenplaats_key
|
|
FROM prs_perslidwerkplek pw,
|
|
prs_v_aanwezigperslid p,
|
|
prs_afdeling a,
|
|
prs_kostenplaats kp
|
|
WHERE pw.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_werkplek w
|
|
WHERE w.prs_werkplek_key = pw.prs_werkplek_key)
|
|
/
|
|
|
|
/* Formatted on 21-12-2012 17:44:55 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_thema_schprog
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT a.alg_ruimte_key,
|
|
COALESCE (b.schprog, '[Onbekend]'),
|
|
COALESCE (b.schprog_key, -1)
|
|
FROM (SELECT r.alg_ruimte_key
|
|
FROM alg_v_aanwezigruimte r) a
|
|
LEFT JOIN
|
|
(SELECT ok.alg_onrgoed_key,
|
|
ud.fac_usrdata_omschr schprog,
|
|
ud.fac_usrdata_key schprog_key
|
|
FROM alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_v_aanwezigusrdata ud
|
|
WHERE ok.alg_kenmerk_key = 1020 -- schoonmaakprog.
|
|
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
|
|
UNION ALL
|
|
SELECT NULL,
|
|
ud.fac_usrdata_omschr schprog,
|
|
ud.fac_usrdata_key schprog_key
|
|
FROM fac_v_aanwezigusrdata ud
|
|
WHERE ud.fac_usrtab_key = 2301
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM alg_v_aanwezigonrgoedkenmerk ok
|
|
WHERE ok.alg_kenmerk_key = 1020 -- schoonmaakprog.
|
|
AND fac.safe_to_number (
|
|
ok.alg_onrgoedkenmerk_waarde
|
|
) = ud.fac_usrdata_key)
|
|
/
|
|
|
|
/* Formatted on 21-12-2012 17:44:55 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE TRIGGER ivet_v_thema_schprog_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON ivet_v_thema_schprog
|
|
BEGIN
|
|
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
|
|
THEN
|
|
DELETE FROM alg_onrgoedkenmerk
|
|
WHERE alg_onrgoed_key = :new.alg_ruimte_key
|
|
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) <>
|
|
:new.waarde_key;
|
|
END IF;
|
|
|
|
BEGIN
|
|
IF :new.waarde_key <> -1
|
|
THEN
|
|
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
|
|
alg_onrgoed_niveau,
|
|
alg_kenmerk_key,
|
|
alg_onrgoedkenmerk_waarde)
|
|
VALUES (:new.alg_ruimte_key,
|
|
'R',
|
|
1020,
|
|
:new.waarde_key);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
|
|
THEN
|
|
NULL;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 19-4-2012 16:14:40 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW ivet_v_thema_schprog_ro
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, ud.fac_usrdata_omschr
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_v_aanwezigusrdata ud
|
|
WHERE r.alg_ruimte_key = ok.alg_onrgoed_key
|
|
AND ok.alg_kenmerk_key = 1020 -- schoonmaakprog.
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
/
|
|
|
|
|
|
-- Synchronisatiemechanisme om dagelijks de schoonmaakprogramma kenmerken bij de
|
|
-- ruimte te synchroniseren met de objecten die voor de schoonmaak gebruikt worden.
|
|
CREATE OR REPLACE PROCEDURE ivet_export_sync_schoonmaak (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
CURSOR c (
|
|
c_srtgroep_key NUMBER)
|
|
IS
|
|
SELECT ins_srtdeel_key,
|
|
alg_ruimte_key,
|
|
alg_ruimte_aanduiding,
|
|
ins_srtdeel_omschrijving
|
|
FROM ins_srtdeel sd,
|
|
alg_v_ruimte_gegevens rg,
|
|
fac_usrdata ud,
|
|
alg_onrgoedkenmerk aogk
|
|
WHERE aogk.alg_onrgoed_key = rg.alg_ruimte_key
|
|
AND aogk.alg_kenmerk_key = 1020
|
|
AND fac.safe_to_number (aogk.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key
|
|
AND ud.fac_usrdata_code = ins_srtdeel_code
|
|
AND sd.ins_srtgroep_key = c_srtgroep_key;
|
|
|
|
v_srtgroep_key NUMBER;
|
|
v_srtdeel_key NUMBER;
|
|
v_deel_key NUMBER;
|
|
BEGIN
|
|
SELECT ins_srtgroep_key
|
|
INTO v_srtgroep_key
|
|
FROM ins_srtgroep
|
|
WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_omschrijving = 'Schoonmaak';
|
|
|
|
-- aanmaken update ins_srtdeel
|
|
-- srtdelen worden gesynchroniseerd met de eigentabel met key
|
|
INSERT INTO ins_srtdeel (ins_srtgroep_key,
|
|
ins_srtdeel_code,
|
|
ins_srtdeel_omschrijving,
|
|
ins_srtdeel_binding)
|
|
SELECT v_srtgroep_key,
|
|
fac_usrdata_code,
|
|
fac_usrdata_omschr,
|
|
1
|
|
FROM fac_usrdata ud
|
|
WHERE fac_usrtab_key = 2301
|
|
AND NOT EXISTS
|
|
(SELECT ins_srtdeel_key
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_verwijder IS NULL
|
|
AND ins_srtdeel_code = ud.fac_usrdata_code
|
|
AND ins_srtgroep_key = v_srtgroep_key);
|
|
|
|
UPDATE ins_srtdeel
|
|
SET ins_srtdeel_omschrijving =
|
|
(SELECT fac_usrdata_omschr
|
|
FROM fac_usrdata
|
|
WHERE fac_usrtab_key = 2301
|
|
AND fac_usrdata_verwijder IS NULL
|
|
AND fac_usrdata_code = ins_srtdeel_code)
|
|
WHERE ins_srtgroep_key = v_srtgroep_key AND ins_srtdeel_verwijder IS NULL;
|
|
|
|
FOR rec IN c (v_srtgroep_key)
|
|
LOOP
|
|
BEGIN
|
|
BEGIN
|
|
SELECT d.ins_deel_key, d.ins_srtdeel_key
|
|
INTO v_deel_key, v_srtdeel_key
|
|
FROM ins_deel d, ins_srtdeel sd
|
|
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = v_srtgroep_key
|
|
AND d.ins_alg_ruimte_key = rec.alg_ruimte_key
|
|
AND d.ins_deel_vervaldatum IS NULL;
|
|
|
|
IF v_srtdeel_key <> rec.ins_srtdeel_key
|
|
THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_vervaldatum = SYSDATE
|
|
WHERE ins_deel_key = v_deel_key;
|
|
|
|
v_deel_key := -1;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_deel_key := -1;
|
|
END;
|
|
|
|
IF v_deel_key = -1
|
|
THEN
|
|
INSERT INTO ins_deel (ins_srtdeel_key,
|
|
ins_alg_ruimte_key,
|
|
ins_alg_ruimte_type,
|
|
ins_deel_omschrijving,
|
|
ins_deel_actief)
|
|
VALUES (rec.ins_srtdeel_key,
|
|
rec.alg_ruimte_key,
|
|
'R',
|
|
SUBSTR (rec.alg_ruimte_aanduiding || ' / ' || rec.ins_srtdeel_omschrijving,
|
|
1,
|
|
60),
|
|
1)
|
|
RETURNING ins_deel_key
|
|
INTO v_deel_key;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
-- De schoonmaak wordt van 03:00 tot 03:00 uur uitgevoerd. Vandaar dat we alle tijden met 3
|
|
-- uur moeten corrigeren.
|
|
CREATE OR REPLACE VIEW ivet_v_thema_sch_stat
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT ins_alg_ruimte_key,
|
|
DECODE (SUM (todo),
|
|
0, DECODE (SUM (done), 0, 'Idle',
|
|
'Ready'),
|
|
DECODE (SUM (done), 0, 'Todo',
|
|
'Busy'))
|
|
waarde
|
|
FROM (
|
|
SELECT ins_alg_ruimte_key,
|
|
sc.ins_srtcontrole_key,
|
|
id.ins_deel_omschrijving,
|
|
sc.ins_srtcontrole_omschrijving,
|
|
DECODE (
|
|
SIGN(TRUNC (
|
|
fac.nextcyclusdatedeel (id.ins_deel_key, sc.ins_srtcontrole_key, 1))
|
|
- TRUNC (SYSDATE-3/24)),
|
|
1,
|
|
0,
|
|
1)
|
|
todo,
|
|
(SELECT COUNT ( * )
|
|
FROM ins_deelsrtcontrole dsc
|
|
WHERE dsc.ins_deel_key = id.ins_deel_key
|
|
AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
|
AND TRUNC (dsc.ins_deelsrtcontrole_datum-3/24) = TRUNC (SYSDATE-3/24))
|
|
done
|
|
FROM ins_deel id, ins_srtcontrole sc
|
|
WHERE id.ins_srtdeel_key = sc.ins_srtinstallatie_key
|
|
AND id.ins_deel_verwijder IS NULL
|
|
AND sc.ins_srtcontrole_niveau = 'S' --
|
|
)
|
|
GROUP BY ins_alg_ruimte_key;
|
|
|
|
-- Dagelijkse taak.
|
|
-- Hieronder vallen:
|
|
-- - Synchronsiatie schoonmaakprogramma bij ruimte met schoonmaakobjecten.
|
|
CREATE OR REPLACE PROCEDURE ivet_export_daily_task (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
ivet_export_sync_schoonmaak (p_applname,
|
|
p_applrun,
|
|
p_filedir,
|
|
p_filename);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW ivet_v_thema_cleanroom
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, ud.fac_usrdata_omschr
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_v_aanwezigusrdata ud
|
|
WHERE r.alg_ruimte_key = ok.alg_onrgoed_key
|
|
AND ok.alg_kenmerk_key = 1020 -- schoonmaakprog.
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND ud.fac_usrdata_key = 4465 -- 25-cleanroom
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_ALL
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key,
|
|
prs_bedrijf_naam
|
|
|| ' ('
|
|
|| prs_bedrijf_bezoek_adres
|
|
|| ' - '
|
|
|| prs_bedrijf_bezoek_postcode
|
|
|| ' '
|
|
|| prs_bedrijf_bezoek_plaats
|
|
|| ')'
|
|
Adres
|
|
FROM prs_bedrijf
|
|
WHERE prs_bedrijf_verwijder IS NULL
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_BEZORG
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, ADRES
|
|
FROM ivet_v_adressen_all, prs_kenmerklink
|
|
WHERE prs_kenmerklink_verwijder IS NULL
|
|
AND prs_kenmerklink_niveau = 'B'
|
|
AND prs_kenmerk_key = 1040 -- 1040 Bezorgadres checkbox
|
|
AND prs_kenmerklink_waarde = 1
|
|
AND prs_link_key = prs_bedrijf_key
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_LOCAL
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, ADRES
|
|
FROM ivet_v_adressen_all, prs_kenmerklink
|
|
WHERE prs_kenmerklink_verwijder IS NULL
|
|
AND prs_kenmerklink_niveau = 'B'
|
|
AND prs_kenmerk_key = 1060 -- 1060 Local companies checkbox
|
|
AND prs_kenmerklink_waarde = 1
|
|
AND prs_link_key = prs_bedrijf_key
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_AUTHA
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, ADRES
|
|
FROM ivet_v_adressen_all, prs_kenmerklink
|
|
WHERE prs_kenmerklink_verwijder IS NULL
|
|
AND prs_kenmerklink_niveau = 'B'
|
|
AND prs_kenmerk_key = 1061 -- 1061 Authoriteit(A) checkbox
|
|
AND prs_kenmerklink_waarde = 1
|
|
AND prs_link_key = prs_bedrijf_key
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_AUTHB
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, ADRES
|
|
FROM ivet_v_adressen_all, prs_kenmerklink
|
|
WHERE prs_kenmerklink_verwijder IS NULL
|
|
AND prs_kenmerklink_niveau = 'B'
|
|
AND prs_kenmerk_key = 1062 -- 1062 Authoriteit(B) checkbox
|
|
AND prs_kenmerklink_waarde = 1
|
|
AND prs_link_key = prs_bedrijf_key
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_DIVERSEN
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, ADRES
|
|
FROM ivet_v_adressen_all, prs_kenmerklink
|
|
WHERE prs_kenmerklink_verwijder IS NULL
|
|
AND prs_kenmerklink_niveau = 'B'
|
|
AND prs_kenmerk_key = 1063 -- 1063 Diversen checkbox
|
|
AND prs_kenmerklink_waarde = 1
|
|
AND prs_link_key = prs_bedrijf_key
|
|
/
|
|
|
|
-- IVET#29054
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_BEZORG_NL
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, ADRES
|
|
FROM ivet_v_adressen_all, prs_kenmerklink
|
|
WHERE prs_kenmerklink_verwijder IS NULL
|
|
AND prs_kenmerklink_niveau = 'B'
|
|
AND prs_kenmerk_key = 1080 -- 1080 Nederland checkbox
|
|
AND prs_kenmerklink_waarde = 1
|
|
AND prs_link_key = prs_bedrijf_key
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW IVET_V_ADRESSEN_BEZORG_INT
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
ADRES
|
|
)
|
|
AS
|
|
SELECT prs_bedrijf_key, ADRES
|
|
FROM ivet_v_adressen_all, prs_kenmerklink
|
|
WHERE prs_kenmerklink_verwijder IS NULL
|
|
AND prs_kenmerklink_niveau = 'B'
|
|
AND prs_kenmerk_key = 1081 -- 1081 International buiten EU checkbox
|
|
AND prs_kenmerklink_waarde = 1
|
|
AND prs_link_key = prs_bedrijf_key
|
|
/
|
|
|
|
-- IVET#26822
|
|
-- Controleert per internval of er nieuwe transportaanvragen binnen EU zijn en stuurt deze naar gebruiker DistributionCoordination
|
|
CREATE OR REPLACE VIEW IVET_V_NOTI_MLD_TRANSPORT
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT 'MLDNEW',
|
|
NULL,
|
|
69501, -- User DistributionCoordination
|
|
'Nieuwe melding: '
|
|
|| m.mld_melding_key
|
|
|| ' '
|
|
|| std.mld_stdmelding_omschrijving
|
|
|| ' - '
|
|
|| dat.fac_usrdata_omschr,
|
|
m.mld_melding_key,
|
|
NULL
|
|
FROM mld_melding m,
|
|
fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata dat,
|
|
mld_stdmelding std
|
|
WHERE mld_melding_status IN (0, 2, 3, 4, 7) -- open meldingen
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND ( (tr.fac_tracking_refkey = m.mld_melding_key
|
|
AND str.fac_srtnotificatie_xmlnode IN ('melding')))
|
|
AND fac_srtnotificatie_code = 'MLDNEW'
|
|
AND tr.fac_tracking_datum >
|
|
(SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval / 24
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'IVET_V_NOTI_MLD_TRANSPORT')
|
|
AND m.mld_stdmelding_key = 2821 -- R-Transportaanvraag-transportaanvraag
|
|
AND mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = 13641 -- Kenmerk Land suggest
|
|
AND mkm.mld_kenmerkmelding_waarde IS NOT NULL
|
|
AND mkm.mld_kenmerkmelding_verwijder IS NULL
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND dat.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND mkm.mld_kenmerkmelding_waarde = dat.fac_usrdata_key
|
|
/
|
|
|
|
-- IVET#28273
|
|
-- Controleert per internval of er nieuwe transportaanvragen buiten EU zijn en stuurt deze naar gebruiker DistributionCoordination
|
|
CREATE OR REPLACE VIEW IVET_V_NOTI_MLD_TRANS_BUITENEU
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT 'MLDNEW',
|
|
NULL,
|
|
69501, -- User DistributionCoordination
|
|
'Nieuwe melding: '
|
|
|| m.mld_melding_key
|
|
|| ' '
|
|
|| std.mld_stdmelding_omschrijving
|
|
|| ' - '
|
|
|| dat.fac_usrdata_omschr,
|
|
m.mld_melding_key,
|
|
NULL
|
|
FROM mld_melding m,
|
|
fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata dat,
|
|
mld_stdmelding std
|
|
WHERE mld_melding_status IN (0, 2, 3, 4, 7) -- open meldingen
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND ( (tr.fac_tracking_refkey = m.mld_melding_key
|
|
AND str.fac_srtnotificatie_xmlnode IN ('melding')))
|
|
AND fac_srtnotificatie_code = 'MLDNEW'
|
|
AND tr.fac_tracking_datum >
|
|
(SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval / 24
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'IVET_V_NOTI_MLD_TRANS_BUITENEU')
|
|
AND m.mld_stdmelding_key = 3181 -- R-Transportaanvraag-transportaanvraag buiten eu
|
|
AND mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = 13662 -- Kenmerk Wereldanden suggest
|
|
AND mkm.mld_kenmerkmelding_waarde IS NOT NULL
|
|
AND mkm.mld_kenmerkmelding_verwijder IS NULL
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND dat.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND mkm.mld_kenmerkmelding_waarde = dat.fac_usrdata_key
|
|
/
|
|
|
|
|
|
-- IVET#31601
|
|
-- Controleert per internval of er nieuwe ADR transportaanvragen zijn en stuurt deze naar gebruiker DistributionCoordination
|
|
CREATE OR REPLACE VIEW IVET_V_NOTI_MLD_ADR_TRANSPORT
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT 'MLDNEW',
|
|
NULL,
|
|
69501, -- User DistributionCoordination
|
|
'Nieuwe melding: '
|
|
|| m.mld_melding_key
|
|
|| ' '
|
|
|| std.mld_stdmelding_omschrijving
|
|
|| ' - '
|
|
|| dat.fac_usrdata_omschr
|
|
oms,
|
|
m.mld_melding_key,
|
|
NULL
|
|
FROM mld_melding m,
|
|
fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata dat,
|
|
mld_stdmelding std
|
|
WHERE mld_melding_status IN (0, 2, 3, 4, 7) -- open meldingen
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND ( (tr.fac_tracking_refkey = m.mld_melding_key
|
|
AND str.fac_srtnotificatie_xmlnode IN ('melding')))
|
|
AND fac_srtnotificatie_code = 'MLDNEW'
|
|
AND tr.fac_tracking_datum >
|
|
(SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval / 24
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'IVET_V_NOTI_MLD_ADR_TRANSPORT')
|
|
AND m.mld_stdmelding_key = 3742 -- ADR ransportaanvraag buiten eu
|
|
AND mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = 16403 -- Kenmerk Wereldanden suggest
|
|
AND mkm.mld_kenmerkmelding_waarde IS NOT NULL
|
|
AND mkm.mld_kenmerkmelding_verwijder IS NULL
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND dat.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND mkm.mld_kenmerkmelding_waarde = dat.fac_usrdata_key
|
|
UNION ALL
|
|
SELECT 'MLDNEW',
|
|
NULL,
|
|
69501, -- User DistributionCoordination
|
|
'Nieuwe melding: '
|
|
|| m.mld_melding_key
|
|
|| ' '
|
|
|| std.mld_stdmelding_omschrijving
|
|
|| ' - '
|
|
|| dat.fac_usrdata_omschr,
|
|
m.mld_melding_key,
|
|
NULL
|
|
FROM mld_melding m,
|
|
fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
mld_kenmerkmelding mkm,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrdata dat,
|
|
mld_stdmelding std
|
|
WHERE mld_melding_status IN (0, 2, 3, 4, 7) -- open meldingen
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND ( (tr.fac_tracking_refkey = m.mld_melding_key
|
|
AND str.fac_srtnotificatie_xmlnode IN ('melding')))
|
|
AND fac_srtnotificatie_code = 'MLDNEW'
|
|
AND tr.fac_tracking_datum >
|
|
(SELECT fac_notificatie_job_nextrun
|
|
- fac_notificatie_job_interval / 24
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view =
|
|
'IVET_V_NOTI_MLD_ADR_TRANSPORT')
|
|
AND m.mld_stdmelding_key = 3741 -- ADR transportaanvraag binnen eu
|
|
AND mkm.mld_melding_key = m.mld_melding_key
|
|
AND mkm.mld_kenmerk_key = 16362 -- Kenmerk Lidstaten EU suggest
|
|
AND mkm.mld_kenmerkmelding_waarde IS NOT NULL
|
|
AND mkm.mld_kenmerkmelding_verwijder IS NULL
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND dat.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND mkm.mld_kenmerkmelding_waarde = dat.fac_usrdata_key
|
|
/
|
|
|
|
-- IVET#29243
|
|
-- Controleert elk uur of er een reservering is gemaakt (=key 34), gewijzigd (=key 35) of verwijderd (=key 38)
|
|
-- op de activiteiten VC (=key 21) & No-VC meeting (=key 61) en stuurt deze naar het servicepoint (=key 28881)
|
|
CREATE OR REPLACE VIEW IVET_V_NOTI_VC_RESREMINDER
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
'RESUPD',
|
|
NULL,
|
|
28881,
|
|
'Reservering '
|
|
|| rrr.res_reservering_key
|
|
|| '/'
|
|
|| rrr.res_rsv_ruimte_volgnr
|
|
|| ' ('
|
|
|| res_rsv_ruimte_van
|
|
|| ' - '
|
|
|| res_ruimte_nr
|
|
|| ') is op '
|
|
|| fac_tracking_datum
|
|
|| ' nieuw aangemaakt door '
|
|
|| pf.prs_perslid_naam_full
|
|
text,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND res_activiteit_key IN (21, 61)
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND tr.prs_perslid_key = pf.prs_perslid_key(+)
|
|
AND ( (tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
|
AND str.fac_srtnotificatie_xmlnode IN
|
|
('reservering', 'xreservering')))
|
|
AND str.fac_srtnotificatie_key = 34
|
|
AND tr.fac_tracking_datum > SYSDATE - 1 / 24
|
|
UNION ALL
|
|
SELECT DISTINCT 'RESUPD',
|
|
NULL,
|
|
28881,
|
|
tr.fac_tracking_oms text,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND res_activiteit_key IN (21, 61)
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND tr.prs_perslid_key = pf.prs_perslid_key(+)
|
|
AND ( (tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
|
AND str.fac_srtnotificatie_xmlnode IN
|
|
('reservering', 'xreservering')))
|
|
AND str.fac_srtnotificatie_key = 35
|
|
AND ( fac_tracking_oms LIKE '%gewijzigd%Ruimte:%'
|
|
OR fac_tracking_oms LIKE '%gewijzigd%Van:%'
|
|
OR fac_tracking_oms LIKE '%gewijzigd%Tot:%'
|
|
OR fac_tracking_oms LIKE '%adjusted%Room:%'
|
|
OR fac_tracking_oms LIKE '%adjusted%From:%'
|
|
OR fac_tracking_oms LIKE '%adjusted%Until:%')
|
|
AND tr.fac_tracking_datum > SYSDATE - 1 / 24
|
|
UNION ALL
|
|
SELECT DISTINCT
|
|
'RESUPD',
|
|
NULL,
|
|
28881,
|
|
'Reservering '
|
|
|| rrr.res_reservering_key
|
|
|| '/'
|
|
|| rrr.res_rsv_ruimte_volgnr
|
|
|| ' ('
|
|
|| res_rsv_ruimte_van
|
|
|| ' - '
|
|
|| res_ruimte_nr
|
|
|| ') is op '
|
|
|| fac_tracking_datum
|
|
|| ' verwijderd door '
|
|
|| pf.prs_perslid_naam_full
|
|
text,
|
|
res_reservering_key,
|
|
res_rsv_ruimte_key
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
fac_tracking tr,
|
|
fac_srtnotificatie str,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND res_activiteit_key IN (21, 61)
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND tr.prs_perslid_key = pf.prs_perslid_key(+)
|
|
AND ( (tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
|
AND str.fac_srtnotificatie_xmlnode IN
|
|
('reservering', 'xreservering')))
|
|
AND str.fac_srtnotificatie_key = 38
|
|
AND tr.fac_tracking_datum > SYSDATE - 1 / 24;
|
|
|
|
/* Formatted on 15-1-2016 17:00:30 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW ivet_v_rap_mld_telaat_window
|
|
(
|
|
hide_f_sortering,
|
|
prio,
|
|
html_nummer,
|
|
fclt_f_productgroep,
|
|
fclt_f_melding,
|
|
datum,
|
|
plaats,
|
|
omschrijving,
|
|
melder,
|
|
fclt_f_status,
|
|
fclt_f_overschrijding,
|
|
behandelaar,
|
|
einddatum
|
|
)
|
|
AS
|
|
WITH x
|
|
AS ( -- Lopende meldingen te laat opgepakt!
|
|
SELECT m.mld_melding_key, -1 acp, 0 afm
|
|
FROM mld_melding m, fac_tracking t
|
|
WHERE m.mld_melding_status NOT IN (5, 6, 1) -- 5-Afgemeld, 6-Verwerkt, 1-Afgewezen
|
|
AND m.fac_activiteit_key IS NULL
|
|
AND m.mld_melding_key = t.fac_tracking_refkey(+)
|
|
AND t.fac_srtnotificatie_key(+) = 21 -- MLDACP
|
|
AND m.mld_melding_acceptdatum_std < COALESCE (t.fac_tracking_datum, TRUNC (SYSDATE))
|
|
UNION -- Lopende meldingen te laat gesloten!
|
|
SELECT m.mld_melding_key, 0 acp, -1 afm
|
|
FROM mld_melding m, mld_stdmelding sm
|
|
WHERE m.mld_melding_status NOT IN (5, 6, 1) -- 5-Afgemeld, 6-Verwerkt, 1-Afgewezen
|
|
AND m.fac_activiteit_key IS NULL
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND DECODE (COALESCE (sm.mld_stdmelding_planbaar, 0), 0, m.mld_melding_einddatum_std, m.mld_melding_einddatum) < TRUNC (SYSDATE)
|
|
UNION -- Voorgaande 2 werkdagen gesloten meldingen te laat opgepakt of gesloten!
|
|
SELECT mldafm.mld_melding_key,
|
|
SIGN(mldafm.mld_melding_acceptdatum_std - COALESCE (mldacp.fac_tracking_datum, mldafm.fac_tracking_datum))
|
|
acp,
|
|
SIGN(DECODE (COALESCE (mldafm.mld_stdmelding_planbaar, 0), 0, mldafm.mld_melding_einddatum_std, mldafm.mld_melding_einddatum) - mldafm.fac_tracking_datum)
|
|
afm
|
|
FROM (SELECT m.mld_melding_key,
|
|
m.mld_melding_acceptdatum_std,
|
|
sm.mld_stdmelding_planbaar,
|
|
m.mld_melding_einddatum_std,
|
|
m.mld_melding_einddatum,
|
|
t.fac_tracking_datum
|
|
FROM fac_tracking t, mld_melding m, mld_stdmelding sm
|
|
WHERE t.fac_srtnotificatie_key IN (22, 27) -- MLDAFM/MLDREJ
|
|
AND t.fac_tracking_datum > TRUNC (SYSDATE - 7) -- Tbv. performance!
|
|
--AND fac.datumtijdplusuitvoertijd (t.fac_tracking_datum, 2, 'D') > TRUNC(SYSDATE)
|
|
AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) <= 2 -- Exclusief SYSDATE!
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key) mldafm
|
|
LEFT JOIN
|
|
fac_tracking mldacp
|
|
ON mldafm.mld_melding_key = mldacp.fac_tracking_refkey
|
|
AND mldacp.fac_srtnotificatie_key = 21 -- MLDACP
|
|
WHERE (mldafm.mld_melding_acceptdatum_std < COALESCE (mldacp.fac_tracking_datum, mldafm.fac_tracking_datum)
|
|
OR DECODE (COALESCE (mldafm.mld_stdmelding_planbaar, 0), 0, mldafm.mld_melding_einddatum_std, mldafm.mld_melding_einddatum) < mldafm.fac_tracking_datum))
|
|
SELECT mld_melding_einddatum_std,
|
|
DECODE (m.mld_melding_spoed, 1, 'Kritisch', 2, 'Hoog', 3, 'Normaal', 'Laag')
|
|
prio,
|
|
--sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key),
|
|
'<a onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=fo&'
|
|
|| 'mld_key='
|
|
|| m.mld_melding_key
|
|
|| '")''>'
|
|
|| sd.ins_srtdiscipline_prefix
|
|
|| TO_CHAR (m.mld_melding_key)
|
|
|| '</a>'
|
|
nummer,
|
|
md.ins_discipline_omschrijving,
|
|
sm.mld_stdmelding_omschrijving,
|
|
m.mld_melding_datum datum,
|
|
DECODE (
|
|
og.alg_type,
|
|
'R',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code
|
|
|| '-'
|
|
|| og.alg_ruimte_nr
|
|
|| ' '
|
|
|| og.alg_ruimte_omschrijving,
|
|
'V',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code,
|
|
'G',
|
|
l.alg_locatie_code || '-' || og.alg_gebouw_code,
|
|
'T',
|
|
l.alg_locatie_code || '-' || og.alg_terreinsector_code,
|
|
l.alg_locatie_code)
|
|
plaats,
|
|
m.mld_melding_omschrijving,
|
|
pm.prs_perslid_naam_full,
|
|
ms.mld_statuses_omschrijving,
|
|
DECODE (x.acp, -1, DECODE (x.afm, -1, 'Acc.+Uitv.', 'Acceptatie'), 'Uitvoering')
|
|
overschrijding,
|
|
pb.prs_perslid_naam_full,
|
|
m.mld_melding_einddatum_std einddatum
|
|
FROM x,
|
|
mld_melding m,
|
|
mld_statuses ms,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
alg_locatie l,
|
|
alg_v_onroerendgoed_gegevens og,
|
|
prs_v_perslid_fullnames_all pm,
|
|
prs_v_perslid_fullnames_all pb
|
|
WHERE x.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_melding_indult = 0
|
|
AND m.mld_melding_status = ms.mld_statuses_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_stdmelding_slabewaken = 1
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
AND m.prs_perslid_key_voor = pm.prs_perslid_key
|
|
AND m.mld_melding_behandelaar_key = pb.prs_perslid_key(+);
|
|
|
|
-- IVET#34141 10 maandelijkse reminder tbv AMI meldingen
|
|
CREATE OR REPLACE VIEW IVET_V_NOTI_MLD_AMI
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT 'MLDINF',
|
|
NULL,
|
|
82761, -- User AMI
|
|
'LET OP: Bewaartermijn overschreden (R'
|
|
|| m.mld_melding_key
|
|
|| ')',
|
|
m.mld_melding_key,
|
|
NULL
|
|
FROM mld_melding m, mld_stdmelding std
|
|
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = 1761
|
|
AND m.mld_melding_status != 1
|
|
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE - 305);
|
|
|
|
|
|
-- IVET#38124 rappor bo klussen lijst
|
|
-- -- 2881 = bo verhuizingen, 19001 = handyman
|
|
-- Kenmerken zijn verschillende soort kenmerken Naam, Van, Contactpersoon, Telefoon met een volgnummer
|
|
CREATE OR REPLACE VIEW ivet_v_rap_mldklussen
|
|
(
|
|
soort,
|
|
melding,
|
|
omschrijving,
|
|
datum,
|
|
naam,
|
|
van,
|
|
naar,
|
|
contactpersoon,
|
|
telnr,
|
|
meubilair,
|
|
gewenste_bureauhoogte,
|
|
werkaanvraagnummer,
|
|
opmerking,
|
|
gereed
|
|
)
|
|
AS
|
|
SELECT '0. Leeg' soort,
|
|
NULL melding,
|
|
NULL omschrijving,
|
|
NULL datum,
|
|
NULL naam,
|
|
NULL van,
|
|
NULL naar,
|
|
NULL contactpersoon,
|
|
NULL telnr,
|
|
NULL meubilair,
|
|
NULL gewenste_bureauhoogte,
|
|
NULL werkaanvraagnummerr,
|
|
NULL opmerking,
|
|
NULL gereed
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '1. Verhuizing BO' soort,
|
|
'R' || m.mld_melding_key melding,
|
|
m.mld_melding_opmerking omschrijving,
|
|
(SELECT TO_DATE (mld_kenmerkmelding_waarde, 'DD-MM-YYYY')
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = 11961)
|
|
datum,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key IN
|
|
(7141,
|
|
7142,
|
|
7143,
|
|
7144,
|
|
7145,
|
|
7146,
|
|
7147,
|
|
7148,
|
|
7149)
|
|
AND k2.mld_kenmerk_groep = m2.mld_kenmerk_groep)
|
|
naam,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key IN
|
|
(7186,
|
|
7187,
|
|
7063,
|
|
7183,
|
|
7185,
|
|
7188,
|
|
7189,
|
|
7190,
|
|
7191)
|
|
AND k2.mld_kenmerk_groep = m2.mld_kenmerk_groep)
|
|
van,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key IN
|
|
(7203,
|
|
7204,
|
|
7205,
|
|
7206,
|
|
7207,
|
|
7208,
|
|
7209,
|
|
7064,
|
|
7202)
|
|
AND k2.mld_kenmerk_groep = m2.mld_kenmerk_groep)
|
|
naar,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = 11962)
|
|
contactpersoon,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key IN
|
|
(7192,
|
|
7193,
|
|
7194,
|
|
7195,
|
|
7197,
|
|
7198,
|
|
7199,
|
|
7200,
|
|
7201)
|
|
AND k2.mld_kenmerk_groep = m2.mld_kenmerk_groep)
|
|
telnr,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key IN
|
|
(7103,
|
|
7150,
|
|
7151,
|
|
7152,
|
|
7153,
|
|
7154,
|
|
7155,
|
|
7156,
|
|
7157)
|
|
AND k2.mld_kenmerk_groep = m2.mld_kenmerk_groep)
|
|
meubilair,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k2, fac_usrdata fu
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = k2.mld_kenmerk_key
|
|
AND k2.mld_srtkenmerk_key IN
|
|
(7481,
|
|
7482,
|
|
7483,
|
|
7484,
|
|
7485,
|
|
7486,
|
|
7486,
|
|
7487,
|
|
7488)
|
|
AND k2.mld_kenmerk_groep = m2.mld_kenmerk_groep
|
|
AND fu.fac_usrtab_key = 3201
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde)
|
|
gewenste_bureauhoogte,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_melding_key = m2.mld_melding_key
|
|
AND km.mld_kenmerk_key = 7210)
|
|
werkaanvraagnummerr,
|
|
NULL opmerking,
|
|
NULL gereed
|
|
FROM (SELECT DISTINCT mld_melding_key, k.mld_kenmerk_groep
|
|
FROM mld_kenmerkmelding km, mld_kenmerk k
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND mld_kenmerk_groep > 0) m2,
|
|
mld_melding m
|
|
WHERE m2.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_stdmelding_key = 2881
|
|
AND m.mld_melding_status IN (0, 2, 3, 99, 4, 7)
|
|
UNION ALL
|
|
SELECT '2. Handymanactiviteiten',
|
|
'R' || m.mld_melding_key melding,
|
|
m.mld_melding_opmerking,
|
|
(SELECT TO_DATE (mld_kenmerkmelding_waarde, 'DD-MM-YYYY')
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = 19001)
|
|
datum,
|
|
p.prs_perslid_naam,
|
|
NULL vanl,
|
|
aog.alg_plaatsaanduiding naar,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_melding_key = m.mld_melding_key
|
|
AND km.mld_kenmerk_key = 19081)
|
|
contactpersoon,
|
|
COALESCE (prs_perslid_telefoonnr, prs_perslid_mobiel) telnr,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m, prs_perslid p, alg_v_onroerendgoed_gegevens aog
|
|
WHERE mld_stdmelding_key = 216
|
|
AND m.mld_melding_status IN (0, 2, 3, 99, 4, 7)
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND aog.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys;
|
|
|
|
CREATE OR REPLACE VIEW ivet_v_rap_mldkenmerk_gebruik
|
|
AS
|
|
SELECT mld_kenmerk_key key,
|
|
'Kenmerk' soort,
|
|
niveau,
|
|
sk.mld_srtkenmerk_omschrijving omschrijving,
|
|
mld_stdmelding_key melding_key,
|
|
mld_stdmelding_omschrijving melding_omschrijving,
|
|
ins_discipline_key vakgroep_key,
|
|
ins_discipline_omschrijving vakgroep_omschrijving,
|
|
ins_srtdiscipline_key vakgroeptype_key,
|
|
ins_srtdiscipline_omschrijving vakgroeptype_omschrijving,
|
|
COALESCE (
|
|
NVL2 (mld_stdmelding_verwijder, 'Melding verwijderd', NULL),
|
|
NVL2 (ins_discipline_verwijder, 'Vakgroep verwijderd', NULL),
|
|
NVL2 (ins_srtdiscipline_verwijder,
|
|
'Vakgroeptype verwijderd',
|
|
NULL),
|
|
NVL2 (mld_srtkenmerk_verwijder, 'Kenmerksoort verwijderd', NULL),
|
|
NULL)
|
|
opmerking
|
|
FROM (SELECT mld_kenmerk_key,
|
|
'Vakgroeptype' niveau,
|
|
mld_srtkenmerk_key,
|
|
NULL mld_stdmelding_key,
|
|
NULL mld_stdmelding_omschrijving,
|
|
NULL mld_stdmelding_vervaldatum,
|
|
NULL mld_stdmelding_verwijder,
|
|
NULL ins_discipline_key,
|
|
NULL ins_discipline_omschrijving,
|
|
NULL ins_discipline_verwijder,
|
|
isd.ins_srtdiscipline_key,
|
|
ins_srtdiscipline_omschrijving,
|
|
ins_srtdiscipline_verwijder
|
|
FROM mld_kenmerk mk, ins_srtdiscipline isd
|
|
WHERE mld_kenmerk_verwijder IS NULL
|
|
AND mld_kenmerk_niveau = 'T'
|
|
AND mk.mld_stdmelding_key = isd.ins_srtdiscipline_key
|
|
UNION ALL
|
|
SELECT mld_kenmerk_key,
|
|
'Vakgroep' niveau,
|
|
mld_srtkenmerk_key,
|
|
NULL mld_stdmelding_key,
|
|
NULL mld_stdmelding_omschrijving,
|
|
NULL mld_stdmelding_vervaldatum,
|
|
NULL mld_stdmelding_verwijder,
|
|
d.ins_discipline_key,
|
|
d.ins_discipline_omschrijving,
|
|
d.ins_discipline_verwijder,
|
|
isd.ins_srtdiscipline_key,
|
|
ins_srtdiscipline_omschrijving,
|
|
ins_srtdiscipline_verwijder
|
|
FROM mld_kenmerk mk, mld_discipline d, ins_srtdiscipline isd
|
|
WHERE mld_kenmerk_verwijder IS NULL
|
|
AND mld_kenmerk_niveau = 'D'
|
|
AND mk.mld_stdmelding_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = isd.ins_srtdiscipline_key
|
|
UNION ALL
|
|
SELECT mld_kenmerk_key,
|
|
'Melding' niveau,
|
|
mld_srtkenmerk_key,
|
|
std.mld_stdmelding_key,
|
|
std.mld_stdmelding_omschrijving,
|
|
std.mld_stdmelding_vervaldatum,
|
|
std.mld_stdmelding_verwijder,
|
|
d.ins_discipline_key,
|
|
d.ins_discipline_omschrijving,
|
|
d.ins_discipline_verwijder,
|
|
isd.ins_srtdiscipline_key,
|
|
ins_srtdiscipline_omschrijving,
|
|
ins_srtdiscipline_verwijder
|
|
FROM mld_kenmerk mk,
|
|
mld_discipline d,
|
|
ins_srtdiscipline isd,
|
|
mld_stdmelding std
|
|
WHERE mld_kenmerk_verwijder IS NULL
|
|
AND mld_kenmerk_niveau = 'S'
|
|
AND mk.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = isd.ins_srtdiscipline_key) k,
|
|
mld_srtkenmerk sk
|
|
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND ( sk.mld_srtkenmerk_verwijder IS NOT NULL
|
|
OR k.mld_stdmelding_verwijder IS NOT NULL
|
|
OR k.ins_discipline_verwijder IS NOT NULL
|
|
OR k.ins_srtdiscipline_verwijder IS NOT NULL)
|
|
UNION ALL
|
|
SELECT key,
|
|
soort,
|
|
NULL niveau,
|
|
omschrijving,
|
|
NULL melding_key,
|
|
NULL melding_omschrijving,
|
|
NULL vakgroep_key,
|
|
NULL vakgroep_omschrijving,
|
|
NULL vakgroeptype_key,
|
|
NULL vakgroeptype_omschrijving,
|
|
opmerking
|
|
FROM (SELECT mld_srtkenmerk_key key,
|
|
'Kenmerksoort' soort,
|
|
mld_srtkenmerk_omschrijving omschrijving,
|
|
'Geen kenmerken voor deze kenmerksoort' opmerking
|
|
FROM mld_srtkenmerk
|
|
WHERE mld_srtkenmerk_verwijder IS NULL
|
|
AND mld_srtkenmerk_key NOT IN
|
|
(SELECT mld_srtkenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_kenmerk_verwijder IS NULL)
|
|
UNION ALL
|
|
SELECT fac_usrtab_key,
|
|
'Eigen tabel',
|
|
fac_usrtab_naam,
|
|
'Geen kenmerkdomeinen voor deze Eigen tabel'
|
|
FROM fac_usrtab
|
|
WHERE fac_usrtab_verwijder IS NULL
|
|
AND fac_usrtab_key NOT IN
|
|
(SELECT fac_usrtab_key
|
|
FROM fac_kenmerkdomein
|
|
WHERE fac_kenmerkdomein_verwijder IS NULL)
|
|
UNION ALL
|
|
SELECT fac_kenmerkdomein_key,
|
|
'Kenmerkdomein',
|
|
fac_kenmerkdomein_omschrijving,
|
|
'Geen kenmerksoorten voor dit Kenmerkdomein'
|
|
FROM fac_kenmerkdomein
|
|
WHERE fac_kenmerkdomein_verwijder IS NULL
|
|
AND fac_kenmerkdomein_xmlnode = 'MLD'
|
|
AND fac_kenmerkdomein_key NOT IN
|
|
(SELECT fac_kenmerkdomein_key
|
|
FROM mld_srtkenmerk
|
|
WHERE mld_srtkenmerk_verwijder IS NULL));
|
|
|
|
CREATE OR REPLACE VIEW ivet_v_rap_bmc_noscan
|
|
(
|
|
omschrijving,
|
|
controledatumlaatst,
|
|
datum
|
|
)
|
|
AS
|
|
SELECT
|
|
d.ins_deel_omschrijving,
|
|
MAX (dsc.ins_deelsrtcontrole_datum) KEEP (DENSE_RANK LAST ORDER BY dsc.ins_deel_key) last_controle_datum,
|
|
SYSDATE
|
|
FROM ins_deelsrtcontrole dsc, ins_deel d, prs_perslid pr
|
|
WHERE dsc.ins_srtcontrole_key = 310 --Periodieke controletaak BMC bij Objectsoort Brandmeldcentrale (Discipline = Reserveringen; Objectgroep = Brandmeldcentrale)
|
|
AND dsc.ins_deel_key = d.ins_deel_key
|
|
AND (select MAX (TRUNC(dsc.ins_deelsrtcontrole_datum)) from ins_deelsrtcontrole dsc where d.ins_deel_key = dsc.ins_deel_key) < TRUNC (SYSDATE) - 1
|
|
GROUP BY dsc.ins_deel_key, d.ins_deel_omschrijving;
|
|
|
|
CREATE OR REPLACE VIEW ivet_v_noti_bmc_noscan
|
|
(
|
|
CODE,
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
KEY,
|
|
XKEY
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
'CUST03' AS CODE,
|
|
NULL,
|
|
98001, -- Persoon _Security, voor de emailadressen
|
|
'Attentie: bijgevoegde brandmeldcentrales zijn niet gescand',
|
|
(SELECT fac_usrrap_key
|
|
FROM fac_usrrap
|
|
WHERE fac_usrrap_view_name = 'IVET_V_RAP_BMC_NOSCAN') rapportnr,
|
|
NULL
|
|
FROM IVET_V_RAP_BMC_NOSCAN;
|
|
|
|
|
|
|
|
------ View voor controleren op OSLOGIN(Alternatieve inlognaam) ------
|
|
CREATE OR REPLACE VIEW IVET_V_PERSLID_OSLOGIN
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM_FULL,
|
|
PRS_PERSLID_NAAM_FRIENDLY,
|
|
PRS_PERSLID_OSLOGIN2,
|
|
PRS_AFDELING_KEY,
|
|
PRS_PERSLID_EMAIL,
|
|
PRS_PERSLID_TELEFOONNR,
|
|
ALG_GEBOUW_OMSCHRIJVING,
|
|
PRS_PERSLID_NR,
|
|
PRS_KOSTENPLAATS_OMSCHRIJVING
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_naam
|
|
|| DECODE (p.prs_perslid_voorletters,
|
|
NULL, '',
|
|
', ' || p.prs_perslid_voorletters)
|
|
|| DECODE (p.prs_perslid_tussenvoegsel,
|
|
NULL, '',
|
|
' ' || p.prs_perslid_tussenvoegsel)
|
|
|| DECODE (p.prs_perslid_voornaam,
|
|
NULL, '',
|
|
' (' || p.prs_perslid_voornaam || ')')
|
|
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,
|
|
p.prs_perslid_oslogin2,
|
|
p.prs_afdeling_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_telefoonnr,
|
|
w.ALG_GEBOUW_OMSCHRIJVING,
|
|
p.prs_perslid_nr,
|
|
k.PRS_KOSTENPLAATS_OMSCHRIJVING
|
|
FROM prs_v_perslidwerkplek_gegevens w,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_kostenplaats k
|
|
WHERE p.prs_perslid_key = w.prs_perslid_key
|
|
AND p.prs_perslid_oslogin2 IS NOT NULL
|
|
AND a.prs_afdeling_key = p.prs_afdeling_key
|
|
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key;
|
|
|
|
-- IVET#52961 Rapport voor afhandeling periodieke taken (in eerste instantie voor brandmeldcentrales)
|
|
CREATE OR REPLACE VIEW ivet_v_rap_tasks
|
|
AS
|
|
SELECT
|
|
disc.ins_discipline_omschrijving AS Discipline,
|
|
sg.ins_srtgroep_omschrijving AS Groep,
|
|
sd.ins_srtdeel_omschrijving AS Objectsoort,
|
|
d.ins_deel_omschrijving AS Objectomschrijving,
|
|
sc.ins_srtcontrole_omschrijving AS Taak,
|
|
TRUNC(dsc.ins_deelsrtcontrole_datum_org) AS Controle_datum,
|
|
TRUNC(dsc.ins_deelsrtcontrole_datum) AS Datum_uitvoer,
|
|
TO_CHAR(dsc.ins_deelsrtcontrole_datum , 'HH24:MI' ) AS Tijd_uitvoer,
|
|
(SELECT cm.ins_controlemode_oms
|
|
FROM ins_controlemode cm
|
|
WHERE cm.ins_controlemode_key = dsc.ins_controlemode_key) AS Status,
|
|
dsc.ins_deelsrtcontrole_opmerking AS Opmerking
|
|
FROM
|
|
ins_deelsrtcontrole dsc,
|
|
ins_srtcontrole sc,
|
|
ins_deel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_tab_discipline disc
|
|
WHERE
|
|
dsc.ins_deel_key = d.ins_deel_key
|
|
AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND disc.ins_discipline_key = sg.ins_discipline_key
|
|
ORDER BY
|
|
disc.ins_discipline_omschrijving,
|
|
sg.ins_srtgroep_omschrijving,
|
|
sd.ins_srtdeel_omschrijving,
|
|
d.ins_deel_omschrijving,
|
|
sc.ins_srtcontrole_omschrijving,
|
|
dsc.ins_deelsrtcontrole_datum_org DESC;
|
|
|
|
--IVET#54995 notificaties reserveringen / meldingsreserveringen
|
|
CREATE OR REPLACE VIEW ivet_v_noti_resreminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT code,
|
|
sender,
|
|
receiver,
|
|
'Herinnering - ' || REPLACE (text, ' ', ' '),
|
|
key,
|
|
xkey,
|
|
NULL,
|
|
NULL
|
|
FROM fac_v_noti_resreminder n, prs_perslid p
|
|
WHERE n.receiver = p.prs_perslid_key
|
|
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
|
|
|
|
CREATE OR REPLACE VIEW ivet_v_noti_tafelresreminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT 'CUST04',
|
|
NULL,
|
|
m.prs_perslid_key,
|
|
'Reservering '
|
|
|| m.mld_melding_key
|
|
|| ': U heeft op '
|
|
|| (SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 16741 --Key voor kenmerk datum vanaf
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
|| ' om '
|
|
|| (SELECT km.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 15222 --Key voor kenmerk tijd
|
|
AND km.mld_melding_key = m.mld_melding_key)
|
|
|| ' een tafel gereserveerd.' AS text,
|
|
m.mld_melding_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM mld_melding m
|
|
WHERE
|
|
m.mld_stdmelding_key = 2661 --Key voor stdmelding 'Tafel reserveren restaurant'
|
|
AND
|
|
(SELECT (TRUNC (fac.safe_to_date(km.mld_kenmerkmelding_waarde, 'DD-MM-YYYY')))
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerk_key = 16741 --Key voor kenmerk tijd
|
|
AND km.mld_melding_key = m.mld_melding_key) =
|
|
(CASE WHEN fac.getweekdaynum(SYSDATE) = 6
|
|
THEN(TRUNC(SYSDATE)+3)
|
|
ELSE (TRUNC(SYSDATE)+1)
|
|
END);
|
|
|
|
------ 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 |