Files
Customer/FMHN/fmhn.sql
Sander Schepers 69ac2fcbdd FMHN#88941 Dubbele records bij filtering nieuwe locatie Lange Voorhou 34-36
svn path=/Customer/trunk/; revision=69837
2025-07-23 13:30:51 +00:00

24219 lines
1.1 MiB
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for FMHN.
DEFINE thisfile = 'FMHN.SQL'
DEFINE dbuser = 'FMHN'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
-- Aangepaste import voor ruimten i.v.m. beperkingen export Stabicad
CREATE OR REPLACE PROCEDURE fmhn_import_ruimten (p_import_key IN NUMBER
)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count NUMBER;
v_ongeldig NUMBER (1);
v_mode NUMBER (1);
v_aanduiding VARCHAR2 (200);
v_alg_kenmerk_key1 VARCHAR2 (255);
v_alg_kenmerk_key2 VARCHAR2 (255);
v_alg_kenmerk_key3 VARCHAR2 (255);
v_alg_kenmerk_key4 VARCHAR2 (255);
v_alg_kenmerk_key5 VARCHAR2 (255);
v_bouwdeel NUMBER (1);
-- De importvelden:
v_locatie_code VARCHAR2 (255); -- 10
v_gebouw_code VARCHAR2 (255); -- 12
v_verdieping_volgnr VARCHAR2 (255); -- 3,0
v_verdieping_volgnr_n NUMBER (3, 0); -- 3,0
v_srtruimte_omschrijving VARCHAR2 (255); -- 30
v_ruimte_nr VARCHAR2 (255); -- 10
v_ruimte_omschrijving VARCHAR2 (255); -- 30
v_ruimte_bruto_vloeropp VARCHAR2 (255); -- 8,2
v_ruimte_bruto_vloeropp_n NUMBER (8, 2); -- 8,2
v_afdeling_naam VARCHAR2 (255); -- 10
v_ruimte_afdeling_bezetting VARCHAR2 (255); -- 8,5
v_ruimte_afdeling_bezetting_n VARCHAR2 (255); -- 8,5
v_reserveerbaar VARCHAR2 (255); -- 1
v_res_discipline_omschrijving VARCHAR2 (255); -- 60
v_res_discipline_expire_dagen VARCHAR2 (255); -- 3
v_res_disc_expire_dagen_n NUMBER (3, 0); -- 3
v_res_ruimte_prijs VARCHAR2 (255); -- 7,2
v_res_ruimte_prijs_n NUMBER (7, 2); -- 7,2
v_res_opstelling_omschrijving VARCHAR2 (255); -- 30
v_res_ruimte_opstel_bezoekers VARCHAR2 (255); -- 5,0
v_res_ruimte_opstel_bez_n NUMBER (5, 0); -- 5,0
v_res_ruimte_nr VARCHAR2 (255); -- 40
v_res_ruimte_omschrijving VARCHAR2 (255); -- 255
v_alg_kenmerkwaarde1 VARCHAR2 (255);
v_alg_kenmerkwaarde2 VARCHAR2 (255);
v_alg_kenmerkwaarde3 VARCHAR2 (255);
v_alg_kenmerkwaarde4 VARCHAR2 (255);
v_alg_kenmerkwaarde5 VARCHAR2 (255);
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
-- Controleer tijdens import-fase op bestaan van kenmerk
FUNCTION bepaal_kenmerk_key (kw IN VARCHAR)
RETURN NUMBER
IS
v_kenmerk_key NUMBER;
BEGIN
IF fac.safe_to_number (kw) IS NULL
THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)!
SELECT alg_kenmerk_key
INTO v_kenmerk_key
FROM alg_kenmerk
WHERE alg_kenmerk_upper = UPPER (kw)
AND alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_niveau = 'R'
AND alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
ELSE -- kenmerkwaarde is numeriek (dus key)!
SELECT alg_kenmerk_key
INTO v_kenmerk_key
FROM alg_kenmerk
WHERE alg_kenmerk_key = fac.safe_to_number (kw)
AND alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_niveau = 'R'
AND alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
END IF;
RETURN v_kenmerk_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
IF kw IS NULL OR UPPER (kw) LIKE 'KENMERK%'
THEN
RETURN NULL;
ELSE
fac.imp_writelog (p_import_key,
'W',
'Fout bij bepalen kenmerk [' || kw || ']',
'Bestaat niet of type ongeldig');
COMMIT;
RETURN NULL;
END IF;
END;
BEGIN
DELETE FROM fac_imp_onrgoed2;
header_is_valid := 0;
v_count := 0;
SELECT COUNT (*) bouwdelen
INTO v_bouwdeel
FROM fac_imp_file
WHERE fac_import_key = p_import_key
AND fac_imp_file_line LIKE '%Verdiepingsnummer%'
ORDER BY fac_imp_file_index;
-- Bepaal of er meer dan 1 bouwdeel wordt ingelezen (ieder bouwdeel heeft een header regel in de CSV
IF v_bouwdeel > 1
THEN
v_bouwdeel := 1;
fac.imp_writelog (p_import_key,
'I',
'Er zijn bouwdelen gevonden.',
'Tijdens het verwerken zullen de verdiepingen worden gesplitst per bouwdeel.'
);
ELSE
v_bouwdeel := 0;
fac.imp_writelog (p_import_key,
'I',
'Geen bouwdelen gevonden.',
'Deze verdieping wordt op de normale manier verwerkt.'
);
END IF;
-- Update de headerregel, die uit Stabicad is onbruikbaar
UPDATE fac_imp_file
SET fac_imp_file_line = 'Ruimtenummer;Ruimteomschrijving;Vloeroppervlak;Locatiecode;Gebouwcode;Bouwlaagvolgnummer;Ruimtefunctie;Afdelingscode;Bezetting;ReserveerbareRuimte;Categorie;Expiredagen;Prijs;Opstelling;AantalBezoekers;Naam;Omschrijving;kenmerk1;kenmerk2;kenmerk3;kenmerk4;kenmerk5'
WHERE fac_import_key = p_import_key
AND fac_imp_file_index = 1;
-- Nu de bouwdelen zijn geteld en de header is omgehangen mogen andere eventuele header regels weg.
DELETE fac_imp_file
WHERE fac_import_key = p_import_key
AND fac_imp_file_line LIKE '%Verdiepingsnummer%';
FOR rec1 IN c1
LOOP
BEGIN
v_errormsg := 'Fout FETCH te importeren rij';
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen te importeren rij';
v_aanduiding := '';
v_errorhint := '';
v_ongeldig := 0;
-- Lees alle veldwaarden, aangepast op export uit Stabicad
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_nr);
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_bruto_vloeropp);
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_code);
fac.imp_getfield (v_newline, c_fielddelimitor, v_gebouw_code);
fac.imp_getfield (v_newline, c_fielddelimitor, v_verdieping_volgnr);
fac.imp_getfield (v_newline, c_fielddelimitor, v_srtruimte_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_naam); -- Alles vanaf hier is NULL
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_afdeling_bezetting);
fac.imp_getfield (v_newline, c_fielddelimitor, v_reserveerbaar);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_discipline_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_discipline_expire_dagen);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_prijs);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_opstelling_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_opstel_bezoekers);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_nr);
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde1);
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde2);
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde3);
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde4);
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde5);
v_aanduiding :=
v_locatie_code || '|' || v_gebouw_code || '|' || v_verdieping_volgnr || '|' || v_ruimte_nr || '| ';
IF (header_is_valid = 0)
THEN
IF UPPER (v_locatie_code) = 'LOCATIECODE'
AND UPPER (v_ruimte_nr) = 'RUIMTENUMMER'
AND UPPER (v_res_ruimte_omschrijving) = 'OMSCHRIJVING'
THEN
v_alg_kenmerk_key1 := bepaal_kenmerk_key (v_alg_kenmerkwaarde1);
v_alg_kenmerk_key2 := bepaal_kenmerk_key (v_alg_kenmerkwaarde2);
v_alg_kenmerk_key3 := bepaal_kenmerk_key (v_alg_kenmerkwaarde3);
v_alg_kenmerk_key4 := bepaal_kenmerk_key (v_alg_kenmerkwaarde4);
v_alg_kenmerk_key5 := bepaal_kenmerk_key (v_alg_kenmerkwaarde5);
header_is_valid := 1;
END IF;
ELSE
v_count := v_count + 1;
v_errormsg := 'Fout inlezen locatie [' || v_locatie_code || ']';
v_locatie_code := TRIM(v_locatie_code);
IF LENGTH (v_locatie_code) > 10
THEN
v_locatie_code := SUBSTR (v_locatie_code, 1, 10);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Locatie-aanduiding is te lang',
'Aanduiding wordt afgebroken tot <' || v_locatie_code || '>'
);
END IF;
--
v_errormsg := 'Fout inlezen gebouw [' || v_gebouw_code || ']';
v_gebouw_code := TRIM(v_gebouw_code);
IF LENGTH (v_gebouw_code) > 12
THEN
v_gebouw_code := SUBSTR (v_gebouw_code, 1, 12);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Gebouwcode-aanduiding is te lang',
'Aanduiding wordt afgebroken tot <' || v_gebouw_code || '>'
);
END IF;
--
v_errormsg := '1 Fout inlezen verdiepingvolgnr [' || v_verdieping_volgnr || ']';
v_errorhint := 'Geef een geheel getal niet groter dan 3 posities';
IF (NVL (LENGTH (ROUND (fac.safe_to_number (v_verdieping_volgnr))), 10)) > 3
THEN
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || 'xyz Ongeldig verdiepingvolgnummer [' || v_verdieping_volgnr || ']',
v_errorhint
);
v_ongeldig := 1;
ELSE
v_verdieping_volgnr_n := ROUND (fac.safe_to_number (v_verdieping_volgnr));
END IF;
--
v_errormsg := 'Fout inlezen ruimtefunctie [' || v_srtruimte_omschrijving || ']';
v_srtruimte_omschrijving := TRIM(v_srtruimte_omschrijving);
IF LENGTH (v_srtruimte_omschrijving) > 50
THEN
v_srtruimte_omschrijving := SUBSTR (v_srtruimte_omschrijving, 1, 50);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Ruimtefunctie-aanduiding is te lang',
'Aanduiding wordt afgebroken tot <' || v_srtruimte_omschrijving || '>'
);
END IF;
--
v_errormsg := 'Fout inlezen ruimtenummer [' || v_ruimte_nr || ']';
v_ruimte_nr := TRIM(v_ruimte_nr);
IF LENGTH (v_ruimte_nr) > 20
THEN
v_ruimte_nr := SUBSTR (v_ruimte_nr, -20);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Ruimtenr-aanduiding is te lang',
'Aanduiding wordt afgebroken tot <' || v_ruimte_nr || '>'
);
END IF;
--
v_errormsg := 'Fout inlezen ruimte [' || v_ruimte_omschrijving || ']';
v_ruimte_omschrijving := TRIM(v_ruimte_omschrijving);
IF LENGTH (v_ruimte_omschrijving) > 30
THEN
v_ruimte_omschrijving := SUBSTR (v_ruimte_omschrijving, 1, 30);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Ruimte-aanduiding is te lang',
'Aanduiding wordt afgebroken tot <' || v_ruimte_omschrijving || '>'
);
END IF;
--
v_errormsg := 'Fout inlezen ruimte oppervlakte [' || v_ruimte_bruto_vloeropp || ']';
v_errorhint := 'Maximaal grootte getal is 99999.99';
IF v_ruimte_bruto_vloeropp IS NULL
THEN
v_ruimte_bruto_vloeropp_n := TO_NUMBER (NULL);
ELSE
-- nls_numeric_characters wordt verondersteld
-- eerst m2 van de naam afhalen als dit aan de hand is
v_ruimte_bruto_vloeropp := REGEXP_SUBSTR (v_ruimte_bruto_vloeropp,'[^ ]+',1,1);
v_ruimte_bruto_vloeropp_n := TO_NUMBER (TRIM (REPLACE (v_ruimte_bruto_vloeropp, ',', '.')), '999999D99');
END IF;
--
v_errormsg := 'Fout inlezen afdelingscode [' || v_afdeling_naam || ']';
v_afdeling_naam := TRIM(v_afdeling_naam);
IF LENGTH (v_afdeling_naam) > 15
THEN
v_afdeling_naam := SUBSTR (v_afdeling_naam, 1, 15);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Afdelingscode is te lang',
'Afdelingscode wordt afgebroken tot <' || v_afdeling_naam || '>'
);
END IF;
--
v_errormsg := 'Fout inlezen ruimtebezetting [' || v_ruimte_afdeling_bezetting || ']';
v_errorhint := 'Maximaal grootte getal is 999.99999';
IF TRIM (v_ruimte_afdeling_bezetting) IS NULL
THEN
v_ruimte_afdeling_bezetting_n := TO_NUMBER (NULL);
ELSE
-- nls_numeric_characters wordt verondersteld
v_ruimte_afdeling_bezetting_n := TO_NUMBER (TRIM (REPLACE (v_ruimte_afdeling_bezetting, ',', '.')), '999D99999');
END IF;
--
v_reserveerbaar := SUBSTR (TRIM (v_reserveerbaar), 1, 1);
--
v_errormsg := 'Fout inlezen catalogus [' || v_res_discipline_omschrijving || ']';
v_res_discipline_omschrijving := TRIM(v_res_discipline_omschrijving);
IF LENGTH (v_res_discipline_omschrijving) > 60
THEN
v_res_discipline_omschrijving := SUBSTR (v_res_discipline_omschrijving, 1, 60);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Categorie-aanduiding ruimte is te lang',
'Aanduiding wordt afgebroken tot <' || v_res_discipline_omschrijving || '>'
);
END IF;
--
v_errormsg := 'Fout inlezen expire dagen [' || v_res_discipline_expire_dagen || ']';
v_errorhint := 'Geef geheel getal niet groter dan 3 posities';
IF TRIM (v_res_discipline_expire_dagen) IS NULL
THEN
v_res_disc_expire_dagen_n := 0;
ELSE
v_res_disc_expire_dagen_n := TO_NUMBER (v_res_discipline_expire_dagen);
END IF;
--
v_errormsg := 'Fout inlezen prijs reserveerbare ruimte [' || v_res_ruimte_prijs || ']';
v_errorhint := 'Maximaal grootte getal is 99999.99 ';
IF (TRIM (v_res_ruimte_prijs) IS NULL)
THEN
v_res_ruimte_prijs_n := TO_NUMBER (NULL);
ELSE
-- nls_numeric_characters wordt verondersteld
v_res_ruimte_prijs_n := TO_NUMBER (TRIM (REPLACE (v_res_ruimte_prijs, ',', '.')), '999999D99');
END IF;
--
v_errormsg := 'Fout inlezen opstelling [' || v_res_opstelling_omschrijving || ']';
v_res_opstelling_omschrijving := TRIM(v_res_opstelling_omschrijving);
IF LENGTH (v_res_opstelling_omschrijving) > 30
THEN
v_res_opstelling_omschrijving := SUBSTR (v_res_opstelling_omschrijving, 1, 30);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Ruimteopstelling-aanduiding is te lang',
'Aanduiding wordt afgebroken tot <' || v_res_opstelling_omschrijving || '>'
);
END IF;
--
v_errormsg := 'Fout inlezen aantal bezoekers [' || v_res_ruimte_opstel_bezoekers || ']';
v_errorhint := 'Geef geheel getal niet groter dan 5 posities';
IF TRIM (v_res_ruimte_opstel_bezoekers) IS NULL
THEN
v_res_ruimte_opstel_bez_n := TO_NUMBER (NULL);
ELSE
v_res_ruimte_opstel_bez_n := TO_NUMBER (v_res_ruimte_opstel_bezoekers);
END IF;
--
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
v_res_ruimte_nr := TRIM(v_res_ruimte_nr);
IF LENGTH (v_res_ruimte_nr) > 40
THEN
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
v_res_ruimte_nr := SUBSTR (v_res_ruimte_nr, 1, 40);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Ruimtenr-aanduiding reserveerbare ruimte is te lang',
'Aanduiding wordt afgebroken tot <' || v_res_ruimte_nr || '>'
);
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
END IF;
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
--
v_errormsg := 'Fout inlezen reserveerbare ruimte [' || v_res_ruimte_omschrijving || ']';
v_res_ruimte_omschrijving := TRIM(v_res_ruimte_omschrijving);
IF LENGTH (v_res_ruimte_omschrijving) > 255
THEN
v_res_ruimte_omschrijving := SUBSTR (v_res_ruimte_omschrijving, 1, 255);
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Ruimte-aanduiding reserveerbare ruimte is te lang',
'Aanduiding wordt afgebroken tot <' || v_res_ruimte_omschrijving || '>'
);
END IF;
v_alg_kenmerkwaarde1 := TRIM (v_alg_kenmerkwaarde1);
v_alg_kenmerkwaarde2 := TRIM (v_alg_kenmerkwaarde2);
v_alg_kenmerkwaarde3 := TRIM (v_alg_kenmerkwaarde3);
v_alg_kenmerkwaarde4 := TRIM (v_alg_kenmerkwaarde4);
v_alg_kenmerkwaarde5 := TRIM (v_alg_kenmerkwaarde5);
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
v_errormsg := 'Fout bij toevoegen te impoteren ruimte [' || v_res_ruimte_omschrijving || ']';
INSERT INTO fac_imp_onrgoed2 (
alg_locatie_code,
alg_gebouw_code,
alg_verdieping_volgnr,
alg_srtruimte_omschrijving,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_ruimte_bruto_vloeropp,
prs_afdeling_naam,
prs_ruimteafdeling_bezetting,
reserveerbaar,
res_discipline_omschrijving,
res_discipline_expire_dagen,
res_ruimte_prijs,
res_opstelling_omschrijving,
res_ruimte_opstel_bezoekers,
res_ruimte_nr,
res_ruimte_omschrijving,
alg_kenmerkwaarde1,
alg_kenmerkwaarde2,
alg_kenmerkwaarde3,
alg_kenmerkwaarde4,
alg_kenmerkwaarde5
)
VALUES (
v_locatie_code,
v_gebouw_code,
v_verdieping_volgnr_n,
v_srtruimte_omschrijving,
v_ruimte_nr,
v_ruimte_omschrijving,
v_ruimte_bruto_vloeropp_n,
v_afdeling_naam,
v_ruimte_afdeling_bezetting_n,
v_reserveerbaar,
v_res_discipline_omschrijving,
v_res_disc_expire_dagen_n,
v_res_ruimte_prijs_n,
v_res_opstelling_omschrijving,
v_res_ruimte_opstel_bez_n,
v_res_ruimte_nr,
v_res_ruimte_omschrijving,
DECODE (v_alg_kenmerk_key1,
NULL, v_alg_kenmerkwaarde1,
TO_CHAR (v_alg_kenmerk_key1)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde1, 1, 200)
),
DECODE (v_alg_kenmerk_key2,
NULL, v_alg_kenmerkwaarde2,
TO_CHAR (v_alg_kenmerk_key2)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde2, 1, 200)
),
DECODE (v_alg_kenmerk_key3,
NULL, v_alg_kenmerkwaarde3,
TO_CHAR (v_alg_kenmerk_key3)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde3, 1, 200)
),
DECODE (v_alg_kenmerk_key4,
NULL, v_alg_kenmerkwaarde4,
TO_CHAR (v_alg_kenmerk_key4)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde4, 1, 200)
), -- We parkeren het bouwdeel verdiepingnummer even in kenmerk 5
DECODE (v_bouwdeel, 1, SUBSTR (v_ruimte_nr, 1, 1) || '-' || v_verdieping_volgnr_n,
DECODE (v_alg_kenmerk_key5,
NULL, v_alg_kenmerkwaarde5,
TO_CHAR (v_alg_kenmerk_key5)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde5, 1, 200)
))
);
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || 'Ongeldig importbestand',
'Geen geldige headerregel aanwezig'
);
ELSE
fac.imp_writelog (p_import_key, 'S', 'Ruimte: aantal ingelezen regels: ' || TO_CHAR (v_count), '');
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' Error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'Eventeel resterende regels worden niet meer ingelezen!'
);
END fmhn_import_ruimten;
/
CREATE OR REPLACE PROCEDURE fmhn_update_ruimten (
p_import_key IN NUMBER
) IS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count NUMBER(10);
v_count_update NUMBER(10);
v_count_tot NUMBER(10);
v_bouwdeel NUMBER(10);
v_vvolgnr NUMBER(10);
-- De importvelden:
v_regio_omschrijving VARCHAR2(255); -- 30
v_district_omschrijving VARCHAR2(255); -- 30
v_locatie_code VARCHAR2(255); -- 10
v_locatie_omschrijving VARCHAR2(255); -- 60
v_gebouw_code VARCHAR2(255); -- 12
v_gebouw_naam VARCHAR2(255); -- 30
v_srtgebouw_omschrijving VARCHAR2(255); -- 30
v_locatie_verantw VARCHAR2(255); -- 30
v_locatie_verantw_tel VARCHAR2(255); -- 15
v_locatie_adres VARCHAR2(255); -- 50
v_locatie_postcode VARCHAR2(255); -- 12
v_locatie_plaats VARCHAR2(255); -- 30
v_locatie_land VARCHAR2(255); -- 30
v_locatie_post_adres VARCHAR2(255); -- 50
v_locatie_post_postcode VARCHAR2(255); -- 12
v_locatie_post_plaats VARCHAR2(255); -- 30
v_locatie_post_land VARCHAR2(255); -- 30
v_regio_key NUMBER(10);
v_district_key NUMBER(10);
v_locatie_key NUMBER(10);
v_srtgebouw_key NUMBER(10);
v_gebouw_key NUMBER(10);
v_verdieping_key NUMBER(10);
v_verdieping_volgnr NUMBER(3);
v_srtruimte_key NUMBER(10);
v_ruimte_key NUMBER(10);
v_res_ruimte_key NUMBER(10);
v_ruimte_omschrijving res_ruimte.res_ruimte_nr%TYPE; -- 40
v_discipline_key NUMBER(10);
v_opstelling_key NUMBER(10);
v_ruimteafdeling_key NUMBER(10);
CURSOR cVerdieping
IS
SELECT min(alg_locatie_code) alg_locatie_code
,min(alg_gebouw_code) alg_gebouw_code
,alg_verdieping_volgnr alg_verdieping_volgnr
,alg_kenmerkwaarde5 verdiepingnummer
FROM fac_imp_onrgoed2
GROUP BY upper(alg_locatie_code), upper(alg_gebouw_code), alg_verdieping_volgnr, alg_kenmerkwaarde5;
recVerdieping cVerdieping%ROWTYPE;
CURSOR cBouwdeel
IS
SELECT ROWNUM getal, sub.waarde verdiepingnummer
FROM (SELECT DISTINCT alg_kenmerkwaarde5 waarde FROM fac_imp_onrgoed2) sub;
CURSOR cSrtRuimte
IS
SELECT min(alg_srtruimte_omschrijving) alg_srtruimte_omschrijving
FROM fac_imp_onrgoed2
GROUP BY alg_srtruimte_omschrijving;
recSrtRuimte cSrtRuimte%ROWTYPE;
CURSOR cRuimte
IS
SELECT alg_locatie_code,
alg_gebouw_code,
alg_verdieping_volgnr,
alg_srtruimte_omschrijving,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_ruimte_bruto_vloeropp,
reserveerbaar,
res_discipline_omschrijving,
res_ruimte_prijs,
res_opstelling_omschrijving,
res_ruimte_opstel_bezoekers,
res_ruimte_nr,
res_ruimte_omschrijving,
i.prs_afdeling_naam,
prs_afdeling_key,
prs_ruimteafdeling_bezetting,
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde1, 1, INSTR (alg_kenmerkwaarde1, '=') - 1))
kenmerk_key1,
SUBSTR (alg_kenmerkwaarde1, INSTR (alg_kenmerkwaarde1, '=') + 1) waarde1,
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde2, 1, INSTR (alg_kenmerkwaarde2, '=') - 1))
kenmerk_key2,
SUBSTR (alg_kenmerkwaarde2, INSTR (alg_kenmerkwaarde2, '=') + 1) waarde2,
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde3, 1, INSTR (alg_kenmerkwaarde3, '=') - 1))
kenmerk_key3,
SUBSTR (alg_kenmerkwaarde3, INSTR (alg_kenmerkwaarde3, '=') + 1) waarde3,
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde4, 1, INSTR (alg_kenmerkwaarde4, '=') - 1))
kenmerk_key4,
SUBSTR (alg_kenmerkwaarde4, INSTR (alg_kenmerkwaarde4, '=') + 1) waarde4,
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde5, 1, INSTR (alg_kenmerkwaarde5, '=') - 1))
kenmerk_key5,
SUBSTR (alg_kenmerkwaarde5, INSTR (alg_kenmerkwaarde5, '=') + 1) waarde5
FROM fac_imp_onrgoed2 i,
prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND UPPER(i.prs_afdeling_naam) = a.prs_afdeling_upper(+);
recRuimte cRuimte%ROWTYPE;
CURSOR cOpstelling
IS
SELECT min(res_opstelling_omschrijving) res_opstelling_omschrijving
,UPPER(res_opstelling_omschrijving) res_opstelling_upper
FROM FAC_IMP_ONRGOED2
WHERE res_opstelling_omschrijving IS NOT NULL
GROUP BY UPPER(res_opstelling_omschrijving);
recOpstelling cOpstelling%ROWTYPE;
CURSOR cCategorie
IS
SELECT min(res_discipline_omschrijving) res_discipline_omschrijving
,upper(res_discipline_omschrijving) res_discipline_upper
,NVL(res_discipline_expire_dagen,0) res_discipline_expire_dagen
FROM FAC_IMP_ONRGOED2
WHERE reserveerbaar in ('Y','y','J','j')
GROUP BY upper(res_discipline_omschrijving)
, res_discipline_expire_dagen;
recCategorie cCategorie%ROWTYPE;
CURSOR cResRuimte
IS
SELECT *
FROM FAC_IMP_ONRGOED2
WHERE RESERVEERBAAR in ('J','j','Y','y');
recResRuimte cResRuimte%ROWTYPE;
-- SUBPROC
PROCEDURE upsert_algkenmerk (p_ruimte_key IN NUMBER,
p_kenmerk_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_kenmerk_type VARCHAR2 (1);
ccount NUMBER;
v_waarde VARCHAR2 (255);
v_objectnaam VARCHAR2 (30);
v_kolomnaam VARCHAR2 (30);
v_kolomtxt VARCHAR2 (30);
sql_stmt VARCHAR2 (1000);
l_cursor_1 INTEGER;
l_rowsprocessed NUMBER DEFAULT 0;
BEGIN
IF (p_kenmerk_key IS NOT NULL AND p_waarde IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen kenmerktype';
SELECT alg_kenmerk_kenmerktype
INTO v_kenmerk_type
FROM alg_kenmerk
WHERE alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_key = p_kenmerk_key
AND alg_kenmerk_niveau = 'R';
IF v_kenmerk_type IN ('R', 'S')
THEN
v_errormsg := 'Fout bij bepalen eigen tabel';
SELECT COUNT ( * )
INTO ccount
FROM alg_kenmerk k, fac_kenmerkdomein d
WHERE k.alg_kenmerk_key = p_kenmerk_key
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key IS NOT NULL;
v_errormsg := 'Fout bij bepalen nieuwe waarde [' || p_waarde || ']';
IF ccount = 1
THEN -- Eigen tabel
SELECT TO_CHAR (ud.fac_usrdata_key)
INTO v_waarde
FROM alg_kenmerk k, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud
WHERE k.alg_kenmerk_key = p_kenmerk_key
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key = ud.fac_usrtab_key
AND UPPER (TRIM (ud.fac_usrdata_omschr)) = UPPER (p_waarde);
ELSE -- FACILITOR view/tabel
SELECT d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt
INTO v_objectnaam, v_kolomnaam, v_kolomtxt
FROM alg_kenmerk k, fac_kenmerkdomein d
WHERE k.alg_kenmerk_key = p_kenmerk_key
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key IS NULL;
sql_stmt := 'SELECT MAX ('
|| v_kolomnaam
|| ') FROM '
|| v_objectnaam
|| ' WHERE UPPER (TRIM ('
|| v_kolomtxt
|| ')) = UPPER (:pwaarde)';
l_cursor_1 := DBMS_SQL.open_cursor;
DBMS_SQL.parse (l_cursor_1, sql_stmt, DBMS_SQL.native);
DBMS_SQL.BIND_VARIABLE(l_cursor_1,':pwaarde', p_waarde);
DBMS_SQL.define_column(l_cursor_1, 1, v_waarde, 255);
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_1);
DBMS_SQL.column_value (l_cursor_1, 1, v_waarde);
DBMS_SQL.close_cursor(l_cursor_1);
END IF;
ELSE -- C(Karakter)/D(Datum)/N(Numeriek)/X(Bestandsnaam)
v_waarde := p_waarde;
END IF;
v_errormsg := 'Fout bij toevoegen/bijwerken kenmerk';
alg.upsertkenmerk (p_kenmerk_key,
p_ruimte_key,
v_waarde);
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'upsert_algkenmerk');
END;
BEGIN
SELECT COUNT (DISTINCT alg_kenmerkwaarde5) INTO v_bouwdeel FROM fac_imp_onrgoed2;
-- Wanneer er bouwdelen zijn dan plakken we een extra getal achter het verdiepingvolgnummer zodat ieder bouwdeel zijn eigen nummer heeft.
-- Zijn er geen bouwdelen (of wordt er maar 1 bouwdeel ingelezen) dan updaten we de verdieping met het al bestaande volgnummer.
IF v_bouwdeel > 0
THEN
FOR rec IN cBouwdeel
LOOP
BEGIN
UPDATE fac_imp_onrgoed2
SET alg_verdieping_volgnr = fac.safe_to_number (alg_verdieping_volgnr || rec.getal) -- verdieping 14 met 3 bouwdelen wordt dus 141 142 143
WHERE alg_kenmerkwaarde5 = rec.verdiepingnummer;
COMMIT;
END;
END LOOP;
ELSE
SELECT MAX (v.alg_verdieping_volgnr)
INTO v_vvolgnr
FROM alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
fac_imp_onrgoed2 imp
WHERE imp.alg_gebouw_code = g.alg_gebouw_code
AND imp.alg_ruimte_nr = r.alg_ruimte_nr
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND r.alg_ruimte_verwijder IS NULL;
END IF;
IF v_vvolgnr > 0
THEN
UPDATE fac_imp_onrgoed2
SET alg_verdieping_volgnr = v_vvolgnr;
END IF;
-- ****************
-- ***VERDIEPING***
-- ****************
OPEN cVerdieping;
v_count_update := 0;
v_count_tot := 0;
IF cVerdieping%ISOPEN THEN
LOOP
BEGIN
v_errormsg := '';
v_errorhint := '';
v_aanduiding := '';
FETCH cVerdieping INTO recVerdieping;
EXIT WHEN cVerdieping%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recVerdieping.ALG_LOCATIE_CODE||'|'||recVerdieping.ALG_GEBOUW_CODE||'|'||recVerdieping.ALG_VERDIEPING_VOLGNR||'| ';
v_errorhint := ' Fout bij bepalen locatie ['||recVerdieping.ALG_LOCATIE_CODE||']';
SELECT ALG_LOCATIE_KEY
INTO v_locatie_key
FROM ALG_LOCATIE
WHERE UPPER(ALG_LOCATIE_CODE) = UPPER(recVerdieping.ALG_LOCATIE_CODE)
AND ALG_LOCATIE_VERWIJDER IS NULL;
v_errorhint := ' Fout bij bepalen gebouw ['||recVerdieping.ALG_GEBOUW_CODE||']';
SELECT ALG_GEBOUW_KEY
INTO v_gebouw_key
FROM ALG_GEBOUW
WHERE UPPER(ALG_GEBOUW_CODE) = UPPER(recVerdieping.ALG_GEBOUW_CODE)
AND ALG_LOCATIE_KEY = v_locatie_key
AND ALG_GEBOUW_VERWIJDER IS NULL;
v_errorhint := 'Fout bij toevoegen verdieping';
SELECT count(*)
INTO v_count
FROM alg_v_aanwezigverdieping
WHERE alg_gebouw_key = v_gebouw_key
AND ALG_VERDIEPING_VOLGNR = recVerdieping.ALG_VERDIEPING_VOLGNR;
IF (v_count = 0) THEN
insert into ALG_VERDIEPING
(ALG_GEBOUW_KEY
,ALG_VERDIEPING_VOLGNR
,ALG_VERDIEPING_CODE
,ALG_VERDIEPING_OMSCHRIJVING
)
values
(v_gebouw_key
,recVerdieping.ALG_VERDIEPING_VOLGNR
,DECODE (recVerdieping.verdiepingnummer, NULL, to_char(recVerdieping.ALG_VERDIEPING_VOLGNR), recVerdieping.verdiepingnummer)
,DECODE (recVerdieping.verdiepingnummer, NULL, 'Verdieping '||to_char(recVerdieping.ALG_VERDIEPING_VOLGNR), 'Verdieping '||to_char(recVerdieping.verdiepingnummer))
);
END IF;
commit;
v_count_update := v_count_update + 1;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
v_errormsg := 'Fout tijdens verwerken verdieping ['||recVerdieping.ALG_LOCATIE_CODE||'-'||recVerdieping.ALG_GEBOUW_CODE||'-'||to_number(recVerdieping.ALG_VERDIEPING_VOLGNR)||']';
v_errorhint := v_errorhint||': ' || 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',
'Verdieping: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
''
);
fac.imp_writelog (p_import_key,
'S',
'Verdieping: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
''
);
END IF;
CLOSE cVerdieping;
-- Maak kenmerk5 nu maar weer leeg als deze gebruikt is voor bouwdelen.
IF v_bouwdeel > 0 THEN
UPDATE fac_imp_onrgoed2
SET alg_kenmerkwaarde5 = NULL
WHERE alg_kenmerkwaarde5 IS NOT NULL;
END IF;
-- *******************
-- ***RUIMTEFUNCTIE***
-- *******************
OPEN cSrtRuimte;
v_count_update := 0;
v_count_tot := 0;
IF cSrtRuimte%ISOPEN THEN
LOOP
BEGIN
v_errormsg := '';
v_errorhint := '';
v_aanduiding := '';
FETCH cSrtRuimte INTO recSrtRuimte;
EXIT WHEN cSrtRuimte%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING||'| ';
v_errorhint := ' Fout bij toevoegen ruimtefunctie';
SELECT count(*)
INTO v_count
FROM alg_srtruimte
WHERE upper(alg_srtruimte_omschrijving) = upper(recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING)
AND alg_srtruimte_verwijder is null;
IF (v_count = 0) THEN
insert into ALG_SRTRUIMTE
(ALG_SRTRUIMTE_OMSCHRIJVING
)
values
(recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING
);
END IF;
commit;
v_count_update := v_count_update + 1;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
v_errormsg := 'Fout tijdens verwerken ruimtefunctie ['||recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING||']';
v_errorhint := v_errorhint||': ' || 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',
'Ruimtefunctie: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
''
);
fac.imp_writelog (p_import_key,
'S',
'Ruimtefunctie: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
''
);
END IF;
CLOSE cSrtRuimte;
-- ************
-- ***RUIMTE***
-- ************
OPEN cRuimte;
v_count_update := 0;
v_count_tot := 0;
IF cRuimte%ISOPEN THEN
LOOP
BEGIN
v_errormsg := '';
v_errorhint := '';
v_aanduiding := '';
v_ruimte_key := NULL;
FETCH cRuimte INTO recRuimte;
EXIT WHEN cRuimte%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recRuimte.ALG_LOCATIE_CODE||'|'||recRuimte.ALG_GEBOUW_CODE||'|'||recRuimte.ALG_VERDIEPING_VOLGNR||'|'||recRuimte.ALG_RUIMTE_NR||'| ';
v_errorhint := ' Fout bij bepalen locatie';
SELECT ALG_LOCATIE_KEY
INTO v_locatie_key
FROM ALG_LOCATIE
WHERE UPPER(ALG_LOCATIE_CODE) = UPPER(recRuimte.ALG_LOCATIE_CODE)
AND ALG_LOCATIE_verwijder is null;
v_errorhint := ' Fout bij bepalen gebouw';
SELECT ALG_GEBOUW_KEY
INTO v_gebouw_key
FROM ALG_GEBOUW
WHERE UPPER(ALG_GEBOUW_CODE) = UPPER(recRuimte.ALG_GEBOUW_CODE)
AND ALG_LOCATIE_KEY = v_locatie_key
AND ALG_GEBOUW_verwijder is null;
v_errorhint := ' Fout bij bepalen verdieping';
SELECT ALG_VERDIEPING_KEY
INTO v_verdieping_key
FROM ALG_VERDIEPING
WHERE ALG_GEBOUW_KEY = v_gebouw_key
AND ALG_VERDIEPING_VOLGNR = recRuimte.ALG_VERDIEPING_VOLGNR
AND ALG_VERDIEPING_verwijder is null;
v_errorhint := ' Fout bij bepalen ruimtefunctie'||' ['||recRuimte.alg_srtruimte_omschrijving||']';
SELECT ALG_SRTRUIMTE_KEY
INTO v_srtruimte_key
FROM ALG_SRTRUIMTE
WHERE upper(alg_srtruimte_omschrijving) = upper(recRuimte.ALG_SRTRUIMTE_OMSCHRIJVING)
AND ALG_SRTRUIMTE_verwijder is null;
SELECT count(*)
INTO v_count
FROM ALG_RUIMTE
WHERE ALG_VERDIEPING_KEY = v_verdieping_key
AND UPPER(ALG_RUIMTE_NR) = UPPER(recRuimte.ALG_RUIMTE_NR)
-- als ruimteomschrijving in sheet afwijkt geeft dit een onduidelijke error, dan liever
-- de omschrijving negeren en gewoon niet bijwerken
-- AND UPPER(ALG_RUIMTE_OMSCHRIJVING) = UPPER(recRuimte.ALG_RUIMTE_OMSCHRIJVING)
AND alg_ruimte_verwijder is null;
v_errorhint := ' Fout bij toevoegen ruimte';
IF v_count = 0 THEN
insert into ALG_RUIMTE
(ALG_VERDIEPING_KEY
,ALG_SRTRUIMTE_KEY
,ALG_RUIMTE_NR
,ALG_RUIMTE_OMSCHRIJVING
,ALG_RUIMTE_OPMERKING
,ALG_RUIMTE_BRUTO_VLOEROPP
)
values
(v_verdieping_key
,v_srtruimte_key
,recRuimte.ALG_RUIMTE_NR
,recRuimte.ALG_RUIMTE_OMSCHRIJVING
,''
,TO_NUMBER(recRuimte.ALG_RUIMTE_BRUTO_VLOEROPP)
)
RETURNING ALG_RUIMTE_KEY
INTO v_ruimte_key;
END IF;
commit;
v_count_update := v_count_update + 1;
-- Als de ruimte al bestaat, dan nog de key ophalen, zodat we 'm hieronder kunnen gebruiken.
IF (v_ruimte_key IS NULL)
THEN
v_errorhint := ' Fout bij bepalen ruimte';
SELECT ALG_RUIMTE_KEY
INTO v_ruimte_key
FROM ALG_RUIMTE
WHERE ALG_VERDIEPING_KEY = v_verdieping_key
AND UPPER(ALG_RUIMTE_NR) = UPPER(recRuimte.ALG_RUIMTE_NR)
AND alg_ruimte_verwijder is null;
END IF;
-- Als er vastgoedgegevens zijn gewijzigd bij een bestaande ruimte willen we deze wel bijwerken.
IF v_count = 1 THEN
UPDATE ALG_RUIMTE
SET ALG_RUIMTE_NR = recRuimte.ALG_RUIMTE_NR,
ALG_SRTRUIMTE_KEY = v_srtruimte_key,
ALG_RUIMTE_OMSCHRIJVING = recRuimte.ALG_RUIMTE_OMSCHRIJVING,
ALG_RUIMTE_BRUTO_VLOEROPP = TO_NUMBER(recRuimte.ALG_RUIMTE_BRUTO_VLOEROPP)
WHERE ALG_RUIMTE_KEY = v_ruimte_key;
END IF;
commit;
-- ********************
-- ***RUIMTEAFDELING***
-- ********************
-- AAES#25942: koppel afdeling(en) aan ruimte; <20><>n afdeling per regel, ruimte kan meerdere keren voorkomen.
IF (recRuimte.prs_afdeling_naam IS NOT NULL)
THEN
IF (recRuimte.prs_afdeling_key IS NULL)
THEN
fac.imp_writelog (p_import_key,
'W',
v_aanduiding||' afdeling ['||recRuimte.prs_afdeling_naam||']',
'Afdeling niet gevonden'
);
ELSE
IF (recRuimte.prs_ruimteafdeling_bezetting IS NULL)
THEN
fac.imp_writelog (p_import_key,
'W',
v_aanduiding||' afdeling ['||recRuimte.prs_afdeling_naam||']',
'Fout: afdeling gevuld, bezetting leeg!'
);
ELSIF (recRuimte.prs_ruimteafdeling_bezetting > 100 OR recRuimte.prs_ruimteafdeling_bezetting < 0)
THEN
fac.imp_writelog (p_import_key,
'W',
v_aanduiding||' afdeling ['||recRuimte.prs_afdeling_naam||']',
'Ongeldige ruimtebezetting ['||TO_CHAR(recRuimte.prs_ruimteafdeling_bezetting)||'] verwacht 0 <= bezetting <= 100'
);
ELSE
BEGIN
SELECT COUNT(*), MAX(prs_ruimteafdeling_key)
INTO v_count, v_ruimteafdeling_key
FROM prs_ruimteafdeling
WHERE prs_ruimteafdeling_verwijder IS NULL
AND prs_afdeling_key = recRuimte.prs_afdeling_key
AND alg_ruimte_key = v_ruimte_key;
IF (v_count = 0)
THEN
v_errorhint := ' Fout bij toevoegen ruimtebezetting';
INSERT INTO prs_ruimteafdeling
(prs_afdeling_key
,alg_ruimte_key
,prs_ruimteafdeling_bezetting)
VALUES
(recRuimte.prs_afdeling_key
,v_ruimte_key
,recRuimte.prs_ruimteafdeling_bezetting
);
END IF;
IF (v_count = 1)
THEN
v_errorhint := ' Fout bij aanpassen ruimtebezetting';
UPDATE prs_ruimteafdeling
SET prs_ruimteafdeling_bezetting = recRuimte.prs_ruimteafdeling_bezetting
WHERE prs_ruimteafdeling_key = v_ruimteafdeling_key;
END IF;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
v_errormsg := 'Fout tijdens verwerken ruimteafdeling ['||
recRuimte.ALG_LOCATIE_CODE||'-'||recRuimte.ALG_GEBOUW_CODE||'-'||recRuimte.ALG_VERDIEPING_VOLGNR||'-'||recRuimte.ALG_RUIMTE_NR
||'] / ['||recRuimte.PRS_AFDELING_NAAM||']';
v_errorhint := v_errorhint||': ' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_aanduiding||v_errormsg,
v_errorhint
);
commit;
END;
END IF;
END IF;
END IF;
-- *******************
-- ***FLEXKENMERKEN***
-- *******************
v_errorhint := ' Fout bij toevoegen/bijwerken flexkenmerken';
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key1, recRuimte.waarde1);
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key2, recRuimte.waarde2);
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key3, recRuimte.waarde3);
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key4, recRuimte.waarde4);
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key5, recRuimte.waarde5);
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
v_errormsg := 'Fout tijdens verwerken ruimte ['||recRuimte.ALG_LOCATIE_CODE||'-'||recRuimte.ALG_GEBOUW_CODE||'-'||recRuimte.ALG_VERDIEPING_VOLGNR||'-'||recRuimte.ALG_RUIMTE_NR||']';
v_errorhint := v_errorhint||': ' || 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',
'Ruimte: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
''
);
fac.imp_writelog (p_import_key,
'S',
'Ruimte: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
''
);
END IF;
CLOSE cRuimte;
-- ****************
-- ***OPSTELLING***
-- ****************
OPEN cOpstelling;
v_count_update := 0;
v_count_tot := 0;
IF cOpstelling%ISOPEN THEN
LOOP
BEGIN
v_errormsg := '';
v_errorhint := '';
v_aanduiding := '';
FETCH cOpstelling INTO recOpstelling;
EXIT WHEN cOpstelling%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recOpstelling.RES_OPSTELLING_OMSCHRIJVING||'| ';
v_errorhint := ' Fout bij toevoegen opstelling';
select count(*)
into v_count
from RES_OPSTELLING
where RES_OPSTELLING_verwijder is null
and trim(RES_OPSTELLING_upper) = upper(trim(recOpstelling.RES_OPSTELLING_OMSCHRIJVING));
IF (v_count = 0) THEN
insert into RES_OPSTELLING
(RES_OPSTELLING_OMSCHRIJVING
)
values
(trim(recOpstelling.RES_OPSTELLING_OMSCHRIJVING)
);
END IF;
commit;
v_count_update := v_count_update + 1;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
v_errormsg := 'Fout tijdens verwerken opstelling ['||recOpstelling.RES_OPSTELLING_OMSCHRIJVING||']';
v_errorhint := v_errorhint||': ' || 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',
'Opstelling: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
''
);
fac.imp_writelog (p_import_key,
'S',
'Opstelling: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
''
);
END IF;
CLOSE cOpstelling;
-- ***************
-- ***CATEGORIE***
-- ***************
OPEN cCategorie;
v_count_update := 0;
v_count_tot := 0;
IF cCategorie%ISOPEN THEN
LOOP
BEGIN
v_errormsg := '';
v_errorhint := '';
v_aanduiding := '';
FETCH cCategorie INTO recCategorie;
EXIT WHEN cCategorie%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recCategorie.res_discipline_omschrijving||'| ';
v_errorhint := ' Fout bij toevoegen categorie';
select count(*)
into v_count
from ins_tab_discipline
where ins_discipline_verwijder is null
and ins_discipline_module='RES'
and upper(trim(ins_discipline_omschrijving)) = upper(trim(recCategorie.res_discipline_omschrijving));
IF (v_count = 0) THEN
INSERT INTO ins_tab_discipline
(ins_discipline_module
,ins_discipline_omschrijving
,ins_discipline_verwijder
,ins_discipline_min_level)
VALUES
('RES'
,trim(recCategorie.res_discipline_omschrijving)
,to_date(null)
,3)
RETURNING ins_discipline_key
INTO v_discipline_key;
INSERT INTO res_disc_params
(res_ins_discipline_key
,res_disc_params_expire_dagen)
VALUES
(v_discipline_key
,recCategorie.res_discipline_expire_dagen
);
END IF;
commit;
v_count_update := v_count_update + 1;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
v_errormsg := 'Fout tijdens verwerken catalogus ['||recCategorie.res_discipline_omschrijving||']';
v_errorhint := v_errorhint||': ' || 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',
'Categorie: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
''
);
fac.imp_writelog (p_import_key,
'S',
'Categorie: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
''
);
END IF;
CLOSE cCategorie;
-- ***************
-- ***RESRUIMTE***
-- ***************
OPEN cResRuimte;
v_count_update := 0;
v_count_tot := 0;
IF cResRuimte%ISOPEN THEN
LOOP
BEGIN
v_errormsg := '';
v_errorhint := '';
v_aanduiding := '';
FETCH cResRuimte INTO recResRuimte;
EXIT WHEN cResRuimte%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recResRuimte.ALG_LOCATIE_CODE||'|'||recResRuimte.ALG_GEBOUW_CODE||'|'||recResRuimte.ALG_VERDIEPING_VOLGNR||'|'||recResRuimte.ALG_RUIMTE_NR||'| ';
v_errorhint := ' Fout bij bepalen locatie';
SELECT ALG_LOCATIE_KEY
INTO v_locatie_key
FROM ALG_LOCATIE
WHERE UPPER(ALG_LOCATIE_CODE) = UPPER(recResRuimte.ALG_LOCATIE_CODE)
AND alg_locatie_verwijder is null;
v_errorhint := ' Fout bij bepalen gebouw';
SELECT ALG_GEBOUW_KEY
INTO v_gebouw_key
FROM ALG_GEBOUW
WHERE UPPER(ALG_GEBOUW_CODE) = UPPER(recResRuimte.ALG_GEBOUW_CODE)
AND ALG_LOCATIE_KEY = v_locatie_key
AND alg_gebouw_verwijder is null;
v_errorhint := ' Fout bij bepalen verdieping';
SELECT ALG_VERDIEPING_KEY, ALG_VERDIEPING_VOLGNR
INTO v_verdieping_key, v_verdieping_volgnr
FROM ALG_VERDIEPING
WHERE ALG_GEBOUW_KEY = v_gebouw_key
AND ALG_VERDIEPING_VOLGNR = recResRuimte.ALG_VERDIEPING_VOLGNR;
v_errorhint := ' Fout bij bepalen ruimte';
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(recResRuimte.ALG_RUIMTE_NR);
v_errorhint := ' Fout bij bepalen catalogus ['||recResRuimte.res_discipline_omschrijving||']';
SELECT ins_discipline_key
INTO v_discipline_key
FROM RES_V_RES_CATALOGUS
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_min_level = 3
AND upper(trim(ins_discipline_omschrijving)) = upper(trim(recResRuimte.res_discipline_omschrijving));
v_errorhint := ' Fout bij bepalen opstelling ['||recResRuimte.RES_OPSTELLING_OMSCHRIJVING||']';
SELECT RES_OPSTELLING_KEY
INTO v_opstelling_key
FROM RES_OPSTELLING
WHERE UPPER(trim(RES_OPSTELLING_OMSCHRIJVING)) = UPPER(trim(recResRuimte.RES_OPSTELLING_OMSCHRIJVING))
AND RES_OPSTELLING_verwijder is null;
v_errorhint := ' Fout bij samenstellen ruimte-omschrijving';
IF (recResRuimte.RES_RUIMTE_NR IS NULL) THEN
v_ruimte_omschrijving := SUBSTR( recResRuimte.ALG_LOCATIE_CODE || '-' || recResRuimte.ALG_GEBOUW_CODE || '-' || TO_CHAR(recResRuimte.ALG_VERDIEPING_VOLGNR) || '-' || recResRuimte.ALG_RUIMTE_NR,1,40);
ELSE
v_ruimte_omschrijving := recResRuimte.RES_RUIMTE_NR;
END IF;
v_errorhint := 'Fout bij bepalen reserveerbare ruimte';
SELECT count(*)
INTO v_count
FROM RES_RUIMTE
WHERE RES_RUIMTE_UPPER = upper(v_ruimte_omschrijving)
AND res_ruimte_verwijder is null;
IF v_count = 0 THEN
v_errorhint := 'Fout bij toevoegen reserveerbare ruimte';
INSERT INTO RES_RUIMTE
(RES_RUIMTE_NR
,RES_RUIMTE_UPPER
,RES_RUIMTE_PRIJS
,RES_RUIMTE_OMSCHRIJVING
,RES_DISCIPLINE_KEY
)
VALUES
(v_ruimte_omschrijving
,upper(v_ruimte_omschrijving)
,recResRuimte.RES_RUIMTE_PRIJS
,recResRuimte.RES_RUIMTE_OMSCHRIJVING
,v_discipline_key
)
RETURNING RES_RUIMTE_KEY
INTO v_res_ruimte_key;
v_errorhint := 'Fout bij koppelen ruimte en reserveerbare ruimte';
insert into RES_ALG_RUIMTE
(RES_RUIMTE_KEY
,ALG_RUIMTE_KEY
)
values
(v_res_ruimte_key
,v_ruimte_key
);
ELSE
SELECT RES_RUIMTE_KEY
INTO v_res_ruimte_key
FROM RES_RUIMTE
WHERE RES_RUIMTE_UPPER = upper(v_ruimte_omschrijving)
AND res_ruimte_verwijder IS NULL;
END IF;
v_errorhint := 'Fout bij koppelen opstelling en reserveerbare ruimte';
insert into RES_RUIMTE_OPSTELLING
(RES_RUIMTE_KEY
,RES_OPSTELLING_KEY
,RES_RUIMTE_OPSTEL_BEZOEKERS
)
values
(v_res_ruimte_key
,v_opstelling_key
,NVL(recResRuimte.RES_RUIMTE_OPSTEL_BEZOEKERS, 0)
);
commit;
v_count_update := v_count_update + 1;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
v_errormsg := 'Reserveerbare ruimte ['||recResRuimte.RES_RUIMTE_OMSCHRIJVING||']';
v_errorhint := v_errorhint||': ' || 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',
'Res. ruimte: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
''
);
fac.imp_writelog (p_import_key,
'S',
'Res. ruimte: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
''
);
END IF;
CLOSE cResRuimte;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
'Fout tijdens importeren van onroerend goed (verdieping en ruimte) ',
''
);
END fmhn_update_ruimten;
/
CREATE OR REPLACE VIEW fmhn_v_rap_import_log
(
fclt_f_applicatie,
datum,
fclt_f_status,
omschrijving,
hint
)
AS
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
imp_log_status,
imp_log_omschrijving,
imp_log_hint
FROM imp_log il1, fac_import fi1, fac_import_app fia1
WHERE il1.fac_import_key = fi1.fac_import_key(+)
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
AND NOT EXISTS
(SELECT 1
FROM imp_log il2, fac_import fi2
WHERE il2.fac_import_key = fi2.fac_import_key
AND fi2.fac_import_app_key = fi1.fac_import_app_key
AND il2.fac_import_key > il1.fac_import_key);
/*
CREATE TABLE fmhn_imp_bez
(
reservering_id VARCHAR2 (30),
afspraak_key NUMBER (10),
locatiecode VARCHAR2 (10),
gebouwcode VARCHAR2 (12),
verdiepingcode VARCHAR2 (10),
ruimtenr VARCHAR2 (14),
datum DATE,
van DATE,
tot DATE,
contactpersoon VARCHAR2 (50),
naam VARCHAR2 (30),
bedrijf VARCHAR2 (60),
parkeerplaats VARCHAR2 (1),
actie VARCHAR2 (60),
telefoon VARCHAR2 (20),
email VARCHAR2 (200),
kenteken VARCHAR2 (10)
);
CREATE OR REPLACE PROCEDURE fmhn_import_bez (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_reservering_id VARCHAR2 (255); -- C/res_reservering_key+'/'+res_rsv_ruimte_volgnr
v_afspraak_id VARCHAR2 (255); -- N10/bez_afspraak_key
v_locatiecode VARCHAR2 (255); -- C10/alg_locatie_code
--TODO:
--v_gebouwcode VARCHAR2 (255); -- C12/alg_gebouw_code
--v_verdiepingcode VARCHAR2 (255); -- C10/alg_verdieping_code
--v_ruimtenr VARCHAR2 (255); -- C14/alg_ruimte_nr
v_datum VARCHAR2 (255); -- D/bez_afspraak_datum
v_van VARCHAR2 (255); -- D/bez_afspraak_datum
v_van_d DATE;
v_tot VARCHAR2 (255); -- D/bez_afspraak_eind
v_tot_d DATE;
v_contactpersoon VARCHAR2 (255); -- C50/bez_afspraak_gastheer
v_naam VARCHAR2 (255); -- C30/bez_afspraak_naam
v_bedrijf VARCHAR2 (255); -- C60/bez_afspraak_bedrijf
v_p VARCHAR2 (255); -- C/J(a) of N(ee)=>res_rsv_deel
v_actie VARCHAR2 (255); -- C/Ophalen of Doorlopen=>bez_kenmerkwaarde_waarde
v_telefoon VARCHAR2 (255); -- C20/bez_bezoekers_telefoon
v_email VARCHAR2 (255); -- C200/bez_bezoekers_email
v_kenteken VARCHAR2 (255); -- C10/bez_bezoekers_kenteken
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM fmhn_imp_bez;
COMMIT;
v_count_tot := 0;
v_count_import := 0;
header_is_valid := 0; -- Geen header, dus altijd valid!
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
-- ReserveringId;AfspraakId;Locatiecode;Datum;Van;Tot;Contactpersoon;Naam;Bedrijf;P;Actie;Telefoon;Email;Kenteken
fac.imp_getfield (v_newline, c_delim, v_reservering_id);
fac.imp_getfield (v_newline, c_delim, v_afspraak_id);
fac.imp_getfield (v_newline, c_delim, v_locatiecode);
--fac.imp_getfield (v_newline, c_delim, v_gebouwcode);
--fac.imp_getfield (v_newline, c_delim, v_verdiepingcode);
--fac.imp_getfield (v_newline, c_delim, v_ruimtenr);
fac.imp_getfield (v_newline, c_delim, v_datum);
fac.imp_getfield (v_newline, c_delim, v_van);
fac.imp_getfield (v_newline, c_delim, v_tot);
fac.imp_getfield (v_newline, c_delim, v_contactpersoon);
fac.imp_getfield (v_newline, c_delim, v_naam);
fac.imp_getfield (v_newline, c_delim, v_bedrijf);
fac.imp_getfield (v_newline, c_delim, v_p);
fac.imp_getfield (v_newline, c_delim, v_actie);
fac.imp_getfield (v_newline, c_delim, v_telefoon);
fac.imp_getfield (v_newline, c_delim, v_email);
fac.imp_getfield (v_newline, c_delim, v_kenteken);
v_aanduiding :=
'['
|| TRIM (v_reservering_id)
|| '|'
|| TRIM (v_afspraak_id)
|| '|'
|| TRIM (v_locatiecode)
|| '|'
|| TRIM (v_datum) || ' ' || TRIM (v_van) || '-' || TRIM (v_tot)
|| '|'
|| TRIM (v_contactpersoon)
|| '|'
|| TRIM (v_naam)
|| '|'
|| TRIM (v_bedrijf)
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF header_is_valid = 0
THEN
IF UPPER (TRIM (v_reservering_id)) = 'RESERVERINGID'
AND UPPER (TRIM (v_afspraak_id)) = 'AFSPRAAKID'
AND UPPER (TRIM (v_locatiecode)) = 'LOCATIECODE'
--AND UPPER (TRIM (v_gebouwcode)) = 'GEBOUWCODE'
--AND UPPER (TRIM (v_verdiepingcode)) = 'VERDIEPINGCODE'
--AND UPPER (TRIM (v_ruimtenr)) = 'RUIMTENR'
AND UPPER (TRIM (v_datum)) = 'DATUM'
AND UPPER (TRIM (v_van)) = 'VAN'
AND UPPER (TRIM (v_tot)) = 'TOT'
AND UPPER (TRIM (v_contactpersoon)) = 'CONTACTPERSOON'
AND UPPER (TRIM (v_naam)) = 'NAAM'
AND UPPER (TRIM (v_bedrijf)) = 'BEDRIJF'
AND UPPER (TRIM (v_p)) = 'P'
AND UPPER (TRIM (v_actie)) = 'ACTIE'
AND UPPER (TRIM (v_telefoon)) = 'TELEFOON'
AND UPPER (TRIM (v_email)) = 'EMAIL'
AND UPPER (TRIM (v_kenteken)) = 'KENTEKEN'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'ReserveringId ongeldig; formaat niet <numeriek>/<numeriek>';
v_reservering_id := TRIM (v_reservering_id);
IF v_reservering_id IS NOT NULL
AND (fac.safe_to_number (SUBSTR (v_reservering_id, 1, INSTR (v_reservering_id, '/') - 1)) IS NULL
OR fac.safe_to_number (SUBSTR (v_reservering_id, INSTR (v_reservering_id, '/') + 1)) IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'AfspraakId ongeldig; formaat niet <numeriek>';
v_afspraak_id := TRIM (v_afspraak_id);
IF v_afspraak_id IS NOT NULL AND fac.safe_to_number (v_afspraak_id) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Locatiecode ongeldig; ongedefinieerd of te lang';
v_locatiecode := TRIM (v_locatiecode);
IF COALESCE (v_reservering_id, v_afspraak_id) IS NULL
THEN
IF v_locatiecode IS NOT NULL AND LENGTH (v_locatiecode) > 10
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
ELSE
IF v_locatiecode IS NOT NULL
THEN
v_locatiecode := NULL;
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Locatiecode wordt genegeerd!');
END IF;
END IF;
-- TODO:Gebouwcode/Verdiepingcode/Ruimtenr!
-- TODO:Controle op binnen openingstijden?
v_errormsg := 'Datum/van ongeldig; ongedefinieerd';
v_datum := TRIM (v_datum);
v_van := TRIM (v_van);
v_van_d := fac.safe_to_date (v_datum || ' ' || SUBSTR ('0' || v_van, -5), 'dd-mm-yyyy hh24:mi');
IF COALESCE (v_reservering_id, v_afspraak_id) IS NULL
THEN
IF v_van_d IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
ELSE
IF v_datum IS NOT NULL OR v_van IS NOT NULL
THEN
v_van_d := NULL;
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Datum/van wordt genegeerd!');
END IF;
END IF;
-- TODO:Controle op binnen openingstijden?
v_errormsg := 'Datum/tot ongeldig; ongedefinieerd of voor van-tijdstip';
v_datum := TRIM (v_datum);
v_tot := TRIM (v_tot);
v_tot_d := fac.safe_to_date (v_datum || ' ' || SUBSTR ('0' || v_tot, -5), 'dd-mm-yyyy hh24:mi');
IF COALESCE (v_reservering_id, v_afspraak_id) IS NULL
THEN
IF v_tot_d IS NULL OR v_tot_d < v_van_d
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
ELSE
IF v_datum IS NOT NULL OR v_tot IS NOT NULL
THEN
v_tot_d := NULL;
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Datum/tot wordt genegeerd!');
END IF;
END IF;
--
v_errormsg := 'Contactpersoon ongeldig; ongedefinieerd of te lang';
v_contactpersoon := TRIM (v_contactpersoon);
IF COALESCE (v_reservering_id, v_afspraak_id) IS NULL
THEN
IF v_contactpersoon IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
ELSIF LENGTH (v_contactpersoon) > 50
THEN
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Contactpersoon wordt afgekapt!');
END IF;
ELSE
IF v_contactpersoon IS NOT NULL
THEN
v_contactpersoon := NULL;
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Contactpersoon wordt genegeerd!');
END IF;
END IF;
--
v_errormsg := 'Naam ongeldig; ongedefinieerd of te lang';
v_naam := TRIM (v_naam);
IF v_naam IS NULL OR LENGTH (v_naam) > 30
THEN
fac.imp_writelog (p_import_key, 'I', v_aanduiding || v_errormsg, 'Naam wordt afgekapt!');
END IF;
--
v_errormsg := 'Bedrijf ongeldig; ongedefinieerd of te lang';
v_bedrijf := TRIM (v_bedrijf);
IF v_bedrijf IS NULL OR LENGTH (v_bedrijf) > 60
THEN
fac.imp_writelog (p_import_key, 'I', v_aanduiding || v_errormsg, 'Bedrijf wordt afgekapt!');
END IF;
--
v_errormsg := 'P ongeldig; formaat niet J(a) of N(ee)';
v_p := TRIM (v_p);
IF v_p IS NOT NULL AND NOT (UPPER (v_p) = 'J' OR UPPER (v_p) = 'N' OR UPPER (v_p) = 'JA' OR UPPER (v_p) = 'NEE')
THEN
--v_p := 'N';
fac.imp_writelog (p_import_key, 'I', v_aanduiding || v_errormsg, v_p || ' Bezoeker krijgt geen parkeerplaats!');
END IF;
--
v_errormsg := 'Actie ongeldig; formaat niet Ophalen of Doorlopen';
v_actie := TRIM (v_actie);
IF v_actie IS NOT NULL AND NOT (UPPER (v_actie) = 'OPHALEN' OR UPPER (v_actie) = 'DOORLOPEN')
THEN
--v_actie := 'Ophalen';
fac.imp_writelog (p_import_key, 'I', v_aanduiding || v_errormsg, v_actie || ' Bezoeker wordt opgehaald!');
END IF;
-- TODO:Telefooon/Email/Kenteken!
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO fmhn_imp_bez (reservering_id,
afspraak_key,
locatiecode,
datum,
van,
tot,
contactpersoon,
naam,
bedrijf,
parkeerplaats,
actie,
telefoon,
email,
kenteken)
VALUES (v_reservering_id,
fac.safe_to_number (v_afspraak_id),
v_locatiecode,
v_van_d,
v_van_d,
v_tot_d,
SUBSTR (v_contactpersoon, 1, 50),
SUBSTR (v_naam, 1, 30),
SUBSTR (v_bedrijf, 1, 60),
SUBSTR (v_p, 1, 1),
v_actie,
NULL,
NULL,
NULL);
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'Bezoekers/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'Bezoekers/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces bezoekers afgebroken!');
END fmhn_import_bez;
/
CREATE OR REPLACE PROCEDURE fmhn_update_bez (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_importeur_key NUMBER (10);
v_actie_key_def NUMBER (10);
v_actie_key_all NUMBER (10);
v_prev_rsv_ruimte_key NUMBER (10);
v_prev_afspraak_key NUMBER (10);
v_prev_locatie_key NUMBER (10);
v_prev_datum_van DATE;
v_prev_datum_tot DATE;
v_prev_contactpersoon VARCHAR2 (50);
v_cur_afspraak_key NUMBER (10);
v_cur_bezoekers_key NUMBER (10);
v_cur_deel_key NUMBER (10);
v_count_tot NUMBER (10) := 0;
v_count_new NUMBER (10) := 0;
v_count NUMBER (10);
CURSOR c1
IS
SELECT i.reservering_id,
COALESCE (rrr.res_rsv_ruimte_key, -1) res_rsv_ruimte_key,
i.afspraak_key,
COALESCE (a.bez_afspraak_key, -1) bez_afspraak_key,
i.locatiecode,
COALESCE (rrr.alg_locatie_key, a.alg_locatie_key, l.alg_locatie_key, -1) alg_locatie_key,
COALESCE (rrr.res_rsv_ruimte_van, a.bez_afspraak_datum, i.van) van,
COALESCE (rrr.res_rsv_ruimte_tot, a.bez_afspraak_eind, i.tot) tot,
COALESCE (rph.prs_perslid_naam_friendly, aph.prs_perslid_naam_friendly, i.contactpersoon) contactpersoon,
i.bedrijf, i.naam, i.parkeerplaats, i.actie,
COALESCE (rrr.res_rsv_ruimte_host_key, a.bez_afspraak_host_key) host_key,
COALESCE (rrr.res_rsv_ruimte_contact_key, a.bez_afspraak_contact_key) contact_key
FROM (SELECT * FROM fmhn_imp_bez) i
LEFT JOIN (SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_contact_key,
aog.alg_locatie_key
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key) rrr
ON i.reservering_id = TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr)
LEFT JOIN prs_v_perslid_fullnames_all rph
ON rrr.res_rsv_ruimte_host_key = rph.prs_perslid_key
LEFT JOIN bez_afspraak a
ON i.afspraak_key = a.bez_afspraak_key
LEFT JOIN prs_v_perslid_fullnames_all aph
ON a.bez_afspraak_host_key = aph.prs_perslid_key
LEFT JOIN alg_v_aanweziglocatie l
ON UPPER (i.locatiecode) = UPPER (l.alg_locatie_code)
ORDER BY 1, 3, 5, 7, 8, 9, 10, 11;
BEGIN
v_errormsg := 'Fout bepalen importeur';
SELECT prs_perslid_key
INTO v_importeur_key
FROM fac_import
WHERE fac_import_key = p_import_key;
v_errormsg := 'Fout bepalen actie';
SELECT MAX (DECODE (bez_actie_default, 1, bez_actie_key, -1)),
MAX (DECODE (COALESCE (bez_actie_default, 0), 0, bez_actie_key, -1))
INTO v_actie_key_def,
v_actie_key_all
FROM bez_actie
WHERE bez_actie_verwijder IS NULL
AND bez_actie_flags = 0;
v_prev_rsv_ruimte_key := -1;
v_prev_afspraak_key := -1;
v_prev_locatie_key := -1;
v_prev_datum_van := TRUNC (SYSDATE);
v_prev_datum_tot := TRUNC (SYSDATE);
v_prev_contactpersoon := '';
v_cur_afspraak_key := -1;
v_cur_bezoekers_key := -1;
v_cur_deel_key := -1;
FOR rec IN c1
LOOP
BEGIN
v_aanduiding :=
'['
|| TO_CHAR (rec.res_rsv_ruimte_key)
|| '|'
|| TO_CHAR (rec.bez_afspraak_key)
|| '|'
|| TO_CHAR (rec.alg_locatie_key)
|| '|'
|| TO_CHAR (rec.van, 'dd-mm-yyyy hh24:mi') || '-' || TO_CHAR (rec.tot, 'hh24:mi')
|| '|'
|| rec.contactpersoon
|| '|'
|| rec.bedrijf
|| '|'
|| rec.naam
|| '] ';
v_count_tot := v_count_tot + 1;
-- TODO:Autorisaties strakker controleren?
v_errormsg := 'Fout bepalen autorisatie';
SELECT COUNT ( * )
INTO v_count
FROM (SELECT *
FROM fac_gebruikersgroep gg
WHERE gg.prs_perslid_key = 10321 -- Simone=28142
AND EXISTS
(SELECT 1
FROM fac_groeprechten
WHERE fac_functie_key = 15 -- BEZUSE
AND fac_groep_key = gg.fac_groep_key)
AND (gg.prs_perslid_key = COALESCE (rec.contact_key, v_importeur_key) -- Importeur = contact!
OR EXISTS -- Importeur zit in een VERVANGER-groep met contact voor betreffende afspraak!
(SELECT 1
FROM fac_gebruikersgroep gg2, fac_groep g2
WHERE gg2.prs_perslid_key = rec.contact_key -- Saskia=10321
AND gg2.fac_groep_key = g2.fac_groep_key
AND g2.fac_groep_collega = 1
AND g2.fac_groep_key = gg.fac_groep_key))
UNION ALL
SELECT *
FROM fac_gebruikersgroep gg
WHERE gg.prs_perslid_key = v_importeur_key -- Simone=28142
AND EXISTS
(SELECT 1
FROM fac_groeprechten
WHERE fac_functie_key = 321 -- BEZFOF
AND fac_gebruiker_prs_level_write < 9
AND fac_gebruiker_alg_level_write < 9
AND fac_groep_key = gg.fac_groep_key));
IF v_count = 0
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Niet geautoriseerd om deze bezoeker aan te melden', '');
ELSIF rec.van < SYSDATE
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Bezoek aanmelden terug in de tijd niet toegestaan', '');
ELSIF rec.reservering_id IS NOT NULL AND rec.res_rsv_ruimte_key = -1
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Fout bepalen bestaande reservering', '');
ELSIF rec.afspraak_key IS NOT NULL AND rec.bez_afspraak_key = -1
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Fout bepalen bestaande afspraak', '');
ELSIF rec.locatiecode IS NOT NULL AND rec.alg_locatie_key = -1
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Fout bepalen locatie nieuwe afspraak', '');
ELSIF v_prev_rsv_ruimte_key != rec.res_rsv_ruimte_key
OR v_prev_afspraak_key != rec.bez_afspraak_key
OR v_prev_locatie_key != rec.alg_locatie_key
OR v_prev_datum_van != rec.van
OR v_prev_datum_tot != rec.tot
OR UPPER (v_prev_contactpersoon) != UPPER (rec.contactpersoon)
THEN
v_errormsg := 'Fout bepalen bestaande/nieuwe afspraak';
IF rec.res_rsv_ruimte_key != -1 -- Bestaande reservering
THEN
v_prev_rsv_ruimte_key := rec.res_rsv_ruimte_key;
v_prev_afspraak_key := -1;
-- Bepalen bestaande/nieuwe afspraak bij bestaande reservering!
SELECT COUNT (*)
INTO v_count
FROM bez_afspraak
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
IF v_count = 0
THEN
-- Toevoegen afspraak bij reservering!
v_errormsg := 'Fout toevoegen afspraak bij reservering';
INSERT INTO bez_afspraak (prs_perslid_key,
bez_afspraak_datum,
bez_actie_key,
bez_afspraak_ruimte,
bez_afspraak_opmerking,
bez_afspraak_eind,
bez_afspraak_gastheer,
bez_afspraak_telefoonnr,
alg_locatie_key,
res_rsv_ruimte_key,
alg_onrgoed_keys,
bez_afspraak_host_key,
bez_afspraak_contact_key)
VALUES (NULL,
rec.van,
COALESCE (v_actie_key_def, v_actie_key_all),
NULL,
NULL, -- Opmerking
rec.tot,
rec.contactpersoon,
NULL, -- Telefoon
rec.alg_locatie_key,
rec.res_rsv_ruimte_key,
NULL,
rec.host_key,
rec.contact_key)
RETURNING bez_afspraak_key
INTO v_cur_afspraak_key;
fac.trackaction ('BEZMUT', v_cur_afspraak_key, v_importeur_key, NULL, '');
fac.imp_writelog (p_import_key, 'I', v_aanduiding || 'Afspraak ' || TO_CHAR (v_cur_afspraak_key) || ' aangemaakt', '');
ELSE
SELECT bez_afspraak_key
INTO v_cur_afspraak_key
FROM bez_afspraak
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
END IF;
ELSIF rec.bez_afspraak_key != -1 -- Bestaande losse afspraak
THEN
v_prev_rsv_ruimte_key := -1;
v_prev_afspraak_key := rec.bez_afspraak_key;
v_cur_afspraak_key := rec.bez_afspraak_key;
ELSE -- Nieuwe losse afspraak
v_prev_rsv_ruimte_key := -1;
v_prev_afspraak_key := -1;
-- Toevoegen losse afspraak!
v_errormsg := 'Fout toevoegen losse afspraak';
INSERT INTO bez_afspraak (prs_perslid_key,
bez_afspraak_datum,
bez_actie_key,
bez_afspraak_ruimte,
bez_afspraak_opmerking,
bez_afspraak_eind,
bez_afspraak_gastheer,
bez_afspraak_telefoonnr,
alg_locatie_key,
res_rsv_ruimte_key,
alg_onrgoed_keys,
bez_afspraak_host_key,
bez_afspraak_contact_key)
VALUES (v_importeur_key,
rec.van,
COALESCE (v_actie_key_def, v_actie_key_all),
NULL,
NULL, -- Opmerking
rec.tot,
rec.contactpersoon, -- TODO:Bij huidige BEZ-settings genegeerd en geldt host=importeur!
NULL, -- Telefoon
rec.alg_locatie_key,
NULL,
NULL,
v_importeur_key,
v_importeur_key)
RETURNING bez_afspraak_key
INTO v_cur_afspraak_key;
fac.trackaction ('BEZMUT', v_cur_afspraak_key, v_importeur_key, NULL, '');
fac.imp_writelog (p_import_key, 'I', v_aanduiding || 'Afspraak ' || TO_CHAR (v_cur_afspraak_key) || ' aangemaakt', '');
END IF;
v_prev_locatie_key := rec.alg_locatie_key;
v_prev_datum_van := rec.van;
v_prev_datum_tot := rec.tot;
v_prev_contactpersoon := rec.contactpersoon;
-- Verwijderen huidige bezoeker(s) inclusief kenmerken/parkeerplaatsen!
v_errormsg := 'Fout verwijderen bezoeker(s)';
DELETE FROM bez_kenmerkwaarde bk
WHERE EXISTS
(SELECT 1
FROM bez_bezoekers
WHERE bez_afspraak_key = v_cur_afspraak_key
AND bez_bezoekers_key = bk.bez_bezoekers_key);
DELETE FROM res_rsv_deel rrd
WHERE EXISTS
(SELECT 1
FROM bez_bezoekers
WHERE bez_afspraak_key = v_cur_afspraak_key
AND bez_bezoekers_key = rrd.bez_bezoekers_key);
DELETE FROM bez_bezoekers WHERE bez_afspraak_key = v_cur_afspraak_key;
SELECT MIN (rd.res_deel_key)
INTO v_cur_deel_key
FROM res_deel rd, ins_deel d
WHERE rd.res_deel_verwijder IS NULL
AND rd.res_discipline_key = 781 -- TODO:Minder hard-coded!
AND rd.res_ins_deel_key = d.ins_deel_key
AND d.ins_alg_locatie_key = rec.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_deel_key = rd.res_deel_key
AND res_rsv_deel_van <= rec.tot
AND res_rsv_deel_tot >= rec.van);
-- Toevoegen eerste bezoeker!
v_errormsg := 'Fout toevoegen eerste bezoeker';
INSERT INTO bez_bezoekers (bez_afspraak_key, bez_afspraak_naam, bez_afspraak_bedrijf, bez_afspraak_opmerking)
VALUES (v_cur_afspraak_key, rec.naam, rec.bedrijf, NULL)
RETURNING bez_bezoekers_key
INTO v_cur_bezoekers_key;
IF rec.parkeerplaats = 'J'
THEN
-- Toevoegen parkeerplaats!
v_errormsg := 'Fout bepalen eerste bezoeker-parkeerplaats';
SELECT MIN (rd.res_deel_key)
INTO v_cur_deel_key
FROM res_deel rd, ins_deel d
WHERE rd.res_deel_verwijder IS NULL
AND rd.res_discipline_key = 781 -- TODO:Minder hard-coded!
AND rd.res_ins_deel_key = d.ins_deel_key
AND d.ins_alg_locatie_key = rec.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_deel_key = rd.res_deel_key
AND res_rsv_deel_van <= rec.tot
AND res_rsv_deel_tot >= rec.van);
IF v_cur_deel_key IS NOT NULL
THEN
v_errormsg := 'Fout toevoegen eerste bezoeker-parkeerplaats';
INSERT INTO res_rsv_deel (res_deel_key, res_rsv_deel_aantal, res_rsv_deel_van, res_rsv_deel_tot, res_status_bo_key, res_rsv_ruimte_key, bez_bezoekers_key, res_rsv_deel_dirtlevel)
VALUES (v_cur_deel_key, 1, rec.van, rec.tot, 2, DECODE (rec.res_rsv_ruimte_key, -1, NULL, rec.res_rsv_ruimte_key), v_cur_bezoekers_key, 0);
ELSE
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Geen parkeerplaats beschikbaar', '');
END IF;
END IF;
-- Toevoegen Ophalen/Doorlopen! TODO:Minder hard-coded!
v_errormsg := 'Fout toevoegen eerste bezoeker-actie';
INSERT INTO bez_kenmerkwaarde (bez_bezoekers_key, bez_kenmerk_key, bez_kenmerkwaarde_waarde)
VALUES (v_cur_bezoekers_key, 1160, DECODE (rec.actie, 'Doorlopen', '2002', '2001'));
fac.trackaction ('BEZUPD', v_cur_afspraak_key, v_importeur_key, NULL, 'Afspraak ' || TO_CHAR (v_cur_afspraak_key) || ' is gewijzigd' || CHR (13) || CHR (10) || 'Bezoekers via import toegevoegd/bijgewerkt');
-- TODO:Verwijderen (BEZUPD-tracking wordt standaard al getoond bij eventueel gekoppelde reservering)!
--IF rec.res_rsv_ruimte_key != -1
--THEN
-- fac.trackaction ('RESUPD', rec.res_rsv_ruimte_key, v_importeur_key, NULL, 'Afspraak ' || TO_CHAR (v_cur_afspraak_key) || ' is gewijzigd' || CHR (13) || CHR (10) || 'Bezoekers via import toegevoegd/bijgewerkt');
--END IF;
ELSE
-- Toevoegen volgende bezoeker!
v_errormsg := 'Fout toevoegen volgende bezoeker';
INSERT INTO bez_bezoekers (bez_afspraak_key, bez_afspraak_naam, bez_afspraak_bedrijf, bez_afspraak_opmerking)
VALUES (v_cur_afspraak_key, rec.naam, rec.bedrijf, NULL)
RETURNING bez_bezoekers_key
INTO v_cur_bezoekers_key;
-- Toevoegen parkeerplaats!
IF rec.parkeerplaats = 'J'
THEN
-- Toevoegen parkeerplaats!
v_errormsg := 'Fout bepalen eerste bezoeker-parkeerplaats';
SELECT MIN (rd.res_deel_key)
INTO v_cur_deel_key
FROM res_deel rd, ins_deel d
WHERE rd.res_deel_verwijder IS NULL
AND rd.res_discipline_key = 781 -- TODO:Minder hard-coded!
AND rd.res_ins_deel_key = d.ins_deel_key
AND d.ins_alg_locatie_key = rec.alg_locatie_key
AND NOT EXISTS
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE res_deel_key = rd.res_deel_key
AND res_rsv_deel_van <= rec.tot
AND res_rsv_deel_tot >= rec.van);
IF v_cur_deel_key IS NOT NULL
THEN
v_errormsg := 'Fout toevoegen eerste bezoeker-parkeerplaats';
INSERT INTO res_rsv_deel (res_deel_key, res_rsv_deel_aantal, res_rsv_deel_van, res_rsv_deel_tot, res_status_bo_key, res_rsv_ruimte_key, bez_bezoekers_key, res_rsv_deel_dirtlevel)
VALUES (v_cur_deel_key, 1, rec.van, rec.tot, 2, DECODE (rec.res_rsv_ruimte_key, -1, NULL, rec.res_rsv_ruimte_key), v_cur_bezoekers_key, 0);
ELSE
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Geen parkeerplaats beschikbaar', '');
END IF;
END IF;
-- Toevoegen Ophalen/Doorlopen! TODO:Minder hard-coded!
v_errormsg := 'Fout toevoegen volgende bezoeker-actie';
INSERT INTO bez_kenmerkwaarde (bez_bezoekers_key, bez_kenmerk_key, bez_kenmerkwaarde_waarde)
VALUES (v_cur_bezoekers_key, 1160, DECODE (rec.actie, 'Doorlopen', '2002', '2001'));
END IF;
v_count_new := v_count_new + 1;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'Bezoekers/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'Bezoekers/#toegevoegd: ' || TO_CHAR (v_count_new), '');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces bezoekers afgebroken!');
END fmhn_update_bez;
/
*/
/* Formatted on 3-10-2021 15:33:48 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW FMHN_V_RAP_CATERING
(
HIDE_F_SRT,
NR,
FCLT_F_GEBOUW,
DATUM,
BEGINTIJD,
EINDTIJD,
RUIMTENUMMER,
FCLT_F_RUIMTE,
OPSTELLING,
AANTAL,
OMSCHRIJVING,
TIJDSTIP,
ARTIKEL,
TOELICHTING,
KEY
)
AS
SELECT DISTINCT
TO_CHAR (rr.res_rsv_ruimte_van, 'yyyy-mm-dd')
|| rg.alg_gebouw_upper
|| TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi')
hide_f_srt,
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr nr,
rg.alg_gebouw_omschrijving fclt_f_gebouw,
rr.res_rsv_ruimte_van datum,
TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi') begintijd,
TO_CHAR (rr.res_rsv_ruimte_tot, 'hh24:mi') eindtijd,
rui.alg_ruimte_nr ruimtenummer,
r.res_ruimte_nr fclt_f_ruimte,
o.res_opstelling_omschrijving opstelling,
rra.res_rsv_artikel_aantal aantal,
rr.res_rsv_ruimte_omschrijving omschrijving,
rra.res_rsv_artikel_levering tijdstip,
ra.res_artikel_omschrijving artikel,
rka.res_kenmerkartikel_waarde toelichting,
rr.res_rsv_ruimte_key key
FROM res_rsv_ruimte rr,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte r,
res_alg_ruimte ar,
alg_v_ruimte_gegevens rg,
res_rsv_artikel rra,
res_artikel ra,
res_kenmerkartikel rka,
alg_ruimte rui
WHERE rr.res_rsv_ruimte_verwijder IS NULL
AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
AND o.res_opstelling_key = ro.res_opstelling_key
AND r.res_ruimte_key = ro.res_ruimte_key
AND ar.res_ruimte_key = r.res_ruimte_key
AND ar.alg_ruimte_key = rui.alg_ruimte_key
AND ar.res_alg_ruimte_verwijder IS NULL
AND rg.alg_ruimte_key = ar.alg_ruimte_key
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rra.RES_RSV_artikel_verwijder IS NULL
AND ra.res_artikel_key = rra.res_artikel_key
AND rra.res_rsv_ruimte_key IS NOT NULL
AND rra.res_rsv_artikel_key = rka.res_rsv_artikel_key
AND rka.res_kenmerk_key = 25
UNION ALL
SELECT DISTINCT
TO_CHAR (rr.res_rsv_ruimte_van, 'yyyy-mm-dd')
|| rg.alg_gebouw_upper
|| TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi')
hide_f_srt,
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr nr,
rg.alg_gebouw_omschrijving fclt_f_gebouw,
rr.res_rsv_ruimte_van datum,
TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi') begintijd,
TO_CHAR (rr.res_rsv_ruimte_tot, 'hh24:mi') eindtijd,
rui.alg_ruimte_nr ruimtenummer,
NULL fclt_f_ruimte,
NULL opstelling,
rra.res_rsv_artikel_aantal aantal,
rr.res_rsv_ruimte_omschrijving omschrijving,
rra.res_rsv_artikel_levering tijdstip,
ra.res_artikel_omschrijving artikel,
rka.res_kenmerkartikel_waarde toelichting,
rr.res_rsv_ruimte_key key
FROM res_rsv_ruimte rr,
res_ruimte r,
alg_v_ruimte_gegevens rg,
res_rsv_artikel rra,
res_artikel ra,
res_kenmerkartikel rka,
alg_ruimte rui
WHERE rr.res_rsv_ruimte_verwijder IS NULL
AND rg.alg_ruimte_key = rr.alg_ruimte_key
AND rg.alg_ruimte_key = rui.alg_ruimte_key
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rra.RES_RSV_artikel_verwijder IS NULL
AND ra.res_artikel_key = rra.res_artikel_key
AND rra.res_rsv_ruimte_key IS NOT NULL
AND rra.res_rsv_artikel_key = rka.res_rsv_artikel_key
AND rka.res_kenmerk_key = 25;
CREATE OR REPLACE VIEW fmhn_v_rap_res_looplijst
(
hide_f_srt,
nr,
fclt_f_gebouw,
datum,
begintijd,
eindtijd,
fclt_f_ruimte,
opstelling,
aantal,
omschrijving,
meldingen,
voorzieningen,
catering,
beveiliging,
schoonmaak,
res_rsv_ruimte_key
)
AS
SELECT DISTINCT
TO_CHAR (rr.res_rsv_ruimte_van, 'yyyy-mm-dd') || rg.alg_gebouw_upper || TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi')
hide_f_srt,
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr nr,
rg.alg_gebouw_omschrijving fclt_f_gebouw,
rr.res_rsv_ruimte_van datum,
TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi') begintijd,
TO_CHAR (rr.res_rsv_ruimte_tot, 'hh24:mi') eindtijd,
r.res_ruimte_nr fclt_f_ruimte,
o.res_opstelling_omschrijving opstelling,
rr.res_rsv_ruimte_bezoekers aantal,
rr.res_rsv_ruimte_omschrijving omschrijving,
mld.aant meldingen,
--voorzieningen,
CASE
WHEN LENGTH (voorzieningen) > 75
THEN SUBSTR (voorzieningen, 1, 75) || ' ...'
ELSE voorzieningen
END
voorzieningen,
CASE
WHEN LENGTH (catering) > 75
THEN SUBSTR (catering, 1, 75) || ' ...'
ELSE catering
END
catering,
CASE
WHEN LENGTH (beveiliging) > 75
THEN SUBSTR (beveiliging, 1, 75) || ' ...'
ELSE beveiliging
END
beveiliging,
CASE
WHEN LENGTH (schoonmaak) > 75
THEN SUBSTR (schoonmaak, 1, 75) || ' ...'
ELSE schoonmaak
END
schoonmaak,
rr.res_rsv_ruimte_key
FROM res_rsv_ruimte rr,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte r,
res_alg_ruimte ar,
alg_v_ruimte_gegevens rg,
( SELECT res_rsv_ruimte_key,
'ja (' || COUNT (res_rsv_ruimte_key) || ')' aant
FROM mld_melding
WHERE res_rsv_ruimte_key IS NOT NULL
GROUP BY res_rsv_ruimte_key) mld,
( SELECT res_rsv_ruimte_key,
listagg (voorziening, ', ') WITHIN GROUP (ORDER BY voorziening)
AS voorzieningen
FROM (SELECT res_rsv_ruimte_key,
res_deel_omschrijving voorziening
FROM res_deel rd, res_rsv_deel rrd
WHERE res_rsv_deel_verwijder IS NULL
AND rd.res_deel_key = rrd.res_deel_key
AND res_rsv_ruimte_key IS NOT NULL)
GROUP BY res_rsv_ruimte_key) voorz,
( SELECT res_rsv_ruimte_key,
listagg (artikel, ', ') WITHIN GROUP (ORDER BY artikel)
AS catering
FROM (SELECT res_rsv_ruimte_key,
res_rsv_artikel_aantal || ' x ' || res_artikel_omschrijving
artikel
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_rsv_ruimte_key IS NOT NULL
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (3590, 3591)) -- Reguliere catering
GROUP BY res_rsv_ruimte_key) cat,
( SELECT res_rsv_ruimte_key,
listagg (artikel, ', ') WITHIN GROUP (ORDER BY artikel desc)
AS beveiliging
FROM (SELECT res_rsv_ruimte_key,
res_rsv_artikel_aantal || ' x ' || res_artikel_omschrijving
artikel
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_rsv_ruimte_key IS NOT NULL
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = 3590) -- Beveiliging
GROUP BY res_rsv_ruimte_key) beveiliging,
( SELECT res_rsv_ruimte_key,
listagg (artikel, ', ') WITHIN GROUP (ORDER BY artikel desc)
AS schoonmaak
FROM (SELECT res_rsv_ruimte_key,
res_rsv_artikel_aantal || ' x ' || res_artikel_omschrijving
artikel
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_rsv_ruimte_key IS NOT NULL
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = 3591) -- Schoonmaak
GROUP BY res_rsv_ruimte_key) schoonmaak
WHERE TRUNC (rr.res_rsv_ruimte_van) > TO_DATE ('01-07-2020', 'dd-mm-yyyy')
AND rr.res_rsv_ruimte_verwijder IS NULL
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND ro.res_ruimte_key = r.res_ruimte_key
AND r.res_ruimte_key = ar.res_ruimte_key
AND ar.res_alg_ruimte_verwijder IS NULL
AND ar.alg_ruimte_key = rg.alg_ruimte_key
AND rr.res_rsv_ruimte_key = mld.res_rsv_ruimte_key(+)
AND rr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rr.res_rsv_ruimte_key = cat.res_rsv_ruimte_key(+)
AND rr.res_rsv_ruimte_key = beveiliging.res_rsv_ruimte_key(+)
AND rr.res_rsv_ruimte_key = schoonmaak.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW fmhn_v_rap_cateringtoday
(
hide_f_srt,
nr,
fclt_f_gebouw,
datum,
begintijd,
eindtijd,
fclt_f_ruimte,
opstelling,
aantal,
omschrijving,
meldingen,
voorzieningen,
catering,
res_rsv_ruimte_key,
afgeleverd
)
AS
SELECT dvr.hide_f_srt,
dvr.nr,
dvr.fclt_f_gebouw,
dvr.datum,
dvr.begintijd,
dvr.eindtijd,
dvr.fclt_f_ruimte,
dvr.opstelling,
dvr.aantal,
dvr.omschrijving,
dvr.meldingen,
dvr.voorzieningen,
dvr.catering,
dvr.res_rsv_ruimte_key,
DECODE (st.res_kenmerkreservering_waarde,
1, lcl.l ('lcl_yes'),
lcl.l ('lcl_no'))
afgeleverd
FROM fmhn_v_rap_res_looplijst dvr,
(SELECT rk.res_rsv_ruimte_key,
sk.res_srtkenmerk_omschrijving,
res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde rk, res_kenmerk k, res_srtkenmerk sk
WHERE rk.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 101) st
WHERE TRUNC (dvr.datum) = TRUNC (SYSDATE)
AND dvr.catering IS NOT NULL
AND dvr.res_rsv_ruimte_key = st.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW res_v_rap_rescat
(
KEY,
NUMMER,
RES_OMSCHRIJVING,
INVOERDATUM,
DATUM,
GASTHEER,
CONTACT,
GASTHEER_EMAIL,
CONTACT_EMAIL,
INVOERDER,
KOSTENSOORTGROEP,
KOSTENSOORT,
KPN,
KPN_OMSCHRIJVING,
KPN_EXTERN,
FCLT_3D_DIVISIE_KEY,
DIVISIE_NAAM,
DIVISIE_OMSCHRIJVING,
FCLT_3D_AFDELING_KEY,
AFDELING_CODE,
AFDELING_OMSCHRIJVING,
AFDELING_IS_FMH,
REGIO_OMSCHRIJVING,
DISTRICT_OMSCHIJVING,
FCLT_3D_LOCATIE_KEY,
LOCATIE,
LOCATIE_OMSCHRIJVING,
LOCATIE_PLAATS,
GEBOUW,
VERDIEPING,
RUIMTE,
OPSTELLING,
CAPACITEIT,
NO_SHOW,
MANDAAT,
PERSONEELSNR,
FCLT_3D_DISCIPLINE_KEY,
CATALOGUS_KEY,
CATALOGUS,
RESERVEERBARE_RUIMTE,
BEZOEKERS,
VAN,
TOT,
DUUR,
STATUS,
BOSTATUS,
ACTIVITEIT,
SRTACTIVITEIT_KEY,
ACTIVITEITSOORT,
OPMERKING,
VOORZIENING_DISCIPLINE_KEY,
VOORZIENING_TYPE,
VOORZIENING_CATALOGUS,
LEVERANCIER,
VOORZIENING_PRODUCT_KEY,
VOORZIENING_PRODUCT,
VOORZIENING_TOTAALPRIJS,
VOORZIENING_VAN,
VOORZIENING_TOT,
VOORZIENING_AANTAL,
VOORZIENING_PRIJS
)
AS
SELECT rrr.res_rsv_ruimte_key,
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_omschrijving,
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
rrr.res_rsv_ruimte_van,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT ph.prs_perslid_email
FROM prs_perslid ph
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT pc.prs_perslid_email
FROM prs_perslid pc
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT MAX(pf.prs_perslid_naam_full)
FROM fac_tracking tr,
fac_srtnotificatie str,
prs_v_perslid_fullnames_all pf
WHERE tr.prs_perslid_key = pf.prs_perslid_key
AND str.fac_srtnotificatie_code = 'RESNEW'
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key))))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key))))
kostensoort,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
k.prs_kostenplaats_extern,
an.prs_afdeling_key,
an.prs_afdeling_naam,
an.prs_afdeling_omschrijving,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
CASE
WHEN a.prs_afdeling_omschrijving LIKE '%FMH%'
THEN 'Ja'
ELSE 'Nee'
END,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
rrr.res_rsv_ruimte_noshow,
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
prs_perslid_nr,
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)),
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
(SELECT res_status_bo_omschrijving
FROM res_status_bo rs
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
ra.res_activiteit_omschrijving,
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
rrr.res_rsv_ruimte_opmerking,
voorz.ins_discipline_key,
voorz.vtype,
voorz.catalogus,
(SELECT prs_bedrijf_naam
FROM res_disc_params rdp, prs_bedrijf b
WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key
AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
voorz.product_key,
voorz.product,
voorz.totaalprijs,
TO_CHAR (voorz.van, 'hh24:mi'),
TO_CHAR (voorz.tot, 'hh24:mi'),
voorz.aantal,
voorz.prijs
FROM res_rsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
prs_afdeling an,
prs_v_afdeling_boom ab,
( SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE (r.res_rsv_ruimte_verwijder IS NULL OR (r.res_rsv_ruimte_verwijder IS NOT NULL AND r.res_status_fo_key = 4)) -- vervallen maar wel doorbelast
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL
AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
(SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
ra.res_artikel_key product_key,
ra.res_artikel_omschrijving product,
NVL (rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal * res_artikel_prijs)
totaalprijs,
rra.res_rsv_artikel_levering van,
NULL tot,
rra.res_rsv_artikel_aantal aantal,
NVL (
rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal,
res_artikel_prijs)
prijs,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
'consumable' vtype
FROM res_rsv_artikel rra,
res_artikel ra,
ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key) voorz
WHERE (rrr.res_rsv_ruimte_verwijder IS NULL OR (rrr.res_rsv_ruimte_verwijder IS NOT NULL AND rrr.res_status_fo_key = 4)) -- vervallen maar wel doorbelast
AND rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
AND (rrr.res_ruimte_opstel_key IS NOT NULL
OR voorz.res_rsv_ruimte_key IS NOT NULL)
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
CREATE OR REPLACE VIEW fmhn_v_rap_kostencatbron
AS
SELECT ru.*,
NULL conversie_naam,
(SELECT res_artikel_btw
FROM res_artikel
WHERE res_artikel_key = ru.voorziening_product_key)
BTW
FROM res_v_rap_rescat ru
WHERE ru.voorziening_product_key <> 501
AND ru.voorziening_type = 'consumable'
AND ru.voorziening_catalogus IS NOT NULL
UNION ALL
SELECT DISTINCT
ru.*,
sub.res_kenmerkartikel_waarde,
fac.safe_to_number(DECODE (
SUBSTR (sub.res_kenmerkartikel_waarde, -7, 1),
'1',
'21',
SUBSTR (sub.res_kenmerkartikel_waarde, -7, 1)))
BTW
FROM res_v_rap_rescat ru,
(SELECT ra.res_rsv_ruimte_key,
ra.res_artikel_key,
ra.res_rsv_artikel_aantal,
ra.res_rsv_artikel_prijs,
TO_CHAR (ra.res_rsv_artikel_levering, 'HH:MI') van,
rk.res_kenmerkartikel_waarde
FROM res_kenmerkartikel rk, res_rsv_artikel ra
WHERE rk.res_rsv_artikel_key = ra.res_rsv_artikel_key
AND rk.res_kenmerk_key IN (25)) sub
WHERE ru.voorziening_type = 'consumable'
AND ru.voorziening_catalogus IS NOT NULL
AND sub.res_rsv_ruimte_key = ru.key
AND sub.res_artikel_key = ru.voorziening_product_key
AND sub.res_rsv_artikel_aantal = ru.voorziening_aantal
AND sub.res_rsv_artikel_prijs = ru.voorziening_totaalprijs
UNION ALL
SELECT DISTINCT
ru.*,
sub.res_kenmerkartikel_waarde,
sub.res_artikel_btw
BTW
FROM res_v_rap_rescat ru,
(SELECT ra.res_rsv_ruimte_key,
ra.res_artikel_key,
ra.res_rsv_artikel_aantal,
ra.res_rsv_artikel_prijs,
r.res_artikel_btw,
TO_CHAR (ra.res_rsv_artikel_levering, 'HH:MI') van,
rk.res_kenmerkartikel_waarde
FROM res_kenmerkartikel rk, res_rsv_artikel ra, res_artikel r
WHERE rk.res_rsv_artikel_key = ra.res_rsv_artikel_key
AND ra.res_artikel_key = r.res_artikel_key
AND rk.res_kenmerk_key IN (121, 122, 123)) sub
WHERE ru.voorziening_type = 'consumable'
AND ru.voorziening_catalogus IS NOT NULL
AND sub.res_rsv_ruimte_key = ru.key
AND sub.res_artikel_key = ru.voorziening_product_key
AND sub.res_rsv_artikel_aantal = ru.voorziening_aantal
AND sub.res_rsv_artikel_prijs = ru.voorziening_totaalprijs;
CREATE OR REPLACE VIEW fmhn_v_rap_kostencatbron2
AS
SELECT c.*,
DECODE (c.voorziening_product,
'Artikel uit conversie', c.conversie_naam, 'Conversie 0 BTW', c.conversie_naam, 'Conversie 9 BTW', c.conversie_naam, 'Conversie 21 BTW', c.conversie_naam,
c.voorziening_product)
product,
CASE WHEN c.BTW = 0 THEN ROUND (c.voorziening_totaalprijs, 2) END BTW_0,
CASE
WHEN c.BTW = 9
AND (c.voorziening_product NOT IN ('Artikel uit conversie', 'Conversie 0 BTW', 'Conversie 9 BTW', 'Conversie 21 BTW') OR c.fclt_3d_locatie_key IN (5, 3, 6))
THEN
ROUND (c.voorziening_totaalprijs * 1.09, 2)
WHEN c.BTW = 9
AND c.voorziening_product IN ('Artikel uit conversie', 'Conversie 0 BTW', 'Conversie 9 BTW', 'Conversie 21 BTW')
AND c.fclt_3d_locatie_key NOT IN (5, 3, 6)
THEN
ROUND (c.voorziening_totaalprijs, 2)
END
BTW_9,
CASE
WHEN c.BTW = 21
AND (c.voorziening_product NOT IN ('Artikel uit conversie', 'Conversie 0 BTW', 'Conversie 9 BTW', 'Conversie 21 BTW') OR c.fclt_3d_locatie_key IN (5, 3, 6))
THEN
ROUND (c.voorziening_totaalprijs * 1.21, 2)
WHEN c.BTW = 21
AND c.voorziening_product IN ('Artikel uit conversie', 'Conversie 0 BTW', 'Conversie 9 BTW', 'Conversie 21 BTW')
AND c.fclt_3d_locatie_key NOT IN (5, 3, 6)
THEN
ROUND (c.voorziening_totaalprijs, 2)
END
BTW_21
FROM fmhn_v_rap_kostencatbron c;
CREATE OR REPLACE VIEW fmhn_v_rap_kostencatering
AS
SELECT c.*, ROUND (COALESCE (c.btw_0,
c.btw_9,
c.btw_21,
c.voorziening_totaalprijs), 2)
totaal_incl
FROM fmhn_v_rap_kostencatbron2 c;
CREATE OR REPLACE VIEW fmhn_v_rap_res_middelen
(
hide_f_srt,
nr,
fclt_f_gebouw,
datum,
begintijd,
eindtijd,
fclt_f_ruimte,
opstelling,
aantal,
omschrijving,
meldingen,
--voorzieningen,
catering, -- Middelen
res_rsv_ruimte_key,
afgeleverd
)
AS
SELECT dvr.hide_f_srt,
dvr.nr,
dvr.fclt_f_gebouw,
dvr.datum,
dvr.begintijd,
dvr.eindtijd,
dvr.fclt_f_ruimte,
dvr.opstelling,
dvr.aantal,
dvr.omschrijving,
dvr.meldingen,
--dvr.voorzieningen,
dvr.voorzieningen catering,
dvr.res_rsv_ruimte_key,
DECODE (st.res_kenmerkreservering_waarde,
1, lcl.l ('lcl_yes'),
lcl.l ('lcl_no'))
afgeleverd
FROM fmhn_v_rap_res_looplijst dvr,
(SELECT rk.res_rsv_ruimte_key,
sk.res_srtkenmerk_omschrijving,
res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde rk, res_kenmerk k, res_srtkenmerk sk
WHERE rk.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 101) st -- Afgeleverd-vinkveld
WHERE TRUNC (dvr.datum) = TRUNC (SYSDATE)
AND dvr.voorzieningen IS NOT NULL
AND dvr.res_rsv_ruimte_key = st.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW fmhn_v_rap_res_catering
(
hide_f_srt,
nr,
fclt_f_gebouw,
datum,
begintijd,
eindtijd,
fclt_f_ruimte,
opstelling,
aantal,
omschrijving,
meldingen,
--voorzieningen,
catering, -- Catering
res_rsv_ruimte_key,
afgeleverd
)
AS
SELECT dvr.hide_f_srt,
dvr.nr,
dvr.fclt_f_gebouw,
dvr.datum,
dvr.begintijd,
dvr.eindtijd,
dvr.fclt_f_ruimte,
dvr.opstelling,
dvr.aantal,
dvr.omschrijving,
dvr.meldingen,
--dvr.voorzieningen,
dvr.catering,
dvr.res_rsv_ruimte_key,
DECODE (st.res_kenmerkreservering_waarde,
1, lcl.l ('lcl_yes'),
lcl.l ('lcl_no'))
afgeleverd
FROM fmhn_v_rap_res_looplijst dvr,
(SELECT rk.res_rsv_ruimte_key,
sk.res_srtkenmerk_omschrijving,
res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde rk, res_kenmerk k, res_srtkenmerk sk
WHERE rk.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 101) st -- Afgeleverd-vinkveld
WHERE TRUNC (dvr.datum) = TRUNC (SYSDATE)
AND dvr.catering IS NOT NULL
AND dvr.res_rsv_ruimte_key = st.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW fmhn_v_rap_res_beveiliging
(
hide_f_srt,
nr,
fclt_f_gebouw,
datum,
begintijd,
eindtijd,
fclt_f_ruimte,
opstelling,
aantal,
omschrijving,
meldingen,
--voorzieningen,
catering, -- Beveiliging
res_rsv_ruimte_key,
afgeleverd
)
AS
SELECT dvr.hide_f_srt,
dvr.nr,
dvr.fclt_f_gebouw,
dvr.datum,
dvr.begintijd,
dvr.eindtijd,
dvr.fclt_f_ruimte,
dvr.opstelling,
dvr.aantal,
dvr.omschrijving,
dvr.meldingen,
--dvr.voorzieningen,
dvr.beveiliging catering,
dvr.res_rsv_ruimte_key,
DECODE (st.res_kenmerkreservering_waarde,
1, lcl.l ('lcl_yes'),
lcl.l ('lcl_no'))
afgeleverd
FROM fmhn_v_rap_res_looplijst dvr,
(SELECT rk.res_rsv_ruimte_key,
sk.res_srtkenmerk_omschrijving,
res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde rk, res_kenmerk k, res_srtkenmerk sk
WHERE rk.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 101) st -- Afgeleverd-vinkveld
WHERE TRUNC (dvr.datum) = TRUNC (SYSDATE)
AND dvr.beveiliging IS NOT NULL
AND dvr.res_rsv_ruimte_key = st.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW fmhn_v_rap_res_schoonmaak
(
hide_f_srt,
nr,
fclt_f_gebouw,
datum,
begintijd,
eindtijd,
fclt_f_ruimte,
opstelling,
aantal,
omschrijving,
meldingen,
--voorzieningen,
catering, -- Schoonmaak
res_rsv_ruimte_key,
afgeleverd
)
AS
SELECT dvr.hide_f_srt,
dvr.nr,
dvr.fclt_f_gebouw,
dvr.datum,
dvr.begintijd,
dvr.eindtijd,
dvr.fclt_f_ruimte,
dvr.opstelling,
dvr.aantal,
dvr.omschrijving,
dvr.meldingen,
--dvr.voorzieningen,
dvr.schoonmaak catering,
dvr.res_rsv_ruimte_key,
DECODE (st.res_kenmerkreservering_waarde,
1, lcl.l ('lcl_yes'),
lcl.l ('lcl_no'))
afgeleverd
FROM fmhn_v_rap_res_looplijst dvr,
(SELECT rk.res_rsv_ruimte_key,
sk.res_srtkenmerk_omschrijving,
res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde rk, res_kenmerk k, res_srtkenmerk sk
WHERE rk.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND sk.res_srtkenmerk_key = 101) st -- Afgeleverd-vinkveld
WHERE TRUNC (dvr.datum) = TRUNC (SYSDATE)
AND dvr.schoonmaak IS NOT NULL
AND dvr.res_rsv_ruimte_key = st.res_rsv_ruimte_key(+);
-- Dummy export die feitelijk niets exporteert, maar elke 5 minuten draait
-- voor zaken die liefst real-time zouden gebeuren!
-- UITBEREIDING (FMHN#72352): export zorgt dat gewijzigde offert aanvragen RS8 weer via putorders worden uitgegeven
CREATE OR REPLACE PROCEDURE fmhn_select_elke_5min (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_curdatetime DATE := SYSDATE;
v_f2p_runtime NUMBER (10); -- In seconden!
v_count_tot NUMBER (10) := 0;
CURSOR c_ord2mld
IS
SELECT DISTINCT
'[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '|ORDAFM] '
aanduiding,
o.mld_melding_key,
o.mld_opdr_key,
'ORDAFM' actie,
NULL mld_opdr_opmerking
FROM fac_tracking t, mld_opdr o
WHERE t.fac_srtnotificatie_key = 74 -- ORDAFM
AND t.prs_perslid_key = 44 -- _API-user tbv. Prequest
AND t.fac_tracking_refkey = o.mld_opdr_key
AND o.mld_typeopdr_key = 582 -- Uitvoeringsopdracht PC
AND t.fac_tracking_datum > COALESCE (o.mld_opdr_externsyncdate, SYSDATE - (1 / 24))
UNION ALL
SELECT '[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '|ORDUPD] '
aanduiding,
o.mld_melding_key,
o.mld_opdr_key,
'ORDUPD' actie,
o.mld_opdr_opmerking
FROM fac_tracking t, mld_opdr o
WHERE t.fac_srtnotificatie_key = 76 -- ORDUPD
AND t.prs_perslid_key = 44 -- _API-user tbv. Prequest
AND INSTR (UPPER (t.fac_tracking_oms), 'AFHANDELING:') > 0
AND t.fac_tracking_refkey = o.mld_opdr_key
AND o.mld_typeopdr_key = 582 -- Uitvoeringsopdracht PC
AND o.mld_statusopdr_key = 6 -- Afgemeld
AND o.mld_opdr_opmerking IS NOT NULL -- Voor de zekerheid
AND t.fac_tracking_datum > COALESCE (o.mld_opdr_externsyncdate, SYSDATE - (1 / 24))
AND NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 76
AND prs_perslid_key = 44
AND INSTR (UPPER (fac_tracking_oms), 'AFHANDELING:') > 0
AND fac_tracking_refkey = t.fac_tracking_refkey
AND fac_tracking_key > t.fac_tracking_key)
UNION ALL
SELECT '[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '|ORDCAE] '
aanduiding,
o.mld_melding_key,
o.mld_opdr_key,
'ORDCAE' actie,
o.mld_opdr_opmerking
FROM fac_tracking t, mld_opdr o, mld_melding m
WHERE t.fac_srtnotificatie_key = 221 -- ORDCAE
AND t.prs_perslid_key <> 44 -- *NIET* _API-user tbv. Prequest
AND t.fac_tracking_refkey = o.mld_opdr_key
AND o.mld_typeopdr_key IN (581, 582) -- Offerteaanvraag PC/Uitvoeringsopdracht PC
AND o.mld_statusopdr_key = 1 -- Afgewezen/Geannuleerd
AND o.mld_melding_key = m.mld_melding_key
AND o.mld_opdr_opmerking <> COALESCE (m.mld_melding_opmerking, 'Quqelequ')
--AND t.fac_tracking_datum > COALESCE (o.mld_opdr_externsyncdate, SYSDATE - (1 / 24)) -- Want bij annuleren gezet vanuit koppeling!
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE)
ORDER BY 2, 3, 4;
CURSOR c_updopd2npq
IS
SELECT o.mld_opdr_key mld_opdr_key
FROM mld_opdr o, mld_kenmerkopdr ok, mld_kenmerk mk,
(SELECT fac_tracking_refkey, MAX(ft.fac_tracking_datum) AS last_mut
FROM fac_tracking ft
WHERE ft.fac_srtnotificatie_key=76
AND ft.fac_tracking_oms like '%gewijzigd%Omschrijving:%'
GROUP BY fac_tracking_refkey ) factr,
(SELECT fac_tracking_refkey, MAX(ft.fac_tracking_datum) AS last_exp
FROM fac_tracking ft
WHERE ft.fac_srtnotificatie_key=88
AND ft.fac_tracking_oms like 'PC:%'
AND ft.prs_perslid_key=3
GROUP BY fac_tracking_refkey) npq_exp
WHERE ok.mld_opdr_key = o.mld_opdr_key
AND ok.mld_kenmerk_key=mk.mld_kenmerk_key
AND mk.mld_kenmerk_key IN (1181,1182)
AND o.mld_statusopdr_key IN (8)
AND o.mld_typeopdr_key = 581
AND factr.fac_tracking_refkey=o.mld_opdr_key
AND npq_exp.fac_tracking_refkey=o.mld_opdr_key
AND factr.last_mut> npq_exp.last_exp
AND o.mld_opdr_verzonden IS NOT NULL; -- alleen opdrachten die reeds eerder verzonden zijn (FMHN#77738)
BEGIN
-- Bepalen van de tijd verstreken tussen begin van 1e taak in bat-bestand
-- (RESERVERING) en begin van deze taak (ELKE_5MIN)!
SELECT (v_curdatetime - COALESCE (fac_export_app_datum, v_curdatetime)) * 24 * 60 * 60
INTO v_f2p_runtime -- In seconden!
FROM fac_export_app
WHERE fac_export_app_key = 1;
IF v_f2p_runtime > 60
THEN
fac.writelog ('F2P', 'I', 'Runtime > 60s', '');
ELSIF v_f2p_runtime > 300
THEN
fac.writelog ('F2P', 'E', 'Runtime > 5m', '');
END IF;
v_count_tot := 0;
-- Toevoegen melding-notitie na afmelden Uitvoeringsopdracht door Prequest
-- en kopi<70>ren opdracht-opmerking naar melding-opmerking na bijwerken door
-- Prequest van afgemelde Uitvoeringsopdracht.
FOR rec IN c_ord2mld
LOOP
BEGIN
IF rec.actie = 'ORDAFM'
THEN
v_errormsg := 'Fout toevoegen MLD-notitie';
INSERT INTO mld_melding_note (mld_melding_key,
mld_melding_note_omschrijving,
prs_perslid_key,
mld_melding_note_flag)
VALUES (rec.mld_melding_key,
'PoortCentraal heeft uw melding afgehandeld. Momenteel zijn wij bezig met de administratieve afhandeling. De afhandeltekst volgt uiterlijk de volgende werkdag en is dan zichtbaar in het informatiescherm van uw melding.',
44,
1);
ELSIF rec.actie IN ('ORDUPD', 'ORDCAE')
THEN
v_errormsg := 'Fout toevoegen MLD-afhandeling';
UPDATE mld_melding
SET mld_melding_opmerking = rec.mld_opdr_opmerking
WHERE mld_melding_key = rec.mld_melding_key;
-- TODO: Ook nog afmelden melding igv. ORDCAE?
ELSE
fac.writelog (p_applname, 'E', rec.aanduiding || 'Actie ongedefinieerd', 'Ord2Mld-loop');
END IF;
v_errormsg := 'Fout bijwerken lastchange';
UPDATE mld_opdr
SET mld_opdr_externsyncdate = v_curdatetime
WHERE mld_opdr_key = rec.mld_opdr_key;
v_count_tot := v_count_tot + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'Ord2Mld-loop');
COMMIT;
END;
END LOOP;
IF v_count_tot > 0
THEN
fac.writelog (p_applname, 'S', 'Meldingen/#bijgewerkt: ' || TO_CHAR (v_count_tot), '');
END IF;
v_count_tot :=0;
FOR rec_updopd IN c_updopd2npq
LOOP
-- update zorgt er voor dat de opdracht weer via de putorders wordt verzonden.
UPDATE mld_opdr
SET mld_opdr_teverzenden=2, mld_opdr_verzonden=NULL
WHERE mld_opdr_key=rec_updopd.mld_opdr_key;
v_count_tot := v_count_tot + 1;
END LOOP;
IF v_count_tot > 0
THEN
fac.writelog (p_applname, 'S', 'Opdracht update NPQ : ' || TO_CHAR (v_count_tot), '');
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', 'Proces afgebroken!', v_errormsg);
END fmhn_select_elke_5min;
/
CREATE OR REPLACE PROCEDURE fmhn_import_org (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';'; -- Field seperator
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Import line
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000) := '';
header_is_valid NUMBER := 0;
v_count_tot NUMBER (10) := 0;
v_count_imp NUMBER (10) := 0;
v_count NUMBER (10);
-- De importvelden
v_mincode VARCHAR2 (255);
v_afdid VARCHAR2 (255);
v_afdcode VARCHAR2 (255);
v_afdoms VARCHAR2 (255);
v_afdidparent VARCHAR2 (255);
v_kpnr VARCHAR2 (255);
v_kpoms VARCHAR2 (255);
v_begindat VARCHAR2 (255);
v_einddat VARCHAR2 (255);
v_operator VARCHAR2 (255);
CURSOR c1
IS
SELECT fac_imp_file_line, LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, ''))) regellengte
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
--DELETE FROM fmhn_imp_org;
--COMMIT;
-- Het aangeleverde bestand heeft soms een komma als scheidingsteken. Deze
-- wordt hier maar even vervangen.
--UPDATE fac_imp_file
-- SET fac_imp_file_line = fmhn.change_delimitor (fac_imp_file_line, ',')
-- WHERE fac_import_key = p_import_key
-- AND EXISTS (SELECT 1 FROM fac_imp_file WHERE fac_import_key = p_import_key AND INSTR (UPPER (fac_imp_file_line), 'MINCODE,AFDID,AFDCODE,AFDOMS,AFDIDPARENT,KPNR,KPOMS,BEGINDAT,EINDDAT') > 0);
SELECT fac_imp_file_line
INTO v_newline
FROM fac_imp_file
WHERE fac_import_key = p_import_key AND fac_imp_file_index = 1;
IF INSTR (UPPER (v_newline), 'MINCODE,AFDID,AFDCODE,AFDOMS,AFDIDPARENT,KPNR,KPOMS,BEGINDAT,EINDDAT') > 0
THEN
c_delim := ',';
END IF;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen importregel';
v_aanduiding := '';
-- Lees alle veldwaarden
-- mincode;afdid;afdcode;afdoms;afdidparent;kpnr;kpoms;begindat;einddat
fac.imp_getfield (v_newline, c_delim, v_mincode);
fac.imp_getfield (v_newline, c_delim, v_afdid);
fac.imp_getfield (v_newline, c_delim, v_afdcode);
fac.imp_getfield (v_newline, c_delim, v_afdoms);
fac.imp_getfield (v_newline, c_delim, v_afdidparent);
fac.imp_getfield (v_newline, c_delim, v_kpnr);
fac.imp_getfield (v_newline, c_delim, v_kpoms);
fac.imp_getfield (v_newline, c_delim, v_begindat);
fac.imp_getfield (v_newline, c_delim, v_einddat);
fac.imp_getfield (v_newline, c_delim, v_operator);
v_aanduiding := '[' || v_mincode || '|' || v_afdid || '|' || v_afdcode || v_afdoms || '] ';
-- 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 v_mincode = 'mincode'
AND v_afdid = 'afdid'
AND v_afdcode = 'afdcode'
AND v_afdoms = 'afdoms'
AND v_afdidparent = 'afdidparent'
AND v_kpnr = 'kpnr'
AND v_kpoms = 'kpoms'
AND v_begindat = 'begindat'
AND v_einddat = 'einddat'
--AND v_operator = 'operator'
THEN
header_is_valid := 1;
END IF;
ELSIF (rec1.regellengte > 0) -- Lege regels overslaan
THEN
BEGIN
v_count_tot := v_count_tot + 1;
-- Direct wegschrijven; controleer alle veldwaarden maar niet.
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO fmhn_imp_org (fac_import_key,
volgnr,
mincode,
afdid,
afdcode,
afdoms,
afdidparent,
kpnr,
kpoms,
begindat,
einddat,
operator)
VALUES (p_import_key,
v_count_tot,
SUBSTR (TRIM (v_mincode), 1, 10), -- C6
SUBSTR (TRIM (v_afdid), 1, 101), -- C100
SUBSTR (TRIM (v_afdcode), 1, 15), -- C15
SUBSTR (TRIM (v_afdoms), 1, 70), -- C60 vs. C70 in IDM
SUBSTR (TRIM (v_afdidparent), 1, 101), -- C100
SUBSTR (TRIM (v_kpnr), 1, 30), -- C20
SUBSTR (TRIM (v_kpoms), 1, 60), -- C60
--fac.safe_to_date (TRIM (v_begindat), 'yyyy-mm-dd'),
fac.safe_to_date (SUBSTR (TRIM (v_begindat), 1, 10), 'yyyy-mm-dd'),
--fac.safe_to_date (TRIM (v_einddat), 'yyyy-mm-dd'),
fac.safe_to_date (SUBSTR (TRIM (v_einddat), 1, 10), 'yyyy-mm-dd'),
SUBSTR (TRIM (v_operator), 1, 6));
v_count_imp := v_count_imp + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; 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 afspraak!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'Afdelingen/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'Afdelingen/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_imp), '');
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces Afdelingen afgebroken!');
-- Maak importtabel leeg om import van foutieve bestanden te voorkomen!
--DELETE FROM fmhn_imp_org;
END;
/
/*
SELECT x1.prs_afdeling_naam oud, '#' || x1.prs_afdeling_naam nieuw
FROM fmhn_imp_org x1
WHERE x1.prs_bedrijf_naam IS NOT NULL AND x1.prs_afdeling_naam IS NOT NULL -- Geen lege/ongeldige regels
AND COALESCE (x1.einddatum, SYSDATE + 1) > TRUNC (SYSDATE)
AND UPPER (x1.prs_afdeling_naam_parent) = UPPER (x1.prs_afdeling_naam);
UPDATE fmhn_imp_org x1
SET x1.prs_afdeling_naam = '#' || x1.prs_afdeling_naam
WHERE x1.prs_bedrijf_naam IS NOT NULL AND x1.prs_afdeling_naam IS NOT NULL -- Geen lege/ongeldige regels
AND COALESCE (x1.einddatum, SYSDATE + 1) > TRUNC (SYSDATE)
AND UPPER (x1.prs_afdeling_naam_parent) = UPPER (x1.prs_afdeling_naam);
SELECT x1.prs_bedrijf_naam, x1.prs_afdeling_naam_parent, x1.prs_afdeling_naam
FROM fmhn_imp_org x1
WHERE x1.prs_bedrijf_naam IS NOT NULL AND x1.prs_afdeling_naam IS NOT NULL -- Geen lege/ongeldige regels
AND COALESCE (x1.einddatum, SYSDATE + 1) > TRUNC (SYSDATE)
AND EXISTS -- Dezelfde afdeling ook onder andere parent!
(SELECT 1
FROM fmhn_imp_org x2
WHERE x2.prs_bedrijf_naam IS NOT NULL AND x2.prs_afdeling_naam IS NOT NULL -- Geen lege/ongeldige regels
AND COALESCE (x2.einddatum, SYSDATE + 1) > TRUNC (SYSDATE)
AND x2.prs_afdeling_naam_parent != x1.prs_afdeling_naam_parent
AND x2.prs_afdeling_naam = x1.prs_afdeling_naam)
AND EXISTS -- Afdelingen onder dezelfde afdelingen onder andere parent!
(SELECT 1
FROM fmhn_imp_org x3
WHERE x3.prs_bedrijf_naam IS NOT NULL AND x3.prs_afdeling_naam IS NOT NULL -- Geen lege/ongeldige regels
AND COALESCE (x3.einddatum, SYSDATE + 1) > TRUNC (SYSDATE)
AND x3.prs_afdeling_naam_parent != x1.prs_afdeling_naam_parent
AND x3.prs_afdeling_naam_parent = x1.prs_afdeling_naam);
*/
CREATE OR REPLACE PROCEDURE fmhn_update_org (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000) := '';
v_count_tot NUMBER (10) := 0;
v_count_upd NUMBER (10) := 0;
v_count NUMBER;
l_impcountafd NUMBER;
v_mincode VARCHAR2 (6);
v_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
v_minomschr_key fac_usrdata.fac_usrdata_key%TYPE;
v_minomschr fac_usrdata.fac_usrdata_omschr%TYPE;
v_afdidroot prs_kenmerklink.prs_kenmerklink_waarde%TYPE;
v_minafko VARCHAR2 (10);
l_oldcountafd NUMBER;
--l_oldcountkpn NUMBER;
v_rootvolgnr NUMBER;
v_afdid fmhn_imp_org.afdid%TYPE;
v_afdcode fmhn_imp_org.afdcode%TYPE;
v_afdoms fmhn_imp_org.afdoms%TYPE;
v_afdidparent fmhn_imp_org.afdidparent%TYPE;
v_begindat VARCHAR2 (10);
v_einddat VARCHAR2 (10);
l_cur_lev NUMBER;
lafdelingkey prs_afdeling.prs_afdeling_key%TYPE;
l_cur_parentkey prs_afdeling.prs_afdeling_parentkey%TYPE;
l_cur_afdcode prs_kenmerklink.prs_kenmerklink_waarde%TYPE;
l_cur_afdoms prs_afdeling.prs_afdeling_omschrijving%TYPE;
l_new_lev NUMBER;
l_new_parentkey prs_afdeling.prs_afdeling_parentkey%TYPE;
l_new_grandparentkey prs_afdeling.prs_afdeling_parentkey%TYPE;
l_afdpadparent prs_kenmerklink.prs_kenmerklink_waarde%TYPE;
lkostenplaatskey prs_kostenplaats.prs_kostenplaats_key%TYPE;
v_kpnr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
v_kpoms prs_kostenplaats.prs_kostenplaats_omschrijving%TYPE;
l_vervcountafd NUMBER;
--l_vervcountkpn NUMBER;
l_newcountafd NUMBER;
--l_newcountkpn NUMBER;
-- Uitgangspunt is dat afbeelding in Facilitor stuctureel gelijk blijft aan
-- structuur zoals geimporteerd uit IDM.
-- Wel geldt dat er in Facilitor slechts 5 niveaus zijn (excl. bedrijf)
-- en in IDM meer. De "lagere" regionen worden daarom op niveau 5 gehangen
-- (onder niveau 4)!
CURSOR cafdboomdelta (p_volgnr NUMBER)
IS
SELECT LEVEL imp_lev,
volgnr, mincode, afdid, afdcode, SUBSTR (afdoms, 1, 60) afdoms, afdidparent,
NULL kpnr, NULL kpoms, -- Bewust negeren evt. ontvangen kostenplaats-velden!
begindat, einddat,
operator
FROM (SELECT * FROM fmhn_imp_org WHERE fac_import_key = p_import_key)
CONNECT BY PRIOR afdid = afdidparent
START WITH volgnr = p_volgnr
ORDER BY LEVEL;
BEGIN
-- Hoeveel afdelingen ontvangen?
SELECT COUNT ( * )
INTO l_impcountafd
FROM fmhn_imp_org
WHERE fac_import_key = p_import_key;
-- Randvoorwaarde dat alle afdelingen in importbestand dezelfde mincode!
v_errormsg := 'Fout (uniek) bepalen mincode';
SELECT DISTINCT mincode
INTO v_mincode
FROM fmhn_imp_org
WHERE fac_import_key = p_import_key;
-- Randvoorwaarde dat <20><>n intern bedrijf bestaat met bepaalde mincode!
v_errormsg := 'Fout (uniek) bepalen bedrijf';
SELECT b.prs_bedrijf_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr, afdid.prs_kenmerklink_waarde
INTO v_bedrijf_key, v_minomschr_key, v_minomschr, v_afdidroot
FROM prs_v_aanwezigbedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1020) mincode, -- Ministeriecode (bij Bedrijf)
fac_v_aanwezigusrdata ud,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1021) afdid -- Organisatieonderdeelcode (bij Bedrijf)
WHERE b.prs_bedrijf_intern = 1
AND b.prs_bedrijf_key = mincode.prs_link_key
AND fac.safe_to_number (mincode.prs_kenmerklink_waarde) = ud.fac_usrdata_key
AND ud.fac_usrdata_upper = UPPER (v_mincode)
AND b.prs_bedrijf_key = afdid.prs_link_key(+);
v_minafko := TRIM (SUBSTR (v_minomschr, INSTR (v_minomschr, '-') + 1));
-- Hoeveel afdelingen actief voor ministerie in Facilitor?
SELECT COUNT ( * )
INTO l_oldcountafd
FROM prs_v_afdeling_boom ab, prs_afdeling afd
WHERE ab.prs_bedrijf_key = v_bedrijf_key
AND ab.prs_afdeling_key = afd.prs_afdeling_key
AND afd.prs_afdeling_verwijder IS NULL
AND UPPER (COALESCE (afd.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
-- Hoeveel kostenplaatsen actief voor ministerie in Facilitor?
--SELECT COUNT ( * )
-- INTO l_oldcountkpn
-- FROM prs_v_aanwezigkostenplaats
-- WHERE prs_kostenplaats_module = 'PRS'
-- AND UPPER (prs_kostenplaats_nr) LIKE UPPER (v_minafko) || '%'
-- AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
/*
-- Controles op problemen in ontvangen bericht (igv. full-load).
SELECT afdid FROM fmhn_imp_org
MINUS
SELECT afdid
FROM fmhn_imp_org
CONNECT BY PRIOR afdid = afdidparent
START WITH afdidparent IS NULL;
-- Bijwerken dat het 'Organisatielevel (in IDM)'-kenmerk correct gevuld!
-- Check op verplichte velden bij INSERT: afdcode, afdoms!
*/
-- Voorkennis: CSV-import zou full-load moeten zijn met <20><>n afdeling zonder
-- parent. Bij >1 afdelingen zonder parent, pak laagste volgnr!
-- IDM-import zou een XML-bericht per afdeling moeten aanbieden
-- met volgnr=1 (in de juiste volgorde). Bij >1 afdelingen, dan
-- op volgnr verwerken!
-- Bepaal volgnr van root in ontvangen afdelingsboom.
v_errormsg := 'Fout (uniek) bepalen root';
SELECT COUNT ( * ), MIN (volgnr)
INTO v_count, v_rootvolgnr
FROM fmhn_imp_org
WHERE fac_import_key = p_import_key
AND afdidparent IS NULL;
IF l_impcountafd > 1 AND (v_count > 1 OR v_rootvolgnr IS NULL)
THEN
fac.imp_writelog (p_import_key, 'E', 'Full-load ongeldig(/fout bepalen root)', 'Importproces Afdelingen afgebroken!');
RETURN;
END IF;
v_errormsg := 'Fout bepalen SEARCH-request';
SELECT COUNT ( * ), MAX (afdid)
INTO v_count, v_afdid
FROM fmhn_imp_org
WHERE fac_import_key = p_import_key
AND UPPER (operator) = 'SEARCH';
IF v_count > 0 -- SEARCH-request ontvangen?
THEN
IF l_impcountafd > 1
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldige operator voor >1 afdeling', 'Importproces Afdelingen afgebroken!');
ELSE
IF v_afdidroot = v_afdid -- Hoogste niveau=intern bedrijf!
THEN
v_afdcode := NULL; -- TODO?:Niet geregistreerd bij bedrijf!
v_afdoms := NULL; -- TODO?:Niet geregistreerd bij bedrijf!
v_afdidparent := NULL;
v_begindat := NULL; -- TODO?:Niet geregistreerd bij bedrijf!
v_einddat := NULL; -- TODO?:Niet geregistreerd bij bedrijf!
fac.imp_writelog (p_import_key, 'S', '#Afdelingen/SEARCH: 1 -> Succesvol: 1', '');
--fac.imp_writelog (p_import_key, 'X', '<mincode>' || xml.char_to_html (v_mincode) || '</mincode><afdid>' || xml.char_to_html (v_afdid) || '</afdid><afdcode>' || xml.char_to_html (v_afdcode) || '</afdcode><afdoms>' || xml.char_to_html (v_afdoms) || '</afdoms><afdidparent>' || xml.char_to_html (v_afdidparent) || '</afdidparent><begindat>' || xml.char_to_html (v_begindat) || '</begindat><einddat>' || xml.char_to_html (v_einddat) || '</einddat>', '');
fac.imp_writelog (p_import_key, 'X', xml.char_to_html (v_mincode) || '#;#' || xml.char_to_html (v_afdid) || '#;#' || xml.char_to_html (v_afdcode) || '#;#' || xml.char_to_html (v_afdoms) || '#;#' || xml.char_to_html (v_afdidparent) || '#;#' || xml.char_to_html (v_begindat) || '#;#' || xml.char_to_html (v_einddat), '');
ELSE
BEGIN
v_errormsg := 'Fout bepalen afdeling';
SELECT afdcode.prs_kenmerklink_waarde afdcode,
a.prs_afdeling_omschrijving afdoms,
--DECODE (a.prs_afdeling_parentkey, NULL, DECODE (v_afdid, v_afdidroot, NULL, v_afdidroot), SUBSTR (ap.prs_afdeling_externid, 3)) afdidparent, -- TODO:Als wij de root ook gaan registreren als afdeling-1 (dus naast intern bedrijf)!
DECODE (a.prs_afdeling_parentkey, NULL, v_afdidroot, SUBSTR (ap.prs_afdeling_externid, 3)) afdidparent,
SUBSTR (begindat.prs_kenmerklink_waarde, 7) || '-' || SUBSTR (begindat.prs_kenmerklink_waarde, 4, 2) || '-' || SUBSTR (begindat.prs_kenmerklink_waarde, 1, 2) begindat,
SUBSTR (einddat.prs_kenmerklink_waarde, 7) || '-' || SUBSTR (einddat.prs_kenmerklink_waarde, 4, 2) || '-' || SUBSTR (einddat.prs_kenmerklink_waarde, 1, 2) einddat
INTO v_afdcode,
v_afdoms,
v_afdidparent,
v_begindat,
v_einddat
FROM prs_afdeling a, -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
prs_afdeling ap,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1001) afdcode, -- Afdelingscode
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1005) begindat, -- Begindatum
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1006) einddat -- Einddatum
WHERE a.prs_afdeling_verwijder IS NULL
AND UPPER (a.prs_afdeling_externid) = UPPER (v_mincode || v_afdid)
AND a.prs_afdeling_parentkey = ap.prs_afdeling_key(+)
AND a.prs_afdeling_key = afdcode.prs_link_key(+)
AND a.prs_afdeling_key = begindat.prs_link_key(+)
AND a.prs_afdeling_key = einddat.prs_link_key(+);
fac.imp_writelog (p_import_key, 'S', '#Afdelingen/SEARCH: 1 -> Succesvol: 1', '');
--fac.imp_writelog (p_import_key, 'X', '<mincode>' || xml.char_to_html (v_mincode) || '</mincode><afdid>' || xml.char_to_html (v_afdid) || '</afdid><afdcode>' || xml.char_to_html (v_afdcode) || '</afdcode><afdoms>' || xml.char_to_html (v_afdoms) || '</afdoms><afdidparent>' || xml.char_to_html (v_afdidparent) || '</afdidparent><begindat>' || xml.char_to_html (v_begindat) || '</begindat><einddat>' || xml.char_to_html (v_einddat) || '</einddat>', '');
fac.imp_writelog (p_import_key, 'X', xml.char_to_html (v_mincode) || '#;#' || xml.char_to_html (v_afdid) || '#;#' || xml.char_to_html (v_afdcode) || '#;#' || xml.char_to_html (v_afdoms) || '#;#' || xml.char_to_html (v_afdidparent) || '#;#' || xml.char_to_html (v_begindat) || '#;#' || xml.char_to_html (v_einddat), '');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key, 'S', '#Afdelingen/SEARCH: 1 -> Succesvol: 0', '');
END;
END IF;
END IF;
RETURN;
END IF;
-- Geen SEARCH-request ontvangen!
v_aanduiding := '[' || TO_CHAR (v_rootvolgnr) || '|' || v_mincode || '|' || v_minafko || '|' || v_afdidroot || '] ';
v_errormsg := 'Fout bepalen afdeling (afdid=afdidparent?)';
FOR rc IN cafdboomdelta (COALESCE (v_rootvolgnr, 1))
LOOP
BEGIN
v_aanduiding := '[' || TO_CHAR (rc.volgnr) || '|' || rc.mincode || '|' || rc.afdid || '] ';
v_count_tot := v_count_tot + 1;
-- Is de ontvangen afdeling het hoogste niveau=interne bedrijf? Dit
-- is het geval als geldt: Geen parent ontvangen en INSERT!
-- Randvoorwaarde is dat in IDM op hoogste niveau maar <20><>n afdeling
-- bestaat! Zo niet, dan wint <20><>n tak van de boom!
IF rc.afdidparent IS NULL AND COALESCE (UPPER (rc.operator), 'INSERT') = 'INSERT'
THEN
--v_errormsg := 'Fout bijwerken bedrijfsnaam';
--UPDATE prs_bedrijf
-- SET prs_bedrijf_naam = SUBSTR (rc.afdoms, 1, 60)
-- WHERE prs_bedrijf_key = v_bedrijf_key;
IF v_afdidroot IS NULL -- Organisatieonderdeelcode nog niet gevuld (of gewijzigd)?
THEN
v_errormsg := 'Fout bijwerken bedrijf';
prs.upsertkenmerk (1021, v_bedrijf_key, rc.afdid); -- Organisatieonderdeelcode
v_afdidroot := rc.afdid;
ELSIF v_afdidroot <> rc.afdid
THEN
v_errormsg := 'Fout bijwerken bedrijf';
prs.upsertkenmerk (1021, v_bedrijf_key, rc.afdid); -- Organisatieonderdeelcode
v_afdidroot := rc.afdid;
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Organisatieonderdeelcode van ministerie gewijzigd');
END IF;
END IF;
--fac.imp_writelog (p_import_key, 'S', TO_CHAR (v_count_tot), v_afdidroot || '/' || rc.afdid ); -- Logging!
IF v_afdidroot = rc.afdid -- Hoogste niveau=intern bedrijf!
THEN
v_errormsg := 'Doe verder niets (geen level, pad, etc.)';
ELSE
-- Vanaf hier hebben ontvangen afdelingen bij INSERT een parent.
-- Bestaat afdeling al en wat is dan huidige parent?
v_errormsg := 'Fout bepalen afdeling';
BEGIN
SELECT fac.safe_to_number (orglev.prs_kenmerklink_waarde),
a.prs_afdeling_key,
a.prs_afdeling_parentkey,
afdcode.prs_kenmerklink_waarde,
a.prs_afdeling_omschrijving
INTO l_cur_lev,
lafdelingkey,
l_cur_parentkey,
l_cur_afdcode,
l_cur_afdoms
FROM prs_afdeling a, -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
--prs_v_afdeling_boom ab,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1003) orglev, -- Organisatielevel (in IDM)
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1001) afdcode -- Afdelingscode
WHERE a.prs_afdeling_verwijder IS NULL
AND UPPER (a.prs_afdeling_externid) = UPPER (rc.mincode || rc.afdid)
--AND a.prs_afdeling_key = ab.prs_afdeling_key(+) -- LET OP: Kan tijdelijk uit beeld raken ("lager" dan 5)!
AND a.prs_afdeling_key = orglev.prs_link_key(+)
AND a.prs_afdeling_key = afdcode.prs_link_key(+);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_cur_lev := -1;
lafdelingkey := -1;
l_cur_parentkey := -1;
l_cur_afdcode := rc.afdcode; -- Verplicht bij INSERT!
l_cur_afdoms := rc.afdoms; -- Verplicht bij INSERT!
END;
-- Bepaal parent en parent van (soms zelf verschoven) parent!
-- Parent verplicht vanaf level=2 bij CSV-import, INSERT en indien
-- ontvangen!
v_errormsg := 'Fout bepalen parent';
IF rc.afdidparent IS NULL -- Geen parent ontvangen!
THEN
-- Geen huidige parent?
IF l_cur_parentkey IS NULL
THEN -- UPDATE/DELETE van een Afdeling-1!
l_new_lev := 2;
l_new_parentkey := TO_NUMBER (NULL);
l_new_grandparentkey := TO_NUMBER (NULL);
l_afdpadparent := v_minafko; -- Root meenemen in pad!
ELSE -- UPDATE/DELETE van een Afdeling-2 of lager!
-- Bepaal gegevens van bestaande parent!
SELECT fac.safe_to_number (orglev.prs_kenmerklink_waarde) + 1,
a.prs_afdeling_key,
a.prs_afdeling_parentkey,
afdpad.prs_kenmerklink_waarde
INTO l_new_lev, -- = l_cur_lev
l_new_parentkey, -- = l_cur_parentkey
l_new_grandparentkey,
l_afdpadparent
FROM prs_afdeling a, -- LET OP: Of prs_v_aanwezigafdeling (parent nooit "lager" dan 5)!
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1003) orglev, -- Organisatielevel (in IDM)
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1004) afdpad -- Afdelingspad
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_key = l_cur_parentkey
AND a.prs_afdeling_key = orglev.prs_link_key(+)
AND a.prs_afdeling_key = afdpad.prs_link_key(+);
END IF;
ELSE -- Parent ontvangen!
-- Parent is root?
IF rc.afdidparent = v_afdidroot
THEN -- UPDATE/DELETE van een Afdeling-1!
l_new_lev := 2;
l_new_parentkey := TO_NUMBER (NULL);
l_new_grandparentkey := TO_NUMBER (NULL);
l_afdpadparent := v_minafko; -- Root meenemen in pad!
ELSE -- UPDATE/DELETE van een Afdeling-2 of lager!
-- Bepaal gegevens van ontvangen parent!
SELECT fac.safe_to_number (orglev.prs_kenmerklink_waarde) + 1,
a.prs_afdeling_key,
a.prs_afdeling_parentkey,
afdpad.prs_kenmerklink_waarde
INTO l_new_lev,
l_new_parentkey,
l_new_grandparentkey,
l_afdpadparent
FROM prs_afdeling a, -- LET OP: Of prs_v_aanwezigafdeling (parent nooit "lager" dan 5)!
--prs_v_afdeling_boom ab,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1003) orglev, -- Organisatielevel (in IDM)
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1004) afdpad -- Afdelingspad
WHERE a.prs_afdeling_verwijder IS NULL
AND UPPER (a.prs_afdeling_externid) = UPPER (rc.mincode || rc.afdidparent)
--AND a.prs_afdeling_key = ab.prs_afdeling_key -- LET OP: Parent kan nooit uit beeld raken ("lager" dan 5)!
AND a.prs_afdeling_key = orglev.prs_link_key(+)
AND a.prs_afdeling_key = afdpad.prs_link_key(+);
END IF;
END IF;
-- Bij mapping van IDM-afdelingen slaan we geen level over en geldt:
-- level=1 => Bedrijf
-- level=2 => Afdeling-1
-- level=3 => Afdeling-2
-- level=4 => Afdeling-3
-- level=5 => Afdeling-4
-- level=6 => Afdeling-5
-- :
-- level=n => Afdeling-5
-- Waarde in rc.afdid voor een (of enkele) ministeries >15 doordat
-- een prefix is toegevoegd en daarom prs_afdeling_naam gevuld met
-- laatste 15 posities!
IF lafdelingkey = -1 -- Nieuwe afdeling -> toevoegen!
THEN
v_errormsg := 'Ongeldige operator voor niet bestaande afdeling';
IF COALESCE (UPPER (rc.operator), 'INSERT') = 'INSERT'
THEN
v_errormsg := 'Fout toevoegen afdeling';
IF l_new_lev = 2 -- Ingelezen afdeling betreft Afdeling-1
THEN
INSERT INTO prs_afdeling (prs_bedrijf_key,
prs_afdeling_parentkey,
prs_afdeling_naam,
prs_afdeling_omschrijving,
--prs_kostenplaats_key,
prs_afdeling_externid,
prs_afdeling_externsyncdate)
VALUES (v_bedrijf_key,
NULL, -- l_new_parentkey = NULL
SUBSTR (rc.afdid, GREATEST (-LENGTH (rc.afdid), -15)),
rc.afdoms,
--lkostenplaatskey,
UPPER (rc.mincode || rc.afdid),
SYSDATE)
RETURNING prs_afdeling_key
INTO lafdelingkey;
ELSIF l_new_lev <= 6 -- Afdeling-2 t/m Afdeling-5
THEN
INSERT INTO prs_afdeling (prs_bedrijf_key,
prs_afdeling_parentkey,
prs_afdeling_naam,
prs_afdeling_omschrijving,
--prs_kostenplaats_key,
prs_afdeling_externid,
prs_afdeling_externsyncdate)
VALUES (NULL,
l_new_parentkey,
SUBSTR (rc.afdid, GREATEST (-LENGTH (rc.afdid), -15)),
rc.afdoms,
--lkostenplaatskey,
UPPER (rc.mincode || rc.afdid),
SYSDATE)
RETURNING prs_afdeling_key
INTO lafdelingkey;
ELSE -- Omhoog geschoven afdeling op niveau Afdeling-5
-- Doordat cursor van hoog naar laag door organisatie
-- loopt, komen afdelingen vanaf level>=7 keurig onder
-- gewenste Afdeling-4 te hangen.
INSERT INTO prs_afdeling (prs_bedrijf_key,
prs_afdeling_parentkey,
prs_afdeling_naam,
prs_afdeling_omschrijving,
--prs_kostenplaats_key,
prs_afdeling_externid,
prs_afdeling_externsyncdate)
VALUES (NULL,
l_new_grandparentkey,
SUBSTR (rc.afdid, GREATEST (-LENGTH (rc.afdid), -15)),
rc.afdoms,
--lkostenplaatskey,
UPPER (rc.mincode || rc.afdid),
SYSDATE)
RETURNING prs_afdeling_key
INTO lafdelingkey;
END IF;
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Afdeling toegevoegd');
ELSE
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
END IF;
ELSE -- Bestaande afdeling -> bijwerken (misschien)!
v_errormsg := 'Ongeldige operator voor bestaande afdeling';
IF COALESCE (UPPER (rc.operator), 'INSERT') = 'INSERT' OR COALESCE (UPPER (rc.operator), 'UPDATE') = 'UPDATE'
THEN
/*
-- Check op welke afdelingen buiten de boot vallen, want dan niet in prs_v_afdeling_boom!
SELECT *
FROM prs_afdeling a
WHERE NOT EXISTS (SELECT 1 FROM prs_v_afdeling_boom WHERE prs_afdeling_key = a.prs_afdeling_key);
*/
-- Check of bij te werken afdeling geen voorouder is van de
-- (nieuwe) parent voorkoming van loops!
v_errormsg := 'Fout bepalen hierarchie (loop)';
SELECT COUNT (*)
INTO v_count
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = l_new_parentkey
AND (prs_afdeling_key1 = lafdelingkey
OR prs_afdeling_key2 = lafdelingkey
OR prs_afdeling_key3 = lafdelingkey
OR prs_afdeling_key4 = lafdelingkey);
IF v_count > 0
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces Afdelingen afgebroken!');
RETURN;
END IF;
-- Zonodig bijwerken omschrijving (kon eerder vervallen
-- zijn) en/of omhangen naar de juiste plek in de boom.
v_errormsg := 'Fout bijwerken afdeling';
IF l_new_lev = 2 -- Ingelezen afdeling betreft Afdeling-1
THEN
UPDATE prs_afdeling
SET prs_bedrijf_key = v_bedrijf_key,
prs_afdeling_parentkey = NULL,
prs_afdeling_naam = SUBSTR (rc.afdid, GREATEST (-LENGTH (rc.afdid), -15)),
prs_afdeling_omschrijving = COALESCE (rc.afdoms, prs_afdeling_omschrijving),
--prs_kostenplaats_key = COALESCE (lkostenplaatskey, prs_kostenplaats_key),
prs_afdeling_externsyncdate = SYSDATE
WHERE prs_afdeling_key = lafdelingkey;
ELSIF l_new_lev <= 6 -- Afdeling-2 t/m Afdeling-5
THEN
UPDATE prs_afdeling
SET prs_bedrijf_key = NULL,
prs_afdeling_parentkey = l_new_parentkey,
prs_afdeling_naam = SUBSTR (rc.afdid, GREATEST (-LENGTH (rc.afdid), -15)),
prs_afdeling_omschrijving = COALESCE (rc.afdoms, prs_afdeling_omschrijving),
--prs_kostenplaats_key = COALESCE (lkostenplaatskey, prs_kostenplaats_key),
prs_afdeling_externsyncdate = SYSDATE
WHERE prs_afdeling_key = lafdelingkey;
ELSE -- Omhoog geschoven afdeling op niveau Afdeling-5
-- Doordat cursor van hoog naar laag door organisatie
-- loopt, komen afdelingen vanaf level>=7 keurig onder
-- gewenste Afdeling-4 te hangen.
UPDATE prs_afdeling
SET prs_bedrijf_key = NULL,
prs_afdeling_parentkey = l_new_grandparentkey,
prs_afdeling_naam = SUBSTR (rc.afdid, GREATEST (-LENGTH (rc.afdid), -15)),
prs_afdeling_omschrijving = COALESCE (rc.afdoms, prs_afdeling_omschrijving),
--prs_kostenplaats_key = COALESCE (lkostenplaatskey, prs_kostenplaats_key),
prs_afdeling_externsyncdate = SYSDATE
WHERE prs_afdeling_key = lafdelingkey;
END IF;
IF l_new_lev <> l_cur_lev
THEN
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Afdeling omgehangen naar level=' || TO_CHAR (l_new_lev));
-- TODO:Subafdelingsboom bijwerken beginnen wij niet aan,
-- want dat is potentieel - hoog in de boom - zo'n beetje
-- de hele ORG-import!
END IF;
ELSIF UPPER (rc.operator) = 'DELETE'
THEN
-- Zet afdeling en eventueel kostenplaats op VERVALLEN; de rest handmatig verder maar regelen!
v_errormsg := 'Fout inactiveren afdeling';
UPDATE prs_afdeling
SET prs_afdeling_omschrijving = SUBSTR ('VERVALLEN:' || COALESCE (prs_afdeling_omschrijving, '-'), 1, 60),
prs_afdeling_externsyncdate = SYSDATE
WHERE prs_afdeling_key = lafdelingkey
AND UPPER (COALESCE (prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
v_errormsg := 'Fout inactiveren kostenplaats';
UPDATE prs_kostenplaats
SET prs_kostenplaats_omschrijving = SUBSTR ('VERVALLEN:' || COALESCE (prs_kostenplaats_omschrijving, '-'), 1, 60),
prs_kostenplaats_extsyncdate = SYSDATE
WHERE prs_kostenplaats_key = lkostenplaatskey
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
AND NOT EXISTS
(SELECT 1
FROM prs_afdeling
WHERE prs_kostenplaats_key = lkostenplaatskey
AND prs_afdeling_key <> lafdelingkey);
ELSE
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
END IF;
END IF;
-- Kostenplaats-afhandeling bij INSERT of UPDATE!
IF COALESCE (UPPER (rc.operator), 'INSERT') <> 'DELETE'
THEN
-- Bepaal huidige kostenplaats van - hier bekende - afdeling!
v_errormsg := 'Fout bepalen afdelingskostenplaats';
SELECT prs_kostenplaats_key
INTO lkostenplaatskey
FROM prs_afdeling
WHERE prs_afdeling_key = lafdelingkey;
-- Als eerder een kostenplaats standaard was aangemaakt en nu
-- wordt een kostenplaats ontvangen, dan standaard kostenplaats
-- niet bijwerken, maar nieuwe kostenplaats aanmaken/koppelen!
-- Het schonen van niet gebruikte standaard kostenplaatsen komt
-- later nog wel een keertje.
IF lkostenplaatskey IS NULL OR rc.kpnr IS NOT NULL -- Afdeling zonder kostenplaats of kpnnr ontvangen!
THEN
v_errormsg := 'Fout bepalen kostenplaats';
IF rc.kpnr IS NULL -- Bij INSERT beide niet ontvangen! Bij UPDATE anders omschrijving mogelijk op '-'!
THEN
v_kpnr := SUBSTR (v_minafko || rc.afdid, GREATEST (-LENGTH (v_minafko || rc.afdid), -30));
v_kpoms := SUBSTR (l_afdpadparent || '#' || COALESCE (rc.afdoms, l_cur_afdoms), GREATEST (-LENGTH (l_afdpadparent || '#' || COALESCE (rc.afdoms, l_cur_afdoms)), -60));
ELSE -- Bij INSERT beide ontvangen! Bij UPDATE anders omschrijving mogelijk op '-'!
v_kpnr := SUBSTR (v_minafko || rc.kpnr, GREATEST (-LENGTH (v_minafko || rc.kpnr), -30));
v_kpoms := COALESCE (rc.kpoms, SUBSTR (l_afdpadparent || '#' || COALESCE (rc.afdcode, l_cur_afdcode), GREATEST (-LENGTH (l_afdpadparent || '#' || COALESCE (rc.afdcode, l_cur_afdcode)), -60)));
END IF;
BEGIN
SELECT prs_kostenplaats_key
INTO lkostenplaatskey
FROM prs_v_aanwezigkostenplaats
WHERE prs_kostenplaats_upper = UPPER (v_kpnr);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
lkostenplaatskey := -1;
END;
IF lkostenplaatskey = -1 -- Kostenplaats bestaat niet!
THEN
v_errormsg := 'Fout toevoegen kostenplaats';
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaats_module,
prs_kostenplaats_begin,
prs_kostenplaats_eind,
prs_kostenplaats_extsyncdate)
VALUES (v_kpnr,
SUBSTR (v_kpoms, 1, 60),
'PRS',
SYSDATE,
NULL,
SYSDATE)
RETURNING prs_kostenplaats_key
INTO lkostenplaatskey;
END IF;
v_errormsg := 'Fout bijwerken afdelingskostenplaats';
UPDATE prs_afdeling
SET prs_kostenplaats_key = lkostenplaatskey,
prs_afdeling_externsyncdate = SYSDATE
WHERE prs_afdeling_key = lafdelingkey;
ELSE -- Tja, afdeling met kostenplaats en geen kpnr ontvangen, dan mogelijk bijwerken omschrijving!
-- TODO (maar laat FMH daar eerst maar eens achter komen):
-- Eerst nog checken op dubbel gebruik van kostenplaatsen?
v_errormsg := 'Fout bijwerken kostenplaats';
v_kpoms := COALESCE (rc.kpoms, SUBSTR (l_afdpadparent || '#' || COALESCE (rc.afdoms, l_cur_afdoms), GREATEST (-LENGTH (l_afdpadparent || '#' || COALESCE (rc.afdoms, l_cur_afdoms)), -60)));
UPDATE prs_kostenplaats
SET prs_kostenplaats_omschrijving = SUBSTR (v_kpoms, 1, 60),
prs_kostenplaats_extsyncdate = SYSDATE
WHERE prs_kostenplaats_key = lkostenplaatskey;
END IF;
END IF;
v_errormsg := 'Fout bijwerken mincode';
prs.upsertkenmerk (1000, lafdelingkey, TO_CHAR (v_minomschr_key)); -- Ministeriecode
IF rc.afdcode IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken afdcode';
prs.upsertkenmerk (1001, lafdelingkey, rc.afdcode); -- Afdelingscode
END IF;
IF rc.afdidparent IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken afdidparent';
prs.upsertkenmerk (1002, lafdelingkey, rc.afdidparent); -- Identificatie parentafd.
END IF;
IF l_new_lev <> COALESCE (l_cur_lev, -1)
THEN
v_errormsg := 'Fout bijwerken orglevel';
prs.upsertkenmerk (1003, lafdelingkey, TO_CHAR (l_new_lev)); -- Organisatielevel (in IDM)
END IF;
-- TODO (maar laat FMH daar eerst maar eens achter komen):
-- Als parent wordt verschoven (omhoog of omlaag), dan blijven
-- code+parent ongewijzigd, maar zal level+pad wijzigen!
-- Zonder updates vanuit IDM voor de onderliggende afdelingen,
-- gebeurt niets in Facilitor en kloppen level+pad niet meer!
IF rc.afdcode IS NOT NULL OR rc.afdidparent IS NOT NULL OR l_new_lev <> COALESCE (l_cur_lev, -1)
THEN
v_errormsg := 'Fout bijwerken afdpad';
prs.upsertkenmerk (1004, lafdelingkey, l_afdpadparent || '#' || COALESCE (rc.afdcode, l_cur_afdcode)); -- Afdelingspad
END IF;
IF rc.begindat IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken begindat';
prs.upsertkenmerk (1005, lafdelingkey, TO_CHAR (rc.begindat, 'dd-mm-yyyy')); -- Begindatum
END IF;
IF rc.einddat IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken einddat';
prs.upsertkenmerk (1006, lafdelingkey, TO_CHAR (rc.einddat, 'dd-mm-yyyy')); -- Einddatum
END IF;
v_count_upd := v_count_upd + 1;
IF MOD (v_count_upd, 500) = 0 THEN COMMIT; END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Niet succesvol verwerkt');
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', '#Afdelingen/Ontvangen: ' || TO_CHAR (v_count_tot) || ' -> Succesvol: ' || TO_CHAR (v_count_upd), '');
/*
-- Zet kostenplaatsen op VERVALLEN; de rest handmatig verder maar regelen!
v_errormsg := 'Fout inactiveren kostenplaatsen';
SELECT COUNT ( * )
INTO l_vervcountkpn
FROM prs_v_aanwezigkostenplaats kp
WHERE kp.prs_kostenplaats_module = 'PRS'
AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
AND NOT EXISTS
(SELECT 1
FROM fmhn_imp_org
WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper);
UPDATE prs_kostenplaats kp
SET kp.prs_kostenplaats_omschrijving = SUBSTR ('VERVALLEN:' || COALESCE (prs_kostenplaats_omschrijving, '-'), 1, 60)
WHERE kp.prs_kostenplaats_verwijder IS NULL
AND kp.prs_kostenplaats_module = 'PRS'
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
AND NOT EXISTS
(SELECT 1
FROM fmhn_imp_org
WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper);
*/
-- For summary only.
SELECT COUNT ( * )
INTO l_newcountafd
FROM prs_v_aanwezigafdeling a, prs_v_afdeling_boom ab
WHERE UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = v_bedrijf_key;
/*
SELECT COUNT ( * )
INTO l_newcountkpn
FROM prs_v_aanwezigkostenplaats
WHERE prs_kostenplaats_module = 'PRS'
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
*/
fac.imp_writelog (p_import_key, 'S', 'Aantal afdelingen in importbestand: ' || TO_CHAR (l_impcountafd), '');
fac.imp_writelog (p_import_key, 'S', 'Aantal actieve afdelingen vooraf: ' || TO_CHAR (l_oldcountafd) || ' -> nu: ' || TO_CHAR (l_newcountafd), '');
/*
fac.imp_writelog (p_import_key, 'S', 'Aantal actieve kostenplaatsen vooraf: ' || TO_CHAR (l_oldcountkpn) || ' -> nu: ' || TO_CHAR (l_newcountkpn), '');
fac.imp_writelog (p_import_key, 'S', 'Aantal kostenplaatsen vervallen: ' || TO_CHAR (l_vervcountkpn), '');
*/
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces Afdelingen afgebroken!');
END;
/
/*
SELECT afdid, LENGTH (afdid) FROM fmhn_imp_org;
SELECT afdcode, LENGTH (afdcode) FROM fmhn_imp_org;
SELECT afdid, COUNT ( * )
FROM fmhn_imp_org
GROUP BY afdid;
SELECT LEVEL imp_lev,
volgnr,
mincode,
afdid,
afdcode,
afdoms,
afdidparent,
kpnr,
kpoms,
begindat,
einddat
FROM fmhn_imp_org
--WHERE fac_import_key = p_import_key
CONNECT BY PRIOR afdid = afdidparent
START WITH afdidparent IS NULL -- TODO:Of '0'?
ORDER BY LEVEL;
*/
CREATE OR REPLACE PROCEDURE fmhn_import_prs (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';'; -- Field seperator
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Import line
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000) := '';
header_is_valid NUMBER := 0;
v_count_tot NUMBER (10) := 0;
v_count_imp NUMBER (10) := 0;
-- De importvelden
v_mincode VARCHAR2 (255);
v_prsnr VARCHAR2 (255);
v_afdid VARCHAR2 (255);
v_achternaam VARCHAR2 (255);
v_tussenvoegsel VARCHAR2 (255);
v_voorletters VARCHAR2 (255);
v_voornaam VARCHAR2 (255);
v_mv VARCHAR2 (255);
v_tel VARCHAR2 (255);
v_mob VARCHAR2 (255);
v_email VARCHAR2 (255);
v_begindat VARCHAR2 (255);
v_einddat VARCHAR2 (255);
v_stamgeb VARCHAR2 (255);
v_operator VARCHAR2 (255);
CURSOR c1
IS
SELECT fac_imp_file_line, LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, ''))) regellengte
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
--DELETE FROM fmhn_imp_prs;
--COMMIT;
-- Het aangeleverde bestand heeft soms een komma als scheidingsteken. Deze
-- wordt hier maar even vervangen.
--UPDATE fac_imp_file
-- SET fac_imp_file_line = fmhn.change_delimitor (fac_imp_file_line, ',')
-- WHERE fac_import_key = p_import_key
-- AND EXISTS (SELECT 1 FROM fac_imp_file WHERE fac_import_key = p_import_key AND INSTR (UPPER (fac_imp_file_line), 'MINCODE,PRSNR,AFDID,ACHTERNAAM,TUSSENVOEGSEL,VOORLETTERS,VOORNAAM,MV,TEL,MOB,EMAIL,BEGINDAT,EINDDAT,STAMGEB') > 0);
SELECT fac_imp_file_line
INTO v_newline
FROM fac_imp_file
WHERE fac_import_key = p_import_key AND fac_imp_file_index = 1;
IF INSTR (UPPER (v_newline), 'MINCODE,PRSNR,AFDID,ACHTERNAAM,TUSSENVOEGSEL,VOORLETTERS,VOORNAAM,MV,TEL,MOB,EMAIL,BEGINDAT,EINDDAT,STAMGEB') > 0
THEN
c_delim := ',';
END IF;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen importregel';
v_aanduiding := '';
-- Lees alle veldwaarden
-- mincode;prsnr;afdid;achternaam;tussenvoegsel;voorletters;voornaam;mv;tel;mobiel;email;begindat;einddat;stamgeb
fac.imp_getfield (v_newline, c_delim, v_mincode);
fac.imp_getfield (v_newline, c_delim, v_prsnr);
fac.imp_getfield (v_newline, c_delim, v_afdid);
fac.imp_getfield (v_newline, c_delim, v_achternaam);
fac.imp_getfield (v_newline, c_delim, v_tussenvoegsel);
fac.imp_getfield (v_newline, c_delim, v_voorletters);
fac.imp_getfield (v_newline, c_delim, v_voornaam);
fac.imp_getfield (v_newline, c_delim, v_mv);
fac.imp_getfield (v_newline, c_delim, v_tel);
fac.imp_getfield (v_newline, c_delim, v_mob);
fac.imp_getfield (v_newline, c_delim, v_email);
fac.imp_getfield (v_newline, c_delim, v_begindat);
fac.imp_getfield (v_newline, c_delim, v_einddat);
fac.imp_getfield (v_newline, c_delim, v_stamgeb);
fac.imp_getfield (v_newline, c_delim, v_operator);
v_aanduiding := '[' || v_mincode || '|' || v_prsnr || '|' || v_afdid || v_email || '] ';
-- 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 v_mincode = 'mincode'
AND v_prsnr = 'prsnr'
AND v_afdid = 'afdid'
AND v_achternaam = 'achternaam'
AND v_tussenvoegsel = 'tussenvoegsel'
AND v_voorletters = 'voorletters'
AND v_voornaam = 'voornaam'
AND v_mv = 'mv'
AND v_tel = 'tel'
AND v_mob = 'mob'
AND v_email = 'email'
AND v_begindat = 'begindat'
AND v_einddat = 'einddat'
AND v_stamgeb = 'stamgeb'
--AND v_operator = 'operator'
THEN
header_is_valid := 1;
END IF;
ELSIF (rec1.regellengte > 0) -- Lege regels overslaan
THEN
BEGIN
v_count_tot := v_count_tot + 1;
-- Strippen overbodige tekens uit vaste en mobiele nummers >15
-- posities!
IF LENGTH (v_tel) > 15
THEN
v_tel := REPLACE (REPLACE (v_tel, ' ', ''), '-', '');
END IF;
IF LENGTH (v_mob) > 15
THEN
v_mob := REPLACE (REPLACE (v_mob, ' ', ''), '-', '');
END IF;
-- Direct wegschrijven; controleer alle veldwaarden maar niet.
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO fmhn_imp_prs (fac_import_key,
volgnr,
mincode,
prsnr,
afdid,
achternaam,
tussenvoegsel,
voorletters,
voornaam,
mv,
tel,
mob,
email,
begindat,
einddat,
stamgeb,
operator)
VALUES (p_import_key,
v_count_imp,
SUBSTR (TRIM (v_mincode), 1, 10), -- C6
SUBSTR (TRIM (v_prsnr), 1, 20), -- C20
SUBSTR (TRIM (v_afdid), 1, 101), -- C100
SUBSTR (TRIM (v_achternaam), 1, 60), -- C60
SUBSTR (TRIM (v_tussenvoegsel), 1, 15), -- C15 (of '[wis]')
SUBSTR (TRIM (v_voorletters), 1, 15), -- C15
SUBSTR (TRIM (v_voornaam), 1, 30), -- C30
DECODE (v_mv, '[wis]', 'X', SUBSTR (TRIM (v_mv), 1, 1)), -- C1 (X, M, V of NULL)
SUBSTR (TRIM (v_tel), 1, 15), -- C15
SUBSTR (TRIM (v_mob), 1, 15), -- C15 (of '[wis]')
SUBSTR (TRIM (v_email), 1, 200), -- C200
fac.safe_to_date (TRIM (v_begindat), 'yyyy-mm-dd'),
fac.safe_to_date (TRIM (v_einddat), 'yyyy-mm-dd'),
SUBSTR (TRIM (v_stamgeb), 1, 30), -- C30
SUBSTR (TRIM (v_operator), 1, 6));
v_count_imp := v_count_imp + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; 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 afspraak!');
ELSE
IF v_count_tot <> 1 OR v_count_tot <> v_count_imp
THEN
fac.imp_writelog (p_import_key, 'S', 'Personen/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'Personen/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_imp), '');
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces Personen afgebroken!');
-- Maak importtabel leeg om import van foutieve bestanden te voorkomen!
--DELETE FROM fmhn_imp_prs;
END;
/
CREATE OR REPLACE PROCEDURE fmhn_update_prs (p_import_key IN NUMBER)
AS
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
c_max_delta_percentage NUMBER (10) := 50; -- 50%!
c_functie VARCHAR2 (60) := 'Medewerker';
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000) := '';
v_count_prs_import NUMBER (10); -- #actieve personen na import!
v_count_tot NUMBER (10) := 0;
v_count_upd NUMBER (10) := 0;
v_count NUMBER;
v_mincode VARCHAR2 (6);
v_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
v_minomschr_key fac_usrdata.fac_usrdata_key%TYPE;
v_minomschr fac_usrdata.fac_usrdata_omschr%TYPE;
v_afdidroot prs_kenmerklink.prs_kenmerklink_waarde%TYPE;
v_prsnr fmhn_imp_prs.prsnr%TYPE;
v_afdid fmhn_imp_prs.afdid%TYPE;
v_achternaam fmhn_imp_prs.achternaam%TYPE;
v_tussenvoegsel fmhn_imp_prs.tussenvoegsel%TYPE;
v_voorletters fmhn_imp_prs.voorletters%TYPE;
v_voornaam fmhn_imp_prs.voornaam%TYPE;
v_mv fmhn_imp_prs.mv%TYPE;
v_tel fmhn_imp_prs.tel%TYPE;
v_mob fmhn_imp_prs.mob%TYPE;
v_email fmhn_imp_prs.email%TYPE;
v_begindat VARCHAR2 (10);
v_einddat VARCHAR2 (10);
v_srtperslid_key prs_srtperslid.prs_srtperslid_key%TYPE;
v_afdeling_key prs_afdeling.prs_afdeling_key%TYPE;
v_perslid_key prs_perslid.prs_perslid_key%TYPE;
v_ruimte_key alg_ruimte.alg_ruimte_key%TYPE;
v_afdeling_key_old prs_afdeling.prs_afdeling_key%TYPE;
v_bedrijf_key_old prs_bedrijf.prs_bedrijf_key%TYPE;
CURSOR cprsdelta
IS
SELECT volgnr,
mincode,
prsnr,
afdid,
achternaam,
tussenvoegsel,
voorletters,
voornaam,
mv,
tel,
mob,
email,
begindat,
einddat,
NULL stamgeb, -- Bewust negeren evt. ontvangen stamgebouw-veld!
operator
FROM fmhn_imp_prs
WHERE fac_import_key = p_import_key
ORDER BY volgnr;
BEGIN
-- Randvoorwaarde dat alle personen in importbestand dezelfde mincode!
v_errormsg := 'Fout (uniek) bepalen mincode';
SELECT DISTINCT mincode
INTO v_mincode
FROM fmhn_imp_prs
WHERE fac_import_key = p_import_key;
-- Randvoorwaarde dat <20><>n intern bedrijf bestaat met bepaalde mincode!
v_errormsg := 'Fout (uniek) bepalen bedrijf';
SELECT b.prs_bedrijf_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr, afdid.prs_kenmerklink_waarde
INTO v_bedrijf_key, v_minomschr_key, v_minomschr, v_afdidroot
FROM prs_v_aanwezigbedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1020) mincode, -- Ministeriecode (bij Bedrijf)
fac_v_aanwezigusrdata ud,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1021) afdid -- Organisatieonderdeelcode (bij Bedrijf)
WHERE b.prs_bedrijf_intern = 1
AND b.prs_bedrijf_key = mincode.prs_link_key
AND fac.safe_to_number (mincode.prs_kenmerklink_waarde) = ud.fac_usrdata_key
AND ud.fac_usrdata_upper = UPPER (v_mincode)
AND b.prs_bedrijf_key = afdid.prs_link_key(+);
-- Bepaal distinct aantal personen in bestand voor mincode.
--SELECT COUNT (DISTINCT mincode || prsnr)
--SELECT COUNT (*)
SELECT COUNT (DISTINCT prsnr)
INTO v_count_prs_import
FROM fmhn_imp_prs
WHERE fac_import_key = p_import_key;
v_errormsg := 'Fout bepalen SEARCH-request';
SELECT COUNT ( * ), MAX (prsnr)
INTO v_count, v_prsnr
FROM fmhn_imp_prs
WHERE fac_import_key = p_import_key
AND UPPER (operator) = 'SEARCH';
IF v_count > 0 -- SEARCH-request ontvangen?
THEN
IF v_count_prs_import > 1
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldige operator voor >1 persoon', 'Importproces Personen afgebroken!');
ELSE
BEGIN
v_errormsg := 'Fout bepalen persoon';
SELECT SUBSTR (a.prs_afdeling_externid, 3) afdid,
p.prs_perslid_naam,
p.prs_perslid_tussenvoegsel,
p.prs_perslid_voorletters,
p.prs_perslid_voornaam,
DECODE (p.prs_perslid_geslacht, 1, 'M', 0, 'V', ''),
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
p.prs_perslid_email,
TO_CHAR (p.prs_perslid_ingangsdatum, 'yyyy-mm-dd'),
TO_CHAR (p.prs_perslid_einddatum, 'yyyy-mm-dd')
INTO v_afdid,
v_achternaam,
v_tussenvoegsel,
v_voorletters,
v_voornaam,
v_mv,
v_tel,
v_mob,
v_email,
v_begindat,
v_einddat
FROM prs_v_aanwezigperslid p,
prs_afdeling a
WHERE UPPER (p.prs_perslid_externid) = UPPER (v_mincode || v_prsnr)
AND p.prs_afdeling_key = a.prs_afdeling_key;
fac.imp_writelog (p_import_key, 'S', '#Personen/SEARCH: 1 -> Succesvol: 1', '');
--fac.imp_writelog (p_import_key, 'X', '<mincode>' || xml.char_to_html (v_mincode) || '</mincode><prsnr>' || xml.char_to_html (v_prsnr) || '</prsnr><afdid>' || xml.char_to_html (v_afdid) || '</afdid><achternaam>' || xml.char_to_html (v_achternaam) || '</achternaam><tussenvoegsel>' || xml.char_to_html (v_tussenvoegsel) || '</tussenvoegsel><voorletters>' || xml.char_to_html (v_voorletters) || '</voorletters><voornaam>' || xml.char_to_html (v_voornaam) || '</voornaam><mv>' || xml.char_to_html (v_mv) || '</mv><tel>' || xml.char_to_html (v_tel) || '</tel><mob>' || xml.char_to_html (v_mob) || '</mob><email>' || xml.char_to_html (v_email) || '</email><begindat>' || xml.char_to_html (v_begindat) || '</begindat><einddat>' || xml.char_to_html (v_einddat) || '</einddat>', '');
fac.imp_writelog (p_import_key, 'X', xml.char_to_html (v_mincode) || '#;#' || xml.char_to_html (v_prsnr) || '#;#' || xml.char_to_html (v_afdid) || '#;#' || xml.char_to_html (v_achternaam) || '#;#' || xml.char_to_html (v_tussenvoegsel) || '#;#' || xml.char_to_html (v_voorletters) || '#;#' || xml.char_to_html (v_voornaam) || '#;#' || xml.char_to_html (v_mv) || '#;#' || xml.char_to_html (v_tel) || '#;#' || xml.char_to_html (v_mob) || '#;#' || xml.char_to_html (v_email) || '#;#' || xml.char_to_html (v_begindat) || '#;#' || xml.char_to_html (v_einddat), '');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key, 'S', '#Afdelingen/SEARCH: 1 -> Succesvol: 0', '');
END;
END IF;
RETURN;
END IF;
FOR rc IN cprsdelta
LOOP
BEGIN
v_aanduiding := '[' || rc.mincode || '|' || rc.prsnr || '|' || rc.afdid || '|' || rc.email || '] ';
v_count_tot := v_count_tot + 1;
-- Afdeling moet bestaan bij bulk-import en INSERT!
v_errormsg := 'Fout bepalen functie';
IF COALESCE (UPPER (rc.operator), 'INSERT') = 'INSERT'
THEN
-- Bestaat functie?
SELECT prs_srtperslid_key
INTO v_srtperslid_key
FROM prs_srtperslid
WHERE prs_srtperslid_verwijder IS NULL
AND UPPER (prs_srtperslid_omschrijving) = UPPER (c_functie);
ELSE
v_srtperslid_key := TO_NUMBER (NULL); -- Don't care!
END IF;
-- Afdeling moet bestaan bij bulk-import, INSERT en indien ontvangen!
v_errormsg := 'Fout bepalen afdeling';
IF COALESCE (rc.operator,'INSERT') = 'INSERT' OR rc.afdid IS NOT NULL
THEN
-- Bestaat afdeling?
SELECT prs_afdeling_key
INTO v_afdeling_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND UPPER (prs_afdeling_externid) = UPPER (rc.mincode || rc.afdid);
ELSE
v_afdeling_key := TO_NUMBER (NULL); -- Don't care!
END IF;
-- Welk bedrijf (departement) hoort de persoon bij
v_errormsg := 'Fout bepalen departement';
IF v_afdeling_key IS NOT NULL
THEN
-- Bestaat bedrijf
SELECT afd.prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_v_afdeling afd
WHERE v_afdeling_key = afd.prs_afdeling_key;
ELSE
v_bedrijf_key := TO_NUMBER (NULL); -- Don't care!
END IF;
v_achternaam := SUBSTR (rc.achternaam, 1, 60);
IF LENGTH (rc.achternaam) > 60
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Achternaam afgebroken tot ' || v_achternaam, 'Achternaam te lang');
END IF;
-- Bestaat persoon?
v_errormsg := 'Fout bepalen persoon';
SELECT MAX (prs_perslid_key), COUNT ( * )
INTO v_perslid_key, v_count
FROM prs_v_aanwezigperslid
WHERE UPPER (prs_perslid_externid) = UPPER (rc.mincode || rc.prsnr);
IF v_count = 0
THEN
-- FMHN#71214: Als er al een persoon met dit e-mail adres bestaat,
-- dan voortaan error (= staan wij niet langer toe)!
v_errormsg := 'E-mail adres niet uniek';
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigperslid
WHERE UPPER (prs_perslid_email) = UPPER (rc.email);
IF v_count > 0
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
v_perslid_key := -1;
ELSE
v_errormsg := 'Ongeldige operator voor niet bestaande persoon';
IF COALESCE (UPPER (rc.operator), 'INSERT') = 'INSERT'
AND (rc.einddat > SYSDATE OR rc.einddat IS NULL)
THEN
v_errormsg := 'Fout toevoegen persoon';
INSERT INTO prs_perslid (prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voorletters,
prs_perslid_voornaam,
--prs_perslid_titel,
prs_perslid_geslacht,
--prs_perslid_nr,
--prs_perslid_oslogin,
--prs_perslid_apikey,
--prs_perslid_dienstverband,
prs_perslid_ingangsdatum,
prs_perslid_einddatum,
prs_perslid_telefoonnr,
prs_perslid_mobiel,
prs_perslid_email,
prs_perslid_externid,
prs_perslid_externsyncdate)
VALUES ('PRS',
v_srtperslid_key,
v_afdeling_key,
v_achternaam,
rc.tussenvoegsel,
rc.voorletters,
rc.voornaam,
--rc.titel,
DECODE (UPPER (rc.mv), 'M', 1, 'V', 0, NULL),
--rc.prsnr,
--NULL,
--NULL,
--NULL,
COALESCE (rc.begindat, SYSDATE),
rc.einddat,
rc.tel,
rc.mob,
rc.email,
rc.mincode || rc.prsnr,
SYSDATE)
RETURNING prs_perslid_key
INTO v_perslid_key;
-- Alleen initieel vullen bij INSERT (daarna nooit meer)!
v_errormsg := 'Fout bijwerken mincode';
prs.upsertkenmerk (1008, v_perslid_key, TO_CHAR (v_minomschr_key)); -- Ministeriecode
v_errormsg := 'Fout bijwerken prsnr';
prs.upsertkenmerk (1009, v_perslid_key, rc.prsnr); -- Identificatie persoon
ELSE
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Operator ongeldig');
v_perslid_key := -1;
END IF;
END IF;
ELSIF v_count = 1
THEN
-- FMHN#71214: Als bestaande persoon wordt bijgewerkt, dan geen
-- controle op uniciteit van - evt. gewijzigd - e-mail
-- adres (als uniek bij aanmaken, dan onwaarschijnlijk
-- dat later ineens dubbel?)!
-- NB. Even los van dubbele adressen v<><76>r FMHN#71214!
-- FMHN#74750: Bij wijziging van afdeling binnen BZK (bedrijf_key = 921):
-- Autorisaties mogen worden verwijderd
-- Werkplekken mogen worden verwijderd (en daarna conform stamgebouw weer toegevoegd).
-- Dit voorkomt eventuele ge-erfde rechten vanuit een voorgaande functie.
-- Welke Afdeling / Departement hoort de persoon NU bij
v_errormsg := 'Fout bepalen huidige afdeling / departement';
IF v_perslid_key IS NOT NULL
THEN
SELECT p.prs_afdeling_key, b.prs_bedrijf_key
INTO v_afdeling_key_old, v_bedrijf_key_old
FROM prs_perslid p, prs_v_afdeling b
WHERE b.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = v_perslid_key;
-- FMHN#84596: Heractiveren account (ongeacht operator)
v_errormsg := 'Fout heractiveren persoon';
UPDATE prs_perslid
SET prs_perslid_inactief = NULL
WHERE prs_perslid_key = v_perslid_key
AND ( TRUNC (rc.einddat) > TRUNC (SYSDATE)
OR rc.einddat = NULL)
AND NOT EXISTS
(SELECT 1
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerk_key = 1100 -- Handmatige inactiefdatum
AND kl.PRS_LINK_KEY =
v_perslid_key
AND kl.prs_kenmerklink_verwijder
IS NULL);
ELSE
v_afdeling_key_old := TO_NUMBER (NULL); -- Don't care!
v_bedrijf_key_old := TO_NUMBER (NULL); -- Don't care!
END IF;
v_errormsg := 'Ongeldige operator voor bestaande persoon';
IF COALESCE (UPPER (rc.operator), 'INSERT') = 'INSERT'
THEN
--Bij een verhuizing van afdeling binnen BZK mogen werkplekken en autorisaties verwijderd worden.
--In FMHN#76140 is dit tijdelijk (vanaf januari 2023) uitgeschakeld geweest en mogen de autorisaties vanaf november 2023 weer verwijderd worden
IF v_bedrijf_key = 921
AND v_bedrijf_key_old = 921
AND v_afdeling_key <> v_afdeling_key_old
AND v_afdeling_key IS NOT NULL
THEN
v_errormsg :=
'Opp instellen tbv herstellen werkplekken';
UPDATE prs_perslid
SET prs_perslid_opp = 1 -- Hiermee in de nachtrun de werkplekken verwijderen (en opnieuw instellen)
WHERE prs_perslid_key = v_perslid_key;
v_errormsg :=
'Verwijderen niet-standaard autorisatiegroepen BZK';
DELETE FROM
fac_gebruikersgroep
WHERE prs_perslid_key = v_perslid_key
AND fac_groep_key NOT IN (102, 167); --Autorisatiegroepen 'MLD_BZK_Iedereen' en 'RES klant'
v_errormsg := 'Logging afdelingswijzing binnen BZK';
fac.trackaction ('PRSUPD',
v_perslid_key,
3,
SYSDATE,
'IDM - BZK afdeling gewijzigd');
END IF;
v_errormsg := 'Fout bijwerken persoon';
UPDATE prs_perslid
SET prs_afdeling_key = COALESCE (v_afdeling_key, prs_afdeling_key),
prs_perslid_naam = COALESCE (v_achternaam, prs_perslid_naam),
prs_perslid_tussenvoegsel = rc.tussenvoegsel,
prs_perslid_voorletters = rc.voorletters,
prs_perslid_voornaam = rc.voornaam,
prs_perslid_geslacht = DECODE (rc.mv, 'X', NULL, DECODE (UPPER (rc.mv), 'M', 1, 'V', 0, NULL)),
prs_perslid_ingangsdatum = COALESCE (rc.begindat, SYSDATE),
prs_perslid_einddatum = rc.einddat,
prs_perslid_telefoonnr = rc.tel,
prs_perslid_mobiel = rc.mob,
prs_perslid_email = rc.email,
prs_perslid_externsyncdate = SYSDATE
WHERE prs_perslid_key = v_perslid_key;
-- Alleen bij nieuwe persoon of ook bij bestaande persoon?
v_errormsg := 'Fout bijwerken mincode';
prs.upsertkenmerk (1008, v_perslid_key, TO_CHAR (v_minomschr_key)); -- Ministeriecode
v_errormsg := 'Fout bijwerken prsnr';
prs.upsertkenmerk (1009, v_perslid_key, rc.prsnr); -- Identificatie persoon
ELSIF COALESCE (UPPER (rc.operator), 'UPDATE') = 'UPDATE'
THEN
--Bij een verhuizing van afdeling binnen BZK mogen werkplekken en autorisaties verwijderd worden.
IF v_bedrijf_key = 921
AND v_bedrijf_key_old = 921
AND v_afdeling_key <> v_afdeling_key_old
AND v_afdeling_key IS NOT NULL
THEN
v_errormsg :=
'Opp instellen tbv herstellen werkplekken';
UPDATE prs_perslid
SET prs_perslid_opp = 1 -- Hiermee in de nachtrun de werkplekken verwijderen (en opnieuw instellen)
WHERE prs_perslid_key = v_perslid_key;
v_errormsg :=
'Verwijderen niet-standaard autorisatiegroepen BZK';
DELETE FROM
fac_gebruikersgroep
WHERE prs_perslid_key = v_perslid_key
AND fac_groep_key NOT IN (102, 167); --Autorisatiegroepen 'MLD_BZK_Iedereen' en 'RES klant'
v_errormsg := 'Logging afdelingswijzing binnen BZK';
fac.trackaction ('PRSUPD',
v_perslid_key,
3,
SYSDATE,
'IDM - BZK afdeling gewijzigd');
END IF;
v_errormsg := 'Fout bijwerken persoon';
UPDATE prs_perslid
SET prs_afdeling_key = COALESCE (v_afdeling_key, prs_afdeling_key),
prs_perslid_naam = COALESCE (v_achternaam, prs_perslid_naam),
prs_perslid_tussenvoegsel = DECODE (rc.tussenvoegsel, '[wis]', NULL, COALESCE (rc.tussenvoegsel, prs_perslid_tussenvoegsel)),
prs_perslid_voorletters = COALESCE (rc.voorletters, prs_perslid_voorletters),
prs_perslid_voornaam = COALESCE (rc.voornaam, prs_perslid_voornaam),
prs_perslid_geslacht = DECODE (rc.mv, 'X', NULL, DECODE (UPPER (rc.mv), 'M', 1, 'V', 0, prs_perslid_geslacht)),
prs_perslid_ingangsdatum = COALESCE (rc.begindat, prs_perslid_ingangsdatum),
prs_perslid_einddatum = COALESCE (rc.einddat, prs_perslid_einddatum),
prs_perslid_telefoonnr = COALESCE (rc.tel, prs_perslid_telefoonnr),
prs_perslid_mobiel = DECODE (rc.mob, '[wis]', NULL, COALESCE (rc.mob, prs_perslid_mobiel)),
prs_perslid_email = COALESCE (rc.email, prs_perslid_email),
prs_perslid_externsyncdate = SYSDATE
WHERE prs_perslid_key = v_perslid_key;
-- Alleen bij nieuwe persoon of ook bij bestaande persoon?
v_errormsg := 'Fout bijwerken mincode';
prs.upsertkenmerk (1008, v_perslid_key, TO_CHAR (v_minomschr_key)); -- Ministeriecode
v_errormsg := 'Fout bijwerken prsnr';
prs.upsertkenmerk (1009, v_perslid_key, rc.prsnr); -- Identificatie persoon
ELSIF UPPER (rc.operator) = 'DELETE'
THEN
v_errormsg := 'Fout verwijderen persoon';
prs.delete_perslid (p_import_key, v_perslid_key);
v_perslid_key := -1;
ELSE
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Operator ongeldig');
v_perslid_key := -1;
END IF;
ELSE
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Personeelsnummer niet uniek');
v_perslid_key := -1;
END IF;
IF v_perslid_key > 0
THEN
IF rc.stamgeb IS NOT NULL
THEN
v_errormsg := 'Fout bepalen huidige ruimte in gebouw';
SELECT COUNT ( * )
INTO v_count
FROM prs_perslidwerkplek pw, prs_werkplek w, alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g
WHERE pw.prs_perslid_key = v_perslid_key
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND UPPER (g.alg_gebouw_code) = UPPER (rc.stamgeb);
-- Als persoon in gebouw reeds een werkplek heeft en de nieuwe zou
-- in de default ruimte zijn, dan wordt onderstaande overgeslagen.
IF v_count = 0
THEN
v_errormsg := 'Fout bepalen default ruimte of gebouw';
SELECT r1.alg_ruimte_key
INTO v_ruimte_key
FROM alg_v_aanweziggebouw g1, alg_verdieping v1, alg_v_aanwezigruimte r1
WHERE UPPER (g1.alg_gebouw_code) = UPPER (rc.stamgeb)
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanweziggebouw
WHERE UPPER (alg_gebouw_code) = UPPER (rc.stamgeb)
AND alg_locatie_key < g1.alg_locatie_key)
AND g1.alg_gebouw_key = v1.alg_gebouw_key
AND v1.alg_verdieping_key = r1.alg_verdieping_key
AND r1.alg_ruimte_nr = '_'
AND NOT EXISTS -- Geen ruimte '_' op lagere verdieping!
(SELECT 1
FROM alg_verdieping v2, alg_v_aanwezigruimte r2
WHERE v2.alg_verdieping_key = r2.alg_verdieping_key
AND r2.alg_ruimte_nr = '_'
AND v2.alg_gebouw_key = v1.alg_gebouw_key
AND v2.alg_verdieping_volgnr < v1.alg_verdieping_volgnr);
v_errormsg := 'Fout bijwerken ruimte';
prs.movetoruimte (v_perslid_key, v_ruimte_key, NULL);
END IF;
END IF;
v_count_upd := v_count_upd + 1;
END IF;
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Niet succesvol verwerkt');
END;
END LOOP;
IF v_count_tot <> 1 OR v_count_tot <> v_count_upd THEN
fac.imp_writelog (p_import_key, 'S', '#Personen/Ontvangen: ' || TO_CHAR (v_count_tot) || ' -> Succesvol: ' || TO_CHAR (v_count_upd), '');
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces Personen afgebroken!');
END;
/
-- Kopie van ORG- en PRS-import met Charset op Windows-1252!
CREATE OR REPLACE PROCEDURE fmhn_import_org2 (p_import_key IN NUMBER)
AS
BEGIN
fmhn_import_org (p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE fmhn_update_org2 (p_import_key IN NUMBER)
AS
BEGIN
fmhn_update_org (p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE fmhn_import_prs2 (p_import_key IN NUMBER)
AS
BEGIN
fmhn_import_prs (p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE fmhn_update_prs2 (p_import_key IN NUMBER)
AS
BEGIN
fmhn_update_prs (p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE fmhn_import_rel (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';'; -- Field seperator
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Import line
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000) := '';
header_is_valid NUMBER := 0;
v_count_tot NUMBER (10) := 0;
v_count_imp NUMBER (10) := 0;
-- De importvelden
v_levnr VARCHAR2 (255);
v_bedrnaam VARCHAR2 (255);
v_postadres VARCHAR2 (255);
v_ppostcode VARCHAR2 (255);
v_pplaats VARCHAR2 (255);
v_pland VARCHAR2 (255);
v_bezoekadres VARCHAR2 (255);
v_bpostcode VARCHAR2 (255);
v_bplaats VARCHAR2 (255);
v_bland VARCHAR2 (255);
v_status VARCHAR2 (255);
v_classificatie VARCHAR2 (255);
v_sector VARCHAR2 (255);
v_subsector VARCHAR2 (255);
v_telefoon VARCHAR2 (255);
v_email VARCHAR2 (255);
v_contractant VARCHAR2 (255);
v_uitvoerende VARCHAR2 (255);
v_overeenkomstdatum VARCHAR2 (255);
v_einddatum VARCHAR2 (255);
CURSOR c1
IS
SELECT fac_imp_file_line, LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, ''))) regellengte
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM fac_imp_ext_bedrijf;
COMMIT;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen importregel';
v_aanduiding := '';
-- Lees alle veldwaarden
--Leveranciernr;Bedrijfsnaam;Postadres;PPostcode;PPlaats;PLand;BezoekAdres;BPostcode;BPlaats;BLand;Status;Classificatie;Sector;SubSector;Telefoon;Email;Contractant;Uitvoerende;Overeenkomstdatum;Einddatum
fac.imp_getfield (v_newline, c_delim, v_levnr);
fac.imp_getfield (v_newline, c_delim, v_bedrnaam);
fac.imp_getfield (v_newline, c_delim, v_postadres);
fac.imp_getfield (v_newline, c_delim, v_ppostcode);
fac.imp_getfield (v_newline, c_delim, v_pplaats);
fac.imp_getfield (v_newline, c_delim, v_pland);
fac.imp_getfield (v_newline, c_delim, v_bezoekadres);
fac.imp_getfield (v_newline, c_delim, v_bpostcode);
fac.imp_getfield (v_newline, c_delim, v_bplaats);
fac.imp_getfield (v_newline, c_delim, v_bland);
fac.imp_getfield (v_newline, c_delim, v_status);
fac.imp_getfield (v_newline, c_delim, v_classificatie);
fac.imp_getfield (v_newline, c_delim, v_sector);
fac.imp_getfield (v_newline, c_delim, v_subsector);
fac.imp_getfield (v_newline, c_delim, v_telefoon);
fac.imp_getfield (v_newline, c_delim, v_email);
fac.imp_getfield (v_newline, c_delim, v_contractant);
fac.imp_getfield (v_newline, c_delim, v_uitvoerende);
fac.imp_getfield (v_newline, c_delim, v_overeenkomstdatum);
fac.imp_getfield (v_newline, c_delim, v_einddatum);
v_aanduiding := '[' || v_levnr || '|' || v_bedrnaam || '] ';
-- 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_levnr) = 'LEVERANCIERNR'
AND UPPER (v_bedrnaam) = 'BEDRIJFSNAAM'
AND UPPER (v_postadres) = 'POSTADRES'
AND UPPER (v_ppostcode) = 'PPOSTCODE'
AND UPPER (v_pplaats) = 'PPLAATS'
AND UPPER (v_pland) = 'PLAND'
AND UPPER (v_bezoekadres) = 'BEZOEKADRES'
AND UPPER (v_bpostcode) = 'BPOSTCODE'
AND UPPER (v_bplaats) = 'BPLAATS'
AND UPPER (v_bland) = 'BLAND'
AND UPPER (v_status) = 'STATUS'
AND UPPER (v_classificatie) = 'CLASSIFICATIE'
AND UPPER (v_sector) = 'SECTOR'
AND UPPER (v_subsector) = 'SUBSECTOR'
AND UPPER (v_telefoon) = 'TELEFOON'
AND UPPER (v_email) = 'EMAIL'
AND UPPER (v_contractant) = 'CONTRACTANT'
AND UPPER (v_uitvoerende) = 'UITVOERENDE'
AND UPPER (v_overeenkomstdatum) = 'OVEREENKOMSTDATUM'
AND UPPER (v_einddatum) = 'EINDDATUM'
THEN
header_is_valid := 1;
END IF;
ELSIF (rec1.regellengte > 0) -- Lege regels overslaan
THEN
BEGIN
v_count_tot := v_count_tot + 1;
-- Direct wegschrijven; controleer alle veldwaarden maar niet.
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO fac_imp_ext_bedrijf (prs_leverancier_nr,
prs_bedrijf_naam,
prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_post_land,
prs_bedrijf_contract,
prs_bedrijf_telefoon,
prs_bedrijf_email,
prs_dienst_omschrijving, -- Status
prs_bedrijf_overig1,
prs_bedrijf_overig2,
prs_bedrijf_overig3,
prs_bedrijf_uitvoerende,
prs_overeenkomst_datum,
prs_bedrijf_contact_fax) -- Einddatum
VALUES (TRIM (v_levnr),
SUBSTR (TRIM (v_bedrnaam), 1, 60),
SUBSTR (TRIM (v_bezoekadres), 1, 50),
SUBSTR (TRIM (v_bpostcode), 1, 12),
SUBSTR (TRIM (v_bplaats), 1, 30),
SUBSTR (TRIM (v_bland), 1, 30),
SUBSTR (TRIM (v_postadres), 1, 50),
SUBSTR (TRIM (v_ppostcode), 1, 12),
SUBSTR (TRIM (v_pplaats), 1, 30),
SUBSTR (TRIM (v_pland), 1, 30),
--DECODE (SUBSTR (UPPER (COALESCE (TRIM (v_contractant), 'N')), 1, 1), 'N', 0, 'J', 1, 9), -- 9=Error!
DECODE (SUBSTR (UPPER (COALESCE (TRIM (v_contractant), '0')), 1, 1), '0', 0, '1', 1, 9), -- 9=Error!
SUBSTR (TRIM (v_telefoon), 1, 20),
SUBSTR (TRIM (v_email), 1, 100),
SUBSTR (TRIM (v_status), 1, 60),
TRIM (v_classificatie),
TRIM (v_sector),
TRIM (v_subsector),
DECODE (SUBSTR (UPPER (COALESCE (TRIM (v_uitvoerende), '0')), 1, 1), '0', 0, '1', 1, 9), -- 9=Error!
TO_DATE (v_overeenkomstdatum, 'DD-MM-YYYY'),
TO_DATE (v_einddatum, 'DD-MM-YYYY'));
v_count_imp := v_count_imp + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
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 afspraak!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'Relaties/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'Relaties/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_imp), '');
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces Relaties afgebroken!');
END fmhn_import_rel;
/
CREATE OR REPLACE PROCEDURE fmhn_update_rel (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (1000) := '';
v_count NUMBER (10);
v_count_tot NUMBER (10) := 0;
v_count_new NUMBER (10) := 0;
v_count_upd NUMBER (10) := 0;
v_count_del NUMBER (10) := 0;
-- SUBPROC
PROCEDURE add_bedrijf (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT ib.*, ud.fac_usrdata_key
FROM fac_imp_ext_bedrijf ib,
(SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 3) ud -- Lifecycle REL
WHERE UPPER (ib.prs_dienst_omschrijving) = TRIM (ud.fac_usrdata_upper)
AND NOT EXISTS
(SELECT 1
FROM fac_imp_ext_bedrijf
WHERE UPPER (prs_bedrijf_naam) = UPPER (ib.prs_bedrijf_naam)
AND prs_leverancier_nr < ib.prs_leverancier_nr)
ORDER BY ib.prs_bedrijf_naam, ib.prs_leverancier_nr;
v_bedrijf_key NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_aanduiding := '[' || rec.prs_leverancier_nr || '|' || rec.prs_bedrijf_naam || '] ';
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout bepalen bedrijf';
IF rec.prs_leverancier_nr IS NULL
THEN
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Leveranciersnummer ongedefinieerd');
-- COMMIT;
ELSE
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigbedrijf
WHERE UPPER (TRIM (prs_leverancier_nr)) = UPPER (rec.prs_leverancier_nr);
IF v_count = 0
THEN
v_errormsg := 'Fout toevoegen bedrijf';
INSERT INTO prs_bedrijf (prs_leverancier_nr,
prs_bedrijf_naam,
prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_post_land,
--prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende,
prs_bedrijf_contract,
--prs_bedrijf_huurder,
prs_bedrijf_telefoon,
prs_bedrijf_email,
prs_overeenkomst_datum)
VALUES (rec.prs_leverancier_nr,
rec.prs_bedrijf_naam,
rec.prs_bedrijf_bezoek_adres,
rec.prs_bedrijf_bezoek_postcode,
rec.prs_bedrijf_bezoek_plaats,
rec.prs_bedrijf_bezoek_land,
rec.prs_bedrijf_post_adres,
rec.prs_bedrijf_post_postcode,
rec.prs_bedrijf_post_plaats,
rec.prs_bedrijf_post_land,
--NULL,
DECODE (rec.prs_bedrijf_uitvoerende, 1, 1, NULL),
DECODE (rec.prs_bedrijf_contract, 1, 1, NULL),
--NULL,
rec.prs_bedrijf_telefoon,
rec.prs_bedrijf_email,
rec.prs_overeenkomst_datum)
RETURNING prs_bedrijf_key
INTO v_bedrijf_key;
v_count_new := v_count_new + 1;
ELSE -- v_count > 0
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_v_aanwezigbedrijf
WHERE UPPER (prs_leverancier_nr) = UPPER (rec.prs_leverancier_nr);
v_errormsg := 'Fout bijwerken bedrijf';
UPDATE prs_bedrijf
SET prs_bedrijf_naam = COALESCE (rec.prs_bedrijf_naam, prs_bedrijf_naam),
prs_bedrijf_bezoek_adres = COALESCE (rec.prs_bedrijf_bezoek_adres, prs_bedrijf_bezoek_adres),
prs_bedrijf_bezoek_postcode = COALESCE (rec.prs_bedrijf_bezoek_postcode, prs_bedrijf_bezoek_postcode),
prs_bedrijf_bezoek_plaats = COALESCE (rec.prs_bedrijf_bezoek_plaats, prs_bedrijf_bezoek_plaats),
prs_bedrijf_bezoek_land = COALESCE (rec.prs_bedrijf_bezoek_land, prs_bedrijf_bezoek_land),
prs_bedrijf_post_adres = COALESCE (rec.prs_bedrijf_post_adres, prs_bedrijf_post_adres),
prs_bedrijf_post_postcode = COALESCE (rec.prs_bedrijf_post_postcode, prs_bedrijf_post_postcode),
prs_bedrijf_post_plaats = COALESCE (rec.prs_bedrijf_post_plaats, prs_bedrijf_post_plaats),
prs_bedrijf_post_land = COALESCE (rec.prs_bedrijf_post_land, prs_bedrijf_post_land),
--prs_bedrijf_leverancier = prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende = DECODE (rec.prs_bedrijf_uitvoerende, 1, 1, NULL),
prs_bedrijf_contract = DECODE (rec.prs_bedrijf_contract, 1, 1, NULL),
--prs_bedrijf_huurder = prs_bedrijf_huurder,
prs_bedrijf_telefoon = COALESCE (rec.prs_bedrijf_telefoon, prs_bedrijf_telefoon),
prs_bedrijf_email = COALESCE (rec.prs_bedrijf_email, prs_bedrijf_email),
prs_overeenkomst_datum = COALESCE (rec.prs_overeenkomst_datum, prs_overeenkomst_datum)
WHERE prs_bedrijf_key = v_bedrijf_key;
v_count_upd := v_count_upd + 1;
END IF;
v_errormsg := 'Fout bijwerken Status';
prs.upsertkenmerk (1043, v_bedrijf_key, TO_CHAR (rec.fac_usrdata_key)); -- Status
v_errormsg := 'Fout bijwerken Classificatie';
prs.upsertkenmerk (1040, v_bedrijf_key, rec.prs_bedrijf_overig1); -- Classificatie
v_errormsg := 'Fout bijwerken Sector';
prs.upsertkenmerk (1041, v_bedrijf_key, rec.prs_bedrijf_overig2); -- Sector
v_errormsg := 'Fout bijwerken Subsector';
prs.upsertkenmerk (1042, v_bedrijf_key, rec.prs_bedrijf_overig3); -- Subsector
v_errormsg := 'Fout bijwerken Einddatum';
prs.upsertkenmerk (1080, v_bedrijf_key, TO_CHAR(TO_DATE (SUBSTR (rec.prs_bedrijf_contact_fax, 0, 10), 'YYYY-MM-DD'), 'DD/MM/YYYY') ); -- Einddatum
--IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
-- COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'Relaties/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'Relaties/#toegevoegd: ' || TO_CHAR (v_count_new), '');
fac.imp_writelog (p_import_key, 'S', 'Relaties/#bijgewerkt: ' || TO_CHAR (v_count_upd), '');
-- COMMIT;
END;
-- SUBPROC
PROCEDURE del_bedrijf (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT b.*
FROM prs_v_aanwezigbedrijf b
WHERE b.prs_bedrijf_intern IS NULL
AND b.prs_leverancier_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM fac_imp_ext_bedrijf
WHERE prs_leverancier_nr = b.prs_leverancier_nr)
ORDER BY b.prs_bedrijf_naam, b.prs_leverancier_nr;
v_vervallen_key NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_aanduiding := '[' || rec.prs_leverancier_nr || '|' || rec.prs_bedrijf_naam || '] ';
v_errormsg := 'Fout bijwerken Status=Vervallen';
SELECT fac_usrdata_key INTO v_vervallen_key FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 3 AND fac_usrdata_upper = 'VERVALLEN';
prs.upsertkenmerk (1043, rec.prs_bedrijf_key, TO_CHAR (v_vervallen_key)); -- Status
v_count_del := v_count_del + 1;
BEGIN
v_errormsg := 'Fout verwijderen bedrijf';
UPDATE prs_bedrijf
SET prs_bedrijf_verwijder = SYSDATE
WHERE prs_bedrijf_key = rec.prs_bedrijf_key;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
-- COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'Relaties/#vervallen: ' || TO_CHAR (v_count_del), '');
-- COMMIT;
END;
-- MAIN
BEGIN
SELECT COUNT ( * ) INTO v_count FROM fac_imp_ext_bedrijf;
IF v_count < 10
THEN
fac.imp_writelog (p_import_key, 'E', 'Het aantal te importeren relaties is te klein (' || TO_CHAR (v_count) || ')', '');
RETURN;
END IF;
-- Toevoegen Status-entries in Eigen tabel 221='Lifecycle REL'!
-- v_errormsg := 'Fout bijwerken Status-entries';
-- INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
-- SELECT 3, 'Vervallen', 'Vervallen'
-- FROM DUAL
-- WHERE NOT EXISTS
-- (SELECT 1
-- FROM fac_usrdata
-- WHERE fac_usrtab_key = 3 -- Lifecycle REL
-- AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER ('Vervallen'));
-- INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
-- SELECT DISTINCT 3, SUBSTR (ib.prs_dienst_omschrijving, 1, 40), SUBSTR (ib.prs_dienst_omschrijving, 1, 60)
-- FROM fac_imp_ext_bedrijf ib
-- WHERE NOT EXISTS
-- (SELECT 1
-- FROM fac_usrdata
-- WHERE fac_usrtab_key = 3 -- Lifecycle REL
-- AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (ib.prs_dienst_omschrijving));
-- COMMIT;
add_bedrijf (p_import_key);
del_bedrijf (p_import_key); -- Zet op Status-kenmerkveld op 'Vervallen'!
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces relaties afgebroken!');
END fmhn_update_rel;
/
-- View voor Burgertelefonie
CREATE OR REPLACE VIEW fmhn_v_rap_faq_kenm
(
kb_key,
vraag,
antwoord,
datum,
wijzigdatum,
oorsprong,
url,
taal,
zichtbaar,
zichtbaar_code,
productgroep,
subproductgroep,
zoekwoorden,
invoerder,
scope,
plaats,
aantalmeldingen,
aantalplaatsen,
organisatieonderdeel,
afdeling,
telefoonnummer,
bgg,
mobiel,
email,
opmerking,
contactpersoon,
contactgegevens
)
AS
SELECT f.fac_faq_key kb_key,
f.fac_faq_question vraag,
f.fac_faq_answer antwoord,
f.fac_faq_datum datum,
f.fac_faq_wijzigdatum wijzigdatum,
f.fac_faq_source oorsprong,
f.fac_faq_url url,
f.fac_faq_lang taal,
DECODE (f.fac_faq_level,
1, lcl.l ('lcl_faq_level1'),
2, lcl.l ('lcl_faq_level2'),
3, lcl.l ('lcl_faq_level3'))
zichtbaar,
f.fac_faq_level zichtbaar_code,
(SELECT MIN(CASE
WHEN sd.ins_srtdiscipline_prefix IS NULL THEN ''
ELSE sd.ins_srtdiscipline_prefix || '-'
END
|| m1.ins_discipline_omschrijving)
FROM mld_v_aanwezigdiscipline m1,
ins_srtdiscipline sd,
mld_stdmeldingfaq mf
WHERE m1.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m1.ins_discipline_key = mf.ins_discipline_key
AND mf.fac_faq_key = f.fac_faq_key)
productgroep,
(SELECT MIN (sm.mld_stdmelding_omschrijving)
FROM mld_stdmeldingfaq mf, mld_stdmelding sm
WHERE mf.mld_stdmelding_key = sm.mld_stdmelding_key(+)
AND mf.fac_faq_key = f.fac_faq_key)
subproductgroep,
fac_faq_hint zoekwoorden,
pf.prs_perslid_naam_full invoerder,
(SELECT MIN (NVL (o.alg_type, 'L'))
FROM alg_v_allonroerendgoed o, alg_algfaq af
WHERE af.alg_onroerendgoed_keys = o.alg_onroerendgoed_keys(+)
AND af.fac_faq_key = f.fac_faq_key)
scope,
(SELECT MIN(l.alg_locatie_code
|| DECODE (o.alg_plaatsaanduiding,
NULL, NULL,
'-' || o.alg_plaatsaanduiding))
FROM alg_v_aanweziglocatie l,
alg_v_onroerendgoed_gegevens o,
alg_algfaq af
WHERE af.alg_onroerendgoed_keys = o.alg_onroerendgoed_keys(+)
AND af.alg_locatie_key = l.alg_locatie_key
AND af.fac_faq_key = f.fac_faq_key)
plaats,
(SELECT COUNT ( * )
FROM mld_stdmeldingfaq mf
WHERE mf.fac_faq_key = f.fac_faq_key)
aantalmeldingen,
(SELECT COUNT ( * )
FROM alg_algfaq af
WHERE af.fac_faq_key = f.fac_faq_key)
aantalplaatsen,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) =
'ORGANISATIEONDERDEEL')
AS organisatieonderdeel,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) = 'AFDELING')
AS afdeling,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) = 'TELEFOONNUMMER')
AS telefoonnummer,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) = 'BGG')
AS bgg,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) = 'MOBIEL')
AS mobiel,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) = 'EMAIL')
AS email,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) = 'OPMERKING')
AS opmerking,
(SELECT faq_kenmerkwaarde_waarde
FROM faq_kenmerkwaarde kmwa, faq_kenmerk kma
WHERE f.fac_faq_key = kmwa.fac_faq_key
AND kma.faq_kenmerk_key = kmwa.faq_kenmerk_key
AND UPPER (kma.faq_kenmerk_omschrijving) = 'CONTACTPERSOON')
AS contactpersoon,
contact.kenmerken AS contactgegevens
FROM fac_faq f,
prs_v_perslid_fullnames_all pf,
( SELECT kb_key,
listagg (kenmerken, CHR (10))
WITHIN GROUP (ORDER BY kb_key)
kenmerken
FROM (SELECT kb_key, (kenmerk || ': ' || waarde_c) AS kenmerken
FROM fac_v_udr_faqkenmerk_cnd
WHERE kenmerk IN
('Telefoonnummer',
'Mobiel',
'BGG',
'Email',
'Contactpersoon'))
GROUP BY kb_key) contact
WHERE f.prs_perslid_key = pf.prs_perslid_key(+)
AND f.fac_faq_key = contact.kb_key(+);
-- CAD sync-view, de orginele ruimtenummers landen in een kenmerk bij de ruimte.
CREATE OR REPLACE VIEW fmhn_v_sync_alg_ruimte
(
alg_ruimte_key,
alg_verdieping_key,
cadlabel
)
AS
SELECT r.alg_ruimte_key,
r.alg_verdieping_key,
COALESCE (k.alg_onrgoedkenmerk_waarde, r.alg_ruimte_nr) cadlabel
FROM alg_ruimte r, alg_onrgoedkenmerk k
WHERE r.alg_ruimte_key = k.alg_onrgoed_key AND k.alg_kenmerk_key = 1000;
CREATE OR REPLACE VIEW fmhn_v_idm_afdeling
AS
SELECT prs_bedrijf_key,
prs_afdeling_key,
prs_afdeling_parentkey,
prs_kostenplaats_key,
mincode,
LEVEL - 1 idmlevel,
extid afdid,
afdoms,
afdidparent,
SYS_CONNECT_BY_PATH (afdoms, '/') pad,
SYS_CONNECT_BY_PATH (afdid, '/') idpad,
AFDVERWIJDER
FROM (SELECT NULL prs_bedrijf_key,
NULL prs_afdeling_key,
NULL prs_afdeling_parentkey,
NULL prs_kostenplaats_key,
NULL mincode,
'IDM' extid,
'IDM' afdid,
'IDM' afdoms,
NULL afdidparent,
NULL afdverwijder
FROM DUAL
UNION ALL
SELECT b.prs_bedrijf_key,
NULL prs_afdeling_key,
NULL prs_afdeling_parentkey,
NULL prs_kostenplaats_key,
mc_ud.fac_usrdata_code mincode,
UPPER (mc_ud.fac_usrdata_code || oc.prs_kenmerklink_waarde) extid, -- UPPER!
UPPER (mc_ud.fac_usrdata_code || REPLACE (oc.prs_kenmerklink_waarde, '/', '#')) afdid, -- UPPER!
b.prs_bedrijf_naam afdoms, -- Alleen gedeelte tussen haakjes?
'IDM' afdidparent,
NULL afdverwijder
FROM prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1020) mc, -- Ministeriecode (bij Bedrijf)
fac_v_aanwezigusrdata mc_ud,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1021) oc -- Organisatieonderdeelcode (bij Bedrijf)
WHERE b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_intern = 1
AND b.prs_bedrijf_key = mc.prs_link_key
AND fac.safe_to_number (mc.prs_kenmerklink_waarde) = mc_ud.fac_usrdata_key
AND b.prs_bedrijf_key = oc.prs_link_key
UNION ALL
SELECT NULL prs_bedrijf_key,
a.prs_afdeling_key,
a.prs_afdeling_parentkey,
a.prs_kostenplaats_key,
SUBSTR (a.prs_afdeling_externid, 1, 2) mincode,
a.prs_afdeling_externid extid, -- UPPER-gevuld!
REPLACE (a.prs_afdeling_externid, '/', '#') afdid, -- UPPER-gevuld!
REPLACE (a.prs_afdeling_omschrijving, '/', '#') afdoms,
REPLACE (UPPER (SUBSTR (a.prs_afdeling_externid, 1, 2) || kl.prs_kenmerklink_waarde), '/', '#') afdidparent, -- UPPER!
a.prs_afdeling_verwijder afdverwijder
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl
WHERE 1 = 1 --a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerk_key = 1002) -- Identificatie parentafd.
WHERE afdid IS NOT NULL
CONNECT BY PRIOR afdid = afdidparent
START WITH afdidparent IS NULL;
CREATE OR REPLACE VIEW fmhn_v_rap_idm_afdboom
AS
SELECT x.mincode || SUBSTR ('0' || TO_CHAR (x.idmlevel), -2) || x.afdid sortering,
x.prs_bedrijf_key,
x.prs_afdeling_key,
x.prs_afdeling_parentkey,
x.prs_kostenplaats_key,
x.mincode,
x.idmlevel,
x.afdid,
afdcode.prs_kenmerklink_waarde afdcode,
x.afdoms,
x.afdidparent,
SUBSTR (x.pad, 6) pad,
SUBSTR (x.idpad, 6) idpad,
x.afdverwijder
FROM fmhn_v_idm_afdeling x,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1001) afdcode -- Afdelingscode
WHERE x.idmlevel > 0
AND x.prs_afdeling_key = afdcode.prs_link_key(+);
-- Beter niet gebruiken, maar noodzakelijk voor fmhn.update_afd2geb()!
CREATE OR REPLACE VIEW fmhn_v_afdeling_boom
(
niveau,
prs_bedrijf_key,
prs_afdeling_key,
prs_afdeling_key1,
prs_afdeling_key2,
prs_afdeling_key3,
prs_afdeling_key4,
prs_afdeling_key5,
prs_afdeling_key6,
prs_afdeling_key7,
prs_afdeling_key8,
prs_afdeling_key9,
prs_afdeling_key10,
prs_afdeling_key11,
prs_afdeling_key12,
prs_afdeling_key13
)
AS
SELECT '1' niveau, -- IDM=2
a1.prs_bedrijf_key,
a1.prs_afdeling_key,
a1.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1
WHERE a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '2' niveau, -- IDM=3
a1.prs_bedrijf_key,
a2.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1, prs_afdeling a2
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '3' niveau, -- IDM=4
a1.prs_bedrijf_key,
a3.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '4' niveau, -- IDM=5
a1.prs_bedrijf_key,
a4.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '5' niveau, -- IDM=6
a1.prs_bedrijf_key,
a5.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '6' niveau, -- IDM=7
a1.prs_bedrijf_key,
a6.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
a6.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5,
fmhn_v_rap_idm_afdboom a6
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a6.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a6.afdidparent = a5.afdid
AND a6.idmlevel = '7'
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '7' niveau, -- IDM=8
a1.prs_bedrijf_key,
a7.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
a6.prs_afdeling_key,
a7.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5,
fmhn_v_rap_idm_afdboom a6,
fmhn_v_rap_idm_afdboom a7
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a6.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a6.afdidparent = a5.afdid
AND a6.idmlevel = '7'
AND a7.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a7.afdidparent = a6.afdid
AND a7.idmlevel = '8'
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '8' niveau, -- IDM=9
a1.prs_bedrijf_key,
a8.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
a6.prs_afdeling_key,
a7.prs_afdeling_key,
a8.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5,
fmhn_v_rap_idm_afdboom a6,
fmhn_v_rap_idm_afdboom a7,
fmhn_v_rap_idm_afdboom a8
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a6.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a6.afdidparent = a5.afdid
AND a6.idmlevel = '7'
AND a7.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a7.afdidparent = a6.afdid
AND a7.idmlevel = '8'
AND a8.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a8.afdidparent = a7.afdid
AND a8.idmlevel = '9'
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '9' niveau, -- IDM=10
a1.prs_bedrijf_key,
a9.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
a6.prs_afdeling_key,
a7.prs_afdeling_key,
a8.prs_afdeling_key,
a9.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5,
fmhn_v_rap_idm_afdboom a6,
fmhn_v_rap_idm_afdboom a7,
fmhn_v_rap_idm_afdboom a8,
fmhn_v_rap_idm_afdboom a9
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a6.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a6.afdidparent = a5.afdid
AND a6.idmlevel = '7'
AND a7.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a7.afdidparent = a6.afdid
AND a7.idmlevel = '8'
AND a8.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a8.afdidparent = a7.afdid
AND a8.idmlevel = '9'
AND a9.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a9.afdidparent = a8.afdid
AND a9.idmlevel = '10'
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '10' niveau, -- IDM=11
a1.prs_bedrijf_key,
a10.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
a6.prs_afdeling_key,
a7.prs_afdeling_key,
a8.prs_afdeling_key,
a9.prs_afdeling_key,
a10.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5,
fmhn_v_rap_idm_afdboom a6,
fmhn_v_rap_idm_afdboom a7,
fmhn_v_rap_idm_afdboom a8,
fmhn_v_rap_idm_afdboom a9,
fmhn_v_rap_idm_afdboom a10
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a6.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a6.afdidparent = a5.afdid
AND a6.idmlevel = '7'
AND a7.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a7.afdidparent = a6.afdid
AND a7.idmlevel = '8'
AND a8.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a8.afdidparent = a7.afdid
AND a8.idmlevel = '9'
AND a9.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a9.afdidparent = a8.afdid
AND a9.idmlevel = '10'
AND a10.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a10.afdidparent = a9.afdid
AND a10.idmlevel = '11'
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '11' niveau, -- IDM=12
a1.prs_bedrijf_key,
a11.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
a6.prs_afdeling_key,
a7.prs_afdeling_key,
a8.prs_afdeling_key,
a9.prs_afdeling_key,
a10.prs_afdeling_key,
a11.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5,
fmhn_v_rap_idm_afdboom a6,
fmhn_v_rap_idm_afdboom a7,
fmhn_v_rap_idm_afdboom a8,
fmhn_v_rap_idm_afdboom a9,
fmhn_v_rap_idm_afdboom a10,
fmhn_v_rap_idm_afdboom a11
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a6.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a6.afdidparent = a5.afdid
AND a6.idmlevel = '7'
AND a7.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a7.afdidparent = a6.afdid
AND a7.idmlevel = '8'
AND a8.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a8.afdidparent = a7.afdid
AND a8.idmlevel = '9'
AND a9.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a9.afdidparent = a8.afdid
AND a9.idmlevel = '10'
AND a10.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a10.afdidparent = a9.afdid
AND a10.idmlevel = '11'
AND a11.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a11.afdidparent = a10.afdid
AND a11.idmlevel = '12'
AND a1.prs_afdeling_parentkey IS NULL
UNION
SELECT '12' niveau, -- IDM=13
a1.prs_bedrijf_key,
a12.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key,
a6.prs_afdeling_key,
a7.prs_afdeling_key,
a8.prs_afdeling_key,
a9.prs_afdeling_key,
a10.prs_afdeling_key,
a11.prs_afdeling_key,
a12.prs_afdeling_key,
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
fmhn_v_rap_idm_afdboom a5,
fmhn_v_rap_idm_afdboom a6,
fmhn_v_rap_idm_afdboom a7,
fmhn_v_rap_idm_afdboom a8,
fmhn_v_rap_idm_afdboom a9,
fmhn_v_rap_idm_afdboom a10,
fmhn_v_rap_idm_afdboom a11,
fmhn_v_rap_idm_afdboom a12
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a5.afdidparent = a4.prs_afdeling_externid
AND a5.idmlevel = '6'
AND a6.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a6.afdidparent = a5.afdid
AND a6.idmlevel = '7'
AND a7.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a7.afdidparent = a6.afdid
AND a7.idmlevel = '8'
AND a8.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a8.afdidparent = a7.afdid
AND a8.idmlevel = '9'
AND a9.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a9.afdidparent = a8.afdid
AND a9.idmlevel = '10'
AND a10.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a10.afdidparent = a9.afdid
AND a10.idmlevel = '11'
AND a11.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a11.afdidparent = a10.afdid
AND a11.idmlevel = '12'
AND a12.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a12.afdidparent = a11.afdid
AND a12.idmlevel = '13'
AND a1.prs_afdeling_parentkey IS NULL;
-- Domein-view tbv. alle medewerkers uit IDM!
-- Als P-kenmerk 1009=Identificatie persoon gevuld, dan uiteindelijk (in mijn
-- wijsheid, maar twijfel) besloten om medewerker te beschouwen als uit IDM.
-- Bewust niet op basis B-kenmerk 1020=Ministeriecode of prs_perslid_externid!
CREATE OR REPLACE VIEW FMHN_V_IDM_MEDEWERKER
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM_FULL,
PRS_PERSLID_NAAM_FRIENDLY,
PRS_PERSLID_VERWIJDER,
PRS_AFD,
PRS_DEP,
PRS_DEP_AFD
)
AS
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder,
pf.prs_perslid_naam_full
|| ' - ['
|| a.prs_afdeling_omschrijving
|| ']',
pf.prs_perslid_naam_full || ' [' || dep.prs_bedrijf_naam || ']',
pf.prs_perslid_naam_full
|| ' - ['
|| SUBSTR (dep.prs_bedrijf_naam,
0,
INSTR (dep.prs_bedrijf_naam, ' ') - 1)
|| '; '
|| a.prs_afdeling_omschrijving
|| ']'
FROM prs_perslid p,
prs_v_perslid_fullnames pf,
prs_v_afdeling a,
prs_bedrijf dep
WHERE p.prs_perslid_apikey IS NULL
AND SUBSTR (COALESCE (p.prs_perslid_oslogin, 'X'), 1, 1) != '_'
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = dep.prs_bedrijf_key;
/*
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1009 -- Identificatie persoon
AND prs_link_key = p.prs_perslid_key);
*/
CREATE OR REPLACE VIEW FMHN_V_IDM_MEDEWERKER_BZK
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM_FULL,
PRS_PERSLID_NAAM_FRIENDLY,
PRS_PERSLID_VERWIJDER,
PRS_AFD,
PRS_DEP,
PRS_DEP_AFD,
PRS_AFDELING_OMSCHRIJVING
)
AS
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder,
pf.prs_perslid_naam_full
|| ' - ['
|| a.prs_afdeling_omschrijving
|| ']',
pf.prs_perslid_naam_full || ' [' || dep.prs_bedrijf_naam || ']',
pf.prs_perslid_naam_full
|| ' - ['
|| SUBSTR (dep.prs_bedrijf_naam,
0,
INSTR (dep.prs_bedrijf_naam, ' ') - 1)
|| '; '
|| a.prs_afdeling_omschrijving
|| ']',
a.prs_afdeling_omschrijving
FROM prs_perslid p,
prs_v_perslid_fullnames pf,
prs_v_afdeling a,
prs_bedrijf dep
WHERE p.prs_perslid_apikey IS NULL
AND SUBSTR (COALESCE (p.prs_perslid_oslogin, 'X'), 1, 1) != '_'
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND dep.prs_bedrijf_key = 921 --BZK
AND a.prs_bedrijf_key = dep.prs_bedrijf_key;
CREATE OR REPLACE VIEW FMHN_V_IDM_MEDEWERKER_FMH
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM_FULL,
PRS_PERSLID_NAAM_FRIENDLY,
PRS_PERSLID_VERWIJDER,
PRS_AFD,
PRS_DEP,
PRS_DEP_AFD,
PRS_AFDELING_OMSCHRIJVING
)
AS
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder,
pf.prs_perslid_naam_full
|| ' - ['
|| a.prs_afdeling_omschrijving
|| ']',
pf.prs_perslid_naam_full || ' [' || dep.prs_bedrijf_naam || ']',
pf.prs_perslid_naam_full
|| ' - ['
|| SUBSTR (dep.prs_bedrijf_naam,
0,
INSTR (dep.prs_bedrijf_naam, ' ') - 1)
|| '; '
|| a.prs_afdeling_omschrijving
|| ']',
a.prs_afdeling_omschrijving
FROM prs_perslid p,
prs_v_perslid_fullnames pf,
prs_v_afdeling a,
prs_bedrijf dep,
fmhn_v_rap_idm_afdboom k2a
WHERE p.prs_perslid_apikey IS NULL
AND SUBSTR (COALESCE (p.prs_perslid_oslogin, 'X'), 1, 1) != '_'
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND dep.prs_bedrijf_key = 921 --BZK
AND a.prs_bedrijf_key = dep.prs_bedrijf_key
AND SUBSTR (k2a.idpad, 0, 36) =
'04O354/04O372/04O2514/04O4366/04O653' --FM Haaglanden
AND a.prs_afdeling_key = k2a.prs_afdeling_key;
-- Rapportages tbv. Personenvervoer(/Flowlogics).
CREATE OR REPLACE VIEW fmhn_v_rap_medewerkers
(
person_id,
mincode,
prsnr,
--department_id,
--afdeling,
account_id,
kostenplaats,
achternaam,
tussenvoegsel,
voorletters,
voornaam,
titel,
telefoon,
mobiel,
email
)
AS
SELECT p.prs_perslid_key,
TRIM (SUBSTR (ud.fac_usrdata_omschr, INSTR (ud.fac_usrdata_omschr, '-') + 1)),
SUBSTR (p.prs_perslid_externid, 3),
--a.prs_afdeling_key,
--afdpad.prs_kenmerklink_waarde,
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_omschrijving,
p.prs_perslid_naam,
p.prs_perslid_tussenvoegsel,
p.prs_perslid_voorletters,
p.prs_perslid_voornaam,
--p.prs_perslid_titel,
DECODE (p.prs_perslid_geslacht, 1, 'Dhr', 0, 'Mevr', 'Onbekend'),
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
p.prs_perslid_email
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1020) mincode, -- Ministeriecode (bij Bedrijf)
fac_v_aanwezigusrdata ud,
--(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1009) prsnr, -- Identificatie persoon
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1004) afdpad, -- Afdelingspad
prs_kostenplaats kp
WHERE p.prs_perslid_apikey IS NULL
AND SUBSTR (COALESCE (p.prs_perslid_oslogin, 'X'), 1, 1) != '_'
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = mincode.prs_link_key(+)
AND fac.safe_to_number (mincode.prs_kenmerklink_waarde) = ud.fac_usrdata_key(+)
--AND p.prs_perslid_key = prsnr.prs_link_key(+)
AND a.prs_afdeling_key = afdpad.prs_link_key(+)
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key(+);
/*
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1009 -- Identificatie persoon
AND prs_link_key = p.prs_perslid_key);
*/
-- Kostenplaats2 is de specifieke kostenplaats gebruikt voor ritten.
CREATE OR REPLACE VIEW fmhn_v_rap_ritkosten
(
tertaal,
startdatum,
einddatum,
aanvrager, -- Aangevraagd door
meldingnummer,
type_rit_nummer,
type_rit,
van_adres,
van_plaats,
naar_adres,
naar_plaats,
aangevraagd_voor,
kostenplaats,
inhuur_jn,
normbedrag,
aantal_uren,
kosten,
ritnummer_fl,
kosten_voor,
dienst,
departement,
debiteur,
kostendrager,
kostenplaats2
)
AS
SELECT DECODE (ed.mld_kenmerkmelding_waarde,
NULL, 'Ongeldig',
TO_CHAR (ADD_MONTHS (fac.safe_to_date (ed.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), 2), 'yyyy') || '-'
|| DECODE (
TO_CHAR (fac.safe_to_date (ed.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), 'mm'),
'10', '3',
'09', '3',
'08', '2',
'07', '2',
'06', '2',
'05', '2',
'1'))
tertaal,
fac.safe_to_date (sd.mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
startdatum,
fac.safe_to_date (ed.mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
einddatum,
pfd.prs_perslid_naam_full aanvrager,
x.mld_melding_key meldingnummer,
SUBSTR (tr_ud.fac_usrdata_code, INSTR (tr_ud.fac_usrdata_code, '/') + 1)
type_rit_nummer,
tr_ud.fac_usrdata_omschr type_rit,
va.mld_kenmerkmelding_waarde || ' ' || vhn.mld_kenmerkmelding_waarde
van_adres,
vp.mld_kenmerkmelding_waarde van_plaats,
na.mld_kenmerkmelding_waarde || ' ' || nhn.mld_kenmerkmelding_waarde
naar_adres,
np.mld_kenmerkmelding_waarde naar_plaats,
pfv.prs_perslid_naam_full aangevraagd_voor,
kp.prs_kostenplaats_omschrijving kostenplaats,
DECODE (ih.mld_kenmerkmelding_waarde, NULL, 'N', 0, 'N', 'J') inhuur_jn,
COALESCE (tr_ud.fac_usrdata_prijs, 0) normbedrag,
ROUND ((fac.safe_to_date (ed.mld_kenmerkmelding_waarde || ' ' || et.mld_kenmerkmelding_waarde, 'dd-mm-yyyy hh24:mi')
- fac.safe_to_date (sd.mld_kenmerkmelding_waarde || ' ' || st.mld_kenmerkmelding_waarde, 'dd-mm-yyyy hh24:mi'))
* 24, 2)
aantal_uren,
COALESCE (tr_ud.fac_usrdata_prijs, 0)
* ROUND ((fac.safe_to_date (ed.mld_kenmerkmelding_waarde || ' ' || et.mld_kenmerkmelding_waarde, 'dd-mm-yyyy hh24:mi')
- fac.safe_to_date (sd.mld_kenmerkmelding_waarde || ' ' || st.mld_kenmerkmelding_waarde, 'dd-mm-yyyy hh24:mi'))
* 24, 2)
kosten,
rn.mld_kenmerkmelding_waarde ritnummer_fl,
k2a.pad,--FMHN#83135: DECODE(TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1)),'BZ',SUBSTR(k2a.pad,0,INSTR(k2a.pad, '/',-1)-1),k2a.pad) pad,
'2442.02 Overig vervoer' dienst,
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1))
departement,
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1))
debiteur,
a2d.kostendrager_vervoer kostendrager,
'600-' || TO_CHAR (a2d.kostendrager_vervoer) kostenplaats2
FROM (SELECT mld_melding_key, prs_perslid_key_voor, prs_kostenplaats_key
FROM mld_melding
WHERE mld_stdmelding_key = 1 -- Rit
AND mld_melding_status != 1) x -- FMHN#71928: Niet Afgewezen
LEFT JOIN mld_v_aanwezigkenmerkmelding ad
ON x.mld_melding_key = ad.mld_melding_key
AND ad.mld_kenmerk_key = 461 -- Aangevraagd door
LEFT JOIN prs_v_perslid_fullnames_all pfd
ON fac.safe_to_number (ad.mld_kenmerkmelding_waarde) = pfd.prs_perslid_key
LEFT JOIN mld_v_aanwezigkenmerkmelding tr
ON x.mld_melding_key = tr.mld_melding_key
AND tr.mld_kenmerk_key = 479 -- Type rit
LEFT JOIN fac_v_aanwezigusrdata tr_ud
ON fac.safe_to_number (tr.mld_kenmerkmelding_waarde) = tr_ud.fac_usrdata_key
LEFT JOIN mld_v_aanwezigkenmerkmelding va
ON x.mld_melding_key = va.mld_melding_key
AND va.mld_kenmerk_key = 472 -- Startlocatie adres
LEFT JOIN mld_v_aanwezigkenmerkmelding vhn
ON x.mld_melding_key = vhn.mld_melding_key
AND vhn.mld_kenmerk_key = 474 -- Startlocatie huisnummer
LEFT JOIN mld_v_aanwezigkenmerkmelding vp
ON x.mld_melding_key = vp.mld_melding_key
AND vp.mld_kenmerk_key = 476 -- Startlocatie plaats
LEFT JOIN mld_v_aanwezigkenmerkmelding na
ON x.mld_melding_key = na.mld_melding_key
AND na.mld_kenmerk_key = 462 -- Eindlocatie adres
LEFT JOIN mld_v_aanwezigkenmerkmelding nhn
ON x.mld_melding_key = nhn.mld_melding_key
AND nhn.mld_kenmerk_key = 464 -- Eindlocatie huisnummer
LEFT JOIN mld_v_aanwezigkenmerkmelding np
ON x.mld_melding_key = np.mld_melding_key
AND np.mld_kenmerk_key = 466 -- Eindlocatie plaats
LEFT JOIN prs_v_perslid_fullnames_all pfv
ON x.prs_perslid_key_voor = pfv.prs_perslid_key -- Aanvraag voor
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON x.prs_kostenplaats_key = kp.prs_kostenplaats_key -- Kostenpl.
LEFT JOIN mld_v_aanwezigkenmerkmelding ih
ON x.mld_melding_key = ih.mld_melding_key
AND ih.mld_kenmerk_key = 469 -- Inhuur
LEFT JOIN mld_v_aanwezigkenmerkmelding sd
ON x.mld_melding_key = sd.mld_melding_key
AND sd.mld_kenmerk_key = 473 -- Startlocatie datum
LEFT JOIN mld_v_aanwezigkenmerkmelding st
ON x.mld_melding_key = st.mld_melding_key
AND st.mld_kenmerk_key = 478 -- Startlocatie tijd
LEFT JOIN mld_v_aanwezigkenmerkmelding ed
ON x.mld_melding_key = ed.mld_melding_key
AND ed.mld_kenmerk_key = 463 -- Eindlocatie datum
LEFT JOIN mld_v_aanwezigkenmerkmelding et
ON x.mld_melding_key = et.mld_melding_key
AND et.mld_kenmerk_key = 468 -- Eindlocatie tijd
LEFT JOIN mld_v_aanwezigkenmerkmelding rn
ON x.mld_melding_key = rn.mld_melding_key
AND rn.mld_kenmerk_key = 471 -- Ritnummer
LEFT JOIN fmhn_v_rap_idm_afdboom k2a -- Kostenplaats2Afdeling
ON x.prs_kostenplaats_key = k2a.prs_kostenplaats_key
LEFT JOIN fmhn_v_rap_afd2debnr a2d
ON a2d.prs_afdeling_key = k2a.prs_afdeling_key
WHERE ed.mld_kenmerkmelding_waarde IS NULL -- Ongeldig
OR TO_CHAR (ADD_MONTHS (fac.safe_to_date (ed.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), 2)) > '2022'
;
CREATE OR REPLACE PACKAGE FMHN
AS
PROCEDURE sluiten_ritten;
PROCEDURE sluiten_aw;
PROCEDURE schonen_lessen;
PROCEDURE afmelden_res;
--FUNCTION change_delimitor (p_string VARCHAR2, p_delimitor VARCHAR2) RETURN VARCHAR2;
PROCEDURE movetoruimte (p_perslid_key NUMBER, p_gebouw_key NUMBER, p_virtueel NUMBER);
PROCEDURE movetopp (p_bezoekers_key NUMBER, p_afspraak_van DATE, p_afspraak_tot DATE, p_terrein_key NUMBER, p_max_cap NUMBER);
PROCEDURE update_fegroep;
PROCEDURE update_min2geb;
PROCEDURE update_afd2geb;
PROCEDURE delete_wps_nok;
PROCEDURE add_xml_element (p_bestand VARCHAR2, p_tag VARCHAR2, p_value VARCHAR2);
PROCEDURE add_xml_row (p_bestand VARCHAR2, p_regel VARCHAR2);
PROCEDURE mld_after_insert (p_key IN NUMBER);
PROCEDURE mld_update_ruimtenr (p_key IN NUMBER);
PROCEDURE ruimte_events;
PROCEDURE inactiveren_accounts;
PROCEDURE verwijderen_accounts;
PROCEDURE archiveren_meldingen;
END;
/
CREATE OR REPLACE PACKAGE BODY FMHN
AS
-- Maandelijks sluiten lopende Rit-meldingen over voorgaande maand zoals
-- vanuit Flowlogic aangemaakt!
PROCEDURE sluiten_ritten
AS
c_applname VARCHAR2 (50) := 'SLUITEN_RITTEN';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
CURSOR c_ritten
IS
SELECT m.mld_melding_key, m.mld_melding_onderwerp, m.mld_melding_status
FROM mld_melding m,
(SELECT * FROM mld_v_aanwezigkenmerkmelding WHERE mld_kenmerk_key = 463) ed -- Einddatum
WHERE m.mld_stdmelding_key = 1 -- Rit vanuit Flowlogic aangemaakt
--AND m.mld_melding_key = 1
AND m.mld_melding_status IN (2, 3, 4, 5, 99) -- Nieuw/Te accepteren/In behandeling/Afgemeld
AND m.mld_melding_key = ed.mld_melding_key
AND fac.safe_to_date (ed.mld_kenmerkmelding_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE, 'mm');
BEGIN
-- LET OP: DAILY-taak draait dagelijks na middernacht (begin van dag) en
-- ritten - over de voorgaande maand - worden alleen in de nacht
-- na 22e dag van de maand gesloten.
IF TO_CHAR (SYSDATE, 'dd') = '23' -- Nacht na 22e dag van de maand!
THEN
FOR rec IN c_ritten
LOOP
v_aanduiding := '[' || TO_CHAR (rec.mld_melding_key) || '|' || rec.mld_melding_onderwerp || '] ';
v_count_tot := v_count_tot + 1;
IF rec.mld_melding_key <> 5 -- Nog niet handmatig Afgemeld!
THEN
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- Afgemeld (incl. tracking)
END IF;
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL); -- Verwerkt (incl. tracking)
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF;
END LOOP;
fac.writelog (c_applname, 'S', '#Ritten gesloten: ' || TO_CHAR (v_count_tot), '');
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Daily achtergrond taak afgebroken!');
END;
-- Dagelijkse sluiten AW-meldingen(=WF) bij Niet akkoord of na verstrijken
-- termijn (Korte route na 5 werkdagen en Lange route na 10 werkdagen)!
PROCEDURE sluiten_aw
AS
c_applname VARCHAR2 (50) := 'SLUITEN_AW';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
CURSOR c_aw
IS
SELECT vm.mld_melding_start_key, vm.mld_melding_key, vm.mld_melding_onderwerp, vm.mld_melding_status
FROM mld_melding m, mld_melding vm
WHERE m.mld_stdmelding_key IN (741, 1241) -- Aanvraag AW & Aanvraag AW Spoed (Startmelding)
AND m.mld_melding_status = 4 -- In behandeling
AND m.mld_melding_key = vm.mld_melding_start_key
AND vm.mld_melding_key != m.mld_melding_key -- Niet de startmelding zelf!
AND EXISTS -- Doorgang gisteren gezet op Niet akkoord!
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (2582, 2584, 4342) -- Doorgang=Niet akkoord
AND TRUNC (km.mld_kenmerkmelding_aanmaak) = TRUNC (SYSDATE - 1)
AND km.mld_melding_key = nam.mld_melding_key
AND nam.mld_melding_start_key = m.mld_melding_key)
UNION
SELECT vm.mld_melding_start_key, vm.mld_melding_key, vm.mld_melding_onderwerp, vm.mld_melding_status
FROM mld_melding m, mld_melding vm
WHERE m.mld_stdmelding_key = 741 -- Aanvraag AW (Startmelding)
AND m.mld_melding_status = 4 -- In behandeling
AND m.mld_melding_key = vm.mld_melding_start_key
AND vm.mld_melding_key != m.mld_melding_key -- Niet de startmelding zelf!
AND fac.count_work_days (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), SYSDATE) = DECODE (vm.mld_stdmelding_key, 742, 5, 10) -- 742=Korte route=5 werkdagen, anders 743/744=Lange route=10 werkdagen!
AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
AND NOT EXISTS -- en geen vrije dag!
(SELECT 1
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
UNION
SELECT vm.mld_melding_start_key, vm.mld_melding_key, vm.mld_melding_onderwerp, vm.mld_melding_status
FROM mld_melding m, mld_melding vm
WHERE m.mld_stdmelding_key = 1241 -- Aanvraag AW & Aanvraag AW Spoed (Startmelding)
AND m.mld_melding_status = 4 -- In behandeling
AND m.mld_melding_key = vm.mld_melding_start_key
AND vm.mld_melding_key != m.mld_melding_key -- Niet de startmelding zelf!
AND fac.count_work_days (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), SYSDATE) = 1 -- Bij Aanvraag AW Spoed: 24 uur.
AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
AND NOT EXISTS -- en geen vrije dag!
(SELECT 1
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
ORDER BY 1, 2;
BEGIN
FOR rec IN c_aw
LOOP
v_aanduiding := '[' || TO_CHAR (rec.mld_melding_key) || '|' || rec.mld_melding_onderwerp || '] ';
v_count_tot := v_count_tot + 1;
IF rec.mld_melding_key <> 5 -- Nog niet handmatig Afgemeld!
THEN
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- Afgemeld (incl. tracking)
END IF;
MLD.mld_nextworkflowstep (rec.mld_melding_key, 1); -- 1=Completed
COMMIT;
END LOOP;
fac.writelog (c_applname, 'S', '#AW gesloten: ' || TO_CHAR (v_count_tot), '');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Daily achtergrond taak afgebroken!');
END;
-- Jaarlijks schonen gevolgde (herhalings)lessen door bhv-ers!
PROCEDURE schonen_lessen
AS
c_applname VARCHAR2 (50) := 'SCHONEN_LESSEN';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
BEGIN
-- LET OP: DAILY-taak draait dagelijks na middernacht (begin van dag) en
-- (herhalings)lessen worden in de nacht na 31 januari gewist.
-- Dit betreft de volgende datum-kenmerkvelden:
-- 17=Basis herhaling op
-- 8=Allround1 herhaling op
-- 9=Allround2 herhaling op
-- 35=Ploegleider herhaling op
-- 27=HBHV herhaling op
IF TO_CHAR (SYSDATE, 'ddmm') = '0102' -- Nacht na 31 januari!
THEN
v_errormsg := 'Fout verwijderen lessen';
SELECT COUNT (*) INTO v_count_tot FROM ins_kenmerkdeel WHERE ins_kenmerk_key IN (17, 8, 9, 35, 27);
DELETE FROM ins_kenmerkdeel WHERE ins_kenmerk_key IN (17, 8, 9, 35, 27);
fac.writelog (c_applname, 'S', '#Lessen geschoond: ' || TO_CHAR (v_count_tot), '');
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', v_errormsg, 'Daily achtergrond taak afgebroken!');
END;
-- Dagelijks afmelden alle (RS8-)reserveringen in de nacht <20><>n dag na de
-- (tot-)datum van de reservering!
PROCEDURE afmelden_res
AS
c_applname VARCHAR2 (50) := 'AFMELDEN_RES';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_old_rsv_ruimte_key NUMBER (10);
v_prijs NUMBER (9, 2);
-- Afmelden reserveringen (in juiste volgorde)!
CURSOR c_res
IS
SELECT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding,
rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_key,
NULL res_rsv_deel_key,
rra.res_status_bo_key,
rra.res_artikel_key,
TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy') jaar
FROM res_v_aanwezigrsv_artikel rra, res_v_aanwezigrsv_ruimte rrr
WHERE rra.res_status_bo_key = 2
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE - 7)
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
UNION ALL
SELECT '[' || TO_CHAR (rrd.res_rsv_ruimte_key) || '|' || TO_CHAR (rrd.res_rsv_deel_key) || '] ' aanduiding,
rrd.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
rrd.res_rsv_deel_key,
rrd.res_status_bo_key,
NULL res_artikel_key,
TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy') jaar
FROM res_v_aanwezigrsv_deel rrd, res_v_aanwezigrsv_ruimte rrr
WHERE rrd.res_status_bo_key = 2
AND rrd.res_rsv_deel_tot < TRUNC (SYSDATE - 7)
AND rrd.res_rsv_deel_dirtlevel = 0
AND rrd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen bij niet reservering-gebonden afspraken?
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
UNION ALL
SELECT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding,
rrr.res_rsv_ruimte_key,
NULL res_rsv_artdeel_key,
NULL res_rsv_deel_key,
rrr.res_status_bo_key,
NULL res_artikel_key,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy') jaar
FROM res_v_aanwezigrsv_ruimte rrr
WHERE rrr.res_status_bo_key = 2 -- Dit sluit "roomservice" al uit?
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE - 7)
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key IS NOT NULL -- Geen "roomservice"
ORDER BY 2, 3;
BEGIN
v_old_rsv_ruimte_key := -1;
FOR rec IN c_res
LOOP
BEGIN
IF v_old_rsv_ruimte_key = -1
THEN
v_old_rsv_ruimte_key := rec.res_rsv_ruimte_key;
ELSIF rec.res_rsv_ruimte_key != v_old_rsv_ruimte_key
THEN
COMMIT; -- Per res_rsv_ruimte_key 1x COMMIT
v_old_rsv_ruimte_key := rec.res_rsv_ruimte_key;
END IF;
IF rec.res_rsv_artikel_key IS NOT NULL
THEN -- Verbruiksartikel-regel
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 5,
res_rsv_artikel_prijs = v_prijs,
res_rsv_artikel_inkoopprijs =
(SELECT res_artikel_inkoopprijs
FROM res_artikel
WHERE res_artikel_key = rec.res_artikel_key),
res_rsv_artikel_btw =
(SELECT res_artikel_btw
FROM res_artikel
WHERE res_artikel_key = rec.res_artikel_key)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
ELSIF rec.res_rsv_deel_key IS NOT NULL
THEN -- Voorziening-regel
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
SELECT res.getdeelprijs (rec.res_rsv_deel_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 5, res_rsv_deel_prijs = v_prijs
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) afgemeld');
ELSE -- Ruimte-regel
v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs';
SELECT res.getruimteprijs (rec.res_rsv_ruimte_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 5, res_rsv_ruimte_prijs = v_prijs
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'W', rec.aanduiding || v_errormsg, 'Afmelden RS8-RES');
COMMIT;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Daily achtergrond taak afgebroken!');
END;
/*
FUNCTION change_delimitor (p_string VARCHAR2, p_delimitor VARCHAR2)
RETURN VARCHAR2
AS
v_line VARCHAR2 (2000);
v_field VARCHAR2 (255);
v_result VARCHAR2 (2000);
BEGIN
v_line := p_string;
WHILE v_line IS NOT NULL
LOOP
fac.imp_getfield (v_line, p_delimitor, v_field);
v_result := v_result || '"' || v_field || '";';
END LOOP;
RETURN v_result;
END;
*/
PROCEDURE movetoruimte (p_perslid_key NUMBER, p_gebouw_key NUMBER, p_virtueel NUMBER)
AS
v_ruimte_key NUMBER (10);
v_verdieping_key NUMBER (10);
BEGIN
SELECT MIN (x.alg_ruimte_key)
INTO v_ruimte_key
FROM (SELECT r1.alg_ruimte_key
FROM alg_v_aanwezigruimte r1, alg_verdieping v1
WHERE r1.alg_srtruimte_key = 101 -- Fictief
AND SUBSTR (r1.alg_ruimte_nr, 1, 1) = '_'
AND r1.alg_verdieping_key = v1.alg_verdieping_key
AND v1.alg_gebouw_key = p_gebouw_key
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanwezigruimte r2, alg_verdieping v2
WHERE r2.alg_srtruimte_key = 101 -- Fictief
AND SUBSTR (r2.alg_ruimte_nr, 1, 1) = '_'
AND r2.alg_verdieping_key = v2.alg_verdieping_key
AND v2.alg_gebouw_key = v1.alg_gebouw_key
AND v2.alg_verdieping_volgnr < v1.alg_verdieping_volgnr)) x
LEFT JOIN
( SELECT prs_alg_ruimte_key, COUNT ( * ) aant
FROM prs_werkplek wp
WHERE EXISTS
(SELECT 1
FROM prs_perslidwerkplek
WHERE prs_werkplek_key = wp.prs_werkplek_key)
GROUP BY prs_alg_ruimte_key) wp
ON x.alg_ruimte_key = wp.prs_alg_ruimte_key
WHERE COALESCE (wp.aant, 0) < 9999;
IF v_ruimte_key IS NULL
THEN
SELECT MIN (v1.alg_verdieping_key)
INTO v_verdieping_key
FROM alg_v_aanwezigruimte r1, alg_verdieping v1
WHERE r1.alg_srtruimte_key = 101 -- Fictief
AND SUBSTR (r1.alg_ruimte_nr, 1, 1) = '_'
AND r1.alg_verdieping_key = v1.alg_verdieping_key
AND v1.alg_gebouw_key = p_gebouw_key
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanwezigruimte r2, alg_verdieping v2
WHERE r2.alg_srtruimte_key = 101 -- Fictief
AND SUBSTR (r2.alg_ruimte_nr, 1, 1) = '_'
AND r2.alg_verdieping_key = v2.alg_verdieping_key
AND v2.alg_gebouw_key = v1.alg_gebouw_key
AND v2.alg_verdieping_volgnr < v1.alg_verdieping_volgnr);
IF v_verdieping_key IS NULL
THEN
-- Als er geen verdieping met een underscore-ruimte is, dan is er
-- misschien zelfs helemaal nog geen verdieping en houdt het op
-- (zie ook specificatie Periodieke import IDM-persoonsgegevens).
RETURN;
END IF;
INSERT INTO alg_ruimte (alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr)
VALUES (v_verdieping_key, 101, '_Quqelequ')
RETURNING alg_ruimte_key
INTO v_ruimte_key;
UPDATE alg_ruimte
SET alg_ruimte_nr = '_' || TO_CHAR (v_ruimte_key)
WHERE alg_ruimte_key = v_ruimte_key;
END IF;
PRS.movetoruimte (p_perslid_key, v_ruimte_key, 'L', p_virtueel); -- Eventueel andere impliciete WPs op Locatie verwijderen!
END;
-- Tijdelijke procedure tbv. migratie, daarna kan deze weg!
PROCEDURE movetopp (p_bezoekers_key NUMBER,
p_afspraak_van DATE,
p_afspraak_tot DATE,
p_terrein_key NUMBER,
p_max_cap NUMBER)
AS
v_count NUMBER (10);
v_res_deel_key NUMBER (10);
BEGIN
-- Bepaal hoeveel bezet
SELECT COUNT ( * ) aant
INTO v_count
FROM ins_v_aanwezigdeel pp, res_v_aanwezigdeel rd
WHERE pp.ins_alg_ruimte_type = 'T'
AND pp.ins_alg_ruimte_key = p_terrein_key
--AND pp.ins_discipline_key = rd.res_discipline_key
AND pp.ins_deel_key = rd.res_ins_deel_key
AND EXISTS -- Bezet
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE TRUNC (res_rsv_deel_van) = TRUNC (p_afspraak_van)
AND res_deel_key = rd.res_deel_key);
IF (v_count < p_max_cap)
THEN
-- Bepaal vrije PP
SELECT MIN (rd.res_deel_key)
INTO v_res_deel_key
FROM res_v_aanwezigdeel rd
WHERE EXISTS
(SELECT 1
FROM ins_v_aanwezigdeel d -- Voorkomen op terrein
WHERE d.ins_alg_ruimte_type = 'T'
AND d.ins_alg_ruimte_key = p_terrein_key
AND d.ins_deel_key = rd.res_ins_deel_key)
AND NOT EXISTS -- Vrij zijn
(SELECT 1
FROM res_v_aanwezigrsv_deel
WHERE TRUNC (res_rsv_deel_van) = TRUNC (p_afspraak_van)
AND res_deel_key = rd.res_deel_key);
-- Toekennen PP.
INSERT INTO res_rsv_deel (res_deel_key,
bez_bezoekers_key,
res_rsv_deel_aantal,
res_status_bo_key,
res_rsv_deel_van,
res_rsv_deel_tot)
VALUES (v_res_deel_key,
p_bezoekers_key,
1,
2,
p_afspraak_van,
p_afspraak_tot);
ELSE
-- Geen PP meer beschikbaar (handmatig corrigeren).
fac.writelog ('MOVETOPP', 'I', '[' || TO_CHAR (p_terrein_key) || '|' || TO_CHAR (p_bezoekers_key) || '|' || TO_CHAR (p_afspraak_van, 'dd-mm-yyyy') || ']',
'Geen PP beschikbaar');
END IF;
COMMIT;
END;
PROCEDURE update_fegroep
AS
c_applname VARCHAR2 (50) := 'UPDATE_FEGROEP';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_datum1 DATE;
v_datum2 DATE;
CURSOR c_gg_bzk_del
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
SUBSTR (p.prs_perslid_externid, 1, 2) mincode
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_externid IS NOT NULL -- Alleen voor uit IDM geimporteerde personen!
AND SUBSTR (p.prs_perslid_externid, 1, 2) IN ('04') -- Enkel BZK
AND p.prs_perslid_opp = '1'
ORDER BY prs_perslid_key;
CURSOR c_gg_ienw -- FMHN#80377 Rechten van alle IenW medewerkers veranderen
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '03' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
ORDER BY p.prs_perslid_key;
CURSOR c_gg_ienw_anvs -- IenW-uitzondering: 76=ANVS (en geen RES Klant)
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '03' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid IN
('0363362976', -- ANVS
'0363303402')) -- ANVS
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid IN
('0363362976', -- ANVS
'0363303402')) -- ANVS
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid IN
('0363362976', -- ANVS
'0363303402')) -- ANVS
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid IN
('0363362976', -- ANVS
'0363303402')) -- ANVS
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid IN
('0363362976', -- ANVS
'0363303402'))) -- ANVS
ORDER BY p.prs_perslid_key;
CURSOR c_gg_ienw_nea -- IenW-uitzondering: 73=NEA (en geen RES Klant)
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '03' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid IN
('0363032557', -- NEA
'0363562066')) -- NEA
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid IN
('0363032557', -- NEA
'0363562066')) -- NEA
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid IN
('0363032557', -- NEA
'0363562066')) -- NEA
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid IN
('0363032557', -- NEA
'0363562066')) -- NEA
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid IN
('0363032557', -- NEA
'0363562066'))) -- NEA
ORDER BY p.prs_perslid_key;
CURSOR c_gg_ocw_duo -- OCW-uitzondering: 87=DUO
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '05' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid = '0510000000') -- DUO
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid = '0510000000') -- DUO
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid = '0510000000') -- DUO
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid = '0510000000') -- DUO
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid = '0510000000')) -- DUO
ORDER BY p.prs_perslid_key;
CURSOR c_gg_jenv_dtenv -- JenV-uitzondering: 106=DTenV
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '07' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid = '0763141006') -- DTenV
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid = '0763141006') -- DTenV
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid = '0763141006') -- DTenV
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid = '0763141006') -- DTenV
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid = '0763141006')) -- DTenV
ORDER BY p.prs_perslid_key;
CURSOR c_gg_jenv_ind -- JenV-uitzondering: 98=IND
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '07' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid = '0763387873') -- IND
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid = '0763387873') -- IND
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid = '0763387873') -- IND
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid = '0763387873') -- IND
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid = '0763387873')) -- IND
ORDER BY p.prs_perslid_key;
CURSOR c_gg_jenv_rvdk -- JenV-uitzondering: 108=RvdK
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '07' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid = '0763596496') -- RvdK
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid = '0763596496') -- RvdK
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid = '0763596496') -- RvdK
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid = '0763596496') -- RvdK
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid = '0763596496')) -- RvdK
ORDER BY p.prs_perslid_key;
CURSOR c_gg_iedereen
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
SUBSTR (p.prs_perslid_externid, 1, 2) mincode
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_externid IS NOT NULL -- Alleen voor uit IDM geimporteerde personen!
AND SUBSTR (p.prs_perslid_externid, 1, 2) IN ('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '14', '27', '29', '30')
AND NOT EXISTS -- Persoon geen uitzondering!
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key IN (73, 76, 87, 98, 106, 108)
AND prs_perslid_key = p.prs_perslid_key)
ORDER BY prs_perslid_key;
CURSOR c_gg_bzk_fmh -- BZK-uitzondering: 1382=RS8 FMH (RES-zalen)
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '04' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid = '04O653') -- FMH
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid = '04O653') -- FMH
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid = '04O653') -- FMH
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid = '04O653') -- FMH
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid = '04O653')) -- FMH
ORDER BY p.prs_perslid_key;
CURSOR c_gg_bzk_sscict -- BZK-uitzondering: 1381=RS8 SSC-ICT (RES-zalen)
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
a.prs_afdeling_externid
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
prs_v_afdeling_boom ab
WHERE SUBSTR (p.prs_perslid_externid, 1, 2) = '04' -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND (EXISTS
(SELECT 1 -- Satellietzetel op afdeling1 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND prs_afdeling_externid = '04O1070') -- SSC-ICT
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND prs_afdeling_externid = '04O1070') -- SSC-ICT
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND prs_afdeling_externid = '04O1070') -- SSC-ICT
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND prs_afdeling_externid = '04O1070') -- SSC-ICT
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND prs_afdeling_externid = '04O1070')) -- SSC-ICT
ORDER BY p.prs_perslid_key;
CURSOR wp_auth_toekenning
IS
SELECT 'LOGIUS' afdeling, p.prs_perslid_key, 1062 groep
FROM prs_v_afdeling_perslid p, prs_v_aanwezigperslid pp
WHERE UPPER (p.prs_afdeling_omschrijving) LIKE '%LOGIUS%'
AND p.prs_perslid_key IS NOT NULL
AND p.prs_perslid_key = pp.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1062 -- wp logius
AND prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT 'FMH' afdeling, p.prs_perslid_key, 701 groep
FROM prs_v_afdeling_perslid p, prs_v_aanwezigperslid pp
WHERE UPPER (p.prs_afdeling_omschrijving) LIKE '%FMH%'
AND p.prs_perslid_key IS NOT NULL
AND p.prs_perslid_key = pp.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 701 -- wp fmh
AND prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT 'EZK DICTU' afdeling, p.prs_perslid_key, 1121 groep
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_email) LIKE '%DICTU%' -- dictu is alleen te herkennen aan email
AND p.prs_perslid_key IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1121 -- wp ezk dictu
AND prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT 'DOC DIREKT' afdeling, p.prs_perslid_key, 1141 groep
FROM prs_v_afdeling_perslid p, prs_v_aanwezigperslid pp
WHERE UPPER (p.prs_afdeling_omschrijving) LIKE '%DOC-DIREKT%'
AND p.prs_perslid_key IS NOT NULL
AND p.prs_perslid_key = pp.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1141 -- wp doc-direkt
AND prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT 'DUS-I' afdeling, p.prs_perslid_key, 1142 groep
FROM prs_v_afdeling_perslid p, prs_v_aanwezigperslid pp
WHERE UPPER (p.prs_afdeling_omschrijving) LIKE '%DUS-I%'
AND p.prs_perslid_key IS NOT NULL
AND p.prs_perslid_key = pp.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1142 -- wp dus-i
AND prs_perslid_key = p.prs_perslid_key);
BEGIN
-- LET OP: Eerst opschonen BZK medewerkers die van afdeling zijn gewisseld (FMHN#74750)
FOR rec IN c_gg_bzk_del
LOOP
BEGIN
v_errormsg := 'Fout verwijderen BZK werkplekken';
DELETE FROM prs_perslidwerkplek
WHERE prs_perslid_key = rec.prs_perslid_key;
v_errormsg := 'Fout verwijderen BZK werkplekken, reset opp';
UPDATE prs_perslid
SET prs_perslid_opp = NULL
WHERE prs_perslid_key = rec.prs_perslid_key;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_count := 0;
v_datum1 := SYSDATE;
-- LET OP: Eerst de MLD-uitzonderingen!
FOR rec IN c_gg_ienw -- FMHN#80377: Rechten van alle IenW medewerkers veranderen
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_IenW-Iedereen';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 167, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 167
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_IenW-Iedereen/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- LET OP: Eerst de MLD-uitzonderingen!
FOR rec IN c_gg_ienw_anvs -- 76=ANVS (en geen RES Klant)/Sinds FMHN#8037 wel RES Klant via c_gg_ienw???
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_IenW-ANVS';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 76, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 76
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_IenW-ANVS/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- LET OP: Eerst de uitzonderingen!
FOR rec IN c_gg_ienw_nea -- 73=NEA (en geen RES Klant)/Sinds FMHN#8037 wel RES Klant via c_gg_ienw???
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_IenW-NEA';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 73, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 73
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_IenW-NEA/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- LET OP: Eerst de uitzonderingen!
FOR rec IN c_gg_ocw_duo -- 87=DUO
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_OCW-DUO';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 87, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 87
AND prs_perslid_key = rec.prs_perslid_key)
UNION ALL
SELECT 167, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 167
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_OCW-DUO/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- LET OP: Eerst de uitzonderingen!
FOR rec IN c_gg_jenv_dtenv -- 106=DTenV
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_JenV-DTenV';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 106, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 106
AND prs_perslid_key = rec.prs_perslid_key)
UNION ALL
SELECT 167, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 167
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_JenV-DTenV/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- LET OP: Eerst de uitzonderingen!
FOR rec IN c_gg_jenv_ind -- 98=IND
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_JenV-IND';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 98, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 98
AND prs_perslid_key = rec.prs_perslid_key)
UNION ALL
SELECT 167, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 167
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_JenV-IND/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- LET OP: Eerst de uitzonderingen!
FOR rec IN c_gg_jenv_rvdk -- 108=RvdK
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_JenV-RvdK';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 108, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 108
AND prs_perslid_key = rec.prs_perslid_key)
UNION ALL
SELECT 167, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 167
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_JenV-RvdK/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
FOR rec IN c_gg_iedereen
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_Iedereen';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT DECODE (rec.mincode,
'01', 47, -- BZ
'02', 88, -- SZW
'03', 56, -- IenW (hierboven: 73=NEA/76=ANVS)
--'04', 102, -- BZK
'05', 113, -- OCW (hierboven: 67=RCE/87=DUO)
'06', 81, -- VWS
'07', 85, -- JenV (95=COA geen uitzondering, hierboven: 98=IND/106=DTenV/108=RvdK)
'08', 55, -- EZK (93=LNV geen uitzondering)
'09', 93, -- LNV
'10', 84, -- AZ/FMHN#89062
'11', 83, -- DEF
--'12', -1, -- FIN
--'13', -1, -- RvdR
'14', 95, -- COA
--'15', -1, -- AR
--'16', -1, -- COHO
--'17', -1, -- AP
--'18', -1, -- PC
--'19', -1, -- TK
--'20', -1, -- KdNO
--'21', -1, -- NFI
--'22', -1, -- NP
--'23', -1, -- HR
--'24', 109, -- KSA (autorisatiegroep 109 verwijderd?)
--'25', -1, -- BD
--'26', -1, -- TL
'27', 60, -- RIVM
'29', 4421, -- EK/FMHN#87484
'30', 4421, -- FENM/FMHN#88257
102), -- BZK
rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS -- Persoon niet al in groep!
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key =
DECODE (rec.mincode,
'01', 47, -- BZ
'02', 88, -- SZW
'03', 56, -- IenW
--'04', 102, -- BZK
'05', 113, -- OCW
'06', 81, -- VWS
'07', 85, -- JenV
'08', 55, -- EZK
'09', 93, -- LNV
'10', 84, -- AZ/FMHN#89062
'11', 83, -- DEF
--'12', -1, -- FIN
--'13', -1, -- RvdR
'14', 95, -- COA
--'15', -1, -- AR
--'16', -1, -- COHO
--'17', -1, -- AP
--'18', -1, -- PC
--'19', -1, -- TK
--'20', -1, -- KdNO
--'21', -1, -- NFI
--'22', -1, -- NP
--'23', -1, -- HR
--'24', 109, -- KSA
--'25', -1, -- BD
--'26', -1, -- TL
'27', 60, -- RIVM
'29', 4421, -- EK/FMHN#87484
'30', 4421, -- FENM/FMHN#88257
102) -- BZK
AND prs_perslid_key = rec.prs_perslid_key)
UNION ALL
SELECT 167, rec.prs_perslid_key
FROM DUAL
WHERE rec.mincode <> '03' -- Persoon niet van IenW!
AND NOT EXISTS -- Persoon niet al in groep!
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 167
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_Iedereen/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- Extra RS8-rol voor FMH!
FOR rec IN c_gg_bzk_fmh -- 1382=RS8 FMH
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_BZK-FMH';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 1382, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1382
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_BZK-FMH/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
-- Extra RS8-rol voor SSC-ICT!
FOR rec IN c_gg_bzk_sscict -- 1381=RS8 SSC-ICT
LOOP
BEGIN
v_errormsg := 'Fout behouden GG_BZK-SSCICT';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 1381, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1381
AND prs_perslid_key = rec.prs_perslid_key);
-- TODO:DELETE FROM eventuele andere Iedereen-groepen!
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#GG_BZK-SSCICT/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
v_count := 0;
v_datum1 := SYSDATE;
FOR rec IN wp_auth_toekenning
LOOP
BEGIN
v_errormsg := 'Fout toekennen autorisaties WP-reserveringen';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT rec.groep, rec.prs_perslid_key
FROM DUAL;
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', '[' || rec.afdeling || '|' || rec.prs_perslid_key || '] ' || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#WP_Uitzonderingen/toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
END;
PROCEDURE update_min2geb
AS
c_applname VARCHAR2 (50) := 'UPDATE_MIN2GEB';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_datum1 DATE;
v_datum2 DATE;
CURSOR c_wp
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
g.alg_gebouw_key,
DECODE (vwp.aantal, NULL, 0, 1) virtueel
FROM prs_v_aanwezigperslid p,
prs_afdeling a,
fac_v_aanwezigusrdata ud,
alg_v_aanweziggebouw g,
( SELECT pw.prs_perslid_key, COUNT (*) aantal
FROM prs_perslidwerkplek pw, prs_werkplek wp
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 1
GROUP BY pw.prs_perslid_key) vwp -- Virtuele WP
WHERE p.prs_perslid_externid IS NOT NULL -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = a.prs_afdeling_key
AND ud.fac_usrtab_key = 141 -- Min2Geb
AND COALESCE (ud.fac_usrdata_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
AND SUBSTR (ud.fac_usrdata_code, 1, 2) = SUBSTR (a.prs_afdeling_externid, 1, 2) -- Hoofdzetel ministerie van persoon!
AND UPPER (SUBSTR (ud.fac_usrdata_code, 4)) = TRIM (g.alg_gebouw_upper)
AND p.prs_perslid_key = vwp.prs_perslid_key(+)
AND NOT EXISTS (SELECT 1 -- Nog geen WP op hoofdzetel!
FROM prs_perslidwerkplek pw, prs_werkplek wp, alg_ruimte r, alg_verdieping v
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND pw.prs_perslid_key = p.prs_perslid_key)
AND NOT EXISTS (SELECT 1 -- Niet in groep 1081=RES Cateraar!
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1081 -- RES Cateraar
AND prs_perslid_key = p.prs_perslid_key)
ORDER BY p.prs_perslid_key;
BEGIN
v_count := 0;
v_datum1 := SYSDATE;
FOR rec IN c_wp
LOOP
BEGIN
v_errormsg := 'Fout toekennen fictieve hoofd-WP';
fmhn.movetoruimte (rec.prs_perslid_key, rec.alg_gebouw_key, rec.virtueel);
v_count := v_count + 1;
IF MOD (v_count, 1000) = 0 THEN COMMIT; END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#WPs toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
END;
PROCEDURE update_afd2geb
AS
c_applname VARCHAR2 (50) := 'UPDATE_AFD2GEB';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_datum1 DATE;
v_datum2 DATE;
CURSOR c_wp
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key,
g.alg_gebouw_key,
--ab.niveau,
ab.idmlevel,
ud.fac_usrdata_code,
DECODE (vwp.aantal, NULL, 0, 1) virtueel
FROM prs_v_aanwezigperslid p,
--fmhn_v_afdeling_boom ab,
fmhn_v_rap_idm_afdboom ab,
fac_v_aanwezigusrdata ud,
alg_v_aanweziggebouw g,
( SELECT pw.prs_perslid_key, COUNT (*) aantal
FROM prs_perslidwerkplek pw, prs_werkplek wp
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 1
GROUP BY pw.prs_perslid_key) vwp -- Virtuele WP
WHERE p.prs_perslid_externid IS NOT NULL -- Alleen voor uit IDM geimporteerde personen!
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ud.fac_usrtab_key = 142 -- Afd2Geb
AND COALESCE (ud.fac_usrdata_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
AND INSTR ('/' || ab.idpad, '/' || UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))) > 0
AND UPPER (SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1)) = TRIM (g.alg_gebouw_upper)
AND p.prs_perslid_key = vwp.prs_perslid_key(+)
AND NOT EXISTS (SELECT 1 -- Nog geen WP op satellietzetel!
FROM prs_perslidwerkplek pw, prs_werkplek wp, alg_ruimte r, alg_verdieping v
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND pw.prs_perslid_key = p.prs_perslid_key)
AND NOT EXISTS (SELECT 1 -- Niet in groep 1081=RES Cateraar!
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1081 -- RES Cateraar
AND prs_perslid_key = p.prs_perslid_key)
ORDER BY p.prs_perslid_key;
/*
AND (EXISTS
(SELECT 1 -- Satellietzetel op bedrijf van persoon (kan ook)!
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1021 -- Organisatieonderdeelcode (bij Bedrijf)
AND prs_link_key = ab.prs_bedrijf_key
AND UPPER (SUBSTR (p.prs_perslid_externid, 1, 2) || prs_kenmerklink_waarde) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling2 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key1
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling3 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key2
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling4 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key3
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling5 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key4
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling6 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key5
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling7 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key6
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling8 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key7
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling9 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key8
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1)))
OR EXISTS
(SELECT 1 -- Satellietzetel op afdeling10 van persoon!
FROM prs_afdeling
WHERE prs_afdeling_key = ab.prs_afdeling_key9
AND UPPER (prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))))
*/
BEGIN
v_count := 0;
v_datum1 := SYSDATE;
FOR rec IN c_wp
LOOP
BEGIN
v_errormsg := 'Fout toekennen fictieve satelliet-WP';
fmhn.movetoruimte (rec.prs_perslid_key, rec.alg_gebouw_key, rec.virtueel);
v_count := v_count + 1;
IF MOD (v_count, 1000) = 0 THEN COMMIT; END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#WPs toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
END;
-- Verwijderen (normale en virtuele) prs_perslidwerkplek anders dan op hoofd- of satellietzetel!
PROCEDURE delete_wps_nok
AS
c_applname VARCHAR2 (50) := 'DELETE_WPS_NOK';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_datum1 DATE;
v_datum2 DATE;
CURSOR c_wp
IS
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
--(SELECT prs_srtperslid_omschrijving FROM prs_srtperslid WHERE prs_srtperslid_key = p.prs_srtperslid_key) functie,
--(SELECT prs_bedrijf_naam FROM prs_bedrijf WHERE prs_bedrijf_key = ab.prs_bedrijf_key) bedrijf,
--SUBSTR (pw.prs_werkplek_aanduiding, 1, INSTR (pw.prs_werkplek_aanduiding, '-') - 1) locatiecode,
--pw.alg_gebouw_code gebouwcode,
pw.prs_perslidwerkplek_key
FROM prs_v_aanwezigperslid p,
prs_v_perslidwerkplek_gegevens pw,
fmhn_v_rap_idm_afdboom ab
WHERE p.prs_perslid_externid IS NOT NULL -- Alleen voor uit IDM geimporteerde personen!
AND NOT EXISTS -- Alle medewerkers met Catering in hun functie uitsluiten!
(SELECT 1
FROM prs_srtperslid
WHERE INSTR (UPPER (prs_srtperslid_omschrijving), 'CATERING') > 0
AND prs_srtperslid_key = p.prs_srtperslid_key)
AND p.prs_perslid_key = pw.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.mincode <> 28 -- Alle medewerkers die vallen onder bedrijf LEVFMH (Leveranciers FMH) uitsluiten!
AND NOT EXISTS
(SELECT 1 -- Geen hoofdzetel van persoon!
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 141 -- Min2Geb
AND COALESCE (fac_usrdata_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
AND SUBSTR (fac_usrdata_code, 1, 2) = SUBSTR (p.prs_perslid_externid, 1, 2)
--AND UPPER (SUBSTR (fac_usrdata_code, 4)) = TRIM (pw.alg_gebouw_upper)
AND UPPER (SUBSTR (fac_usrdata_code, INSTR (fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
AND NOT EXISTS
(SELECT 1 -- Geen satellietzetel op afdeling van persoon!
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 142 -- Afd2Geb
AND COALESCE (fac_usrdata_vervaldatum, SYSDATE) > TRUNC (SYSDATE)
AND INSTR ('/' || ab.idpad, '/' || UPPER (SUBSTR (fac_usrdata_code, 1, INSTR (fac_usrdata_code, '/') - 1))) > 0
AND UPPER (SUBSTR (fac_usrdata_code, INSTR (fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
UNION -- Bij alle medewerkers met PoortCentraal in hun functie alle WP verwijderen behalve op RS8=Rijnstraat 8!
SELECT '[' || p.prs_perslid_email || '] ' aanduiding,
--(SELECT prs_srtperslid_omschrijving FROM prs_srtperslid WHERE prs_srtperslid_key = p.prs_srtperslid_key) functie,
--(SELECT prs_bedrijf_naam FROM prs_bedrijf WHERE prs_bedrijf_key = ab.prs_bedrijf_key) bedrijf,
--SUBSTR (pw.prs_werkplek_aanduiding, 1, INSTR (pw.prs_werkplek_aanduiding, '-') - 1) locatiecode,
--pw.alg_gebouw_code gebouwcode,
pw.prs_perslidwerkplek_key
FROM prs_v_aanwezigperslid p,
prs_v_perslidwerkplek_gegevens pw,
prs_v_afdeling_boom ab
WHERE p.prs_perslid_externid IS NOT NULL -- Alleen voor uit IDM geimporteerde personen!
AND EXISTS -- Alle medewerkers met PoortCentraal in hun functie!
(SELECT 1
FROM prs_srtperslid
WHERE INSTR (UPPER (prs_srtperslid_omschrijving), 'POORTCENTRAAL') > 0
AND prs_srtperslid_key = p.prs_srtperslid_key)
AND p.prs_perslid_key = pw.prs_perslid_key
AND pw.alg_locatie_key <> 18 -- Alle WP verwijderen behalve op RS8=Rijnstraat 8!
AND p.prs_afdeling_key = ab.prs_afdeling_key
ORDER BY 1, 2;
/*
AND NOT EXISTS
(SELECT 1 -- Geen satellietzetel op bedrijf van persoon (kan ook)!
FROM prs_v_aanwezigkenmerklink kl, fac_v_aanwezigusrdata ud
WHERE kl.prs_kenmerk_key = 1021 -- Organisatieonderdeelcode (bij Bedrijf)
AND kl.prs_link_key = ab.prs_bedrijf_key
AND fac_usrtab_key = 142 -- Afd2Geb
AND UPPER (SUBSTR (p.prs_perslid_externid, 1, 2) || kl.prs_kenmerklink_waarde) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))
AND UPPER (SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
AND NOT EXISTS
(SELECT 1 -- Geen satellietzetel op afdeling1 van persoon!
FROM prs_afdeling a, fac_v_aanwezigusrdata ud
WHERE a.prs_afdeling_key = ab.prs_afdeling_key1
AND fac_usrtab_key = 142 -- Afd2Geb
AND UPPER (a.prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))
AND UPPER (SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
AND NOT EXISTS
(SELECT 1 -- Geen satellietzetel op afdeling2 van persoon!
FROM prs_afdeling a, fac_v_aanwezigusrdata ud
WHERE a.prs_afdeling_key = ab.prs_afdeling_key2
AND fac_usrtab_key = 142 -- Afd2Geb
AND UPPER (a.prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))
AND UPPER (SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
AND NOT EXISTS
(SELECT 1 -- Geen satellietzetel op afdeling3 van persoon!
FROM prs_afdeling a, fac_v_aanwezigusrdata ud
WHERE a.prs_afdeling_key = ab.prs_afdeling_key3
AND fac_usrtab_key = 142 -- Afd2Geb
AND UPPER (a.prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))
AND UPPER (SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
AND NOT EXISTS
(SELECT 1 -- Geen satellietzetel op afdeling4 van persoon!
FROM prs_afdeling a, fac_v_aanwezigusrdata ud
WHERE a.prs_afdeling_key = ab.prs_afdeling_key4
AND fac_usrtab_key = 142 -- Afd2Geb
AND UPPER (a.prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))
AND UPPER (SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
AND NOT EXISTS
(SELECT 1 -- Geen satellietzetel op afdeling5 van persoon!
FROM prs_afdeling a, fac_v_aanwezigusrdata ud
WHERE a.prs_afdeling_key = ab.prs_afdeling_key5
AND fac_usrtab_key = 142 -- Afd2Geb
AND UPPER (a.prs_afdeling_externid) =
UPPER (SUBSTR (ud.fac_usrdata_code, 1, INSTR (ud.fac_usrdata_code, '/') - 1))
AND UPPER (SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1)) = TRIM (pw.alg_gebouw_upper))
*/
BEGIN
v_count := 0;
v_datum1 := SYSDATE;
FOR rec IN c_wp
LOOP
BEGIN
v_errormsg := 'Fout verwijderen ongeldige WP';
DELETE FROM prs_perslidwerkplek WHERE prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
v_count := v_count + 1;
IF MOD (v_count, 1000) = 0 THEN COMMIT; END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', '#WPs verwijderd: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
END;
PROCEDURE add_xml_row (p_bestand IN VARCHAR2, p_regel IN VARCHAR2)
AS
v_index NUMBER;
BEGIN
SELECT COALESCE (MAX (fac_rapport_volgnr), 0) + 1 INTO v_index FROM fac_rapport WHERE fac_rapport_node = p_bestand;
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
VALUES (p_bestand, v_index, p_regel);
END;
PROCEDURE add_xml_element (p_bestand IN VARCHAR2, p_tag IN VARCHAR2, p_value IN VARCHAR2)
AS
BEGIN
fmhn.add_xml_row (p_bestand, '<' || p_tag || '>' || xml.char_to_html (p_value) || '</' || p_tag || '>');
END;
PROCEDURE mld_update_ruimtenr( p_key in NUMBER)
AS
v_srtmelding_key NUMBER;
v_ruimtenr_key NUMBER;
BEGIN
v_ruimtenr_key:=-1;
SELECT m.mld_stdmelding_key
INTO v_srtmelding_key
FROM mld_melding m
WHERE m.mld_melding_key=p_key;
CASE v_srtmelding_key
WHEN 392 THEN
v_ruimtenr_key:=23040; -- RS8 arbo bestelling moet naar postkamer
ELSE
v_ruimtenr_key:=-1;
END CASE;
IF v_ruimtenr_key > 0
THEN
UPDATE mld_melding m SET m.mld_alg_onroerendgoed_keys = v_ruimtenr_key WHERE m.mld_melding_key=p_key;
fac.trackaction('MLDUPD',p_key,3,SYSDATE,'Ruimtenr gewijzigd naar 05.C.008');
END IF;
END;
-- Hook functie die na het invoeren van een melding aangeroepen wordt.
PROCEDURE mld_after_insert (p_key IN NUMBER)
AS
v_melding_status NUMBER;
v_locatie_key NUMBER;
v_kenmerk_projectnr NUMBER; -- Kenmerk_key projectnummer
v_kenmerk_offertenr NUMBER; -- Kenmerk_key offertenummer
v_perslid_key NUMBER; -- melder
v_discipline_key NUMBER;
v_stdmelding_key NUMBER;
v_melding_oms_old VARCHAR2 (100);
v_melding_oms_new VARCHAR2 (100);
v_mld_uitvoertijd_old mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
v_mld_accepttijd_old mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE;
v_mld_uitvoertijd_new mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
v_mld_accepttijd_new mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE;
v_melding_omschrijving mld_melding.mld_melding_omschrijving%TYPE;
v_melding_onderwerp mld_melding.mld_melding_onderwerp%TYPE;
v_melding_datum DATE;
v_dienst_key NUMBER (10);
v_typeopdr_key NUMBER (10);
v_bedrijf_key NUMBER (10);
v_opdr_key NUMBER (10);
v_stdmelding_autoorder mld_stdmelding.mld_stdmelding_autoorder%TYPE;
v_locatie_change NUMBER (1);
v_projectnr_gevuld NUMBER (10);
v_projectnr_next NUMBER (10);
v_melding_key_next mld_melding.mld_melding_key%TYPE;
v_offertenr_gevuld NUMBER (10);
v_offertenr_next NUMBER (10);
v_melding_cat VARCHAR2 (400);
v_locatie_code VARCHAR2 (100);
v_locatie VARCHAR2 (100);
v_gebouw_code VARCHAR2 (100);
v_errormsg VARCHAR2 (100);
BEGIN
v_errormsg := 'Ophalen meldinggegevens';
BEGIN
v_locatie_change := 0;
SELECT m.mld_melding_status,
m.mld_alg_locatie_key,
m.prs_perslid_key,
m.mld_stdmelding_key,
m.mld_melding_datum,
m.mld_melding_omschrijving,
sm.mld_ins_discipline_key
INTO v_melding_status,
v_locatie_key,
v_perslid_key,
v_stdmelding_key,
v_melding_datum,
v_melding_omschrijving,
v_discipline_key
FROM mld_melding m, mld_stdmelding sm
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND mld_melding_key = p_key;
IF v_stdmelding_key IN (662, 667) -- Aanvraag formulieren nieuwe projecten
THEN
BEGIN
SELECT DISTINCT k.mld_kenmerk_key
INTO v_kenmerk_projectnr
FROM mld_kenmerk k, mld_stdmelding s, mld_melding m
WHERE k.mld_srtkenmerk_key = 296 -- Kenmerksoort 'Projectnummer (automatisch)'
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND k.mld_stdmelding_key = s.mld_stdmelding_key
AND m.mld_melding_key = p_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_kenmerk_projectnr := NULL;
END;
BEGIN
SELECT k.mld_kenmerk_key
INTO v_projectnr_gevuld
FROM mld_kenmerk k, mld_kenmerkmelding km
WHERE k.mld_srtkenmerk_key = 296 -- Kenmerksoort 'Projectnummer (automatisch)'
AND k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND km.mld_melding_key = p_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_projectnr_gevuld := NULL;
END;
IF v_kenmerk_projectnr IS NOT NULL
AND v_projectnr_gevuld IS NULL -- Alleen bij nieuwe melding, niet bij mutaties
THEN
BEGIN
INSERT INTO mld_kenmerkmelding (
mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (
p_key,
(SELECT k.mld_kenmerk_key
FROM mld_kenmerk k,
mld_stdmelding s,
mld_melding m
WHERE k.mld_srtkenmerk_key =
296 -- Kenmerksoort 'Projectnummer (automatisch)'
AND s.mld_stdmelding_key =
m.mld_stdmelding_key
AND k.mld_stdmelding_key =
s.mld_stdmelding_key
AND m.mld_melding_key = p_key),
(SELECT ( TO_CHAR (SYSDATE, 'yy')
* 1000000)
+ 2000000000
+ 1
+ COALESCE (
MAX (
fac.safe_to_number (
SUBSTR (
kmm.mld_kenmerkmelding_waarde,
5,
6))),
0)
FROM mld_kenmerkmelding kmm,
(SELECT k.mld_kenmerk_key
FROM mld_kenmerk k,
mld_melding m
WHERE k.mld_srtkenmerk_key =
296 -- Kenmerksoort 'Projectnummer (automatisch)'
AND m.mld_melding_key =
p_key) km
WHERE kmm.mld_kenmerk_key =
km.mld_kenmerk_key))
RETURNING mld_kenmerkmelding_waarde
INTO v_projectnr_next;
--Ook projectnummer vullen bij volgende stap
--Bepalen melding key van de tweede stap in de workflow.
IF v_stdmelding_key = 667 --Aanvraag project (RM/PM)
THEN
BEGIN
SELECT MIN (m.mld_melding_key)
INTO v_melding_key_next
FROM mld_melding m
WHERE m.mld_stdmelding_key = 663 -- Specificeren
AND m.mld_melding_start_key = p_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_melding_key_next := NULL;
END;
IF v_melding_key_next IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (
mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (v_melding_key_next,
1806, -- Kenmerk projectnummer bij stdmelding Specificeren (2e melding in workflow)
v_projectnr_next);
END IF;
END IF;
IF v_stdmelding_key = 662 --Aanvraag project (Klant)
THEN
BEGIN
SELECT MIN (m.mld_melding_key)
INTO v_melding_key_next
FROM mld_melding m
WHERE m.mld_stdmelding_key = 666 -- Beoordeling
AND m.mld_melding_start_key = p_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_melding_key_next := NULL;
END;
IF v_melding_key_next IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (
mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (v_melding_key_next,
1807, -- Kenmerk projectnummer bij stdmelding Beoordeling (2e melding in workflow)
v_projectnr_next);
END IF;
END IF;
END;
END IF;
END IF;
-- Hieronder proberen we kenmerk offertenummer volgnummer automatisch te vullen
-- Binnen een project-workflow kunnen meerdere offertes worden aangemaakt (handmatige vervolgmeldingen).
-- Die moeten allen een nieuw (opvolgend) offertevolgnummer krijgen (001, 002, etc.)
IF v_stdmelding_key IN (665) -- Standaardmelding 'Offerte opstellen'
THEN
BEGIN
SELECT DISTINCT k.mld_kenmerk_key
INTO v_kenmerk_offertenr
FROM mld_kenmerk k, mld_stdmelding s, mld_melding m
WHERE k.mld_srtkenmerk_key = 282 -- Kenmerksoort 'Offertenummer'
AND s.mld_stdmelding_key = m.mld_stdmelding_key
AND k.mld_stdmelding_key = s.mld_stdmelding_key
AND m.mld_melding_key = p_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_kenmerk_offertenr := NULL;
END;
BEGIN
SELECT k.mld_kenmerk_key
INTO v_offertenr_gevuld
FROM mld_kenmerk k, mld_kenmerkmelding km
WHERE k.mld_srtkenmerk_key = 282 -- Kenmerksoort 'Offertenummer'
AND k.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerkmelding_verwijder IS NULL
AND km.mld_melding_key = p_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_offertenr_gevuld := NULL;
END;
SELECT COALESCE ((MAX (offertenummer)) + 1, 1)
INTO v_offertenr_next
FROM (SELECT (kmm1.mld_kenmerkmelding_waarde)
AS offertenummer,
m_flow.mld_melding_key
AS melding_key
FROM mld_melding m,
mld_melding m_flow,
mld_kenmerkmelding kmm1
WHERE m.mld_melding_key = p_key
AND m.mld_melding_start_key =
m_flow.mld_melding_start_key
AND m_flow.mld_stdmelding_key = 665 -- Standaardmelding 'Offerte opstellen'
AND kmm1.mld_melding_key =
m_flow.mld_melding_key
AND kmm1.mld_kenmerk_key = v_kenmerk_offertenr); -- Kenmerk 'Offertenummer' bij standaardmelding 'Offerte opstellen'
IF v_kenmerk_offertenr IS NOT NULL
AND v_offertenr_gevuld IS NULL -- Alleen bij nieuwe melding, niet bij mutaties
THEN
BEGIN
INSERT INTO mld_kenmerkmelding (
mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (p_key,
v_kenmerk_offertenr,
v_offertenr_next);
END;
END IF;
END IF;
-- FMHN#72353 Aanmaken reservering n.a.v. melding 'Aanvraag Evenement'
-- Overweging vanuit CAB is om niet vanuit een hook-functie gegevens naar de reservering door te zetten, zeker geen flexkenmerken uit meldingen.
-- Getracht wordt zoveel mogelijk automatisch mee te nemen uit de aanvraag (melding) naar de reservering
-- Aanvrager, kostenplaats en locatie wordt meegenomen door #71733 (core)
-- Ook reserveringsomschrijving wordt automatisch gevuld vanuit het onderwerp van de melding door #71733. Maar dit veld gebruikt FMH niet op dit formulier en is leeg.
-- Onderstaande verhelpt dat.
IF v_stdmelding_key IN (25) -- Standaardmelding 'Evenement aanvragen'
THEN
BEGIN
SELECT SUBSTR(kmm.mld_kenmerkmelding_waarde,0,80)
INTO v_melding_onderwerp
FROM mld_kenmerkmelding kmm, mld_melding m
WHERE kmm.mld_kenmerk_key = 235 --Kenmerksoort 'Naam evenement'
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND m.mld_melding_key = p_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_melding_onderwerp := NULL;
END;
IF v_melding_onderwerp IS NOT NULL
THEN
BEGIN
UPDATE mld_melding
SET mld_melding_onderwerp = v_melding_onderwerp
WHERE mld_melding_key = p_key;
END;
END IF;
END IF;
END;
END;
--Servicemedewerkers verwachten enkele velden/kenmerken gevuld bij de melding, wanneer deze als actie is aangemaakt vanuit een reservering.
PROCEDURE ruimte_events
AS
c_applname VARCHAR2 (50) := 'RUIMTE_EVENTS';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_mld_datum DATE;
v_mld_van VARCHAR2 (200);
v_mld_tot VARCHAR2 (200);
v_res_datum DATE;
v_res_van VARCHAR2 (200);
v_res_tot VARCHAR2 (200);
CURSOR c IS
SELECT m.mld_melding_key,
(SELECT DISTINCT (mld_kenmerkmelding_key)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 3161 --Kenmerk Datum bij Inrichten tbv een evenement/vergadering
AND mld_kenmerkmelding_verwijder IS NULL)
AS kmkey_datum,
(SELECT DISTINCT (fac.safe_to_date(mld_kenmerkmelding_waarde, 'DD-MM-YYYY'))
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 3161 --Kenmerk Datum bij Inrichten tbv een evenement/vergadering
AND mld_kenmerkmelding_verwijder IS NULL)
AS mld_datum,
(SELECT DISTINCT (mld_kenmerkmelding_key)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 3162 --Kenmerk Starttijd bij Inrichten tbv een evenement/vergadering
AND mld_kenmerkmelding_verwijder IS NULL)
AS kmkey_van,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 3162 --Kenmerk Starttijd bij Inrichten tbv een evenement/vergadering
AND mld_kenmerkmelding_verwijder IS NULL)
AS mld_van,
(SELECT DISTINCT (mld_kenmerkmelding_key)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 3163 --Kenmerk Eindtijd bij Inrichten tbv een evenement/vergadering
AND mld_kenmerkmelding_verwijder IS NULL)
AS kmkey_tot,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 3163 --Kenmerk Eindtijd bij Inrichten tbv een evenement/vergadering
AND mld_kenmerkmelding_verwijder IS NULL)
AS mld_tot,
TRUNC (rrr.res_rsv_ruimte_van)
AS res_datum, -- waarde datum reservering
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI')
AS res_van, -- waarde tijd van reservering
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI')
AS res_tot -- waarde tijd tot reservering
FROM mld_melding m, res_rsv_ruimte rrr
WHERE m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND TRUNC (res_rsv_ruimte_van) >= TRUNC (SYSDATE)
AND m.mld_stdmelding_key = 203 -- Standaardmelding Inrichten ruimten tbv een evenement/vergadering
AND m.mld_melding_status IN (0,
2,
3,
4,
7);
BEGIN
FOR rec IN c
LOOP
BEGIN
v_aanduiding :=
'['
|| TO_CHAR (rec.mld_melding_key)
|| ' kenmerken bijwerken';
v_mld_datum := TRUNC (rec.mld_datum);
v_res_datum := TRUNC (rec.res_datum);
v_mld_van := rec.mld_van;
v_res_van := rec.res_van;
v_mld_tot := rec.mld_tot;
v_res_tot := rec.res_tot;
IF v_mld_datum IS NULL -- Alleen toevoegen indien leeg
THEN
BEGIN
v_errormsg := 'Fout gewenste datum vullen';
INSERT INTO mld_kenmerkmelding (
mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (rec.mld_melding_key,
3161, --Kenmerk Datum bij Inrichten tbv een evenement/vergadering
rec.res_datum);
v_errormsg := 'Fout tracken datum vullen';
fac.trackaction ('MLDUPD',
rec.mld_melding_key,
3,
SYSDATE,
'Kenmerk Gewenste datum vullen');
END;
END IF;
IF v_mld_datum IS NOT NULL AND v_mld_datum <> v_res_datum -- Alleen wijzigen indien verschillend
THEN
BEGIN
v_errormsg := 'Fout gewenste datum wijzigen';
UPDATE mld_kenmerkmelding km
SET km.mld_kenmerkmelding_waarde =
TRUNC (rec.res_datum)
WHERE km.mld_kenmerkmelding_key = rec.kmkey_datum;
v_errormsg := 'Fout tracken gewenste datum wijzigen';
fac.trackaction ('MLDUPD',
rec.mld_melding_key,
3,
SYSDATE,
'Kenmerk gewenste datum gewijzigd');
END;
END IF;
IF rec.mld_van IS NULL -- Alleen toevoegen indien leeg
THEN
BEGIN
v_errormsg := 'Fout starttijd vullen';
INSERT INTO mld_kenmerkmelding (
mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (rec.mld_melding_key, 3162, rec.res_van); --Kenmerk Starttijd bij Inrichten tbv een evenement/vergadering
v_errormsg := 'Fout tracken starttijd vullen';
fac.trackaction ('MLDUPD',
rec.mld_melding_key,
3,
SYSDATE,
'Kenmerk starttijd gevuld');
END;
END IF;
IF v_mld_van <> v_res_van -- Alleen wijzigen indien verschillend
THEN
BEGIN
v_errormsg := 'Fout starttijd wijzigen';
UPDATE mld_kenmerkmelding km
SET km.mld_kenmerkmelding_waarde =
TO_CHAR (v_res_van)
WHERE km.mld_kenmerkmelding_key = rec.kmkey_van;
v_errormsg := 'Fout tracken starttijd wijzigen';
fac.trackaction ('MLDUPD',
rec.mld_melding_key,
3,
SYSDATE,
'Kenmerk starttijd gewijzigd');
END;
END IF;
IF rec.mld_tot IS NULL -- Alleen toevoegen indien leeg
THEN
BEGIN
v_errormsg := 'Fout eindtijd vullen';
INSERT INTO mld_kenmerkmelding (
mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (rec.mld_melding_key, 3163, rec.res_tot); --Kenmerk Eindtijd bij Inrichten tbv een evenement/vergadering
v_errormsg := 'Fout tracken eindtijd vullen';
fac.trackaction ('MLDUPD',
rec.mld_melding_key,
3,
SYSDATE,
'Kenmerk eindtijd gevuld');
END;
END IF;
IF rec.mld_tot IS NOT NULL AND v_mld_tot <> v_res_tot -- Alleen wijzigen indien verschillend
THEN
BEGIN
v_errormsg := 'Fout eindtijd wijzigen';
UPDATE mld_kenmerkmelding km
SET km.mld_kenmerkmelding_waarde =
TO_CHAR (v_res_tot)
WHERE km.mld_kenmerkmelding_key = rec.kmkey_tot;
v_errormsg := 'Fout tracken eindtijd wijzigen';
fac.trackaction ('MLDUPD',
rec.mld_melding_key,
3,
SYSDATE,
'Kenmerk eindtijd gewijzigd');
END;
END IF;
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (c_applname,
'E',
v_aanduiding || v_errormsg,
'Daily achtergrond taak afgebroken!');
END;
PROCEDURE inactiveren_accounts
AS
c_applname VARCHAR2 (50) := 'INACTIVEREN_ACCOUNTS';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
CURSOR c_inactiveren IS
SELECT p.prs_perslid_key,
p.prs_perslid_email,
p.prs_perslid_ingangsdatum,
p.prs_perslid_einddatum,
p.prs_perslid_inactief,
p.prs_perslid_verwijder
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_inactief IS NULL
AND ( ( TRUNC (p.prs_perslid_einddatum) < TRUNC (SYSDATE)
AND NOT EXISTS
(SELECT pk.prs_link_key
FROM prs_kenmerklink pk
WHERE pk.prs_kenmerklink_niveau = 'P'
AND pk.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1100 --Kenmerk 'Handmatige inactiefdatum'
AND pk.prs_link_key = p.prs_perslid_key
AND fac.safe_to_date (
pk.prs_kenmerklink_waarde,
'DD-MM-YYYY') >
TRUNC (SYSDATE)))
OR EXISTS
(SELECT pk.prs_link_key
FROM prs_kenmerklink pk
WHERE pk.prs_kenmerklink_niveau = 'P'
AND pk.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1100 --Kenmerk 'Handmatige inactiefdatum'
AND pk.prs_link_key = p.prs_perslid_key
AND fac.safe_to_date (pk.prs_kenmerklink_waarde,
'DD-MM-YYYY') <=
TRUNC (SYSDATE)));
BEGIN
-- LET OP: DAILY-taak draait dagelijks na middernacht (begin van dag)
-- Daarmee worden personen waarbij er een einddatum is gezet
FOR rec IN c_inactiveren
LOOP
v_aanduiding :=
'['
|| TO_CHAR (rec.prs_perslid_key)
|| '|'
|| rec.prs_perslid_email
|| '] ';
v_count_tot := v_count_tot + 1;
UPDATE prs_perslid
SET prs_perslid_inactief = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
END LOOP;
fac.writelog (c_applname,
'S',
'#Accounts geinactiveerd: ' || TO_CHAR (v_count_tot),
'');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (c_applname,
'E',
v_aanduiding || v_errormsg,
'Daily achtergrond taak afgebroken!');
END;
PROCEDURE verwijderen_accounts
AS
c_applname VARCHAR2 (50) := 'VERWIJDEREN_ACCOUNTS';
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_perslid_naam VARCHAR (100);
v_perslid_nr VARCHAR (30);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
--- Als een persoon 3 maand inactief is, dan verwijderen we deze
CURSOR prs_del IS
SELECT p.prs_perslid_key,
p.prs_perslid_email,
COUNT (vp.prs_perslid_key) aant
FROM prs_v_aanwezigperslid p, prs_v_verplichting_keys vp
WHERE p.prs_perslid_inactief IS NOT NULL
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
AND TRUNC(p.prs_perslid_inactief) < TRUNC(SYSDATE) - INTERVAL '3' MONTH
GROUP BY p.prs_perslid_key, p.prs_perslid_email;
BEGIN
-- Proberen de accounts te verwijderen
FOR rec IN prs_del
LOOP
BEGIN
IF rec.aant = 0
THEN
v_errormsg := 'Fout schonen collega';
DELETE FROM
prs_collega
WHERE prs_perslid_key = rec.prs_perslid_key
OR prs_perslid_key_alt = rec.prs_perslid_key;
v_errormsg := 'Fout schonen persoon';
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
v_aanduiding :=
'['
|| TO_CHAR (rec.prs_perslid_key)
|| '|'
|| rec.prs_perslid_email
|| '] ';
v_count_tot := v_count_tot + 1;
END IF;
END;
END LOOP;
fac.writelog (c_applname,
'S',
'#Accounts verwijderd: ' || TO_CHAR (v_count_tot),
'');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (c_applname,
'E',
v_aanduiding || v_errormsg,
'Daily achtergrond taak afgebroken!');
END;
PROCEDURE archiveren_meldingen
AS
c_applname VARCHAR2 (50) := 'ARCHIVEREN_MELDINGEN';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
CURSOR c_mld IS
SELECT mld_melding_key
FROM mld_melding
WHERE mld_melding_status IN (1, 5, 99) -- Afgewezen, afgemeld, niet opgelost
AND mld_stdmelding_key IN
(SELECT fac.safe_to_number (fac_usrdata_code)
FROM fac_usrdata
WHERE fac_usrtab_key = 1381 -- Eigen tabel Stdm_keysHistory
AND fac_usrdata_verwijder IS NULL)
AND COALESCE (
fac.gettrackingdate ('MLDREJ', mld_melding_key),
fac.gettrackingdate ('MLDAFM', mld_melding_key),
NULL) <
SYSDATE - fac.getSetting ('anonymize_period');
BEGIN
FOR rec IN c_mld
LOOP
v_aanduiding :=
'['
|| TO_CHAR (rec.mld_melding_key)
|| '] ';
v_count_tot := v_count_tot + 1;
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL); -- Historie (incl. tracking)
END LOOP;
fac.writelog (
c_applname,
'S',
'#Meldingen op historie gezet: ' || TO_CHAR (v_count_tot),
'');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (c_applname,
'E',
v_aanduiding || v_errormsg,
'Daily achtergrond taak afgebroken!');
END;
END;
/
-- Dagelijkse taak
CREATE OR REPLACE PROCEDURE FMHN_DAILY
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Maandelijks sluiten geregistreerde ritten vanuit Flowlogic!
--fmhn.sluiten_ritten ();
-- Dagelijkse sluiten AW-meldingen(=WF) bij Niet akkoord of na verstrijken
-- termijn (Korte route na 5 werkdagen en Lange route na 10 werkdagen)!
fmhn.sluiten_aw ();
-- Jaarlijks schonen gevolgde (herhalings)lessen door bhv-ers!
fmhn.schonen_lessen ();
-- Dagelijks schonen alle reserveringen ouder dan 7 dagen!
fmhn.afmelden_res ();
-- Toekennen(/TODO:afnemen) FE-autorisatiegroepen volgens ministerie(onderdeel).
-- NB: Voor alle FE-autorisatiegroepen geldt Scope-beperking op Locatie!
fmhn.update_fegroep ();
-- Toekennen WPs op hoofdzetel volgens Eigen tabel 'min2geb'.
fmhn.update_min2geb ();
-- Toekennen WPs op satellietzetel volgens Eigen tabel 'afd2geb'.
fmhn.update_afd2geb ();
-- Verwijderen WPs anders dan op hoofd- of satellietzetel!
fmhn.delete_wps_nok ();
-- Bijwerken Inrichten ruimten tbv een evenement/vergadering
fmhn.ruimte_events ();
-- Inactiveren accounts
fmhn.inactiveren_accounts ();
-- Verwijderen accounts
fmhn.verwijderen_accounts ();
-- Verwijderen accounts
fmhn.archiveren_meldingen ();
END;
/
-- Domein-view tbv. te selecteren ILM-medewerkers bij 3 CNT-kenmerkvelden:
-- - 2e Aanspreekpunt
-- - ICB Medewerker#2
-- - ICB Senior
CREATE OR REPLACE VIEW FMHN_V_ILM_MEDEWERKER
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM_FULL,
PRS_PERSLID_NAAM_FRIENDLY,
PRS_PERSLID_VERWIJDER
)
AS -- Actuele inhoud van CNT-kenmerkvelden waarvoor dit domein is bedoeld!
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, prs_perslid p, prs_v_perslid_fullnames pf
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key IN (2, 10, 11) -- 2e Aanspreekpunt/ICB Medewerker#2/ICB Senior
AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
UNION
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames pf
WHERE gg.fac_groep_key IN (161, 162) -- Contracten/Inzage+Beheer
AND gg.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_externid IS NOT NULL -- Uit IDM
AND p.prs_perslid_key = pf.prs_perslid_key
UNION
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder
FROM prs_perslid p, prs_v_perslid_fullnames pf
WHERE p.prs_perslid_key = 38625 -- Conversie
AND p.prs_perslid_key = pf.prs_perslid_key;
CREATE OR REPLACE VIEW FMHN_V_RAP_CNT
(
contractsoort,
cnt_contract_key,
contractnr,
beschr,
externnr,
mantelnr,
omschr,
contractafd,
aanspreekpunt1,
icbmedewerker1,
opmerking,
status,
ingangsdatum,
rappeldatum,
opzegdatum,
einddatum,
contractant,
contractbedrag,
planon_ref,
gemanaged_fmh,
beherende_cat,
aanspreekpunt2,
icbmedewerker2,
icb_senior,
actiedatum_beheer,
actiedatum,
einddatum_spend,
europese_aanbest,
verlenging_lt1,
verlenging_lt2,
max_einddatum,
werkgebied,
ingangsdat,
rappeldat,
opzegdat,
einddat,
actiedat_beheer,
actiedat,
einddat_spend,
max_einddat,
rappellijst
)
AS
SELECT x.contractsoort,
x.cnt_contract_key,
x.cnt_contract_nummer_intern || DECODE (x.cnt_contract_versie, NULL, '', '.' || cnt_contract_versie) contractnr,
x.cnt_contract_omschrijving beschrijving,
x.cnt_contract_nummer externnr,
NULL mantelnr, -- Geen mantels, dus altijd NULL!
x.cnt_contract_document omschrijving,
x.eigenaar_afd,
x.eigenaar,
x.beheerder,
x.cnt_contract_opmerking opmerking,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') status,
TO_CHAR (x.cnt_contract_looptijd_van, 'dd-mm-yyyy') ingangsdat,
TO_CHAR (cnt.cnt_getRappeldatum (x.cnt_contract_key), 'dd-mm-yyyy') rappeldat,
TO_CHAR (cnt.cnt_getOpzegdatum (x.cnt_contract_key), 'dd-mm-yyyy') opzegdat,
TO_CHAR (x.cnt_contract_looptijd_tot, 'dd-mm-yyyy') einddat,
x.contractant,
TO_CHAR (x.cnt_contract_kosten) contractbedrag,
pr.cnt_kenmerkcontract_waarde planon_referentie,
gfmh_ud.fac_usrdata_omschr gemanaged_fmh,
biuc_ud.fac_usrdata_omschr beherende_cat,
ap2_pf.prs_perslid_naam_full aanspreekpunt2,
icbm_pf.prs_perslid_naam_full icb_medewerker,
icbs_pf.prs_perslid_naam_full icb_senior,
adcb.cnt_kenmerkcontract_waarde actiedat_beheer,
ad.cnt_kenmerkcontract_waarde actiedat,
edsp.cnt_kenmerkcontract_waarde einddat_spend,
ea_ud.fac_usrdata_omschr europese_aanbest,
vl1.cnt_kenmerkcontract_waarde verlenging_lt1,
vl2.cnt_kenmerkcontract_waarde verlenging_lt2,
med.cnt_kenmerkcontract_waarde max_einddat,
wg_ud.fac_usrdata_omschr werkgebied,
x.cnt_contract_looptijd_van ingangsdat2,
cnt.cnt_getRappeldatum (x.cnt_contract_key) rappeldat2,
cnt.cnt_getOpzegdatum (x.cnt_contract_key) opzegdat2,
x.cnt_contract_looptijd_tot einddat2,
fac.safe_to_date (adcb.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') actiedat_beheer2,
fac.safe_to_date (ad.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') actiedat2,
fac.safe_to_date (edsp.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') einddat_spend2,
fac.safe_to_date (med.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') max_einddat2,
--DECODE (SIGN (LEAST (x.cnt_contract_looptijd_tot, fac.safe_to_date (med.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')) - ADD_MONTHS (SYSDATE, 5)), -1, 'Ja', 'Nee')
DECODE (SIGN (x.cnt_contract_looptijd_tot - SYSDATE),
1, -- Contract niet verlopen!
DECODE (SIGN (LEAST (x.cnt_contract_looptijd_tot, fac.safe_to_date (med.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')) - ADD_MONTHS (SYSDATE, 5)),
-1,
'Ja',
'Nee'),
'Nee')
rappellijst
FROM (SELECT c.*,
cd.ins_discipline_omschrijving contractsoort,
a.prs_afdeling_naam eigenaar_afd,
eig.prs_perslid_naam_full eigenaar,
beh.prs_perslid_naam_full beheerder,
b.prs_bedrijf_naam contractant
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
prs_afdeling a,
prs_v_perslid_fullnames_all eig,
prs_v_perslid_fullnames_all beh,
prs_v_aanwezigbedrijf b
WHERE c.cnt_contract_looptijd_tot > TRUNC (SYSDATE) -- 23-12-2021/Sandrine Lau (via Chiwai): Alleen actieve contracten (geen verlopen contracten)!
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_eig = eig.prs_perslid_key(+)
AND c.prs_perslid_key_beh = beh.prs_perslid_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN cnt_kenmerkcontract pr
ON x.cnt_contract_key = pr.cnt_contract_key
AND pr.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 14 AND cnt_kenmerk_key = pr.cnt_kenmerk_key) -- Planon referentie
LEFT JOIN cnt_kenmerkcontract gfmh
ON x.cnt_contract_key = gfmh.cnt_contract_key
AND gfmh.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 9 AND cnt_kenmerk_key = gfmh.cnt_kenmerk_key) -- Gemanaged door FMH
LEFT JOIN fac_v_aanwezigusrdata gfmh_ud
ON fac.safe_to_number (gfmh.cnt_kenmerkcontract_waarde) = gfmh_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract biuc
ON x.cnt_contract_key = biuc.cnt_contract_key
AND biuc.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 6 AND cnt_kenmerk_key = biuc.cnt_kenmerk_key) -- Beherende categorie
LEFT JOIN fac_v_aanwezigusrdata biuc_ud
ON fac.safe_to_number (biuc.cnt_kenmerkcontract_waarde) = biuc_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract ap2
ON x.cnt_contract_key = ap2.cnt_contract_key
AND ap2.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 2 AND cnt_kenmerk_key = ap2.cnt_kenmerk_key) -- 2e Aanspreekpunt
LEFT JOIN prs_v_perslid_fullnames_all ap2_pf
ON fac.safe_to_number (ap2.cnt_kenmerkcontract_waarde) = ap2_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract icbm
ON x.cnt_contract_key = icbm.cnt_contract_key
AND icbm.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 10 AND cnt_kenmerk_key = icbm.cnt_kenmerk_key) -- ICB Medewerker#2
LEFT JOIN prs_v_perslid_fullnames_all icbm_pf
ON fac.safe_to_number (icbm.cnt_kenmerkcontract_waarde) = icbm_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract icbs
ON x.cnt_contract_key = icbs.cnt_contract_key
AND icbs.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 11 AND cnt_kenmerk_key = icbs.cnt_kenmerk_key) -- ICB Senior
LEFT JOIN prs_v_perslid_fullnames_all icbs_pf
ON fac.safe_to_number (icbs.cnt_kenmerkcontract_waarde) = icbs_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract adcb
ON x.cnt_contract_key = adcb.cnt_contract_key
AND adcb.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 5 AND cnt_kenmerk_key = adcb.cnt_kenmerk_key) -- Actiedatum contractbeheer
LEFT JOIN cnt_kenmerkcontract ad
ON x.cnt_contract_key = ad.cnt_contract_key
AND ad.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 4 AND cnt_kenmerk_key = ad.cnt_kenmerk_key) -- Actiedatum
LEFT JOIN cnt_kenmerkcontract edsp
ON x.cnt_contract_key = edsp.cnt_contract_key
AND edsp.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 7 AND cnt_kenmerk_key = edsp.cnt_kenmerk_key) -- Einddatum tbv. SPEND
LEFT JOIN cnt_kenmerkcontract ea
ON x.cnt_contract_key = ea.cnt_contract_key
AND ea.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 8 AND cnt_kenmerk_key = ea.cnt_kenmerk_key) -- Europese aanbesteding
LEFT JOIN fac_v_aanwezigusrdata ea_ud
ON fac.safe_to_number (ea.cnt_kenmerkcontract_waarde) = ea_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract vl1
ON x.cnt_contract_key = vl1.cnt_contract_key
AND vl1.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 1 AND cnt_kenmerk_key = vl1.cnt_kenmerk_key) -- 1e verlenging looptijd
LEFT JOIN cnt_kenmerkcontract vl2
ON x.cnt_contract_key = vl2.cnt_contract_key
AND vl2.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 3 AND cnt_kenmerk_key = vl2.cnt_kenmerk_key) -- 2e verlenging looptijd
LEFT JOIN cnt_kenmerkcontract med
ON x.cnt_contract_key = med.cnt_contract_key
AND med.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 12 AND cnt_kenmerk_key = med.cnt_kenmerk_key) -- Maximale einddatum
LEFT JOIN cnt_kenmerkcontract wg
ON x.cnt_contract_key = wg.cnt_contract_key
AND wg.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 15 AND cnt_kenmerk_key = wg.cnt_kenmerk_key) -- Werkgebied
LEFT JOIN fac_v_aanwezigusrdata wg_ud
ON fac.safe_to_number (wg.cnt_kenmerkcontract_waarde) = wg_ud.fac_usrdata_key;
CREATE OR REPLACE VIEW FMHN_V_RAP_CNT_EXPORT
(
contractsoort,
cnt_contract_key,
contractnr,
beschr,
externnr,
mantelnr,
omschr,
contractafd,
aanspreekpunt1,
icbmedewerker1,
opmerking,
status,
ingangsdatum,
rappeldatum,
opzegdatum,
einddatum,
contractant,
planon_bedrijf,
contractbedrag,
planon_ref,
gemanaged_fmh,
beherende_cat,
aanspreekpunt2,
icbmedewerker2,
icb_senior,
actiedatum_beheer,
actiedatum,
einddatum_spend,
europese_aanbest,
verlenging_lt1,
verlenging_lt2,
max_einddatum,
werkgebied,
ingangsdat,
rappeldat,
opzegdat,
einddat,
actiedat_beheer,
actiedat,
einddat_spend,
max_einddat,
rappellijst,
opzegtermijn,
rappeltermijn,
locatie_scope,
notitie_datum,
noteur,
notitie
)
AS
SELECT x.contractsoort,
x.cnt_contract_key,
x.cnt_contract_nummer_intern
|| DECODE (x.cnt_contract_versie,
NULL, '',
'.' || cnt_contract_versie)
contractnr,
x.cnt_contract_omschrijving
beschrijving,
x.cnt_contract_nummer
externnr,
NULL
mantelnr, -- Geen mantels, dus altijd NULL!
x.cnt_contract_document
omschrijving,
x.eigenaar_afd,
x.eigenaar,
x.beheerder,
x.cnt_contract_opmerking
opmerking,
DECODE (x.cnt_contract_status,
1, 'Gesloten',
2, 'Nieuw',
3, 'Ter goedkeuring',
'Definitief')
status,
TO_CHAR (x.cnt_contract_looptijd_van, 'dd-mm-yyyy')
ingangsdat,
TO_CHAR (cnt.cnt_getRappeldatum (x.cnt_contract_key),
'dd-mm-yyyy')
rappeldat,
TO_CHAR (cnt.cnt_getOpzegdatum (x.cnt_contract_key), 'dd-mm-yyyy')
opzegdat,
TO_CHAR (x.cnt_contract_looptijd_tot, 'dd-mm-yyyy')
einddat,
x.contractant,
x.planon_bedrijf,
TO_CHAR (x.cnt_contract_kosten)
contractbedrag,
pr.cnt_kenmerkcontract_waarde
planon_referentie,
gfmh_ud.fac_usrdata_omschr
gemanaged_fmh,
biuc_ud.fac_usrdata_omschr
beherende_cat,
ap2_pf.prs_perslid_naam_full
aanspreekpunt2,
icbm_pf.prs_perslid_naam_full
icb_medewerker,
icbs_pf.prs_perslid_naam_full
icb_senior,
adcb.cnt_kenmerkcontract_waarde
actiedat_beheer,
ad.cnt_kenmerkcontract_waarde
actiedat,
edsp.cnt_kenmerkcontract_waarde
einddat_spend,
ea_ud.fac_usrdata_omschr
europese_aanbest,
vl1.cnt_kenmerkcontract_waarde
verlenging_lt1,
vl2.cnt_kenmerkcontract_waarde
verlenging_lt2,
med.cnt_kenmerkcontract_waarde
max_einddat,
wg_ud.fac_usrdata_omschr
werkgebied,
x.cnt_contract_looptijd_van
ingangsdat2,
cnt.cnt_getRappeldatum (x.cnt_contract_key)
rappeldat2,
cnt.cnt_getOpzegdatum (x.cnt_contract_key)
opzegdat2,
x.cnt_contract_looptijd_tot
einddat2,
fac.safe_to_date (adcb.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
actiedat_beheer2,
fac.safe_to_date (ad.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
actiedat2,
fac.safe_to_date (edsp.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
einddat_spend2,
fac.safe_to_date (med.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
max_einddat2,
--DECODE (SIGN (LEAST (x.cnt_contract_looptijd_tot, fac.safe_to_date (med.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')) - ADD_MONTHS (SYSDATE, 5)), -1, 'Ja', 'Nee')
DECODE (
SIGN (x.cnt_contract_looptijd_tot - SYSDATE),
1, -- Contract niet verlopen!
DECODE (
SIGN (
LEAST (
x.cnt_contract_looptijd_tot,
fac.safe_to_date (
med.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'))
- ADD_MONTHS (SYSDATE, 5)),
-1, 'Ja',
'Nee'),
'Nee')
rappellijst,
x.opzegtermijn,
x.rappeltermijn,
x.locatie_scope,
x.notitie_datum,
x.noteur,
x.notitie
FROM (SELECT c.*,
opzt.cnt_termijn_omschrijving
AS opzegtermijn,
rapt.cnt_termijn_omschrijving
AS rappeltermijn,
cd.ins_discipline_omschrijving
contractsoort,
a.prs_afdeling_naam
eigenaar_afd,
eig.prs_perslid_naam_full
eigenaar,
beh.prs_perslid_naam_full
beheerder,
b.prs_bedrijf_naam
contractant,
(SELECT LISTAGG (ls.locatie, ';')
WITHIN GROUP (ORDER BY ls.locatie) AS locatie
FROM (SELECT cp.cnt_contract_plaats_key,
l.alg_locatie_key,
l.alg_locatie_code
|| ' ('
|| l.alg_locatie_omschrijving
|| ')' AS locatie
FROM cnt_contract_plaats cp, alg_locatie l
WHERE cp.cnt_alg_plaats_code = 'L'
AND cp.cnt_alg_plaats_key =
l.alg_locatie_key
AND cp.cnt_contract_key =
c.cnt_contract_key
UNION ALL
SELECT cp.cnt_contract_plaats_key,
l.alg_locatie_key,
l.alg_locatie_code
|| ' ('
|| l.alg_locatie_omschrijving
|| ')' AS locatie
FROM cnt_contract_plaats cp,
alg_locatie l,
alg_gebouw g
WHERE cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key =
g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND cp.cnt_contract_key =
c.cnt_contract_key) ls)
locatie_scope,
cn.cnt_contract_note_aanmaak
AS notitie_datum,
(SELECT (prs_perslid_naam_friendly || ' - ')
FROM prs_v_perslid_fullnames_all p
WHERE p.prs_perslid_key = cn.prs_perslid_key)
AS noteur,
cn.cnt_contract_note_omschrijving
AS notitie,
(SELECT pbdr.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract pbdr, cnt_kenmerk pbdr_km
WHERE pbdr.cnt_kenmerkcontract_verwijder IS NULL
AND pbdr_km.cnt_kenmerk_verwijder IS NULL
AND pbdr_km.cnt_srtkenmerk_key = 13
AND pbdr_km.cnt_kenmerk_key = pbdr.cnt_kenmerk_key
AND pbdr.cnt_contract_key = c.cnt_contract_key)
AS planon_bedrijf
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
prs_afdeling a,
prs_v_perslid_fullnames_all eig,
prs_v_perslid_fullnames_all beh,
cnt_termijn rapt,
cnt_termijn opzt,
prs_v_aanwezigbedrijf b,
cnt_contract_note cn
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_eig = eig.prs_perslid_key(+)
AND c.prs_perslid_key_beh = beh.prs_perslid_key(+)
AND c.cnt_contract_rappeltermijn = rapt.cnt_termijn_key(+)
AND c.cnt_contract_opzegtermijn = opzt.cnt_termijn_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = cn.cnt_contract_key(+)) x
LEFT JOIN cnt_kenmerkcontract pr
ON x.cnt_contract_key = pr.cnt_contract_key
AND pr.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 14
AND cnt_kenmerk_key = pr.cnt_kenmerk_key) -- Planon referentie
LEFT JOIN cnt_kenmerkcontract gfmh
ON x.cnt_contract_key = gfmh.cnt_contract_key
AND gfmh.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 9
AND cnt_kenmerk_key = gfmh.cnt_kenmerk_key) -- Gemanaged door FMH
LEFT JOIN fac_v_aanwezigusrdata gfmh_ud
ON fac.safe_to_number (gfmh.cnt_kenmerkcontract_waarde) =
gfmh_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract biuc
ON x.cnt_contract_key = biuc.cnt_contract_key
AND biuc.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 6
AND cnt_kenmerk_key = biuc.cnt_kenmerk_key) -- Beherende categorie
LEFT JOIN fac_v_aanwezigusrdata biuc_ud
ON fac.safe_to_number (biuc.cnt_kenmerkcontract_waarde) =
biuc_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract ap2
ON x.cnt_contract_key = ap2.cnt_contract_key
AND ap2.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 2
AND cnt_kenmerk_key = ap2.cnt_kenmerk_key) -- 2e Aanspreekpunt
LEFT JOIN prs_v_perslid_fullnames_all ap2_pf
ON fac.safe_to_number (ap2.cnt_kenmerkcontract_waarde) =
ap2_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract icbm
ON x.cnt_contract_key = icbm.cnt_contract_key
AND icbm.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 10
AND cnt_kenmerk_key = icbm.cnt_kenmerk_key) -- ICB Medewerker#2
LEFT JOIN prs_v_perslid_fullnames_all icbm_pf
ON fac.safe_to_number (icbm.cnt_kenmerkcontract_waarde) =
icbm_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract icbs
ON x.cnt_contract_key = icbs.cnt_contract_key
AND icbs.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 11
AND cnt_kenmerk_key = icbs.cnt_kenmerk_key) -- ICB Senior
LEFT JOIN prs_v_perslid_fullnames_all icbs_pf
ON fac.safe_to_number (icbs.cnt_kenmerkcontract_waarde) =
icbs_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract adcb
ON x.cnt_contract_key = adcb.cnt_contract_key
AND adcb.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 5
AND cnt_kenmerk_key = adcb.cnt_kenmerk_key) -- Actiedatum contractbeheer
LEFT JOIN cnt_kenmerkcontract ad
ON x.cnt_contract_key = ad.cnt_contract_key
AND ad.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 4
AND cnt_kenmerk_key = ad.cnt_kenmerk_key) -- Actiedatum
LEFT JOIN cnt_kenmerkcontract edsp
ON x.cnt_contract_key = edsp.cnt_contract_key
AND edsp.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 7
AND cnt_kenmerk_key = edsp.cnt_kenmerk_key) -- Einddatum tbv. SPEND
LEFT JOIN cnt_kenmerkcontract ea
ON x.cnt_contract_key = ea.cnt_contract_key
AND ea.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 8
AND cnt_kenmerk_key = ea.cnt_kenmerk_key) -- Europese aanbesteding
LEFT JOIN fac_v_aanwezigusrdata ea_ud
ON fac.safe_to_number (ea.cnt_kenmerkcontract_waarde) =
ea_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract vl1
ON x.cnt_contract_key = vl1.cnt_contract_key
AND vl1.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 1
AND cnt_kenmerk_key = vl1.cnt_kenmerk_key) -- 1e verlenging looptijd
LEFT JOIN cnt_kenmerkcontract vl2
ON x.cnt_contract_key = vl2.cnt_contract_key
AND vl2.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 3
AND cnt_kenmerk_key = vl2.cnt_kenmerk_key) -- 2e verlenging looptijd
LEFT JOIN cnt_kenmerkcontract med
ON x.cnt_contract_key = med.cnt_contract_key
AND med.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 12
AND cnt_kenmerk_key = med.cnt_kenmerk_key) -- Maximale einddatum
LEFT JOIN cnt_kenmerkcontract wg
ON x.cnt_contract_key = wg.cnt_contract_key
AND wg.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE cnt_kenmerk_verwijder IS NULL
AND cnt_srtkenmerk_key = 15
AND cnt_kenmerk_key = wg.cnt_kenmerk_key) -- Werkgebied
LEFT JOIN fac_v_aanwezigusrdata wg_ud
ON fac.safe_to_number (wg.cnt_kenmerkcontract_waarde) =
wg_ud.fac_usrdata_key;
/*
CREATE OR REPLACE VIEW FMHN_V_RAP_CNT_RAPPELLIJST
(
contractsoort,
cnt_contract_key,
contractnr,
beschr,
externnr,
mantelnr,
omschr,
--dienst,
contractafd,
aanspreekpunt1,
icbmedewerker1,
opmerking,
status,
ingangsdatum,
rappeldatum,
opzegdatum,
einddatum,
contractant,
--contactnaam,
--kostenplaatscode
--kostenplaatsomschr,
contractbedrag,
--termijnbedrag,
--uurtarief,
--korting,
--locatiegebouw,
--verlengen,
planon_ref,
gemanaged_fmh,
beherende_cat,
aanspreekpunt2,
icbmedewerker2,
icb_senior,
actiedatum_beheer,
actiedatum,
einddatum_spend,
europese_aanbest,
verlenging_lt1,
verlenging_lt2,
max_einddatum,
werkgebied,
ingangsdat,
rappeldat,
opzegdat,
einddat,
actiedat_beheer,
actiedat,
einddat_spend,
max_einddat
)
AS
SELECT x.contractsoort,
x.cnt_contract_key,
x.cnt_contract_nummer_intern || DECODE (x.cnt_contract_versie, NULL, '', '.' || cnt_contract_versie) contractnr,
x.cnt_contract_omschrijving beschrijving,
x.cnt_contract_nummer externnr,
x.mantelnr,
x.cnt_contract_document omschrijving,
--x.dienst,
x.eigenaar_afd,
x.eigenaar,
x.beheerder,
x.cnt_contract_opmerking opmerking,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') status,
TO_CHAR (x.cnt_contract_looptijd_van, 'dd-mm-yyyy') ingangsdat,
TO_CHAR (cnt.cnt_getRappeldatum (x.cnt_contract_key), 'dd-mm-yyyy') rappeldat,
TO_CHAR (cnt.cnt_getOpzegdatum (x.cnt_contract_key), 'dd-mm-yyyy') opzegdat,
TO_CHAR (x.cnt_contract_looptijd_tot, 'dd-mm-yyyy') einddat,
x.contractant,
--x.contactnaam,
--x.kostenplaatscode,
--x.kostenplaatsomschr,
TO_CHAR (x.cnt_contract_kosten) contractbedrag,
--TO_CHAR (x.cnt_contract_termijnkosten) termijnbedrag,
--TO_CHAR (x.cnt_contract_uurloon) uurtarief,
--TO_CHAR (x.cnt_contract_korting) korting,
--x.plaats locatiegebouw,
--TO_CHAR (x.cnt_contract_verlenging) verlengen,
pr.cnt_kenmerkcontract_waarde planon_referentie,
--pb.cnt_kenmerkcontract_waarde planon_bedrijf,
gfmh_ud.fac_usrdata_omschr gemanaged_fmh,
biuc_ud.fac_usrdata_omschr beherende_cat,
ap2_pf.prs_perslid_naam_full aanspreekpunt2,
icbm_pf.prs_perslid_naam_full icb_medewerker,
icbs_pf.prs_perslid_naam_full icb_senior,
adcb.cnt_kenmerkcontract_waarde actiedat_beheer,
ad.cnt_kenmerkcontract_waarde actiedat,
edsp.cnt_kenmerkcontract_waarde einddat_spend,
ea_ud.fac_usrdata_omschr europese_aanbest,
vl1.cnt_kenmerkcontract_waarde verlenging_lt1,
vl2.cnt_kenmerkcontract_waarde verlenging_lt2,
med.cnt_kenmerkcontract_waarde max_einddat,
wg_ud.fac_usrdata_omschr werkgebied,
x.cnt_contract_looptijd_van ingangsdat2,
cnt.cnt_getRappeldatum (x.cnt_contract_key) rappeldat2,
cnt.cnt_getOpzegdatum (x.cnt_contract_key) opzegdat2,
x.cnt_contract_looptijd_tot einddat2,
fac.safe_to_date (adcb.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') actiedat_beheer2,
fac.safe_to_date (ad.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') actiedat2,
fac.safe_to_date (edsp.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') einddat_spend2,
fac.safe_to_date (med.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') max_einddat2,
DECODE (SIGN (LEAST (x.cnt_contract_looptijd_tot, fac.safe_to_date (med.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')) - ADD_MONTHS (SYSDATE, 5)), -1, 'Nee', 'Ja') rappellijst
FROM (SELECT c.*,
cd.ins_discipline_omschrijving contractsoort,
cm.cnt_contract_nummer_intern mantelnr,
--d.prs_dienst_omschrijving dienst,
a.prs_afdeling_naam eigenaar_afd,
eig.prs_perslid_naam_full eigenaar,
beh.prs_perslid_naam_full beheerder,
b.prs_bedrijf_naam contractant
--cp.prs_contactpersoon_naam contactnaam,
--kp.prs_kostenplaats_nr kostenplaatscode,
--kp.prs_kostenplaats_omschrijving kostenplaatsomschr,
--p.plaats
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
cnt_v_aanwezigcontract cm,
--prs_dienst d,
prs_afdeling a,
prs_v_perslid_fullnames_all eig,
prs_v_perslid_fullnames_all beh,
prs_v_aanwezigbedrijf b
--prs_contactpersoon cp,
--prs_kostenplaats kp,
--(SELECT DISTINCT
-- cp.cnt_contract_key,
-- COALESCE (l.alg_locatie_code, g.alg_gebouw_code) plaats
-- FROM cnt_contract_plaats cp
-- LEFT JOIN alg_v_aanweziglocatie l
-- ON cp.cnt_alg_plaats_key = l.alg_locatie_key
-- AND cp.cnt_alg_plaats_code = 'L'
-- LEFT JOIN alg_v_aanweziggebouw g
-- ON cp.cnt_alg_plaats_key = g.alg_gebouw_key
-- AND cp.cnt_alg_plaats_code = 'G'
-- WHERE cp.cnt_contract_plaats_verwijder IS NULL) p
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_contract_mantel_key = cm.cnt_contract_key(+)
--AND c.prs_dienst_key = d.prs_dienst_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_eig = eig.prs_perslid_key(+)
AND c.prs_perslid_key_beh = beh.prs_perslid_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
--AND c.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
--AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
--AND c.cnt_contract_key = p.cnt_contract_key(+)
) x
LEFT JOIN cnt_kenmerkcontract pr
ON x.cnt_contract_key = pr.cnt_contract_key
AND pr.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 14 AND cnt_kenmerk_key = pr.cnt_kenmerk_key) -- Planon referentie
--LEFT JOIN cnt_kenmerkcontract pb
-- ON x.cnt_contract_key = pb.cnt_contract_key
-- AND pb.cnt_kenmerkcontract_verwijder IS NULL
-- AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 13 AND cnt_kenmerk_key = pb.cnt_kenmerk_key) -- Planon bedrijf
LEFT JOIN cnt_kenmerkcontract gfmh
ON x.cnt_contract_key = gfmh.cnt_contract_key
AND gfmh.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 9 AND cnt_kenmerk_key = gfmh.cnt_kenmerk_key) -- Gemanaged door FMH
LEFT JOIN fac_v_aanwezigusrdata gfmh_ud
ON fac.safe_to_number (gfmh.cnt_kenmerkcontract_waarde) = gfmh_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract biuc
ON x.cnt_contract_key = biuc.cnt_contract_key
AND biuc.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 6 AND cnt_kenmerk_key = biuc.cnt_kenmerk_key) -- Beherende categorie
LEFT JOIN fac_v_aanwezigusrdata biuc_ud
ON fac.safe_to_number (biuc.cnt_kenmerkcontract_waarde) = biuc_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract ap2
ON x.cnt_contract_key = ap2.cnt_contract_key
AND ap2.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 2 AND cnt_kenmerk_key = ap2.cnt_kenmerk_key) -- 2e Aanspreekpunt
LEFT JOIN prs_v_perslid_fullnames_all ap2_pf
ON fac.safe_to_number (ap2.cnt_kenmerkcontract_waarde) = ap2_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract icbm
ON x.cnt_contract_key = icbm.cnt_contract_key
AND icbm.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 10 AND cnt_kenmerk_key = icbm.cnt_kenmerk_key) -- ICB Medewerker#2
LEFT JOIN prs_v_perslid_fullnames_all icbm_pf
ON fac.safe_to_number (icbm.cnt_kenmerkcontract_waarde) = icbm_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract icbs
ON x.cnt_contract_key = icbs.cnt_contract_key
AND icbs.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 11 AND cnt_kenmerk_key = icbs.cnt_kenmerk_key) -- ICB Senior
LEFT JOIN prs_v_perslid_fullnames_all icbs_pf
ON fac.safe_to_number (icbs.cnt_kenmerkcontract_waarde) = icbs_pf.prs_perslid_key
LEFT JOIN cnt_kenmerkcontract adcb
ON x.cnt_contract_key = adcb.cnt_contract_key
AND adcb.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 5 AND cnt_kenmerk_key = adcb.cnt_kenmerk_key) -- Actiedatum contractbeheer
LEFT JOIN cnt_kenmerkcontract ad
ON x.cnt_contract_key = ad.cnt_contract_key
AND ad.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 4 AND cnt_kenmerk_key = ad.cnt_kenmerk_key) -- Actiedatum
LEFT JOIN cnt_kenmerkcontract edsp
ON x.cnt_contract_key = edsp.cnt_contract_key
AND edsp.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 7 AND cnt_kenmerk_key = edsp.cnt_kenmerk_key) -- Einddatum tbv. SPEND
LEFT JOIN cnt_kenmerkcontract ea
ON x.cnt_contract_key = ea.cnt_contract_key
AND ea.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 8 AND cnt_kenmerk_key = ea.cnt_kenmerk_key) -- Europese aanbesteding
LEFT JOIN fac_v_aanwezigusrdata ea_ud
ON fac.safe_to_number (ea.cnt_kenmerkcontract_waarde) = ea_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract vl1
ON x.cnt_contract_key = vl1.cnt_contract_key
AND vl1.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 1 AND cnt_kenmerk_key = vl1.cnt_kenmerk_key) -- 1e verlenging looptijd
LEFT JOIN cnt_kenmerkcontract vl2
ON x.cnt_contract_key = vl2.cnt_contract_key
AND vl2.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 2 AND cnt_kenmerk_key = vl2.cnt_kenmerk_key) -- 2e verlenging looptijd
LEFT JOIN cnt_kenmerkcontract med
ON x.cnt_contract_key = med.cnt_contract_key
AND med.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 12 AND cnt_kenmerk_key = med.cnt_kenmerk_key) -- Maximale einddatum
LEFT JOIN cnt_kenmerkcontract wg
ON x.cnt_contract_key = wg.cnt_contract_key
AND wg.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 15 AND cnt_kenmerk_key = wg.cnt_kenmerk_key) -- Werkgebied
LEFT JOIN fac_v_aanwezigusrdata wg_ud
ON fac.safe_to_number (wg.cnt_kenmerkcontract_waarde) = wg_ud.fac_usrdata_key;
*/
CREATE OR REPLACE VIEW FMHN_V_NOTI_CNTREMINDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
PAR1,
PAR2,
XKEY
--XEMAIL,
--XMOBILE,
--FAC_SRTNOTIFICATIE_KEY,
--ATTACHMENTS,
--XSENDER,
--PRS_BEDRIJFADRES_KEY
)
AS -- Op Rappeltermijn voor Actiedatum naar 1e Aanspreekpunt
SELECT 'CNTMAI',
NULL,
c.prs_perslid_key_eig,
'Actie: Contract ' || c.cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|| ' ' || b.prs_bedrijf_naam || ' ' || c.cnt_contract_omschrijving,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
fac.safe_to_date (kc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'),
NULL
--NULL xemail,
--NULL xmobile,
--NULL fac_srtnotificatie_key,
--NULL attachments,
--NULL xsender,
--NULL prs_bedrijfadres_key
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_termijn ct,
--(SELECT * FROM cnt_kenmerkcontract WHERE cnt_kenmerkcontract_verwijder IS NULL AND cnt_kenmerk_key IN (19, 20, 17, 18, 65, 83)) kc, -- Actiedatum contractbeheer
(SELECT * FROM cnt_kenmerkcontract WHERE cnt_kenmerkcontract_verwijder IS NULL AND cnt_kenmerk_key IN (13, 15, 14, 16, 64, 84)) kc -- Actiedatum
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_rappeltermijn = ct.cnt_termijn_key
AND c.cnt_contract_key = kc.cnt_contract_key
AND TRUNC (DECODE (ct.cnt_termijn_type,
'W', SYSDATE + (ct.cnt_termijn_aantal * 7),
'M', ADD_MONTHS (SYSDATE, ct.cnt_termijn_aantal),
'Y', ADD_MONTHS (SYSDATE, ct.cnt_termijn_aantal * 12),
SYSDATE + ct.cnt_termijn_aantal)) = fac.safe_to_date (kc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
UNION -- Op Rappeldatum naar 1e Aanspreekpunt
SELECT 'CNTMAI',
NULL,
c.prs_perslid_key_eig,
'Rappel: Contract ' || c.cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|| ' ' || b.prs_bedrijf_naam || ' ' || c.cnt_contract_omschrijving,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
--NULL xemail,
--NULL xmobile,
--NULL fac_srtnotificatie_key,
--NULL attachments,
--NULL xsender,
--NULL prs_bedrijfadres_key
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE);
-- Koppeling Sentido tbv. Hoftoren!
CREATE OR REPLACE VIEW fmhn_v_api_sentido
AS
SELECT TO_CHAR (rr.res_rsv_ruimte_van, 'YYYYMMDD-HH24MI') || TO_CHAR (rr.res_rsv_ruimte_tot, ',YYYYMMDD-HH24MI')
srt,
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr nummer,
TO_CHAR (rr.res_rsv_ruimte_van, 'YYYY-MM-DD HH24:MI:SS') van,
TO_CHAR (rr.res_rsv_ruimte_tot, 'YYYY-MM-DD HH24:MI:SS') tot,
rr.res_rsv_ruimte_omschrijving omschrijving,
pf.prs_perslid_naam_full host,
TRIM (r.res_ruimte_nr) ruimte,
r.res_ruimte_key ruimte_key
FROM res_rsv_ruimte rr, res_ruimte_opstelling ro, res_ruimte r, prs_v_perslid_fullnames pf
WHERE rr.res_rsv_ruimte_verwijder IS NULL
AND rr.res_status_fo_key NOT IN (3, 4)
AND COALESCE (rr.res_rsv_ruimte_bezoekers_shown, rr.res_rsv_ruimte_noshow) IS NULL
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = r.res_ruimte_key
AND EXISTS
(SELECT 1
FROM res_alg_ruimte ar, alg_v_onroerendgoed aog
WHERE ar.res_ruimte_key = r.res_ruimte_key
AND ar.alg_ruimte_key = aog.alg_onroerendgoed_keys
AND aog.alg_type = 'R'
AND alg_gebouw_key = 4) -- Hoftoren
AND rr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND TRUNC (rr.res_rsv_ruimte_van) BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 3);
/*
-- Rapportje met res_ruimte-gegevens, inclusief volledige URL naar de booking
-- pagina van de door Sentido te genereren QR-code.
CREATE OR REPLACE VIEW fmhn_v_rap_ruimtes_sentido
AS
SELECT res_ruimte_key ruimte_key,
res_ruimte_nr ruimte_nr,
'https://fmhn.facilitor.nl/?u=xxx&'||'res_ruimte_key=' || res_ruimte_key ruimte_url
FROM res_v_aanwezigruimte;
*/
-- Koppeling Smart Signs tbv. Turfmarkt (en Resident)!
/*
CREATE OR REPLACE VIEW pnbr_v_rap_dagstaat
(
res_rsv_ruimte_key,
res_rsv_ruimte_omschrijving,
res_rsv_ruimte_van,
res_rsv_ruimte_tot,
res_rsv_ruimte_bezoekers,
res_ruimte_key,
res_ruimte_nr
)
AS
SELECT r.res_rsv_ruimte_key,
res_rsv_ruimte_omschrijving,
TO_CHAR (r.res_rsv_ruimte_van, 'yyyy-mm-dd')
|| 'T'
|| TO_CHAR (r.res_rsv_ruimte_van, 'hh24:mi:ss'),
TO_CHAR (r.res_rsv_ruimte_tot, 'yyyy-mm-dd')
|| 'T'
|| TO_CHAR (r.res_rsv_ruimte_tot, 'hh24:mi:ss'),
COALESCE (res_rsv_ruimte_bezoekers, 0),
rr.res_ruimte_key,
DECODE (
INSTR (res_ruimte_nr, '('),
0, res_ruimte_nr,
SUBSTR (
res_ruimte_nr,
INSTR (res_ruimte_nr, '(') + 1,
INSTR (res_ruimte_nr, ')')
- INSTR (res_ruimte_nr, '(')
- 1))
FROM res_rsv_ruimte r,
res_ruimte_opstelling rro,
res_ruimte rr,
(SELECT rrr.res_rsv_ruimte_key,
(SELECT w.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde w, res_kenmerk k
WHERE w.res_kenmerk_key = k.res_kenmerk_key
AND w.res_kenmerk_key = k.res_kenmerk_key
AND rrr.res_rsv_ruimte_key = w.res_rsv_ruimte_key
AND k.res_srtkenmerk_key = 1 -- zichtbaar op planbord
AND k.res_activiteit_key = rrr.res_activiteit_key) res_kenmerkreservering_waarde
FROM res_rsv_ruimte rrr) ds
WHERE r.res_rsv_ruimte_verwijder IS NULL
AND r.res_status_fo_key = 2
AND r.res_rsv_ruimte_key = ds.res_rsv_ruimte_key
AND r.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND ( fac.safe_to_number (ds.res_kenmerkreservering_waarde) = 2
OR r.res_rsv_ruimte_contact_key = 30064) -- SmartSigns user
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE);
CREATE OR REPLACE VIEW PNBR_V_RAP_DAGSTAAT_BRON
(
FCLT_D_DATUM,
DAGVWEEK,
MAAND,
DAG,
JAAR,
NUMMER,
TIJDSORT,
RUIMTE_VAN,
RUIMTE_TOT,
BEZOEKERS,
ACTIVITEIT,
OMSCHRIJVING,
OPMERKING,
RUIMTE,
VERDIEPING,
LOCATIE,
MELDER,
TELEFOON,
KOSTENPLAATS,
BEGRPOST,
BESTELNR,
OPSTELLING,
AANTALCATERING,
V_VAN,
V_TOT,
V_OMSCHRIJVING,
V_AANTAL,
V_PRIJS,
V_TOTAAL,
GS,
CDK,
RES_RSV_RUIMTE_KEY,
RES_DISCIPLINE_KEY,
RES_BESNR_CATERAAR,
PROJECTMGR_EVENEMENT,
LM_MUT,
LM_DEL
)
AS
SELECT TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy')
datum,
DECODE (TO_CHAR (res_rsv_ruimte_van, 'd'),
1, 'zondag',
2, 'maandag',
3, 'dinsdag',
4, 'woensdag',
5, 'donderdag',
6, 'vrijdag',
7, 'zaterdag')
dagvweek,
DECODE (TO_CHAR (res_rsv_ruimte_van, 'mm'),
1, 'januari',
2, 'februari',
3, 'maart',
4, 'april',
5, 'mei',
6, 'juni',
7, 'juli',
8, 'augustus',
9, 'september',
10, 'oktober',
11, 'november',
12, 'december')
maand,
TO_CHAR (res_rsv_ruimte_van, 'dd')
dag,
TO_CHAR (res_rsv_ruimte_van, 'yyyy')
jaar,
res_reservering_key || '/' || res_rsv_ruimte_volgnr
nummer,
TO_CHAR (res_rsv_ruimte_van, 'yyyymmddhh24mi')
tijdsort,
TO_CHAR (res_rsv_ruimte_van, 'hh24:mi')
ruimte_van,
TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi')
ruimte_tot,
res_rsv_ruimte_bezoekers
bezoekers,
res_activiteit_omschrijving,
DECODE (
rrr.res_activiteit_key,
150, 'GEBAK '
|| (SELECT ud.fac_usrdata_omschr
FROM res_kenmerkwaarde rk, fac_usrdata ud
WHERE rk.res_kenmerk_key = 262
AND ud.fac_usrtab_key = 1943 -- kenmerk + usertab zakelijk/prive
AND ud.fac_usrdata_key =
fac.safe_to_number (
rk.res_kenmerkreservering_waarde)
AND rk.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key),
UPPER (res_rsv_ruimte_omschrijving)),
res_rsv_ruimte_opmerking
opmerking,
COALESCE (
(SELECT res_ruimte_nr
FROM res_v_ruimte_opstel_gegevens rog
WHERE rog.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key),
(SELECT MAX (alg_ruimte_aanduiding)
FROM alg_v_ruimte_gegevens rg
WHERE rrr.alg_ruimte_key = rg.alg_ruimte_key))
ruimte,
vg.alg_verdieping_omschrijving
verdieping,
vg.alg_locatie_omschrijving
locatie,
prs_perslid_naam_full
melder,
COALESCE (prs_perslid_telefoonnr, prs_perslid_mobiel)
telefoon,
k.prs_kostenplaats_nr
kostenplaats,
COALESCE (bp_extra.waarde, bp.waarde)
begrpost,
bnk.waarde
bestelnr,
(SELECT rog.res_opstelling_omschrijving
FROM res_v_ruimte_opstel_gegevens rog
WHERE rog.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key)
opstelling,
(SELECT COUNT (*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
aantalcatering,
TO_CHAR (v.van, 'hh24:mi')
v_van,
v.tot
v_tot,
v.omschrijving
v_omschrijving,
v.aantal
v_aantal,
v.prijs
v_prijs,
COALESCE (v.aantal, 0) * v.prijs
v_totaal,
COALESCE (gs.waarde, '0')
gs,
COALESCE (cdk.waarde, '0')
cdk,
rrr.res_rsv_ruimte_key,
v.res_discipline_key,
kn_bes_cateraar.waarde,
projmngr_evenement.prs_perslid_naam_friendly,
v.lm_mut,
v.lm_del
FROM res_rsv_ruimte rrr,
(SELECT res_rsv_ruimte_key,
res_rsv_artikel_aantal aantal,
res_artikel_prijs prijs,
res_rsv_artikel_levering van,
NULL tot,
ra.res_artikel_omschrijving omschrijving,
ra.res_discipline_key,
CASE
WHEN ( rra.res_rsv_artikel_aanmaak >=
referentie.ref_datum
OR rra.res_rsv_artikel_mutatie >=
referentie.ref_datum)
THEN
'Ja'
ELSE
'Nee'
END LM_MUT,
CASE
WHEN rra.res_rsv_artikel_verwijder >=
referentie.ref_datum
THEN
'Ja'
ELSE
'Nee'
END LM_DEL
FROM res_rsv_artikel rra,
res_artikel ra,
(SELECT fac.safe_to_date (
( TO_CHAR (SYSDATE - 1, 'dd-mm-yyyy')
|| ' 16:00'), -- om te bekijken welke wijzigingen in de catering zijn doorgevoerd na 16 uur
'dd-mm-yyyy HH24:mi') AS ref_datum
FROM DUAL) referentie
WHERE rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_artikel_key = ra.res_artikel_key
UNION ALL
SELECT res_rsv_ruimte_key,
1 aantal,
NULL,
res_rsv_deel_van van,
res_rsv_deel_tot tot,
ins_deel_omschrijving omschrijving,
rd.res_discipline_key,
'' lm_mut, -- dit beoordelen we alleen voor verbuiksartikelen
'' lm_del
FROM res_rsv_deel rrd,
res_deel rd,
ins_deel d,
ins_srtdeel sd
WHERE rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = d.ins_deel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key) v,
(SELECT res_rsv_ruimte_key, fac_usrdata_code waarde
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
WHERE rk.res_srtkenmerk_key = 21
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
fac_usrdata_key) bp,
(SELECT res_rsv_ruimte_key, res_kenmerkreservering_waarde waarde
FROM res_kenmerkwaarde kw, res_kenmerk rk
WHERE rk.res_srtkenmerk_key = 61
AND kw.res_kenmerk_key = rk.res_kenmerk_key) bp_extra,
(SELECT res_rsv_ruimte_key, fac_usrdata_code waarde
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
WHERE rk.res_srtkenmerk_key = 2
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
fac_usrdata_key) gs,
(SELECT res_rsv_ruimte_key, fac_usrdata_code waarde
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
WHERE rk.res_srtkenmerk_key = 22
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
fac_usrdata_key) cdk,
(SELECT res_rsv_ruimte_key, res_kenmerkreservering_waarde waarde
FROM res_kenmerkwaarde kw, res_kenmerk rk
WHERE rk.res_srtkenmerk_key = 281
AND kw.res_kenmerk_key = rk.res_kenmerk_key) bnk,
(SELECT fac_usrdata_omschr waarde, kw.res_rsv_ruimte_key
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
WHERE rk.res_srtkenmerk_key = 441
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
fac_usrdata_key) kn_bes_cateraar,
(SELECT rrr2.res_rsv_ruimte_key,
rg.alg_verdieping_omschrijving,
rg.alg_locatie_omschrijving
FROM alg_v_ruimte_gegevens rg, res_rsv_ruimte rrr2
WHERE rg.alg_ruimte_key =
COALESCE (
rrr2.alg_ruimte_key,
(SELECT MIN (rar.alg_ruimte_key)
FROM res_v_rsv_ruimte_2_alg_ruimte rar
WHERE rar.res_rsv_ruimte_key =
rrr2.res_rsv_ruimte_key))) vg,
(SELECT res_rsv_ruimte_key, p.prs_perslid_naam_friendly
FROM res_kenmerk k,
res_srtkenmerk sk,
res_kenmerkwaarde kw,
prs_v_perslid_fullnames_all p
WHERE k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND fac.safe_to_number (kw.res_kenmerkreservering_waarde) =
p.prs_perslid_key
AND sk.res_srtkenmerk_key = 521) projmngr_evenement,
prs_perslid p,
prs_v_perslid_fullnames pf,
prs_kostenplaats k,
res_activiteit a
WHERE rrr.res_rsv_ruimte_key = v.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_activiteit_key = a.res_activiteit_key
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = vg.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_key = bp.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = bp_extra.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = gs.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = cdk.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = bnk.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key =
projmngr_evenement.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = kn_bes_cateraar.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW pnbr_v_rap_dagstaat_cat
(
fclt_f_datum,
dag,
dagvweek,
maand,
jaar,
nummer,
tijdsort,
ruimte_van,
ruimte_tot,
bezoekers,
activiteit,
omschrijving,
opmerking,
ruimte,
verdieping,
fclt_f_locatie,
melder,
telefoon,
kostenplaats,
begrpost,
bestelnr,
opstelling,
aantalcatering,
v_van,
v_tot,
v_omschrijving,
v_aantal,
v_prijs,
v_totaal,
gs,
cdk,
res_besnr_cateraar,
lm_mut,
lm_del
)
AS
SELECT TO_CHAR (TO_DATE (fclt_d_datum, 'dd-mm-yyyy'), 'yyyy-mm-dd')
|| ' ('
|| dagvweek
|| ')',
dag,
dagvweek,
maand,
jaar,
nummer,
tijdsort,
ruimte_van,
ruimte_tot,
bezoekers,
activiteit,
omschrijving,
opmerking,
ruimte,
verdieping,
locatie,
melder,
telefoon,
kostenplaats,
begrpost,
bestelnr,
opstelling,
aantalcatering,
v_van,
v_tot,
v_omschrijving,
v_aantal,
v_prijs,
v_totaal,
gs,
cdk,
res_besnr_cateraar,
LM_MUT,
LM_DEL
FROM pnbr_v_rap_dagstaat_bron
WHERE TO_DATE (fclt_d_datum, 'dd-mm-yyyy') BETWEEN TRUNC (SYSDATE - 5)
AND TRUNC (SYSDATE + 10);
CREATE OR REPLACE VIEW pnbr_v_rap_dagstaat_even
(
fclt_d_datum,
dag,
dagvweek,
maand,
jaar,
nummer,
tijdsort,
ruimte_van,
ruimte_tot,
bezoekers,
activiteit,
omschrijving,
opmerking,
ruimte,
verdieping,
melder,
telefoon,
kostenplaats,
begrpost,
bestelnr,
opstelling,
v_van,
v_tot,
v_omschrijving,
v_aantal,
v_prijs,
v_totaal,
gs,
cdk,
res_besnr_cateraar,
projectmgr_evenement
)
AS
SELECT fclt_d_datum,
dag,
dagvweek,
maand,
jaar,
nummer,
tijdsort,
ruimte_van,
ruimte_tot,
bezoekers,
activiteit,
omschrijving,
opmerking,
ruimte,
verdieping,
melder,
telefoon,
kostenplaats,
begrpost,
bestelnr,
opstelling,
v_van,
v_tot,
v_omschrijving,
v_aantal,
v_prijs,
v_totaal,
gs,
cdk,
res_besnr_cateraar,
projectmgr_evenement
FROM pnbr_v_rap_dagstaat_bron b
WHERE activiteit = 'Evenement'
OR EXISTS -- of reserveringen met catering die de klant niet zelf mag bestellen
(SELECT res_rsv_ruimte_key
FROM pnbr_v_rap_dagstaat_bron b2, ins_tab_discipline d
WHERE b2.res_discipline_key IS NOT NULL
AND d.ins_discipline_min_level = 2
AND b2.res_discipline_key = d.ins_discipline_key
AND b.res_rsv_ruimte_key = b2.res_rsv_ruimte_key);
*/
CREATE OR REPLACE VIEW fmhn_v_api_smartsigns
(
van,
tot,
key,
resid,
locatiecode,
gebouwcode,
fclt_3d_gebouw_key,
verdiepingcode,
ruimtecode,
ruimtenaam,
rvck_vnr,
voorziening,
aantal,
prijs,
btw,
act_oms,
srtact_oms,
bezoekers,
fo_status_key,
fo_status,
bo_status_key,
bo_status,
contact,
host,
kostenplaats,
resruimtekey,
algruimtekey,
algruimtenr,
omschrijving,
opmerking,
dagstaat
)
AS
SELECT x.van van_datumtijd,
x.tot tot_datumtijd,
x.res_rsv_ruimte_key res_key,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) res_id,
rvck.loc_code,
rvck.geb_code,
rvck.geb_key,
rvck.ver_code,
rvck.alg_ruimte_nr ruimtecode,
rvck.res_ruimte_nr ruimtenaam,
rvck.vnr,
rvck.voorziening,
rvck.aantal,
ROUND (COALESCE (rvck.res_rsv_prijs, rvck.aantal * rvck.ps), 2) prijs,
rvck.btw,
x.res_activiteit_omschrijving,
x.res_srtactiviteit_omschrijving,
x.res_rsv_ruimte_bezoekers bezoekers,
x.fo_status_key,
DECODE (x.fo_status_key,
1, 'RESOPT',
2, 'RESDEF',
3, 'RESBLK',
'RESDEL')
fo_status,
x.bo_status_key,
x.bo_status_oms,
x.contact_naam,
x.host_naam,
x.kp_nr,
rvck.res_ruimte_key,
rvck.alg_ruimte_key,
rvck.alg_ruimte_nr algruimtenr, -- 2e keer, maar weet niet of gebruikt door Smart Signs?
x.res_rsv_ruimte_omschrijving oms,
x.res_rsv_ruimte_opmerking opm,
--DECODE (x.contact_key,
-- 46, 'Ja', -- _API-user tbv. Smart Signs
-- DECODE (COALESCE ((SELECT res_kenmerkreservering_waarde
-- FROM res_kenmerkwaarde kw, res_kenmerk k
-- WHERE kw.res_kenmerk_key = k.res_kenmerk_key
-- AND k.res_srtkenmerk_key = -1 -- Zichtbaar op dagstaat
-- AND kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key), '1'),
-- '1', 'Nee',
-- 'Ja'))
'Ja' dagstaat
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
a.res_activiteit_key,
a.res_activiteit_omschrijving,
sa.res_srtactiviteit_key,
sa.res_srtactiviteit_omschrijving,
rrr.res_rsv_ruimte_van van,
rrr.res_rsv_ruimte_tot tot,
rrr.res_rsv_ruimte_bezoekers,
fs.res_status_fo_key fo_status_key,
fs.res_status_fo_omschrijving fo_status_oms,
bs.res_status_bo_key bo_status_key,
bs.res_status_bo_omschrijving bo_status_oms,
pfc.prs_perslid_key contact_key,
pfc.prs_perslid_naam_full contact_naam,
pfh.prs_perslid_key host_key,
pfh.prs_perslid_naam_full host_naam,
k.prs_kostenplaats_nr kp_nr,
k.prs_kostenplaats_omschrijving kp_oms,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_opmerking
FROM res_v_aanwezigrsv_ruimte rrr, -- Alleen aanwezige!
res_activiteit a,
res_srtactiviteit sa,
res_status_fo fs,
res_status_bo bs,
prs_v_perslid_fullnames_all pfc,
prs_v_perslid_fullnames_all pfh,
prs_kostenplaats k
WHERE rrr.res_rsv_ruimte_tot > TRUNC (SYSDATE, 'IW') - 7
AND rrr.res_ruimte_opstel_key IS NOT NULL -- Alleen ruimtereserveringen!
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_activiteit_key = a.res_activiteit_key
AND a.res_activiteit_verwijder IS NULL
AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key
AND sa.res_srtactiviteit_verwijder IS NULL
AND rrr.res_status_fo_key = fs.res_status_fo_key
AND rrr.res_status_bo_key = bs.res_status_bo_key
AND rrr.res_rsv_ruimte_contact_key = pfc.prs_perslid_key
AND rrr.res_rsv_ruimte_host_key = pfh.prs_perslid_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
LEFT JOIN
(SELECT rrr.res_rsv_ruimte_key,
l.alg_locatie_code loc_code,
g.alg_gebouw_code geb_code,
g.alg_gebouw_key geb_key,
v.alg_verdieping_code ver_code,
r.alg_ruimte_nr,
rr.res_ruimte_nr,
r.alg_ruimte_key alg_ruimte_key,
rr.res_ruimte_key res_ruimte_key,
TO_NUMBER (NULL) vnr,
ro.res_opstelling_omschrijving voorziening,
ROUND ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 2)
aantal, -- Duur in uren
rrr.res_rsv_ruimte_prijs res_rsv_prijs,
rr.res_ruimte_prijs ps, -- Uurtarief
rr.res_ruimte_prijs_ochtend po,
rr.res_ruimte_prijs_middag pm,
rr.res_ruimte_prijs_avond pa,
NULL btw
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key,
COUNT ( * ) aantal
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
res_opstelling ro
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = rar.res_ruimte_key(+)
AND rar.alg_ruimte_key = r.alg_ruimte_key(+)
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key(+)
AND rro.res_opstelling_key = ro.res_opstelling_key) rvck
ON x.res_rsv_ruimte_key = rvck.res_rsv_ruimte_key
--WHERE alg_gebouw_key IN (3, 5, 6) -- TODO:Turfmarkt 147/Parnassusplein 5 (Resident)/Turfmarkt 244
;
-- Bronview voor alle kosten van catering (tbv. sleutelbestand en noshow)!
CREATE OR REPLACE VIEW fmhn_v_rap_res_cat_all
(
res_rsv_ruimte_key,
res_reservering_key,
res_rsv_ruimte_volgnr,
planonnr,
alg_locatie_key,
alg_gebouw_key,
res_rsv_ruimte_contact_key,
res_rsv_ruimte_host_key,
res_rsv_artikel_levering,
res_rsv_artikel_afgemeld,
res_artikel_key,
--res_artikel_omschrijving,
--res_artikel_eenheid,
--res_artikel_prijs,
--res_artikel_btw,
--res_rsv_artikel_aantal,
res_rsv_artikel_prijs,
kosten_excl,
btw,
productdienstnr, -- nummer?
productdienstnaam, -- categorie?
prs_kostenplaats_key,
prs_kostensoort_key,
status,
noshow,
omschrijving
)
AS
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
planonnr.res_kenmerkreservering_waarde planonnr,
aog.alg_locatie_key,
aog.alg_gebouw_key,
rrr.res_rsv_ruimte_contact_key,
rrr.res_rsv_ruimte_host_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_afgemeld,
ra.res_artikel_key,
--ra.res_artikel_omschrijving,
--ra.res_artikel_eenheid,
--ra.res_artikel_prijs,
--ra.res_artikel_btw,
--rra.res_rsv_artikel_aantal,
rra.res_rsv_artikel_prijs,
res.getartikelprijs (rra.res_rsv_artikel_key) kosten_excl,
--(100 + COALESCE (rra.res_rsv_artikel_btw, 0)) / 100 btw,
(100 + COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw, 0)) / 100 btw, -- Wanneer de reservering nog niet is afgemeld is de BTW nog niet gevuld, dus dan pakken we de artikel BTW.
DECODE (rrr.res_activiteit_key, 11, '2230.01', '1430.02')
productdienstnr, -- nummer?
DECODE (rrr.res_activiteit_key, 11, 'Roomservice', 'Reservering vergaderzalen')
productdienstnaam, -- categorie?
rrr.prs_kostenplaats_key,
rd.prs_kostensoort_key,
s.res_status_bo_omschrijving status,
DECODE (
COALESCE (rrr.res_rsv_ruimte_bezoekers_shown, rrr.res_rsv_ruimte_noshow),
NULL, 'Nee',
'Ja')
noshow,
rrr.res_rsv_ruimte_omschrijving
FROM res_rsv_ruimte rrr,
(SELECT * FROM res_v_aanwezigkenmerkwaarde WHERE res_kenmerk_key IN (21, 22, 23, 24, 363, 368)) planonnr, -- Referentienummer
res_ruimte_opstelling rro,
res_ruimte rr,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
res_rsv_artikel rra,
res_artikel ra,
res_discipline rd,
res_status_bo s
WHERE (rrr.res_rsv_ruimte_verwijder IS NULL
OR (rrr.res_rsv_ruimte_verwijder IS NOT NULL AND rrr.res_status_fo_key = 4))
AND rrr.res_rsv_ruimte_tot > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_key = planonnr.res_rsv_ruimte_key(+)
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND rr.res_ruimte_key = rar1.res_ruimte_key(+)
AND rr.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_rsv_artikel_dirtlevel = 0
--AND COALESCE (rra.res_rsv_artikel_prijs, ra.res_artikel_prijs) <> 0 -- TODO:Reserveringen zonder kosten negeren???
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND rra.res_status_bo_key = s.res_status_bo_key;
-- Mapping van afdeling naar debiteurnummer (via Eigen tabel met key=361)!
-- Kostendrager_vervoer is het kostendrager nummer specifiek voor ritten.
-- LET OP: Debiteurnummers mogen alleen voor afdelingen t/m het 4e niveau
-- van Facilitor (= IDM-level 5) worden gedefinieerd, lager in de
-- boom loopt spaak!!!
-- Vanaf FMHN#82607 wordt er in in Facilitor tot niveau 5 gehanteerd, daarvoor was dit tot niveau 4.
CREATE OR REPLACE VIEW fmhn_v_rap_afd2debnr
AS
SELECT ab.prs_afdeling_key,
(SELECT prs_afdeling_externid FROM prs_afdeling WHERE prs_afdeling_key = ab.prs_afdeling_key)
afdid,
COALESCE (ud5.fac_usrdata_omschr, ud4.fac_usrdata_omschr, ud3.fac_usrdata_omschr, ud2.fac_usrdata_omschr, ud1.fac_usrdata_omschr, ud0.fac_usrdata_omschr)
debiteur,
COALESCE (ud5.fac_usrdata_prijs, ud4.fac_usrdata_prijs, ud3.fac_usrdata_prijs, ud2.fac_usrdata_prijs, ud1.fac_usrdata_prijs, ud0.fac_usrdata_prijs)
kostendrager_vervoer
FROM prs_v_afdeling_boom ab,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1020) mc, -- Ministeriecode (bij Bedrijf)
fac_v_aanwezigusrdata mc_ud,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1021) a0, -- Organisatieonderdeelcode (bij Bedrijf)
prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
prs_afdeling a5,
(SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 361) ud0,
(SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 361) ud1,
(SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 361) ud2,
(SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 361) ud3,
(SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 361) ud4,
(SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 361) ud5
WHERE ab.prs_bedrijf_key = mc.prs_link_key(+)
AND fac.safe_to_number (mc.prs_kenmerklink_waarde) = mc_ud.fac_usrdata_key(+)
AND ab.prs_bedrijf_key = a0.prs_link_key(+)
AND ab.prs_afdeling_key1 = a1.prs_afdeling_key(+)
AND ab.prs_afdeling_key2 = a2.prs_afdeling_key(+)
AND ab.prs_afdeling_key3 = a3.prs_afdeling_key(+)
AND ab.prs_afdeling_key4 = a4.prs_afdeling_key(+)
AND ab.prs_afdeling_key5 = a5.prs_afdeling_key(+)
AND UPPER (mc_ud.fac_usrdata_code || a0.prs_kenmerklink_waarde) = ud0.fac_usrdata_upper(+)
AND a1.prs_afdeling_externid = ud1.fac_usrdata_upper(+)
AND a2.prs_afdeling_externid = ud2.fac_usrdata_upper(+)
AND a3.prs_afdeling_externid = ud3.fac_usrdata_upper(+)
AND a4.prs_afdeling_externid = ud4.fac_usrdata_upper(+)
AND a5.prs_afdeling_externid = ud5.fac_usrdata_upper(+);
-- PRS Fullnames maar dan ook met verwijderde personen i.v.m. historie in facturatie rapportages.
CREATE OR REPLACE VIEW FMHN_V_PERSLID_FULLNAMES_HISTORY
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM_FULL,
PRS_PERSLID_NAAM_FRIENDLY
)
AS
SELECT prs_perslid_key,
prs_perslid_naam
|| DECODE (p.prs_perslid_voorletters,
NULL, '',
', ' || p.prs_perslid_voorletters)
|| DECODE (p.prs_perslid_tussenvoegsel,
NULL, '',
' ' || p.prs_perslid_tussenvoegsel)
|| DECODE (p.prs_perslid_voornaam,
NULL, '',
' (' || p.prs_perslid_voornaam || ')')
prs_perslid_naam_full,
DECODE (p.prs_perslid_voornaam,
NULL, '',
p.prs_perslid_voornaam || ' ')
|| DECODE (p.prs_perslid_tussenvoegsel,
NULL, '',
p.prs_perslid_tussenvoegsel || ' ')
|| prs_perslid_naam
prs_perslid_naam_friendly
FROM prs_perslid p;
-- T.b.v. facturatie en verwerking in Exact van kostendragende RES / BES / MLD
CREATE OR REPLACE VIEW FMHN_V_RAP_SLEUTELBESTAND
(MODULE, DATUM, DATUM_GEREED, GEBOUW, MELDER,
AFDELING, PLANON_NR, NUMMER, PROJECT_NR, PDC_NUMMER,
PDC_NAAM, KOSTEN_INCL, KOSTEN_EXCL, AANVRAAG_VOOR, STATUS,
JAAR, MAAND, ARTIKEL, DIENST, DEPARTEMENT,
DEBITEUR, KOSTENDRAGER, KOSTENPLAATS, NOSHOW, OMSCHRIJVING,
GEKOPPELDE_RES, DATUM_GEKOPPELDE_RES, GEKOPPELDE_OBJ)
AS
SELECT
module,
TRUNC (tab.datum),
TRUNC (tab.datum_gereed),
l.alg_locatie_omschrijving,
pfa.prs_perslid_naam_full aanvrager,
DECODE (
fa.mincode,
'01',
(CASE WHEN idmlevel >= 7 THEN REGEXP_SUBSTR (pad, '^[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*') ELSE pad END),
fa.pad) organisatie,
planonnr,
tab.categorienummer,
(SELECT MAX (alg_onrgoedkenmerk_waarde) -- LET OP:Voorkennis dat <20><>n gebouw per locatie!
FROM alg_gebouw g, alg_v_aanwezigonrgoedkenmerk ok
WHERE g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_key = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1040
AND ok.alg_onrgoed_niveau = 'G'
AND g.alg_locatie_key = l.alg_locatie_key)
projectnummer,
tab.nummer,
tab.categorie,
SUM (tab.bedrag_incl) bedrag_incl,
SUM (tab.bedrag_excl) bedrag_excl,
pfv.prs_perslid_naam_full voor,
tab.status,
TO_CHAR (tab.datum_gereed, 'YYYY') jaar,
TRIM (TO_CHAR (tab.datum_gereed, 'MONTH')) maand,
artikel, -- Artikelnr uit Exact
dienst, -- Dienst uit Exact
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1))
departement,
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1))
debiteur,
(SELECT MAX (alg_onrgoedkenmerk_waarde) -- LET OP:Voorkennis dat <20><>n gebouw per locatie!
FROM alg_gebouw g, alg_v_aanwezigonrgoedkenmerk ok
WHERE g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_key = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1020
AND ok.alg_onrgoed_niveau = 'G'
AND g.alg_locatie_key = l.alg_locatie_key)
kostendrager,
'600-'
|| (SELECT MAX (alg_onrgoedkenmerk_waarde) -- LET OP:Voorkennis dat <20><>n gebouw per locatie!
FROM alg_gebouw g, alg_v_aanwezigonrgoedkenmerk ok
WHERE g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_key = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1020
AND ok.alg_onrgoed_niveau = 'G'
AND g.alg_locatie_key = l.alg_locatie_key)
kostenplaats,
noshow,
omschrijving,
gekoppelde_res,
datum_gekoppelde_res,
gekoppelde_obj
FROM (SELECT COALESCE (prs_kostenplaats_key, (SELECT a.prs_kostenplaats_key FROM prs_afdeling a, prs_perslid p WHERE p.prs_perslid_key = res_rsv_ruimte_host_key AND p.prs_afdeling_key = a.prs_afdeling_key)) prs_kostenplaats_key,
TRUNC (res_rsv_artikel_levering) datum,
COALESCE (res_rsv_artikel_afgemeld, DECODE (status, 'Afgemeld', res_rsv_artikel_levering, 'Verwerkt', res_rsv_artikel_levering, NULL)) datum_gereed,
res_rsv_ruimte_contact_key prs_perslid_key,
res_rsv_ruimte_host_key host_key,
planonnr,
productdienstnr nummer,
productdienstnaam categorie,
TO_CHAR (res_reservering_key)
|| '/'
|| TO_CHAR (res_rsv_ruimte_volgnr)
categorienummer,
CASE
WHEN alg_locatie_key IN (4, 7, 8, 13, 16, 20) -- Livegang 2 was nog met bedragen INCL. BTW voor conversie artikelen
THEN
DECODE (res_artikel_key,
501, res_rsv_artikel_prijs,
561, res_rsv_artikel_prijs,
562, res_rsv_artikel_prijs,
563, res_rsv_artikel_prijs,
kosten_excl * btw)
ELSE
DECODE (res_artikel_key,
501, res_rsv_artikel_prijs,
kosten_excl * btw)
END
bedrag_incl,
CASE
WHEN alg_locatie_key IN (4, 7, 8, 13, 16, 20) -- Livegang 2 was nog met bedragen INCL. BTW voor conversie artikelen
THEN
DECODE (res_artikel_key,
501, res_rsv_artikel_prijs / btw,
561, res_rsv_artikel_prijs / btw,
562, res_rsv_artikel_prijs / btw,
563, res_rsv_artikel_prijs / btw,
kosten_excl)
ELSE
DECODE (res_artikel_key,
501, res_rsv_artikel_prijs / btw,
kosten_excl)
END bedrag_excl,
status,
'Reservering -r' module,
CASE
WHEN alg_locatie_key = 18
THEN '040'
ELSE '602'
END artikel,
'2230.01 Vergaderservice' dienst,
prs_kostensoort_key,
NULL ordernr,
res_reservering_key kostenplaats_item_key,
res_rsv_ruimte_key kostenplaats_item_child_key,
alg_locatie_key locatie_key,
noshow,
omschrijving,
NULL gekoppelde_res,
NULL datum_gekoppelde_res,
NULL gekoppelde_obj
FROM fmhn_v_rap_res_cat_all
WHERE COALESCE (res_rsv_artikel_prijs, kosten_excl) <> 0
UNION ALL
SELECT mld.*
FROM
(SELECT COALESCE (o.prs_kostenplaats_key, (SELECT a.prs_kostenplaats_key FROM prs_afdeling a, prs_perslid p WHERE p.prs_perslid_key = m.prs_perslid_key_voor AND p.prs_afdeling_key = a.prs_afdeling_key)) prs_kostenplaats_key,
o.mld_opdr_datumbegin datum,
COALESCE ((SELECT MAX(t.fac_tracking_datum) FROM fac_tracking t WHERE t.fac_tracking_refkey = o.mld_opdr_key AND fac_srtnotificatie_key = 74), DECODE (o.mld_statusopdr_key, 6, o.mld_opdr_datumbegin, 7, o.mld_opdr_datumbegin, 9, o.mld_opdr_datumbegin, 1, o.mld_opdr_datumbegin, 2, o.mld_opdr_datumbegin), (SELECT MAX (t.fac_tracking_datum) FROM fac_tracking t WHERE t.fac_tracking_refkey = m.mld_melding_key AND fac_srtnotificatie_key = 46), NULL) datum_gereed,
m.prs_perslid_key prs_perslid_key,
m.prs_perslid_key_voor host_key,
o.mld_opdr_externnr planonnr,
CASE WHEN m.mld_stdmelding_key IN (301, 721)
THEN
'2230.04'
ELSE
DECODE (
md.ins_discipline_key,
683,
'2220.04',
47,
'2220.04',
REGEXP_REPLACE (
REGEXP_SUBSTR (md.ins_discipline_omschrijving,
'\(([^}]+)\)',
1,
1,
NULL,
1),
'[^0-9.]',
''))
END
nummer,
CASE WHEN m.mld_stdmelding_key IN (301, 721)
THEN
'Evenementenservice'
ELSE
DECODE (md.ins_discipline_key,
72, 'Evenementenservice',
74, 'Extra bewaking en beveiliging',
830, 'Extra bewaking en beveiliging',
1086, 'Extra bewaking en beveiliging',
683, 'Facilitair medewerker FCC',
47, 'Facilitair medewerker FCC',
1084, 'Algemeen (OG)',
56, 'Algemene ruimten en kantoorgebied',
126, 'Algemene ruimten en kantoorgebied',
984,'Algemene ruimten en kantoorgebied',
1028, 'Algemene ruimten en kantoorgebied',
1303, 'Algemene ruimten en kantoorgebied',
990, 'Bewegwijzering',
1032, 'Bewegwijzering',
62, 'Bloemen en boeketten op aanvraag',
992, 'Bloemen en boeketten op aanvraag',
76, 'Extra schoonmaak structureel en incidenteel',
994, 'Extra schoonmaak structureel en incidenteel',
1000, 'Kantoorartikelen buiten standaardassortiment',
1004, 'Parkeervoorzieningen extern',
1022, 'Vergaderservice',
1100, 'Warme dranken en koud water',
md.ins_discipline_omschrijving)
END
categorie,
sd.ins_srtdiscipline_prefix
|| TO_CHAR (m.mld_melding_key)
|| '/'
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
categorienummer,
CASE
WHEN m.mld_stdmelding_key IN
(SELECT fac.safe_to_number (
fac_usrdata_code)
FROM fac_usrdata
WHERE fac_usrtab_key = 1281 --Eigen tabel 'FMHN#84446 BTW 0% fact.rapport'
AND fac_usrdata_verwijder
IS NULL)
THEN
COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1185,
1186,
1187,
1188,
5121,
5122,
445)),
o.mld_opdr_kosten,
0)
ELSE
DECODE (
COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.09
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1185, 1186, 5121)),
0)
+ COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.21
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1187,
1188,
5122,
445)),
0),
0, CASE
WHEN m.mld_alg_locatie_key =
18
AND ot.mld_typeopdr_key IN
(5, 582, 1481)
AND m.mld_stdmelding_key NOT IN
(26,
27,
475,
301)
THEN
o.mld_opdr_kosten
* 1.21
ELSE
o.mld_opdr_kosten
END,
COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.09
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1185, 1186, 5121)),
0)
+ COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.21
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1187, 1188, 5122)),
0)
+ COALESCE (
(SELECT fac.safe_to_number (
mk.mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key =
445),
0) -- RBO
)
END
bedrag_incl,
COALESCE (
(SELECT SUM (fac.safe_to_number (mk.mld_kenmerkopdr_waarde))
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key = o.mld_opdr_key
AND mld_kenmerk_key IN (1185, 1186, 1187, 1188, 5121, 5122, 445))
,o.mld_opdr_kosten, 0) bedrag_excl,
os.mld_statusopdr_omschrijving status,
'Melding -m' module,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1161 --Eigen tabel Facturatierapportage MLD-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikel,
(SELECT COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 781 -- Eigen tabel Diensten Sleutel
AND fac_usrdata_volgnr =
sm.mld_stdmelding_key
AND fac_usrdata_verwijder IS NULL),
d.ins_discipline_omschrijving)
FROM mld_melding m1,
mld_stdmelding sm1,
ins_tab_discipline d
WHERE sm1.mld_stdmelding_key =
m.mld_stdmelding_key
AND sm1.mld_ins_discipline_key =
d.ins_discipline_key
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key
AND m1.mld_melding_key = m.mld_melding_key)
dienst,
COALESCE (sm.prs_kostensoort_key, md.prs_kostensoort_key)
prs_kostensoort_key,
o.mld_opdr_ordernr ordernr,
o.mld_opdr_key kostenplaats_item_key,
-1 kostenplaats_item_child_key,
m.mld_alg_locatie_key locatie_key,
'NVT' noshow,
o.mld_opdr_omschrijving omschrijving,
DECODE (rrr.res_reservering_key, NULL, NULL,
TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)) gekoppelde_res,
TRUNC(rrr.res_rsv_ruimte_van) datum_gekoppelde_res,
NULL gekoppelde_obj
FROM mld_opdr o,
mld_typeopdr ot,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statusopdr os,
res_rsv_ruimte rrr
WHERE --o.mld_opdr_kosten <> 0
-- AND o.mld_statusopdr_key IN (5, 6, 7, 8, 9)
o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_key IN (5, 157, 241, 361, 582, 1481) -- Uitvoeringsopdracht/RBO/Drank- en Snoepautomaat/RVB/Uitvoeringopdracht PC
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.mld_statusopdr_key = os.mld_statusopdr_key
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key (+)) mld
WHERE mld.bedrag_excl <> 0
UNION ALL --FMHN#74606 Ook bedragen op specifieke meldingen: vakgroep 683 (VOR kaarten)
SELECT mld.*
FROM
(SELECT a.prs_kostenplaats_key prs_kostenplaats_key,
m.mld_melding_datum
datum,
COALESCE (
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND fac_srtnotificatie_key = 45), --MLDAFM
m.mld_melding_einddatum,
NULL)
datum_gereed,
m.prs_perslid_key
prs_perslid_key,
m.prs_perslid_key_voor
host_key,
m.mld_meldbron_nr
planonnr,
REGEXP_REPLACE (REGEXP_SUBSTR (md.ins_discipline_omschrijving,
'\(([^}]+)\)',
1,
1,
NULL,
1),
'[^0-9.]',
'')
nummer,
md.ins_discipline_omschrijving
categorie,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key)
categorienummer,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroep 683)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_incl,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroep 683)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_excl,
ms.mld_statuses_omschrijving
status,
'Melding -m'
module,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1141 --Eigen tabel Facturatierapportage VOR-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikel,
(SELECT COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 781 -- Eigen tabel Diensten Sleutel
AND fac_usrdata_volgnr =
sm.mld_stdmelding_key
AND fac_usrdata_verwijder IS NULL),
d.ins_discipline_omschrijving)
FROM mld_melding m1,
mld_stdmelding sm1,
ins_tab_discipline d
WHERE sm1.mld_stdmelding_key =
m.mld_stdmelding_key
AND sm1.mld_ins_discipline_key =
d.ins_discipline_key
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key
AND m1.mld_melding_key = m.mld_melding_key)
dienst,
COALESCE (sm.prs_kostensoort_key, md.prs_kostensoort_key)
prs_kostensoort_key,
NULL
ordernr,
m.mld_melding_key
kostenplaats_item_key,
-1
kostenplaats_item_child_key,
(SELECT (MAX (fac_usrdata_volgnr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1141 --Eigen tabel Facturatierapportage VOR-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
locatie_key,
'NVT'
noshow,
m.mld_melding_onderwerp omschrijving,
DECODE (
rrr.res_reservering_key,
NULL, NULL,
TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr))
gekoppelde_res,
TRUNC(rrr.res_rsv_ruimte_van) datum_gekoppelde_res,
o.ins_deel_omschrijving gekoppelde_obj
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statuses ms,
res_rsv_ruimte rrr,
mld_melding_object mo,
ins_deel o,
prs_afdeling a
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_status = ms.mld_statuses_key
AND sm.mld_ins_discipline_key IN (683) -- Facilitair medewerker FCC - VOR kaarten
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND mo.mld_melding_key = m.mld_melding_key
AND o.ins_deel_key = mo.ins_deel_key
AND mo.mld_melding_object_verwijder IS NULL
AND o.ins_alg_ruimte_type = 'A'
AND o.ins_alg_ruimte_key = a.prs_afdeling_key) mld
WHERE mld.bedrag_excl <> 0
UNION ALL --FMHN#74606 Ook bedragen op specifieke meldingen: vakgroep 923 (Verzorgen lunch op gedekte tafels)
SELECT mld.*
FROM (SELECT COALESCE (
NULL,
(SELECT a.prs_kostenplaats_key
FROM prs_afdeling a, prs_perslid p
WHERE p.prs_perslid_key = m.prs_perslid_key_voor
AND p.prs_afdeling_key = a.prs_afdeling_key))
prs_kostenplaats_key,
m.mld_melding_datum
datum,
COALESCE (
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND fac_srtnotificatie_key = 45), --MLDAFM
m.mld_melding_einddatum,
NULL)
datum_gereed,
m.prs_perslid_key
prs_perslid_key,
m.prs_perslid_key_voor
host_key,
m.mld_meldbron_nr
planonnr,
REGEXP_REPLACE (REGEXP_SUBSTR (md.ins_discipline_omschrijving,
'\(([^}]+)\)',
1,
1,
NULL,
1),
'[^0-9.]',
'')
nummer,
md.ins_discipline_omschrijving
categorie,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key)
categorienummer,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroepen 923 & 683)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_incl,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroepen 923 & 683)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_excl,
ms.mld_statuses_omschrijving
status,
'Melding -m'
module,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1161 --Eigen tabel Facturatierapportage MLD-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikel,
(SELECT COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 781 -- Eigen tabel Diensten Sleutel
AND fac_usrdata_volgnr =
sm.mld_stdmelding_key
AND fac_usrdata_verwijder IS NULL),
d.ins_discipline_omschrijving)
FROM mld_melding m1,
mld_stdmelding sm1,
ins_tab_discipline d
WHERE sm1.mld_stdmelding_key =
m.mld_stdmelding_key
AND sm1.mld_ins_discipline_key =
d.ins_discipline_key
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key
AND m1.mld_melding_key = m.mld_melding_key)
dienst,
COALESCE (sm.prs_kostensoort_key, md.prs_kostensoort_key)
prs_kostensoort_key,
NULL
ordernr,
m.mld_melding_key
kostenplaats_item_key,
-1
kostenplaats_item_child_key,
m.mld_alg_locatie_key
locatie_key,
'NVT'
noshow,
m.mld_melding_onderwerp omschrijving,
DECODE (
rrr.res_reservering_key,
NULL, NULL,
TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr))
gekoppelde_res,
TRUNC(rrr.res_rsv_ruimte_van) datum_gekoppelde_res,
(SELECT LISTAGG(o.ins_deel_omschrijving,';')
FROM mld_melding_object mo, ins_deel o
WHERE mo.mld_melding_key = m.mld_melding_key
AND o.ins_deel_key = mo.ins_deel_key
AND mo.mld_melding_object_verwijder IS NULL)
gekoppelde_obj
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statuses ms,
res_rsv_ruimte rrr
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_status = ms.mld_statuses_key
AND sm.mld_ins_discipline_key IN (923) -- Verzorgen van lunches op gedekte tafels (2220.04)
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)) mld
WHERE mld.bedrag_excl <> 0
UNION ALL
SELECT b.prs_kostenplaats_key,
bo.bes_bestelopdr_datum datum,
COALESCE ((SELECT MAX(t.fac_tracking_datum) FROM fac_tracking t WHERE t.fac_tracking_refkey = bo.bes_bestelopdr_key AND fac_srtnotificatie_key = 20), DECODE (bo.bes_bestelopdr_status, 6, bes_bestelopdr_datum, 7, bes_bestelopdr_datum, NULL)) datum_gereed,
b.prs_perslid_key prs_perslid_key,
b.prs_perslid_key_voor host_key,
b.bes_bestelling_opmerking planonnr,
DECODE (bd.ins_discipline_key,
21, '2410.03',
22, '2410.03',
24, '2220.04',
26, '1230.02',
28, '1230.02',
29, '1230.02',
30, '1230.02',
31, '1230.02',
32, '1230.02',
'N/B') nummer,
DECODE (bd.ins_discipline_key,
21, 'Waardebonnen',
22, 'Waardebonnen',
24, 'VOR Kaarten',
26, 'Parkeervoorzieningen extern',
28, 'Parkeervoorzieningen extern',
29, 'Parkeervoorzieningen extern',
30, 'Parkeervoorzieningen extern',
31, 'Parkeervoorzieningen extern',
32, 'Parkeervoorzieningen extern',
'N/B') categorie,
TO_CHAR (b.bes_bestelling_key) categorienummer,
(boi.bes_bestelopdr_item_aantal
* boi.bes_bestelopdr_item_prijs)
bedrag_incl,
(boi.bes_bestelopdr_item_aantal
* boi.bes_bestelopdr_item_prijs)
bedrag_excl,
bos.bes_bestelopdrstatuses_omschr status,
'Bestelling -b' module,
CASE --###
WHEN ma.alg_locatie_key = 18
THEN
'040'
ELSE
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1181 --Eigen tabel Facturatierapportage BES-kaart
AND fac_usrdata_verwijder IS NULL
AND bd.ins_discipline_key = fac_usrdata_prijs)
END
artikel,
COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 801 -- Eigen tabel Diensten Sleutel BES
AND fac_usrdata_volgnr = bd.ins_discipline_key
AND fac_usrdata_verwijder IS NULL),
bd.ins_discipline_omschrijving)
dienst,
bd.prs_kostensoort_key,
b.bes_bestelling_ordernr ordernr,
b.bes_bestelling_key kostenplaats_item_key,
-1 kostenplaats_item_child_key,
ma.alg_locatie_key locatie_key,
'NVT' noshow,
'Bestelling' omschrijving,
NULL gekoppelde_res,
NULL datum_gekoppelde_res,
NULL gekoppelde_obj
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_discipline bd,
bes_bestelopdrstatuses bos,
mld_adres ma
WHERE -- bo.bes_bestelopdr_status IN (4, 6, 7) -- In bestelling/Geleverd/Verwerkt
bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key =
bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = bd.ins_discipline_key
AND ma.mld_adres_key = b.mld_adres_key_lev
AND bo.bes_bestelopdr_status =
bos.bes_bestelopdrstatuses_key) tab,
--fmhn_v_rap_idm_afdboom fa, --FMHN#88941, ook rekening houden met verwijderde afdelingen in afdeling_boom fa:
(SELECT *
FROM (SELECT fa.*,
ROW_NUMBER ()
OVER (
PARTITION BY prs_kostenplaats_key
ORDER BY
CASE
WHEN fa.afd_verwijder IS NULL THEN 1
ELSE 2
END) AS rn
FROM fmhn_v_rap_idm_afdboom fa)
WHERE rn = 1) fa,
fmhn_v_rap_afd2debnr a2d,
prs_kostensoort ks,
prs_kostensoortgrp ksg,
fmhn_v_perslid_fullnames_history pfa, -- Aanvrager
fmhn_v_perslid_fullnames_history pfv, -- Voor (= Aanvrager igv. MLD/BES)
alg_locatie l,
alg_district d,
alg_regio r
WHERE tab.prs_kostenplaats_key = fa.prs_kostenplaats_key(+)
AND fa.prs_afdeling_key = a2d.prs_afdeling_key(+)
AND tab.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
AND tab.prs_perslid_key = pfa.prs_perslid_key(+)
AND tab.host_key = pfv.prs_perslid_key(+)
AND tab.locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = r.alg_regio_key(+)
GROUP BY
module,
TRUNC (tab.datum),
TRUNC (tab.datum_gereed),
l.alg_locatie_omschrijving,
pfa.prs_perslid_naam_full,
DECODE (
fa.mincode,
'01',
(CASE WHEN idmlevel >= 7 THEN REGEXP_SUBSTR (pad, '^[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*') ELSE pad END),
fa.pad),
planonnr,
artikel,
dienst,
tab.categorienummer,
tab.nummer,
tab.categorie,
pfv.prs_perslid_naam_full,
tab.status,
TO_CHAR (tab.datum_gereed, 'YYYY'),
TRIM (TO_CHAR (tab.datum_gereed, 'MONTH')),
COALESCE (SUBSTR (fa.pad, 0, INSTR (fa.pad, '/') - 1), fa.pad),
a2d.debiteur,
l.alg_locatie_key,
fa.pad,
noshow,
omschrijving,
gekoppelde_res,
datum_gekoppelde_res,
gekoppelde_obj;
-- Facturatie sleutelbestand maar dan met een regel per artikel
CREATE OR REPLACE VIEW fmhn_v_rap_sleutelbestand_detail
(
Module,
Datum,
Datum_gereed,
Gebouw,
Melder,
Afdeling,
Planon_nr,
Nummer,
Project_nr,
PDC_nummer,
PDC_naam,
Artikelnr,
Artikelomschrijving,
Kosten_incl,
Kosten_excl,
Aanvraag_voor,
Status,
Jaar,
Maand,
Artikel,
Dienst,
Departement,
Debiteur,
Kostendrager,
Kostenplaats,
Noshow,
Omschrijving,
Gekoppelde_res,
Datum_gekoppelde_res,
Gekoppelde_obj
)
AS
SELECT
module,
TRUNC (tab.datum),
TRUNC (tab.datum_gereed),
l.alg_locatie_omschrijving,
pfa.prs_perslid_naam_full aanvrager,
DECODE (
fa.mincode,
'01',
(CASE WHEN idmlevel >= 7 THEN REGEXP_SUBSTR (pad, '^[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*') ELSE pad END),
fa.pad) organisatie,
planonnr,
tab.categorienummer,
(SELECT MAX (alg_onrgoedkenmerk_waarde) -- LET OP:Voorkennis dat <20><>n gebouw per locatie!
FROM alg_gebouw g, alg_v_aanwezigonrgoedkenmerk ok
WHERE g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_key = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1040
AND ok.alg_onrgoed_niveau = 'G'
AND g.alg_locatie_key = l.alg_locatie_key)
projectnummer,
tab.nummer,
tab.categorie,
tab.artikelnr,
tab.artikeloms,
SUM (tab.bedrag_incl) bedrag_incl,
SUM (tab.bedrag_excl) bedrag_excl,
pfv.prs_perslid_naam_full voor,
tab.status,
TO_CHAR (tab.datum_gereed, 'YYYY') jaar,
TRIM (TO_CHAR (tab.datum_gereed, 'MONTH')) maand,
artikel, -- Artikelnr uit Exact
dienst, -- Dienst uit Exact
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1))
departement,
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1))
debiteur,
(SELECT MAX (alg_onrgoedkenmerk_waarde) -- LET OP:Voorkennis dat <20><>n gebouw per locatie!
FROM alg_gebouw g, alg_v_aanwezigonrgoedkenmerk ok
WHERE g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_key = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1020
AND ok.alg_onrgoed_niveau = 'G'
AND g.alg_locatie_key = l.alg_locatie_key)
kostendrager,
'600-'
|| (SELECT MAX (alg_onrgoedkenmerk_waarde) -- LET OP:Voorkennis dat <20><>n gebouw per locatie!
FROM alg_gebouw g, alg_v_aanwezigonrgoedkenmerk ok
WHERE g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_key = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1020
AND ok.alg_onrgoed_niveau = 'G'
AND g.alg_locatie_key = l.alg_locatie_key)
kostenplaats,
noshow,
omschrijving,
gekoppelde_res,
datum_gekoppelde_res,
gekoppelde_obj
FROM (SELECT COALESCE (prs_kostenplaats_key, (SELECT a.prs_kostenplaats_key FROM prs_afdeling a, prs_perslid p WHERE p.prs_perslid_key = res_rsv_ruimte_host_key AND p.prs_afdeling_key = a.prs_afdeling_key)) prs_kostenplaats_key,
TRUNC (f.res_rsv_artikel_levering) datum,
COALESCE (f.res_rsv_artikel_afgemeld, DECODE (f.status, 'Afgemeld', f.res_rsv_artikel_levering, 'Verwerkt', f.res_rsv_artikel_levering, NULL)) datum_gereed,
f.res_rsv_ruimte_contact_key prs_perslid_key,
f.res_rsv_ruimte_host_key host_key,
f.planonnr,
f.productdienstnr nummer,
f.productdienstnaam categorie,
TO_CHAR (f.res_reservering_key)
|| '/'
|| TO_CHAR (f.res_rsv_ruimte_volgnr)
categorienummer,
r.res_artikel_nr artikelnr,
r.res_artikel_omschrijving artikeloms,
CASE
WHEN f.alg_locatie_key IN (4, 7, 8, 13, 16, 20) -- Livegang 2 was nog met bedragen INCL. BTW voor conversie artikelen
THEN
DECODE (f.res_artikel_key,
501, f.res_rsv_artikel_prijs,
561, f.res_rsv_artikel_prijs,
562, f.res_rsv_artikel_prijs,
563, f.res_rsv_artikel_prijs,
f.kosten_excl * f.btw)
ELSE
DECODE (f.res_artikel_key,
501, f.res_rsv_artikel_prijs,
f.kosten_excl * f.btw)
END bedrag_incl,
CASE
WHEN f.alg_locatie_key IN (4, 7, 8, 13, 16, 20) -- Livegang 2 was nog met bedragen INCL. BTW voor conversie artikelen
THEN
DECODE (f.res_artikel_key,
501, f.res_rsv_artikel_prijs / f.btw,
561, f.res_rsv_artikel_prijs / f.btw,
562, f.res_rsv_artikel_prijs / f.btw,
563, f.res_rsv_artikel_prijs / f.btw,
f.kosten_excl)
ELSE
DECODE (f.res_artikel_key,
501, f.res_rsv_artikel_prijs / f.btw,
f.kosten_excl)
END bedrag_excl,
f.status,
'Reservering -r' module,
CASE
WHEN alg_locatie_key = 18
THEN '040'
ELSE '602'
END artikel,
'2230.01 Vergaderservice' dienst,
f.prs_kostensoort_key,
NULL ordernr,
f.res_reservering_key kostenplaats_item_key,
f.res_rsv_ruimte_key kostenplaats_item_child_key,
f.alg_locatie_key locatie_key,
f.noshow,
omschrijving,
NULL gekoppelde_res,
NULL datum_gekoppelde_res,
NULL gekoppelde_obj
FROM fmhn_v_rap_res_cat_all f, res_artikel r
WHERE COALESCE (f.res_rsv_artikel_prijs, kosten_excl) <> 0
AND f.res_artikel_key = r.res_artikel_key
UNION ALL
SELECT mld.*
FROM
(SELECT COALESCE (o.prs_kostenplaats_key, (SELECT a.prs_kostenplaats_key FROM prs_afdeling a, prs_perslid p WHERE p.prs_perslid_key = m.prs_perslid_key_voor AND p.prs_afdeling_key = a.prs_afdeling_key)) prs_kostenplaats_key,
o.mld_opdr_datumbegin datum,
COALESCE ((SELECT MAX(t.fac_tracking_datum) FROM fac_tracking t WHERE t.fac_tracking_refkey = o.mld_opdr_key AND fac_srtnotificatie_key = 74), DECODE (o.mld_statusopdr_key, 6, o.mld_opdr_datumbegin, 7, o.mld_opdr_datumbegin, 9, o.mld_opdr_datumbegin, 1, o.mld_opdr_datumbegin, 2, o.mld_opdr_datumbegin), (SELECT MAX (t.fac_tracking_datum) FROM fac_tracking t WHERE t.fac_tracking_refkey = m.mld_melding_key AND fac_srtnotificatie_key = 46), NULL) datum_gereed,
m.prs_perslid_key prs_perslid_key,
m.prs_perslid_key_voor host_key,
o.mld_opdr_externnr planonnr,
CASE WHEN m.mld_stdmelding_key IN (301, 721)
THEN
'2230.04'
ELSE
DECODE (
md.ins_discipline_key,
683,
'2220.04',
47,
'2220.04',
REGEXP_REPLACE (
REGEXP_SUBSTR (md.ins_discipline_omschrijving,
'\(([^}]+)\)',
1,
1,
NULL,
1),
'[^0-9.]',
''))
END
nummer,
CASE WHEN m.mld_stdmelding_key IN (301, 721)
THEN
'Evenementenservice'
ELSE
DECODE (md.ins_discipline_key,
72, 'Evenementenservice',
74, 'Extra bewaking en beveiliging',
830, 'Extra bewaking en beveiliging',
1086, 'Extra bewaking en beveiliging',
683, 'Facilitair medewerker FCC',
47, 'Facilitair medewerker FCC',
1084, 'Algemeen (OG)',
56, 'Algemene ruimten en kantoorgebied',
126, 'Algemene ruimten en kantoorgebied',
984,'Algemene ruimten en kantoorgebied',
1028, 'Algemene ruimten en kantoorgebied',
1303, 'Algemene ruimten en kantoorgebied',
990, 'Bewegwijzering',
1032, 'Bewegwijzering',
62, 'Bloemen en boeketten op aanvraag',
992, 'Bloemen en boeketten op aanvraag',
76, 'Extra schoonmaak structureel en incidenteel',
994, 'Extra schoonmaak structureel en incidenteel',
1000, 'Kantoorartikelen buiten standaardassortiment',
1004, 'Parkeervoorzieningen extern',
1022, 'Vergaderservice',
1100, 'Warme dranken en koud water',
md.ins_discipline_omschrijving)
END
categorie,
sd.ins_srtdiscipline_prefix
|| TO_CHAR (m.mld_melding_key)
|| '/'
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
categorienummer,
'NVT' artikelnr,
'NVT' artikeloms,
CASE
WHEN m.mld_stdmelding_key IN
(SELECT fac.safe_to_number (
fac_usrdata_code)
FROM fac_usrdata
WHERE fac_usrtab_key = 1281 --Eigen tabel 'FMHN#84446 BTW 0% fact.rapport'
AND fac_usrdata_verwijder
IS NULL)
THEN
COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1185,
1186,
1187,
1188,
5121,
5122,
445)),
o.mld_opdr_kosten,
0)
ELSE
DECODE (
COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.09
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1185, 1186, 5121)),
0)
+ COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.21
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1187,
1188,
5122,
445)),
0),
0, CASE
WHEN m.mld_alg_locatie_key =
18
AND ot.mld_typeopdr_key IN
(5, 582, 1481)
AND m.mld_stdmelding_key NOT IN
(26,
27,
475,
301)
THEN
o.mld_opdr_kosten
* 1.21
ELSE
o.mld_opdr_kosten
END,
COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.09
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1185, 1186, 5121)),
0)
+ COALESCE (
(SELECT SUM (
fac.safe_to_number (
mk.mld_kenmerkopdr_waarde))
* 1.21
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key IN
(1187, 1188, 5122)),
0)
+ COALESCE (
(SELECT fac.safe_to_number (
mk.mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key =
o.mld_opdr_key
AND mld_kenmerk_key =
445),
0) -- RBO
)
END
bedrag_incl,
COALESCE (
(SELECT SUM (fac.safe_to_number (mk.mld_kenmerkopdr_waarde))
FROM mld_kenmerkopdr mk
WHERE mk.mld_opdr_key = o.mld_opdr_key
AND mld_kenmerk_key IN (1185, 1186, 1187, 1188, 5121, 5122, 455))
,o.mld_opdr_kosten, 0) bedrag_excl,
os.mld_statusopdr_omschrijving status,
'Melding -m' module,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1161 --Eigen tabel Facturatierapportage MLD-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikel,
(SELECT COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 781 -- Eigen tabel Diensten Sleutel
AND fac_usrdata_volgnr =
sm.mld_stdmelding_key
AND fac_usrdata_verwijder IS NULL),
d.ins_discipline_omschrijving)
FROM mld_melding m1,
mld_stdmelding sm1,
ins_tab_discipline d
WHERE sm1.mld_stdmelding_key =
m.mld_stdmelding_key
AND sm1.mld_ins_discipline_key =
d.ins_discipline_key
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key
AND m1.mld_melding_key = m.mld_melding_key)
dienst,
COALESCE (sm.prs_kostensoort_key, md.prs_kostensoort_key)
prs_kostensoort_key,
o.mld_opdr_ordernr ordernr,
o.mld_opdr_key kostenplaats_item_key,
-1 kostenplaats_item_child_key,
m.mld_alg_locatie_key locatie_key,
'NVT' noshow,
o.mld_opdr_omschrijving omschrijving,
DECODE (rrr.res_reservering_key, NULL, NULL,
TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)) gekoppelde_res,
TRUNC(rrr.res_rsv_ruimte_van) datum_gekoppelde_res,
NULL gekoppelde_obj
FROM mld_opdr o,
mld_typeopdr ot,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statusopdr os,
res_rsv_ruimte rrr
WHERE -- o.mld_opdr_kosten <> 0
-- AND o.mld_statusopdr_key IN (5, 6, 7, 8, 9)
o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_key IN (5, 157, 241, 361, 582, 1481) -- Uitvoeringsopdracht/RBO/Drank- en Snoepautomaat/RVB/Uitvoeringopdracht PC
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.mld_statusopdr_key = os.mld_statusopdr_key
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key (+)) mld
WHERE mld.bedrag_excl <> 0
UNION ALL --FMHN#74606 Ook bedragen op specifieke meldingen: vakgroep 683 (VOR kaarten)
SELECT mld.*
FROM (SELECT
a.prs_kostenplaats_key,
m.mld_melding_datum
datum,
COALESCE (
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND fac_srtnotificatie_key = 45), --MLDAFM
m.mld_melding_einddatum,
NULL)
datum_gereed,
m.prs_perslid_key
prs_perslid_key,
m.prs_perslid_key_voor
host_key,
m.mld_meldbron_nr
planonnr,
REGEXP_REPLACE (REGEXP_SUBSTR (md.ins_discipline_omschrijving,
'\(([^}]+)\)',
1,
1,
NULL,
1),
'[^0-9.]',
'')
nummer,
md.ins_discipline_omschrijving
categorie,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key)
categorienummer,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1141 --Eigen tabel Facturatierapportage VOR-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikelnr,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1141 --Eigen tabel Facturatierapportage VOR-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikeloms,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroep 683)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_incl,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroep 683)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_excl,
ms.mld_statuses_omschrijving
status,
'Melding -m'
module,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1141 --Eigen tabel Facturatierapportage VOR-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikel,
(SELECT COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 781 -- Eigen tabel Diensten Sleutel
AND fac_usrdata_volgnr =
sm.mld_stdmelding_key
AND fac_usrdata_verwijder IS NULL),
d.ins_discipline_omschrijving)
FROM mld_melding m1,
mld_stdmelding sm1,
ins_tab_discipline d
WHERE sm1.mld_stdmelding_key =
m.mld_stdmelding_key
AND sm1.mld_ins_discipline_key =
d.ins_discipline_key
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key
AND m1.mld_melding_key = m.mld_melding_key)
dienst,
COALESCE (sm.prs_kostensoort_key, md.prs_kostensoort_key)
prs_kostensoort_key,
NULL
ordernr,
m.mld_melding_key
kostenplaats_item_key,
-1
kostenplaats_item_child_key,
(SELECT (MAX (fac_usrdata_volgnr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1141 --Eigen tabel Facturatierapportage VOR-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
locatie_key,
'NVT'
noshow,
m.mld_melding_onderwerp omschrijving,
DECODE (
rrr.res_reservering_key,
NULL, NULL,
TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr))
gekoppelde_res,
TRUNC(rrr.res_rsv_ruimte_van) datum_gekoppelde_res,
o.ins_deel_omschrijving gekoppelde_obj
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statuses ms,
res_rsv_ruimte rrr,
mld_melding_object mo,
ins_deel o,
prs_afdeling a
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_status = ms.mld_statuses_key
AND sm.mld_ins_discipline_key IN (683) -- Facilitair medewerker FCC - VOR kaarten
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND mo.mld_melding_key = m.mld_melding_key
AND o.ins_deel_key = mo.ins_deel_key
AND mo.mld_melding_object_verwijder IS NULL
AND o.ins_alg_ruimte_type = 'A'
AND o.ins_alg_ruimte_key = a.prs_afdeling_key) mld
WHERE mld.bedrag_excl <> 0
UNION ALL --FMHN#74606 Ook bedragen op specifieke meldingen: vakgroepen 923 (Verzorgen lunch op gedekte tafels)
SELECT mld.*
FROM (SELECT COALESCE (
NULL,
(SELECT a.prs_kostenplaats_key
FROM prs_afdeling a, prs_perslid p
WHERE p.prs_perslid_key = m.prs_perslid_key_voor
AND p.prs_afdeling_key = a.prs_afdeling_key))
prs_kostenplaats_key,
m.mld_melding_datum
datum,
COALESCE (
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND fac_srtnotificatie_key = 45), --MLDAFM
m.mld_melding_einddatum,
NULL)
datum_gereed,
m.prs_perslid_key
prs_perslid_key,
m.prs_perslid_key_voor
host_key,
m.mld_meldbron_nr
planonnr,
REGEXP_REPLACE (REGEXP_SUBSTR (md.ins_discipline_omschrijving,
'\(([^}]+)\)',
1,
1,
NULL,
1),
'[^0-9.]',
'')
nummer,
md.ins_discipline_omschrijving
categorie,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key)
categorienummer,
'NVT' artikelnr,
'NVT' artikeloms,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroepen 923)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_incl,
(SELECT SUM (
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_srtkenmerk_key = 221 --Kenmerksoort Bedrag (toegepast bij vakgroepen 923)
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
bedrag_excl,
ms.mld_statuses_omschrijving
status,
'Melding -m'
module,
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1161 --Eigen tabel Facturatierapportage MLD-kaart
AND fac_usrdata_verwijder IS NULL
AND m.mld_stdmelding_key =
fac_usrdata_prijs)
artikel,
(SELECT COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 781 -- Eigen tabel Diensten Sleutel
AND fac_usrdata_volgnr =
sm.mld_stdmelding_key
AND fac_usrdata_verwijder IS NULL),
d.ins_discipline_omschrijving)
FROM mld_melding m1,
mld_stdmelding sm1,
ins_tab_discipline d
WHERE sm1.mld_stdmelding_key =
m.mld_stdmelding_key
AND sm1.mld_ins_discipline_key =
d.ins_discipline_key
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key
AND m1.mld_melding_key = m.mld_melding_key)
dienst,
COALESCE (sm.prs_kostensoort_key, md.prs_kostensoort_key)
prs_kostensoort_key,
NULL
ordernr,
m.mld_melding_key
kostenplaats_item_key,
-1
kostenplaats_item_child_key,
m.mld_alg_locatie_key
locatie_key,
'NVT'
noshow,
m.mld_melding_onderwerp omschrijving,
DECODE (
rrr.res_reservering_key,
NULL, NULL,
TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr))
gekoppelde_res,
TRUNC(rrr.res_rsv_ruimte_van) datum_gekoppelde_res,
(SELECT LISTAGG(o.ins_deel_omschrijving,';')
FROM mld_melding_object mo, ins_deel o
WHERE mo.mld_melding_key = m.mld_melding_key
AND o.ins_deel_key = mo.ins_deel_key
AND mo.mld_melding_object_verwijder IS NULL)
gekoppelde_obj
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statuses ms,
res_rsv_ruimte rrr
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_status = ms.mld_statuses_key
AND sm.mld_ins_discipline_key IN (923) -- Verzorgen van lunches op gedekte tafels (2220.04)
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)) mld
WHERE mld.bedrag_excl <> 0
UNION ALL
SELECT b.prs_kostenplaats_key,
bo.bes_bestelopdr_datum datum,
COALESCE ((SELECT MAX(t.fac_tracking_datum) FROM fac_tracking t WHERE t.fac_tracking_refkey = bo.bes_bestelopdr_key AND fac_srtnotificatie_key = 20), DECODE (bo.bes_bestelopdr_status, 6, bes_bestelopdr_datum, 7, bes_bestelopdr_datum, NULL)) datum_gereed,
b.prs_perslid_key prs_perslid_key,
b.prs_perslid_key_voor host_key,
b.bes_bestelling_opmerking planonnr,
DECODE (bd.ins_discipline_key,
21, '2410.03',
22, '2410.03',
24, '2220.04',
26, '1230.02',
28, '1230.02',
29, '1230.02',
30, '1230.02',
31, '1230.02',
32, '1230.02',
'N/B') nummer,
DECODE (bd.ins_discipline_key,
21, 'Waardebonnen',
22, 'Waardebonnen',
24, 'VOR Kaarten',
26, 'Parkeervoorzieningen extern',
28, 'Parkeervoorzieningen extern',
29, 'Parkeervoorzieningen extern',
30, 'Parkeervoorzieningen extern',
31, 'Parkeervoorzieningen extern',
32, 'Parkeervoorzieningen extern',
'N/B') categorie,
TO_CHAR (b.bes_bestelling_key) categorienummer,
'NVT' artikelnr,
boi.bes_bestelopdr_item_omschrijv artikeloms,
(boi.bes_bestelopdr_item_aantal
* boi.bes_bestelopdr_item_prijs)
bedrag_incl,
(boi.bes_bestelopdr_item_aantal
* boi.bes_bestelopdr_item_prijs)
bedrag_excl,
bos.bes_bestelopdrstatuses_omschr status,
'Bestelling -b' module,
CASE --###
WHEN ma.alg_locatie_key = 18
THEN
'040'
ELSE
(SELECT (MAX (fac_usrdata_omschr))
FROM fac_usrdata
WHERE fac_usrtab_key = 1181 --Eigen tabel Facturatierapportage BES-kaart
AND fac_usrdata_verwijder IS NULL
AND bd.ins_discipline_key = fac_usrdata_prijs)
END
artikel,
COALESCE (
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrtab_key = 801 -- Eigen tabel Diensten Sleutel BES
AND fac_usrdata_volgnr = bd.ins_discipline_key
AND fac_usrdata_verwijder IS NULL),
bd.ins_discipline_omschrijving)
dienst,
bd.prs_kostensoort_key,
b.bes_bestelling_ordernr ordernr,
b.bes_bestelling_key kostenplaats_item_key,
-1 kostenplaats_item_child_key,
ma.alg_locatie_key locatie_key,
'NVT' noshow,
'Bestelling' omschrijving,
NULL gekoppelde_res,
NULL datum_gekoppelde_res,
NULL gekoppelde_obj
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_discipline bd,
bes_bestelopdrstatuses bos,
mld_adres ma
WHERE -- bo.bes_bestelopdr_status IN (4, 6, 7) -- In bestelling/Geleverd/Verwerkt
bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key =
bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = bd.ins_discipline_key
AND ma.mld_adres_key = b.mld_adres_key_lev
AND bo.bes_bestelopdr_status =
bos.bes_bestelopdrstatuses_key) tab,
--fmhn_v_rap_idm_afdboom fa, --FMHN#88941, ook rekening houden met verwijderde afdelingen in afdeling_boom fa:
(SELECT *
FROM (SELECT fa.*,
ROW_NUMBER ()
OVER (
PARTITION BY prs_kostenplaats_key
ORDER BY
CASE
WHEN fa.afd_verwijder IS NULL THEN 1
ELSE 2
END) AS rn
FROM fmhn_v_rap_idm_afdboom fa)
WHERE rn = 1) fa,
fmhn_v_rap_afd2debnr a2d,
prs_kostensoort ks,
prs_kostensoortgrp ksg,
fmhn_v_perslid_fullnames_history pfa, -- Aanvrager
fmhn_v_perslid_fullnames_history pfv, -- Voor (= Aanvrager igv. MLD/BES)
alg_locatie l,
alg_district d,
alg_regio r
WHERE tab.prs_kostenplaats_key = fa.prs_kostenplaats_key(+)
AND fa.prs_afdeling_key = a2d.prs_afdeling_key(+)
AND tab.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
AND tab.prs_perslid_key = pfa.prs_perslid_key(+)
AND tab.host_key = pfv.prs_perslid_key(+)
AND tab.locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = r.alg_regio_key(+)
GROUP BY
module,
TRUNC (tab.datum),
TRUNC (tab.datum_gereed),
l.alg_locatie_omschrijving,
pfa.prs_perslid_naam_full,
DECODE (
fa.mincode,
'01',
(CASE WHEN idmlevel >= 7 THEN REGEXP_SUBSTR (pad, '^[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*') ELSE pad END),
fa.pad),
tab.artikelnr,
tab.artikeloms,
planonnr,
artikel,
dienst,
tab.categorienummer,
tab.nummer,
tab.categorie,
pfv.prs_perslid_naam_full,
tab.status,
TO_CHAR (tab.datum_gereed, 'YYYY'),
TRIM (TO_CHAR (tab.datum_gereed, 'MONTH')),
COALESCE (SUBSTR (fa.pad, 0, INSTR (fa.pad, '/') - 1), fa.pad),
a2d.debiteur,
l.alg_locatie_key,
fa.pad,
noshow,
omschrijving,
gekoppelde_res,
datum_gekoppelde_res,
gekoppelde_obj;
--View tbv rapportage van passieve KTO
CREATE OR REPLACE VIEW fmhn_v_like_antwoorden
(
module,
aanvrager,
begunstigde,
key,
nummer,
cijfer,
opmerking,
disc_key,
vakgroep,
locatie_key,
locatie_code,
locatie_omschrijving,
datum
)
AS
SELECT 'Melding',
mkto.prs_perslid_key,
mkto.prs_perslid_key_voor,
mkto.mld_melding_key,
TO_CHAR (mkto.mld_melding_key),
mkto.mld_melding_satisfaction,
mkto.mld_melding_satisfaction_op,
mkto.mld_ins_discipline_key,
disc.ins_discipline_omschrijving,
mkto.mld_alg_locatie_key,
alg.alg_locatie_code,
alg.alg_locatie_omschrijving,
TRUNC (mld_melding_datum)
FROM mld_melding mkto, ins_tab_discipline disc, alg_locatie alg
WHERE disc.ins_discipline_key = mkto.mld_ins_discipline_key
AND alg.alg_locatie_key = mkto.mld_alg_locatie_key
UNION ALL
SELECT 'Reservering',
rkto.res_rsv_ruimte_contact_key,
rkto.res_rsv_ruimte_host_key,
rkto.res_rsv_ruimte_key,
rkto.res_reservering_key || '/' || rkto.res_rsv_ruimte_volgnr,
rkto.res_rsv_ruimte_satisfaction,
rkto.res_rsv_ruimte_satisfaction_op,
disc.ins_discipline_key,
disc.ins_discipline_omschrijving,
res.fclt_3d_locatie_key,
res.locatie,
res.locatie_omschrijving,
TRUNC (res_rsv_ruimte_van)
FROM res_rsv_ruimte rkto,
res_v_udr_reservering res,
ins_tab_discipline disc
WHERE rkto.res_rsv_ruimte_key = res.key
AND disc.ins_discipline_key = res.catalogus_key
UNION ALL
SELECT 'Bestelling',
bkto.prs_perslid_key,
bkto.prs_perslid_key_voor,
bkto.bes_bestelling_key,
TO_CHAR (bkto.bes_bestelling_key),
bkto.bes_bestelling_satisfaction,
bkto.bes_bestelling_satisfaction_op,
disc.ins_discipline_key,
disc.ins_discipline_omschrijving,
alg.alg_locatie_key,
alg.alg_locatie_code,
alg.alg_locatie_omschrijving,
TRUNC (bes_bestelling_datum)
FROM bes_bestelling bkto,
bes_bestelling_item bi,
bes_srtdeel bsd,
bes_srtgroep bsg,
ins_tab_discipline disc,
mld_adres a,
alg_locatie alg
WHERE bkto.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_srtdeel_key = bsd.bes_srtdeel_key
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
AND bsg.ins_discipline_key = disc.ins_discipline_key
AND bkto.mld_adres_key_lev = a.mld_adres_key
AND a.alg_locatie_key = alg.alg_locatie_key
GROUP BY bkto.prs_perslid_key,
bkto.prs_perslid_key_voor,
bkto.bes_bestelling_key,
TO_CHAR (bkto.bes_bestelling_key),
bkto.bes_bestelling_satisfaction,
bkto.bes_bestelling_satisfaction_op,
disc.ins_discipline_key,
disc.ins_discipline_omschrijving,
alg.alg_locatie_key,
alg.alg_locatie_code,
alg.alg_locatie_omschrijving,
TRUNC (bes_bestelling_datum);
--View tbv rapportage van passieve KTO
CREATE OR REPLACE VIEW fmhn_v_kto_passief
(
locatie_key,
locatie_code,
locatie_omschrijving,
ministerie,
begunstigde,
aanvrager,
cijfer,
opmerking,
module,
nummer,
disc_key,
vakgroep,
datum,
jaar,
kwartaal,
maand
)
AS
SELECT locatie_key,
locatie_code,
locatie_omschrijving,
b.prs_bedrijf_naam,
p_voor.prs_perslid_naam_friendly,
p_door.prs_perslid_naam_friendly,
fac.safe_to_number(cijfer),
opmerking,
module,
nummer,
disc_key,
vakgroep,
datum,
fac.safe_to_number (TO_CHAR (datum, 'YYYY')),
fac.safe_to_number (TO_CHAR (datum, 'Q')),
fac.safe_to_number (TO_CHAR (datum, 'MM'))
FROM fmhn_v_like_antwoorden,
prs_perslid p,
prs_v_aanwezigafdeling_boom pa,
prs_bedrijf b,
prs_v_perslid_fullnames_all p_voor,
prs_v_perslid_fullnames_all p_door
WHERE p.prs_perslid_key = fmhn_v_like_antwoorden.begunstigde
AND p.prs_afdeling_key = pa.prs_afdeling_key
AND pa.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_perslid_key = p_voor.prs_perslid_key
AND fmhn_v_like_antwoorden.aanvrager = p_door.prs_perslid_key;
--View tbv rapportage van actieve KTO
CREATE OR REPLACE VIEW fmhn_v_kto_actief
(
locatie_key,
locatie_code,
locatie_omschrijving,
ministerie,
begunstigde,
aanvrager,
vraag,
cijfer,
opmerking,
module,
nummer,
melding_key,
disc_key,
vakgroep,
datum,
jaar,
kwartaal,
maand
)
AS
SELECT l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
b.prs_bedrijf_naam,
p_voor.prs_perslid_naam_friendly,
p_door.prs_perslid_naam_friendly,
antwoorden.vraag,
fac.safe_to_number(antwoorden.cijfer),
antwoorden.toelichting,
'Melding',
m.mld_melding_kto_key,
m.mld_melding_key,
disc_kto.ins_discipline_key,
disc_kto.ins_discipline_omschrijving,
kto.mld_melding_datum,
fac.safe_to_number (TO_CHAR (kto.mld_melding_datum, 'YYYY')),
fac.safe_to_number (TO_CHAR (kto.mld_melding_datum, 'Q')),
fac.safe_to_number (TO_CHAR (kto.mld_melding_datum, 'MM'))
FROM mld_melding m,
mld_melding kto,
mld_stdmelding sm,
mld_stdmelding sm_kto,
ins_tab_discipline disc,
ins_tab_discipline disc_kto,
prs_perslid p,
prs_v_aanwezigafdeling_boom pa,
prs_bedrijf b,
prs_v_perslid_fullnames_all p_voor,
prs_v_perslid_fullnames_all p_door,
alg_locatie l,
(SELECT groep.mld_melding_key,
vraag.mld_kenmerk_omschrijving AS vraag,
groep.cijfer,
(SELECT DISTINCT (opm_kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding opm_kmm
WHERE opm_kmm.mld_kenmerk_key = opm.mld_kenmerk_key
AND opm_kmm.mld_melding_key = groep.mld_melding_key
AND opm_kmm.mld_kenmerkmelding_verwijder IS NULL)
AS toelichting
FROM mld_kenmerk vraag,
mld_srtkenmerk vraag_k,
mld_kenmerk opm,
mld_srtkenmerk opm_k,
( SELECT kto.mld_melding_key,
km.mld_stdmelding_key,
km.mld_kenmerk_groep,
ud.fac_usrdata_code AS cijfer
FROM mld_melding kto,
mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk skm,
fac_usrdata ud
WHERE kto.mld_melding_key = kmm.mld_melding_key
AND kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = skm.mld_srtkenmerk_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND TO_CHAR (ud.fac_usrdata_key) =
kmm.mld_kenmerkmelding_waarde
AND mld_srtkenmerk_kenmerktype = 'R'
GROUP BY kto.mld_melding_key,
km.mld_stdmelding_key,
km.mld_kenmerk_groep,
ud.fac_usrdata_code
ORDER BY kto.mld_melding_key,
km.mld_stdmelding_key,
km.mld_kenmerk_groep,
ud.fac_usrdata_code) groep
WHERE groep.mld_stdmelding_key = vraag.mld_stdmelding_key
AND groep.mld_kenmerk_groep = vraag.mld_kenmerk_groep
AND vraag.mld_srtkenmerk_key = vraag_k.mld_srtkenmerk_key
AND vraag_k.mld_srtkenmerk_kenmerktype = 'L'
AND groep.mld_stdmelding_key = opm.mld_stdmelding_key
AND groep.mld_kenmerk_groep = opm.mld_kenmerk_groep
AND opm.mld_srtkenmerk_key = opm_k.mld_srtkenmerk_key
AND opm_k.mld_srtkenmerk_kenmerktype = 'C') antwoorden
WHERE p.prs_perslid_key = kto.prs_perslid_key_voor
AND p.prs_afdeling_key = pa.prs_afdeling_key
AND pa.prs_bedrijf_key = b.prs_bedrijf_key
AND kto.prs_perslid_key_voor = p_voor.prs_perslid_key
AND kto.prs_perslid_key = p_door.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND kto.mld_stdmelding_key = sm_kto.mld_stdmelding_key
AND sm_kto.mld_ins_discipline_key = disc_kto.ins_discipline_key
AND disc.ins_srtdiscipline_key = 41 --Vakgroeptype KTO
AND m.mld_melding_kto_type = 'M'
AND m.mld_melding_kto_key = kto.mld_melding_key
AND m.mld_melding_key = antwoorden.mld_melding_key
AND kto.mld_alg_locatie_key = l.alg_locatie_key
UNION ALL
SELECT res.fclt_3d_locatie_key,
res.locatie,
res.locatie_omschrijving,
b.prs_bedrijf_naam,
p_voor.prs_perslid_naam_friendly,
p_door.prs_perslid_naam_friendly,
antwoorden.vraag,
fac.safe_to_number(antwoorden.cijfer),
antwoorden.toelichting,
'Reservering',
m.mld_melding_kto_key,
m.mld_melding_key,
resdisc.ins_discipline_key,
resdisc.ins_discipline_omschrijving,
rkto.res_rsv_ruimte_van,
fac.safe_to_number (TO_CHAR (rkto.res_rsv_ruimte_van, 'YYYY')),
fac.safe_to_number (TO_CHAR (rkto.res_rsv_ruimte_van, 'Q')),
fac.safe_to_number (TO_CHAR (rkto.res_rsv_ruimte_van, 'MM'))
FROM mld_melding m,
res_rsv_ruimte rkto,
res_v_udr_reservering res,
ins_tab_discipline resdisc,
mld_stdmelding sm,
ins_tab_discipline disc,
prs_perslid p,
prs_v_aanwezigafdeling_boom pa,
prs_bedrijf b,
prs_v_perslid_fullnames_all p_voor,
prs_v_perslid_fullnames_all p_door,
(SELECT groep.mld_melding_key,
vraag.mld_kenmerk_omschrijving AS vraag,
groep.cijfer,
(SELECT DISTINCT (opm_kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding opm_kmm
WHERE opm_kmm.mld_kenmerk_key = opm.mld_kenmerk_key
AND opm_kmm.mld_melding_key = groep.mld_melding_key
AND opm_kmm.mld_kenmerkmelding_verwijder IS NULL)
AS toelichting
FROM mld_kenmerk vraag,
mld_srtkenmerk vraag_k,
mld_kenmerk opm,
mld_srtkenmerk opm_k,
( SELECT kto.mld_melding_key,
km.mld_stdmelding_key,
km.mld_kenmerk_groep,
ud.fac_usrdata_code AS cijfer
FROM mld_melding kto,
mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk skm,
fac_usrdata ud
WHERE kto.mld_melding_key = kmm.mld_melding_key
AND kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = skm.mld_srtkenmerk_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND TO_CHAR (ud.fac_usrdata_key) =
kmm.mld_kenmerkmelding_waarde
AND mld_srtkenmerk_kenmerktype = 'R'
GROUP BY kto.mld_melding_key,
km.mld_stdmelding_key,
km.mld_kenmerk_groep,
ud.fac_usrdata_code
ORDER BY kto.mld_melding_key,
km.mld_stdmelding_key,
km.mld_kenmerk_groep,
ud.fac_usrdata_code) groep
WHERE groep.mld_stdmelding_key = vraag.mld_stdmelding_key
AND groep.mld_kenmerk_groep = vraag.mld_kenmerk_groep
AND vraag.mld_srtkenmerk_key = vraag_k.mld_srtkenmerk_key
AND vraag_k.mld_srtkenmerk_kenmerktype = 'L'
AND groep.mld_stdmelding_key = opm.mld_stdmelding_key
AND groep.mld_kenmerk_groep = opm.mld_kenmerk_groep
AND opm.mld_srtkenmerk_key = opm_k.mld_srtkenmerk_key
AND opm_k.mld_srtkenmerk_kenmerktype = 'C') antwoorden
WHERE p.prs_perslid_key = rkto.res_rsv_ruimte_host_key
AND p.prs_afdeling_key = pa.prs_afdeling_key
AND pa.prs_bedrijf_key = b.prs_bedrijf_key
AND rkto.res_rsv_ruimte_host_key = p_voor.prs_perslid_key
AND rkto.res_rsv_ruimte_contact_key = p_door.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND disc.ins_srtdiscipline_key = 41 --Vakgroeptype KTO
AND m.mld_melding_kto_type = 'R'
AND m.mld_melding_kto_key = rkto.res_rsv_ruimte_key
AND m.mld_melding_key = antwoorden.mld_melding_key
AND rkto.res_rsv_ruimte_key = res.key(+)
AND resdisc.ins_discipline_key = res.catalogus_key;
CREATE OR REPLACE VIEW fmhn_v_departement
(
prs_bedrijf_key,
prs_bedrijf_naam
)
AS
SELECT prs_bedrijf_key, prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf
WHERE prs_bedrijf_intern = 1;
-- KPIs (rapportages en dashboards)!
-- Doorlooptijd dienstverlening.
/* WEG???
CREATE OR REPLACE VIEW fmhn_v_udr_afh_mld_dv
AS
SELECT m.meldingnummer,
m.melding_start_key,
m.melding_regio,
m.melding_district,
m.melding_locatiecode,
m.melding_locatie,
m.melding_locatieplaats,
m.melding_gebouwcode,
m.melding_gebouw,
m.melding_verdieping,
m.melding_ruimtenr,
m.melding_ruimte,
m.kostensoortgroep,
m.kostensoort,
m.kostenplaats,
m.kostenplaats_oms,
m.melder,
m.afdeling,
m.afdeling_omschrijving afdeling_oms,
m.invoerder,
m.meldbron,
m.soortmelding vakgroeptype,
m.productgroep vakgroep,
m.subproductgroep soortmelding,
m.behandelgroep,
m.behandelaar,
m.actieve_behandelgroep,
m.actieve_behandelaar,
m.melding_status,
m.sla_nvt,
m.sla_accptdgn,
m.sla_accpturen,
m.sla_werkdgn,
m.sla_werkuren,
m.plan_uitvoertijd_sla,
m.melding_datum,
m.melding_einddatum,
m.melding_einddatum_std,
m.melding_acceptdatum,
m.melding_afgemeld,
m.melding_accepted,
m.doorlooptijd_werkdgn,
m.doorlooptijd_werkuren,
m.onderwerp,
m.vomschrijving omschrijving,
m.melding_opmerking,
m.prioriteit,
m.rating,
m.rating_opmerking rating_opm,
m.actiecode,
m.accept_sla_dagen,
m.accept_sla_uren,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
DECODE (UPPER (m.accept_sla_optijd), 'JA', 1, 0) accept_sla_optijd,
1 - DECODE (UPPER (m.accept_sla_optijd), 'JA', 1, 0) accept_sla_telaat,
DECODE (UPPER (m.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_optijd,
1 - DECODE (UPPER (m.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_telaat,
DECODE (UPPER (m.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_optijd,
1 - DECODE (UPPER (m.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_telaat,
m.selfservice,
TO_CHAR (m.melding_afgemeld, 'yyyy-mm') maand
FROM mld_v_udr_melding m
WHERE m.melding_afgemeld > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') -- Of m.melding_datum
AND m.sla_nvt = 0
AND INSTR (UPPER (subproductgroep), 'KLACHT') = 0
AND prioriteit IN (3, 4);
SELECT m.mld_melding_key,
m.mld_melding_datum,
m.mld_melding_einddatum_std,
x.melding_datum,
x.melding_einddatum_std,
m.mld_melding_t_uitvoertijd,
x.sla_werkdgn,
x.sla_werkuren,
x.doorlooptijd_werkdgn,
x.doorlooptijd_werkuren
FROM mld_melding m, mld_v_udr_melding x
WHERE m.mld_meldbron_nr IS NOT NULL AND m.mld_melding_key = x.melding_key;
DECODE (TO_CHAR (x.melding_einddatum_std, 'yyyy'),
'1970', DECODE (SIGN (COALESCE (x.doorlooptijd_werkdgn, x.doorlooptijd_werkuren) - COALESCE (x.sla_werkdgn, x.sla_werkuren)), -1, 'Buiten norm', 'Binnen norm'),
DECODE (SIGN (x.melding_einddatum_std - x.melding_afgemeld), -1, 'Buiten norm', 'Binnen norm')),
*/
-- Tbv. de volgende tabs in Excel van P&C: PD doorlooptijd DV, PD exploitatie/maand, PD Facilitair oog, PD KWIS meldingen
CREATE OR REPLACE VIEW fmhn_v_rap_doorlooptijd_dv
(
mld_melding_key,
binnen_norm,
buiten_norm_uren,
afhandelingstijd,
klant,
fm,
facilitair_oog,
locatieteam,
pand,
nummer,
gebruikerstype,
status,
omschrijving,
ruimtenr,
plaatsaanduiding,
prioriteit, -- Was urgentie
aanvrager, -- Was melder
kosten_voor,
kosten_incl,
aanvraag_voor,
toelichting,
standaardorder_code,
standaardorder_oms,
sla, -- Was prioriteit
nsk_of_overig,
productdienstnr,
productdienstnaam,
behandelteam, -- Was vakgroep
uitvoerder_intext,
uitvoerder_intern,
uitvoerder_extern,
datum_gemeld, --_datum
datum_gemeld_tijd,
datum_gemeld_maand,
datum_startdatum,
datum_startdatum_tijd,
datum_gewenst_gereed,
datum_gewenst_gereed_tijd,
datum_gereed, -- KV?
datum_gereed_tijd, -- KV?
datum_gereed_maand, -- Nieuw
datum_admgereed,
datum_admgereed_tijd,
datum_admgereed_maand,
datum_in_behandeling, -- / Res. def. / Offerte
datum_in_behandeling_tijd, -- / Res. def. / Offerte tijd
datum_in_behandeling_maand, -- / Res. def. / Offerte maand
datum_opdracht_gereed,
datum_opdracht_gereed_tijd,
datum_technisch_gereed,
datum_technisch_gereed_tijd,
gemigreerd,
fmh_sla_tijdsduur,
fmh_sla_eenheid,
fmh_sla_afspraak,
fmh_datum_gereed,
fmh_datum_gereed_tijd,
fmh_datum_gereed_maand,
fmh_binnen_norm
)
AS
SELECT x.melding_key,
CASE
WHEN m.mld_melding_status IN (5, 6)
THEN
DECODE (
TO_CHAR (x.melding_einddatum_std, 'yyyy'),
'1970', DECODE (
SIGN (
COALESCE (x.sla_werkdgn, x.sla_werkuren)
+ COALESCE (x.sla_respijtdgn,
x.sla_respijturen)
- COALESCE (x.doorlooptijd_werkdgn,
x.doorlooptijd_werkuren)),
-1, 'Buiten norm',
'Binnen norm'),
DECODE (
x.sla_werkuren,
NULL, DECODE (
SIGN (
x.melding_einddatum_std
+ x.sla_respijtdgn
- COALESCE (
x.melding_afgemeld,
fac.gettrackingdate (
'MLDAFR',
x.melding_key))),
-1, 'Buiten norm',
'Binnen norm'),
DECODE (
SIGN (
COALESCE (x.sla_werkdgn, x.sla_werkuren)
+ COALESCE (x.sla_respijtdgn,
x.sla_respijturen)
- COALESCE (x.doorlooptijd_werkdgn,
x.doorlooptijd_werkuren)),
-1, 'Buiten norm',
'Binnen norm')))
END
binnen_norm,
CASE
WHEN m.mld_melding_status IN (5, 6)
THEN
DECODE (
TO_CHAR (x.melding_einddatum_std, 'yyyy'),
'1970',
DECODE (
SIGN (COALESCE (x.sla_werkdgn, x.sla_werkuren) - COALESCE (x.doorlooptijd_werkdgn, x.doorlooptijd_werkuren)),
-1, DECODE (
m.mld_meldbron_nr,
NULL, COALESCE ((x.doorlooptijd_werkdgn - x.sla_werkdgn) * 9, x.doorlooptijd_werkuren - x.sla_werkuren),
mld.getactualuitvoer (
x.melding_einddatum_std,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)),
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'U').tijdsduur),
0),
DECODE (
SIGN (x.melding_einddatum_std - COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR',x.melding_key))),
-1, DECODE (
m.mld_meldbron_nr,
NULL, COALESCE ((x.doorlooptijd_werkdgn - x.sla_werkdgn) * 9, x.doorlooptijd_werkuren - x.sla_werkuren),
mld.getactualuitvoer (
x.melding_einddatum_std,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)),
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'U').tijdsduur),
0))
ELSE
NULL
END
buiten_norm_uren,
CASE
WHEN m.mld_melding_status IN (5, 6)
THEN
DECODE (
m.mld_meldbron_nr,
NULL,
COALESCE (x.doorlooptijd_werkdgn, x.doorlooptijd_werkuren / 9),
mld.getactualuitvoer ( -- Gemigreerde melding uit Planon!
x.melding_datum,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)),
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'D').tijdsduur)
ELSE
NULL
END
afhandelingstijd,
TRIM (SUBSTR (mc_ud.fac_usrdata_omschr, INSTR (mc_ud.fac_usrdata_omschr, '-') + 1))
klant,
pfm.prs_perslid_naam_full fm,
CASE
WHEN m.mld_stdmelding_key IN (SELECT fac_usrdata_volgnr
FROM fac_usrdata
WHERE fac_usrtab_key = 761)
THEN
'N.v.t.'
WHEN ab.prs_afdeling_key4 = 97 -- Melder-afdeling o653=DGVBR/FMHaaglanden
OR INSTR ('/' || COALESCE (k2a.idpad, k2a_a.idpad), '/04O2086') > 0 -- FMHN#71415: Kosten voor-afdeling o2086=DGVBR/UBR/FBU/Rijksbeveiligingsorg.
OR INSTR (a.prs_afdeling_omschrijving, 'DGVBR/pDGVBR/RBL/RBO/A/DH1/RS8') > 0 -- FMHN#78782 Vervolg op 77993 - Aanpassing kenmerk 'Facilitair Oog'
OR SUBSTR (COALESCE (k2a.idpad, k2a_a.idpad), 0, 20) = '021001/021050/021436' -- FMHN#79806 Ook de afdeling Directie Schoonmaakorganisatie; afdelingspad=SZW#PSG#RSO (en alle onderliggende afdelingen)
OR INSTR (a.prs_afdeling_omschrijving, 'DGVBR/pDGVBR/O' || Chr(38) || 'PR/Binnenwerk') > 0 -- FMHN#81890 (Chr(38) = &)
OR SUBSTR (COALESCE (k2a.idpad, k2a_a.idpad), 0, 45) = '04O354/04O372/04O2514/04O4366/04O4367/04O3823' -- FMHN#81890 Ook de onderliggende afdelingen van DGVBR/pDGVBR/O&PR/Binnenwerk
OR SUBSTR (COALESCE (k2a.idpad, k2a_a.idpad), 0, 37) = '04O354/04O372/04O2514/04O4366/04O2077' -- FMHN#84299, voor 'BZK ***** /DGVBR#pDGVBR/DGVBR#pDGVBR#Rijksorg Beveiliging & Log' en onderliggende afdelingen
THEN
'Ja'
ELSE
'Nee'
END
facilitair_oog,
x.melding_district locatieteam,
x.melding_locatie pand,
x.meldingnummer nummer,
x.soortmelding gebruikerstype, -- Vakgroeptype
x.melding_status status,
m.mld_meldbron_nr omschrijving, -- Tijdelijk vullen met Planonnummer
aog.alg_ruimte_nr ruimtenr, -- FMHN#72026: Graag toch vullen!
aog.alg_plaatsaanduiding plaatsaanduiding, -- FMHN#72026: Graag toch vullen!
x.prioriteittxt,
pfa.prs_perslid_naam_full aanvrager, -- Vanwege AVG leeg gelaten/FMHN#71415: Graag toch vullen!
COALESCE (k2a.pad, k2a_a.pad) kosten_voor,
NULL kosten_incl,
NULL aanvraag_voor,
--TRIM (REPLACE (SUBSTR (m.mld_melding_omschrijving, 1, 200), '"', '''')) toelichting, -- FMHN#71415: Graag toch vullen!
m.mld_melding_omschrijving toelichting, -- FMHN#71415: Graag toch vullen!
TO_CHAR (m.mld_stdmelding_key) standaardorder_code,
x.subproductgroep standaardorder_oms,
DECODE (x.sla_werkuren, NULL, DECODE (x.sla_werkdgn, NULL, NULL, TO_CHAR (x.sla_werkdgn) || 'D'), TO_CHAR (x.sla_werkuren) || 'U') sla,
NULL nsk_of_overig,
REGEXP_REPLACE (REGEXP_SUBSTR (x.productgroep,
'\(([^}]+)\)',
1,
1,
NULL,
1), '[^0-9.]', '')
productdienstnr,
x.productgroep productdienstnaam,
x.actieve_behandelgroep behandelteam,
--DECODE (b.prs_bedrijf_key, NULL, 'Intern', 'Extern') uitvoerder_intext,
CASE
WHEN b.prs_bedrijf_key IS NOT NULL
OR INSTR (x.productgroep, '1310.01') > 0 -- FMHN#71415: Als productdienstnr=1310.01=Schoonmaak, dan Extern!
OR INSTR (x.productgroep, '1173.01') > 0 -- FMHN#72026: Als productdienstnr=1173.01=Reguliere reststoffen, dan Extern!
THEN
'Extern'
ELSE
'Intern'
END
uitvoerder_intext,
pfb.prs_perslid_naam_full uitvoerder_intern,
b.prs_bedrijf_naam uitvoerder_extern,
x.melding_datum datum_gemeld, -- MLDNEW?
TO_CHAR (x.melding_datum, 'hh24:mi') datum_gemeld_tijd, -- MLDNEW?
TRIM (TO_CHAR (x.melding_datum, 'month')) datum_gemeld_maand, -- MLDNEW?
NULL datum_startdatum, -- Planbare meldingen?
NULL datum_startdatum_tijd, -- Planbare meldingen?
x.melding_einddatum datum_gewenst_gereed,
TO_CHAR (x.melding_einddatum, 'hh24:mi') datum_gewenst_gereed_tijd,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)) datum_gereed, -- KV?
TO_CHAR (COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)), 'hh24:mi') datum_gereed_tijd, -- KV?
TRIM (TO_CHAR (COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)), 'month')) datum_gereed_maand,
NULL datum_admgereed,
NULL datum_admgereed_tijd,
NULL datum_admgereed_maand,
x.melding_accepted datum_in_behandeling, -- / Res. def. / Offerte
TO_CHAR (x.melding_accepted, 'hh24:mi') datum_in_behandeling_tijd, -- / Res. def. / Offerte tijd
TRIM (TO_CHAR (x.melding_accepted, 'month')) datum_in_behandeling_maand, -- / Res. def. / Offerte maand
o.opdracht_gereed datum_opdracht_gereed,
TO_CHAR (o.opdracht_gereed, 'hh24:mi') datum_opdracht_gereed_tijd,
NULL datum_technisch_gereed,
NULL datum_technisch_gereed_tijd,
DECODE (m.mld_meldbron_nr, NULL, 'Nee', 'Ja') gemigreerd,
COALESCE (sm.mld_stdmelding_t_accepttijd.tijdsduur,
sm.mld_stdmelding_t_uitvoertijd.tijdsduur)
AS fmh_sla_tijdsduur,
COALESCE (
DECODE (sm.mld_stdmelding_t_accepttijd.tijdsduur,
NULL, NULL,
sm.mld_stdmelding_t_accepttijd.eenheid),
sm.mld_stdmelding_t_uitvoertijd.eenheid)
AS fmh_sla_eenheid,
DECODE (sm.mld_stdmelding_t_accepttijd.tijdsduur,
NULL, 'Uitvoeren',
'Accepteren')
AS fmh_sla_afspraak,
DECODE (sm.mld_stdmelding_t_accepttijd.tijdsduur,
NULL,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
COALESCE(fac.gettrackingdate ('MLDACP', m.mld_melding_key),fac.gettrackingdate ('MLDREJ', m.mld_melding_key))
)
AS fmh_datum_gereed,
TO_CHAR (
DECODE (
sm.mld_stdmelding_t_accepttijd.tijdsduur,
NULL, fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
COALESCE (fac.gettrackingdate ('MLDACP', m.mld_melding_key),
fac.gettrackingdate ('MLDREJ', m.mld_melding_key))),
'hh24:mi')
fmh_datum_gereed_tijd, -- KV?
TRIM (
TO_CHAR (
DECODE (
sm.mld_stdmelding_t_accepttijd.tijdsduur,
NULL, fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
COALESCE (
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
fac.gettrackingdate ('MLDREJ', m.mld_melding_key))),
'month'))
fmh_datum_gereed_maand,
(CASE
WHEN sm.mld_stdmelding_t_accepttijd.tijdsduur > 0
THEN --Dan controleren op overschrijding uitvoertijd.
DECODE (x.accept_sla_optijd, 'ja', 'Binnen', 'Buiten')
ELSE --Dan controleren op overschrijding acceptatietijd.
DECODE (x.uitvoering_sla_optijd, 'ja', 'Binnen', 'Buiten')
END)
AS fmh_binnen_norm
FROM mld_v_udr_melding x,
mld_melding m,
mld_stdmelding sm,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1008) mc, -- Ministeriecode
fac_v_aanwezigusrdata mc_ud,
prs_perslid p,
prs_v_perslid_fullnames_all pfa,
prs_v_afdeling_boom ab,
prs_afdeling a,
fmhn_v_rap_idm_afdboom k2a, -- Kostenplaats2Afdeling
fmhn_v_rap_idm_afdboom k2a_a, -- Kostenplaats2Afdeling_aanvrager
alg_locatie l,
alg_v_allonrgoed_gegevens aog,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_kenmerk_key = 1060) fm, -- Facilitair Manager
prs_v_perslid_fullnames_all pfm,
--(SELECT o1.mld_melding_key, o1.mld_opdr_bedrijfopdr_volgnr volgnr, o1.mld_uitvoerende_keys prs_perslid_key
-- FROM mld_opdr o1
-- WHERE EXISTS (SELECT 1 FROM prs_perslid WHERE prs_perslid_key = o1.mld_uitvoerende_keys) -- Laatst uitgegeven interne opdracht!
-- AND NOT EXISTS (SELECT 1 FROM mld_opdr o2 WHERE o2.mld_melding_key = o1.mld_melding_key AND o2.mld_opdr_key > o1.mld_opdr_key)) int_o,
--(SELECT o1.mld_melding_key, o1.mld_opdr_bedrijfopdr_volgnr volgnr, o1.mld_uitvoerende_keys prs_bedrijf_key
-- FROM mld_opdr o1
-- WHERE EXISTS (SELECT 1 FROM prs_bedrijf WHERE prs_bedrijf_key = o1.mld_uitvoerende_keys) -- Laatst uitgegeven externe opdracht!
-- AND NOT EXISTS (SELECT 1 FROM mld_opdr o2 WHERE o2.mld_melding_key = o1.mld_melding_key AND o2.mld_opdr_key > o1.mld_opdr_key)) ext_o,
(SELECT o1.mld_melding_key, o1.mld_uitvoerende_keys, fac.gettrackingdate ('ORDAFM', o1.mld_opdr_key) opdracht_gereed -- Laatst uitgegeven opdracht!
FROM mld_opdr o1
WHERE NOT EXISTS (SELECT 1 FROM mld_opdr o2 WHERE o2.mld_melding_key = o1.mld_melding_key AND o2.mld_opdr_key > o1.mld_opdr_key)) o,
prs_v_perslid_fullnames_all pfb,
prs_bedrijf b
WHERE COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key), SYSDATE) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') -- Of m.melding_datum???
AND x.sla_nvt = 0 -- Alleen meldingen waarvoor SLA bewaken aangevinkt!
--AND x.melding_start_key IS NULL -- Geen (WF-)vervolgmeldingen!
AND NOT EXISTS
(SELECT 1
FROM mld_stdmelding sm, mld_discipline md
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND (md.ins_srtdiscipline_key IN (1, 25, 26, 28, 41, 42, 81) -- Personenvervoer/Compliment/Idee/Klacht/Klanttevredenheid/Incidenten/VOR Kaarten
OR md.ins_discipline_key IN (48, -- Functioneel beheer
243, -- Fube Quickcalls
823) -- Functioneelbeheer ICT aanvragen
OR sm.mld_stdmelding_key IN (47))) -- Functioneel beheer melding onder Overig diensten (13)
--AND x.prioriteit IN (3, 4) -- Alle prioriteiten, want bronrapport tbv. niet urgente en urgente meldingen!
AND x.melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
--AND m.mld_melding_status IN (5, 6) -- Gesloten (en niet afgewezen)
AND m.mld_melding_status <> 1 -- Niet afgewezen
AND m.prs_perslid_key_voor = mc.prs_link_key(+)
AND fac.safe_to_number (mc.prs_kenmerklink_waarde) = mc_ud.fac_usrdata_key(+)
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = pfa.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key = a.prs_afdeling_key
AND m.prs_kostenplaats_key = k2a.prs_kostenplaats_key(+)
AND k2a.afdverwijder IS NULL
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND l.alg_district_key = fm.alg_onrgoed_key(+)
AND fac.safe_to_number (fm.alg_onrgoedkenmerk_waarde) = pfm.prs_perslid_key(+)
--AND m.mld_melding_key = int_o.mld_melding_key(+)
--AND m.mld_melding_key = ext_o.mld_melding_key(+)
AND m.mld_melding_key = o.mld_melding_key(+)
--AND COALESCE (int_o.prs_perslid_key, m.mld_melding_behandelaar2_key, m.mld_melding_behandelaar_key) = pf.prs_perslid_key(+)
AND COALESCE (m.mld_melding_behandelaar2_key, m.mld_melding_behandelaar_key) = pfb.prs_perslid_key(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND p.prs_afdeling_key = k2a_a.prs_afdeling_key
AND ((m.mld_workflowstep_key IS NULL)
OR (m.mld_melding_start_key = m.mld_melding_key AND m.mld_workflowstep_key IS NOT NULL));
CREATE OR REPLACE VIEW fmhn_v_rap_afh_kwis_mld
(
mld_melding_key,
binnen_norm,
buiten_norm_uren,
afhandelingstijd,
klant,
fm,
facilitair_oog,
locatieteam,
pand,
nummer,
gebruikerstype,
status,
omschrijving,
ruimtenr,
plaatsaanduiding,
prioriteit, -- Was urgentie
aanvrager, -- Was melder
kosten_voor,
kosten_incl,
aanvraag_voor,
toelichting,
standaardorder_code,
standaardorder_oms,
sla, -- Was prioriteit
nsk_of_overig,
productdienstnr,
productdienstnaam,
behandelteam, -- Was vakgroep
uitvoerder_intext,
uitvoerder_intern,
uitvoerder_extern,
datum_gemeld, --_datum
datum_gemeld_tijd,
datum_gemeld_maand,
datum_startdatum,
datum_startdatum_tijd,
datum_gewenst_gereed,
datum_gewenst_gereed_tijd,
datum_gereed, -- KV?
datum_gereed_tijd, -- KV?
datum_gereed_maand, -- Nieuw
datum_admgereed,
datum_admgereed_tijd,
datum_admgereed_maand,
datum_in_behandeling, -- / Res. def. / Offerte
datum_in_behandeling_tijd, -- / Res. def. / Offerte tijd
datum_in_behandeling_maand, -- / Res. def. / Offerte maand
datum_opdracht_gereed,
datum_opdracht_gereed_tijd,
datum_technisch_gereed,
datum_technisch_gereed_tijd,
gemigreerd
)
AS
SELECT x.melding_key,
--DECODE (
-- m.mld_meldbron_nr,
-- NULL,
-- DECODE (
-- --UPPER (x.uitvoering_sla_optijd),
-- SIGN (x.melding_einddatum_std - x.melding_afgemeld),
-- -1, 'Buiten norm',
-- 'Binnen norm'),
-- DECODE ( -- Gemigreerde melding uit Planon!
-- SIGN (x.melding_einddatum_std - COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key))),
-- -1, 'Buiten norm',
-- 'Binnen norm'))
CASE
WHEN m.mld_melding_status IN (5, 6)
THEN
DECODE (
TO_CHAR (x.melding_einddatum_std, 'yyyy'),
'1970',
DECODE (
SIGN (COALESCE (x.sla_werkdgn, x.sla_werkuren) - COALESCE (x.doorlooptijd_werkdgn, x.doorlooptijd_werkuren)),
-1, 'Buiten norm',
'Binnen norm'),
DECODE (
SIGN (x.melding_einddatum_std - COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR',x.melding_key))),
-1, 'Buiten norm',
'Binnen norm'))
ELSE
NULL
END
binnen_norm,
CASE
WHEN m.mld_melding_status IN (5, 6)
THEN
DECODE (
TO_CHAR (x.melding_einddatum_std, 'yyyy'),
'1970',
DECODE (
SIGN (COALESCE (x.sla_werkdgn, x.sla_werkuren) - COALESCE (x.doorlooptijd_werkdgn, x.doorlooptijd_werkuren)),
-1, DECODE (
m.mld_meldbron_nr,
NULL, COALESCE ((x.doorlooptijd_werkdgn - x.sla_werkdgn) * 9, x.doorlooptijd_werkuren - x.sla_werkuren),
mld.getactualuitvoer (
x.melding_einddatum_std,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)),
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'U').tijdsduur),
0),
DECODE (
SIGN (x.melding_einddatum_std - COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR',x.melding_key))),
-1, DECODE (
m.mld_meldbron_nr,
NULL, COALESCE ((x.doorlooptijd_werkdgn - x.sla_werkdgn) * 9, x.doorlooptijd_werkuren - x.sla_werkuren),
mld.getactualuitvoer (
x.melding_einddatum_std,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)),
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'U').tijdsduur),
0))
ELSE
NULL
END
buiten_norm_uren,
CASE
WHEN m.mld_melding_status IN (5, 6)
THEN
DECODE (
m.mld_meldbron_nr,
NULL,
COALESCE (x.doorlooptijd_werkdgn, x.doorlooptijd_werkuren / 9),
mld.getactualuitvoer ( -- Gemigreerde melding uit Planon!
x.melding_datum,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)),
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'D').tijdsduur)
ELSE
NULL
END
afhandelingstijd,
TRIM (SUBSTR (mc_ud.fac_usrdata_omschr, INSTR (mc_ud.fac_usrdata_omschr, '-') + 1))
klant,
pfm.prs_perslid_naam_full fm,
--DECODE (ab.prs_afdeling_key4, 97, 'Ja', 'Nee') facilitair_oog, -- 97=o653=DGVBR/FMHaaglanden;TODO:Klantverzoek=NVT???
CASE
WHEN ab.prs_afdeling_key4 = 97 -- Melder-afdeling o653=DGVBR/FMHaaglanden
OR INSTR ('/' || k2a.idpad, '/04O2086') > 0 -- FMHN#71415: Kosten voor-afdeling o2086=DGVBR/UBR/FBU/Rijksbeveiligingsorg.
THEN
'Ja'
ELSE
'Nee'
END
facilitair_oog,
x.melding_district locatieteam,
x.melding_locatie pand,
x.meldingnummer nummer,
x.soortmelding gebruikerstype, -- Vakgroeptype
x.melding_status status,
m.mld_meldbron_nr omschrijving, -- Tijdelijk vullen met Planonnummer
aog.alg_ruimte_nr ruimtenr, -- FMHN#72026: Graag toch vullen!
aog.alg_plaatsaanduiding plaatsaanduiding, -- FMHN#72026: Graag toch vullen!
DECODE (
INSTR (UPPER (x.subproductgroep), 'URGENT'),
0, x.prioriteittxt,
'Hoog')
prioriteit,
pfa.prs_perslid_naam_full aanvrager, -- Vanwege AVG leeg gelaten/FMHN#71415: Graag toch vullen!
k2a.pad kosten_voor,
NULL kosten_incl,
NULL aanvraag_voor,
--TRIM (REPLACE (SUBSTR (m.mld_melding_omschrijving, 1, 200), '"', '''')) toelichting, -- FMHN#71415: Graag toch vullen!
m.mld_melding_omschrijving toelichting, -- FMHN#71415: Graag toch vullen!
TO_CHAR (m.mld_stdmelding_key) standaardorder_code,
x.subproductgroep standaardorder_oms,
DECODE (x.sla_werkuren, NULL, DECODE (x.sla_werkdgn, NULL, NULL, TO_CHAR (x.sla_werkdgn) || 'D'), TO_CHAR (x.sla_werkuren) || 'U') sla,
NULL nsk_of_overig,
REGEXP_REPLACE (REGEXP_SUBSTR (x.productgroep,
'\(([^}]+)\)',
1,
1,
NULL,
1), '[^0-9.]', '')
productdienstnr,
x.productgroep productdienstnaam,
x.actieve_behandelgroep behandelteam,
--DECODE (b.prs_bedrijf_key, NULL, 'Intern', 'Extern') uitvoerder_intext,
CASE
WHEN b.prs_bedrijf_key IS NOT NULL
OR INSTR (x.productgroep, '1310.01') > 0 -- FMHN#71415: Als productdienstnr=1310.01=Schoonmaak, dan Extern!
OR INSTR (x.productgroep, '1173.01') > 0 -- FMHN#72026: Als productdienstnr=1173.01=Reguliere reststoffen, dan Extern!
THEN
'Extern'
ELSE
'Intern'
END
uitvoerder_intext,
pfb.prs_perslid_naam_full uitvoerder_intern,
b.prs_bedrijf_naam uitvoerder_extern,
x.melding_datum datum_gemeld, -- MLDNEW?
TO_CHAR (x.melding_datum, 'hh24:mi') datum_gemeld_tijd, -- MLDNEW?
TRIM (TO_CHAR (x.melding_datum, 'month')) datum_gemeld_maand, -- MLDNEW?
NULL datum_startdatum, -- Planbare meldingen?
NULL datum_startdatum_tijd, -- Planbare meldingen?
x.melding_einddatum datum_gewenst_gereed,
TO_CHAR (x.melding_einddatum, 'hh24:mi') datum_gewenst_gereed_tijd,
COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)) datum_gereed, -- KV?
TO_CHAR (COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)), 'hh24:mi') datum_gereed_tijd, -- KV?
TRIM (TO_CHAR (COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key)), 'month')) datum_gereed_maand,
NULL datum_admgereed,
NULL datum_admgereed_tijd,
NULL datum_admgereed_maand,
x.melding_accepted datum_in_behandeling, -- / Res. def. / Offerte
TO_CHAR (x.melding_accepted, 'hh24:mi') datum_in_behandeling_tijd, -- / Res. def. / Offerte tijd
TRIM (TO_CHAR (x.melding_accepted, 'month')) datum_in_behandeling_maand, -- / Res. def. / Offerte maand
o.opdracht_gereed datum_opdracht_gereed,
TO_CHAR (o.opdracht_gereed, 'hh24:mi') datum_opdracht_gereed_tijd,
NULL datum_technisch_gereed,
NULL datum_technisch_gereed_tijd,
DECODE (m.mld_meldbron_nr, NULL, 'Nee', 'Ja') gemigreerd
FROM mld_v_udr_melding x,
mld_melding m,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1008) mc, -- Ministeriecode
fac_v_aanwezigusrdata mc_ud,
prs_perslid p,
prs_v_perslid_fullnames_all pfa,
prs_v_afdeling_boom ab,
fmhn_v_rap_idm_afdboom k2a, -- Kostenplaats2Afdeling
alg_locatie l,
alg_v_allonrgoed_gegevens aog,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_kenmerk_key = 1060) fm, -- Facilitair Manager
prs_v_perslid_fullnames_all pfm,
--(SELECT o1.mld_melding_key, o1.mld_opdr_bedrijfopdr_volgnr volgnr, o1.mld_uitvoerende_keys prs_perslid_key
-- FROM mld_opdr o1
-- WHERE EXISTS (SELECT 1 FROM prs_perslid WHERE prs_perslid_key = o1.mld_uitvoerende_keys) -- Laatst uitgegeven interne opdracht!
-- AND NOT EXISTS (SELECT 1 FROM mld_opdr o2 WHERE o2.mld_melding_key = o1.mld_melding_key AND o2.mld_opdr_key > o1.mld_opdr_key)) int_o,
--(SELECT o1.mld_melding_key, o1.mld_opdr_bedrijfopdr_volgnr volgnr, o1.mld_uitvoerende_keys prs_bedrijf_key
-- FROM mld_opdr o1
-- WHERE EXISTS (SELECT 1 FROM prs_bedrijf WHERE prs_bedrijf_key = o1.mld_uitvoerende_keys) -- Laatst uitgegeven externe opdracht!
-- AND NOT EXISTS (SELECT 1 FROM mld_opdr o2 WHERE o2.mld_melding_key = o1.mld_melding_key AND o2.mld_opdr_key > o1.mld_opdr_key)) ext_o,
(SELECT o1.mld_melding_key, o1.mld_uitvoerende_keys, fac.gettrackingdate ('ORDAFM', o1.mld_opdr_key) opdracht_gereed -- Laatst uitgegeven opdracht!
FROM mld_opdr o1
WHERE NOT EXISTS (SELECT 1 FROM mld_opdr o2 WHERE o2.mld_melding_key = o1.mld_melding_key AND o2.mld_opdr_key > o1.mld_opdr_key)) o,
prs_v_perslid_fullnames_all pfb,
prs_bedrijf b
WHERE COALESCE (x.melding_afgemeld, fac.gettrackingdate ('MLDAFR', x.melding_key), SYSDATE) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') -- Of m.melding_datum???
--AND x.sla_nvt = 0 -- Alleen meldingen waarvoor SLA bewaken aangevinkt!
--AND x.melding_start_key IS NULL -- Geen (WF-)vervolgmeldingen!
AND NOT EXISTS
(SELECT 1
FROM mld_stdmelding sm, mld_discipline md
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND (md.ins_srtdiscipline_key IN (1, 41, 42, 81) -- Personenvervoer/Klanttevredenheid/Incidenten/VOR Kaarten
OR md.ins_discipline_key IN (48, -- Functioneel beheer
243, -- Fube Quickcalls
823, -- Functioneelbeheer ICT aanvragen
823) -- Functioneelbeheer ICT aanvragen
OR sm.mld_stdmelding_key IN (47))) -- Functioneel beheer melding onder Overig diensten (13)
--AND x.prioriteit IN (3, 4) -- Alle prioriteiten, want bronrapport tbv. niet urgente en urgente meldingen!
AND x.melding_key = m.mld_melding_key
--AND m.mld_melding_status IN (5, 6) -- Gesloten (en niet afgewezen)
AND m.mld_melding_status <> 1 -- Niet afgewezen
AND m.prs_perslid_key_voor = mc.prs_link_key(+)
AND fac.safe_to_number (mc.prs_kenmerklink_waarde) = mc_ud.fac_usrdata_key(+)
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = pfa.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND m.prs_kostenplaats_key = k2a.prs_kostenplaats_key(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND l.alg_district_key = fm.alg_onrgoed_key(+)
AND fac.safe_to_number (fm.alg_onrgoedkenmerk_waarde) = pfm.prs_perslid_key(+)
--AND m.mld_melding_key = int_o.mld_melding_key(+)
--AND m.mld_melding_key = ext_o.mld_melding_key(+)
AND m.mld_melding_key = o.mld_melding_key(+)
--AND COALESCE (int_o.prs_perslid_key, m.mld_melding_behandelaar2_key, m.mld_melding_behandelaar_key) = pf.prs_perslid_key(+)
AND COALESCE (m.mld_melding_behandelaar2_key, m.mld_melding_behandelaar_key) = pfb.prs_perslid_key(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+);
-- Afhandeling klachten.
CREATE OR REPLACE VIEW FMHN_V_RAP_AFH_KLACHTEN
(
MLD_MELDING_KEY,
KLACHT_IDEE_COMPLIMENT,
BINNEN_NORM,
BUITEN_NORM_UREN,
AFHANDELINGSTIJD,
KLANT,
FM,
FACILITAIR_OOG,
LOCATIETEAM,
PAND,
NUMMER,
GEBRUIKERSTYPE,
STATUS,
OMSCHRIJVING,
RUIMTENR,
PLAATSAANDUIDING,
PRIORITEIT,
AANVRAGER,
KOSTEN_VOOR,
AANVRAAG_VOOR,
TOELICHTING,
GEWENSTEOPL,
STANDAARDORDER_CODE,
STANDAARDORDER_OMS,
SLA,
PRODUCTDIENSTNR,
PRODUCTDIENSTNAAM,
BEHANDELTEAM,
UITVOERDER_INTERN,
DATUM_GEMELD,
DATUM_GEMELD_TIJD,
DATUM_GEMELD_MAAND,
DATUM_STARTDATUM,
DATUM_STARTDATUM_TIJD,
DATUM_GEWENST_GEREED,
DATUM_GEWENST_GEREED_TIJD,
DATUM_GEREED,
DATUM_GEREED_TIJD,
DATUM_GEREED_MAAND,
DATUM_ADMGEREED,
DATUM_ADMGEREED_TIJD,
DATUM_ADMGEREED_MAAND,
DATUM_IN_BEHANDELING,
DATUM_IN_BEHANDELING_TIJD,
DATUM_IN_BEHANDELING_MAAND,
DATUM_OPDRACHT_GEREED,
DATUM_OPDRACHT_GEREED_TIJD,
DATUM_TECHNISCH_GEREED,
DATUM_TECHNISCH_GEREED_TIJD,
GEMIGREERD
)
AS
SELECT x.melding_key,
tbv_ud.fac_usrdata_omschr
klacht_idee_compliment,
DECODE (
accp.melding_accepted,
NULL, NULL,
DECODE (
x.melding_acceptdatum,
NULL, DECODE (SIGN ( 1
- mld.getactualuitvoer (
x.melding_datum,
accp.melding_accepted,
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'D').tijdsduur),
-1, 'Buiten norm',
'Binnen norm'),
DECODE (
SIGN (x.melding_acceptdatum - accp.melding_accepted),
-1, 'Buiten norm',
'Binnen norm')))
binnen_norm,
DECODE (
accp.melding_accepted,
NULL, NULL,
DECODE (
x.melding_acceptdatum,
NULL, DECODE ( 1
- SIGN (mld.getactualuitvoer (
x.melding_datum,
accp.melding_accepted,
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'D').tijdsduur),
-1, ( mld.getactualuitvoer (
x.melding_datum,
accp.melding_accepted,
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'D').tijdsduur
- 1)
* 9,
0),
DECODE (
SIGN (x.melding_acceptdatum - accp.melding_accepted),
-1, ( mld.getactualuitvoer (x.melding_acceptdatum,
accp.melding_accepted,
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'D').tijdsduur
- 1)
* 9,
0)))
buiten_norm_uren,
DECODE (accp.melding_accepted,
NULL, NULL,
mld.getactualuitvoer (x.melding_datum,
accp.melding_accepted,
m.mld_stdmelding_key,
NULL,
NULL,
NULL,
'D').tijdsduur)
afhandelingstijd,
TRIM (
SUBSTR (mc_ud.fac_usrdata_omschr,
INSTR (mc_ud.fac_usrdata_omschr, '-') + 1))
klant,
pfm.prs_perslid_naam_full
fm,
--DECODE (ab.prs_afdeling_key4, 97, 'Ja', 'Nee') facilitair_oog, -- 97=o653=DGVBR/FMHaaglanden;TODO:Klantverzoek=NVT???
CASE
WHEN ab.prs_afdeling_key4 = 97 -- Melder-afdeling o653=DGVBR/FMHaaglanden
OR INSTR ('/' || k2a.idpad, '/04O2086') > 0 -- FMHN#71415: Kosten voor-afdeling o2086=DGVBR/UBR/FBU/Rijksbeveiligingsorg.
THEN
'Ja'
ELSE
'Nee'
END
facilitair_oog,
x.melding_district
locatieteam,
x.melding_locatie
pand,
x.meldingnummer
nummer,
x.soortmelding
gebruikerstype, -- Vakgroeptype
x.melding_status
status,
m.mld_meldbron_nr
omschrijving, -- Tijdelijk vullen met Planonnummer
aog.alg_ruimte_nr
ruimtenr, -- FMHN#72026: Graag toch vullen!
aog.alg_plaatsaanduiding
plaatsaanduiding, -- FMHN#72026: Graag toch vullen!
DECODE (INSTR (UPPER (x.subproductgroep), 'URGENT'),
0, x.prioriteittxt,
'Hoog')
prioriteit,
pfa.prs_perslid_naam_full
aanvrager, -- Vanwege AVG leeg gelaten/FMHN#71415: Graag toch vullen!
k2a.pad
kosten_voor,
--NULL kosten_incl,
NULL
aanvraag_voor,
--TRIM (REPLACE (SUBSTR (m.mld_melding_omschrijving, 1, 200), '"', '''')) toelichting, -- FMHN#71415: Graag toch vullen!
--m.mld_melding_omschrijving toelichting, -- FMHN#71415: Graag toch vullen!
omsk.mld_kenmerkmelding_waarde
toelichting, -- FMHN#71415: Graag toch vullen (uit kenmerkveld igv. Klacht)!
wowj.mld_kenmerkmelding_waarde
gewensteopl,
TO_CHAR (m.mld_stdmelding_key)
standaardorder_code,
x.subproductgroep
standaardorder_oms,
DECODE (
x.sla_accpturen,
NULL, DECODE (x.sla_accptdgn,
NULL, '1D',
TO_CHAR (x.sla_accptdgn) || 'D'),
TO_CHAR (x.sla_accpturen) || 'U')
sla,
--NULL nsk_of_overig,
REGEXP_REPLACE (REGEXP_SUBSTR (x.productgroep,
'\(([^}]+)\)',
1,
1,
NULL,
1),
'[^0-9.]',
'')
productdienstnr,
x.productgroep
productdienstnaam,
x.actieve_behandelgroep
behandelteam,
--DECODE (b.prs_bedrijf_key, NULL, 'Intern', 'Extern') uitvoerder_intext,
pfb.prs_perslid_naam_full
uitvoerder_intern,
--b.prs_bedrijf_naam uitvoerder_extern,
x.melding_datum
datum_gemeld, -- MLDNEW?
TO_CHAR (x.melding_datum, 'hh24:mi')
datum_gemeld_tijd, -- MLDNEW?
TRIM (TO_CHAR (x.melding_datum, 'month'))
datum_gemeld_maand, -- MLDNEW?
NULL
datum_startdatum, -- Planbare meldingen?
NULL
datum_startdatum_tijd, -- Planbare meldingen?
x.melding_einddatum
datum_gewenst_gereed,
TO_CHAR (x.melding_einddatum, 'hh24:mi')
datum_gewenst_gereed_tijd,
COALESCE (x.melding_afgemeld,
fac.gettrackingdate ('MLDAFR', x.melding_key))
datum_gereed, -- KV?
TO_CHAR (
COALESCE (x.melding_afgemeld,
fac.gettrackingdate ('MLDAFR', x.melding_key)),
'hh24:mi')
datum_gereed_tijd, -- KV?
TRIM (
TO_CHAR (
COALESCE (x.melding_afgemeld,
fac.gettrackingdate ('MLDAFR', x.melding_key)),
'month'))
datum_gereed_maand,
NULL
datum_admgereed,
NULL
datum_admgereed_tijd,
NULL
datum_admgereed_maand,
accp.melding_accepted
datum_in_behandeling, -- / Res. def. / Offerte
TO_CHAR (accp.melding_accepted, 'hh24:mi')
datum_in_behandeling_tijd, -- / Res. def. / Offerte tijd
TRIM (TO_CHAR (accp.melding_accepted, 'month'))
datum_in_behandeling_maand, -- / Res. def. / Offerte maand
NULL
datum_opdracht_gereed,
NULL
datum_opdracht_gereed_tijd,
NULL
datum_technisch_gereed,
NULL
datum_technisch_gereed_tijd,
DECODE (m.mld_meldbron_nr, NULL, 'Nee', 'Ja')
gemigreerd
FROM mld_v_udr_melding x,
mld_melding m,
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1008) mc, -- Ministeriecode
fac_v_aanwezigusrdata mc_ud,
prs_perslid p,
prs_v_perslid_fullnames_all pfa,
prs_v_afdeling_boom ab,
fmhn_v_rap_idm_afdboom k2a, -- Kostenplaats2Afdeling
alg_locatie l,
alg_v_allonrgoed_gegevens aog,
(SELECT *
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1060) fm, -- Facilitair Manager
prs_v_perslid_fullnames_all pfm,
prs_v_perslid_fullnames_all pfb,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 279) tbv, -- Klacht tbv
fac_v_aanwezigusrdata tbv_ud,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 175) omsk, -- Omschrijving klacht
(SELECT *
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 181) wowj, -- Welke oplossing wil je?
(SELECT t.fac_tracking_refkey,
MIN (t.fac_tracking_datum) melding_accepted
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 44 --MLDACP
GROUP BY t.fac_tracking_refkey) accp
WHERE COALESCE (accp.melding_accepted, SYSDATE) >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') -- Of m.melding_datum???
--AND x.sla_nvt = 0 -- Alleen meldingen waarvoor SLA bewaken aangevinkt!
--AND x.melding_start_key IS NULL -- Geen (WF-)vervolgmeldingen!
AND EXISTS
(SELECT 1
FROM mld_stdmelding sm, mld_discipline md
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
AND sm.mld_ins_discipline_key =
md.ins_discipline_key
AND md.ins_srtdiscipline_key = 28) -- Klacht
--AND x.prioriteit IN (3, 4) -- Alle prioriteiten, want bronrapport tbv. niet urgente en urgente meldingen!
AND x.melding_key = m.mld_melding_key
--AND m.mld_melding_status IN (5, 6) -- Gesloten (en niet afgewezen)
AND m.mld_melding_status <> 1 -- Niet afgewezen
AND m.prs_perslid_key_voor = mc.prs_link_key(+)
AND fac.safe_to_number (mc.prs_kenmerklink_waarde) =
mc_ud.fac_usrdata_key(+)
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = pfa.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND m.prs_kostenplaats_key = k2a.prs_kostenplaats_key(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND l.alg_district_key = fm.alg_onrgoed_key(+)
AND fac.safe_to_number (fm.alg_onrgoedkenmerk_waarde) =
pfm.prs_perslid_key(+)
AND COALESCE (m.mld_melding_behandelaar2_key,
m.mld_melding_behandelaar_key) =
pfb.prs_perslid_key(+)
AND x.melding_key = tbv.mld_melding_key(+)
AND fac.safe_to_number (tbv.mld_kenmerkmelding_waarde) =
tbv_ud.fac_usrdata_key(+)
AND x.melding_key = omsk.mld_melding_key(+)
AND x.melding_key = wowj.mld_melding_key(+)
AND x.melding_key = accp.fac_tracking_refkey;
-- NoShow catering en reserveringen
CREATE OR REPLACE VIEW fmhn_v_rap_res_noshow
AS
SELECT x.res_rsv_ruimte_key,
x.res_rsv_artikel_levering fact_datum,
l.alg_locatie_omschrijving gebouw,
--NULL aanvrager, -- Vanwege AVG leeg/Wel in sleutelbestand!
k2a.pad kosten_voor,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) nummer,
x.productdienstnr,
x.productdienstnaam,
SUM (ROUND (kosten_excl * btw, 2)) kosten_incl,
--NULL aanvraag_voor, -- Wel in sleutelbestand!
x.status,
TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') jaar,
TRIM (TO_CHAR (x.res_rsv_artikel_levering, 'month')) maand,
--NULL artikel, -- Wel in sleutelbestand!
--NULL dienst, -- Wel in sleutelbestand!
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1)) departement,
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1)) debiteur,
--kostendrager.alg_onrgoedkenmerk_waarde kostendrager, -- Wel in sleutelbestand!
--'600-' || kostendrager.alg_onrgoedkenmerk_waarde kostenplaats, -- Wel in sleutelbestand!
DECODE (rrr.res_rsv_ruimte_bezoekers_shown,
0, 'Ja',
NULL, 'Nee',
'Nee') noshow
FROM fmhn_v_rap_res_cat_all x,
alg_locatie l,
--(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_kenmerk_key = 1020) kostendrager,
fmhn_v_rap_idm_afdboom k2a, -- Kostenplaats2Afdeling
fmhn_v_rap_afd2debnr a2d,
res_rsv_ruimte rrr
WHERE x.alg_locatie_key = l.alg_locatie_key
--AND x.alg_gebouw_key = kostendrager.alg_onrgoed_key(+)
AND x.prs_kostenplaats_key = k2a.prs_kostenplaats_key
AND k2a.prs_afdeling_key = a2d.prs_afdeling_key
AND rrr.res_rsv_ruimte_key = x.res_rsv_ruimte_key
GROUP BY x.res_rsv_ruimte_key,
x.res_rsv_artikel_levering,
l.alg_locatie_omschrijving,
k2a.pad,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr),
x.productdienstnr,
x.productdienstnaam,
x.status,
TO_CHAR (x.res_rsv_artikel_levering, 'yyyy'),
TRIM (TO_CHAR (x.res_rsv_artikel_levering, 'month')),
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1)),
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1)),
DECODE (rrr.res_rsv_ruimte_bezoekers_shown, 0, 'Ja', NULL, 'Nee', 'Nee');
-- NoShow catering en reserveringen, totalen per reservering
CREATE OR REPLACE VIEW fmhn_v_rap_res_noshow_sum
AS
SELECT x.res_rsv_ruimte_key,
TRUNC (x.res_rsv_artikel_levering)
fact_datum,
l.alg_locatie_omschrijving
gebouw,
k2a.pad
kosten_voor,
TO_CHAR (x.res_reservering_key)
|| '/'
|| TO_CHAR (x.res_rsv_ruimte_volgnr)
nummer,
x.productdienstnr,
x.productdienstnaam,
SUM (ROUND (kosten_excl * btw, 2))
kosten_incl,
x.status,
TO_CHAR (x.res_rsv_artikel_levering, 'yyyy')
jaar,
TRIM (TO_CHAR (x.res_rsv_artikel_levering, 'month'))
maand,
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1))
departement,
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1))
debiteur,
DECODE (rrr.res_rsv_ruimte_bezoekers_shown,
0, 'Ja',
NULL, 'Nee',
'Nee') noshow,
pc.prs_perslid_naam_friendly
aanvrager,
ph.prs_perslid_naam_friendly
bestemd_voor
FROM fmhn_v_rap_res_cat_all x,
alg_locatie l,
fmhn_v_rap_idm_afdboom k2a, -- Kostenplaats2Afdeling
fmhn_v_rap_afd2debnr a2d,
prs_v_perslid_fullnames ph,
prs_v_perslid_fullnames pc,
res_rsv_ruimte rrr
WHERE x.alg_locatie_key = l.alg_locatie_key
AND x.prs_kostenplaats_key = k2a.prs_kostenplaats_key
AND k2a.prs_afdeling_key = a2d.prs_afdeling_key
AND rrr.res_rsv_ruimte_key = x.res_rsv_ruimte_key
AND x.res_rsv_ruimte_host_key = ph.prs_perslid_key(+)
AND x.res_rsv_ruimte_contact_key = pc.prs_perslid_key(+)
GROUP BY x.res_rsv_ruimte_key,
TRUNC (x.res_rsv_artikel_levering),
l.alg_locatie_omschrijving,
k2a.pad,
TO_CHAR (x.res_reservering_key)
|| '/'
|| TO_CHAR (x.res_rsv_ruimte_volgnr),
x.productdienstnr,
x.productdienstnaam,
x.status,
TO_CHAR (x.res_rsv_artikel_levering, 'yyyy'),
TRIM (TO_CHAR (x.res_rsv_artikel_levering, 'month')),
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1)),
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1)),
DECODE (rrr.res_rsv_ruimte_bezoekers_shown, 0, 'Ja', NULL, 'Nee', 'Nee'),
ph.prs_perslid_naam_friendly,
pc.prs_perslid_naam_friendly
UNION ALL
SELECT x.res_rsv_ruimte_key,
TRUNC (x.res_rsv_ruimte_van)
fact_datum,
l.alg_locatie_omschrijving
gebouw,
k2a.pad
kosten_voor,
TO_CHAR (x.res_reservering_key)
|| '/'
|| TO_CHAR (x.res_rsv_ruimte_volgnr)
nummer,
x.productdienstnr,
x.productdienstnaam,
NULL
kosten_incl,
x.status,
TO_CHAR (x.res_rsv_ruimte_van, 'yyyy')
jaar,
TRIM (TO_CHAR (x.res_rsv_ruimte_van, 'month'))
maand,
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1))
departement,
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1))
debiteur,
x.noshow,
pc.prs_perslid_naam_friendly
aanvrager,
ph.prs_perslid_naam_friendly
bestemd_voor
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
planonnr.res_kenmerkreservering_waarde
planonnr,
aog.alg_locatie_key,
aog.alg_gebouw_key,
rrr.res_rsv_ruimte_contact_key,
rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_van,
DECODE (rrr.res_activiteit_key, 11, '2230.01', '1430.02')
productdienstnr, -- nummer?
DECODE (rrr.res_activiteit_key,
11, 'Roomservice',
'Reservering vergaderzalen')
productdienstnaam, -- categorie?
rrr.prs_kostenplaats_key,
rd.prs_kostensoort_key,
s.res_status_bo_omschrijving
status,
DECODE (rrr.res_rsv_ruimte_bezoekers_shown,
0, 'Ja',
NULL, 'Nee',
'Nee')
noshow
FROM res_rsv_ruimte rrr,
(SELECT *
FROM res_v_aanwezigkenmerkwaarde
WHERE res_kenmerk_key IN (21,
22,
23,
24,
363,
368)) planonnr, -- Referentienummer
res_ruimte_opstelling rro,
res_ruimte rr,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
res_discipline rd,
res_status_bo s
WHERE ( rrr.res_rsv_ruimte_verwijder IS NULL
OR ( rrr.res_rsv_ruimte_verwijder IS NOT NULL
AND rrr.res_status_fo_key = 4))
AND rrr.res_rsv_ruimte_tot >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_key =
planonnr.res_rsv_ruimte_key(+)
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND rr.res_ruimte_key = rar1.res_ruimte_key(+)
AND rr.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key,
rar2.alg_ruimte_key,
rrr.alg_ruimte_key) =
aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_key NOT IN
(SELECT res_rsv_ruimte_key FROM res_rsv_artikel)
AND rr.res_discipline_key = rd.ins_discipline_key
AND rrr.res_status_bo_key = s.res_status_bo_key) x,
alg_locatie l,
fmhn_v_rap_idm_afdboom k2a, -- Kostenplaats2Afdeling
fmhn_v_rap_afd2debnr a2d,
prs_v_perslid_fullnames ph,
prs_v_perslid_fullnames pc
WHERE x.alg_locatie_key = l.alg_locatie_key
AND x.prs_kostenplaats_key = k2a.prs_kostenplaats_key
AND k2a.prs_afdeling_key = a2d.prs_afdeling_key(+)
AND x.res_rsv_ruimte_host_key = ph.prs_perslid_key(+)
AND x.res_rsv_ruimte_contact_key = pc.prs_perslid_key(+)
GROUP BY x.res_rsv_ruimte_key,
TRUNC (x.res_rsv_ruimte_van),
l.alg_locatie_omschrijving,
k2a.pad,
TO_CHAR (x.res_reservering_key)
|| '/'
|| TO_CHAR (x.res_rsv_ruimte_volgnr),
x.productdienstnr,
x.productdienstnaam,
x.status,
TO_CHAR (x.res_rsv_ruimte_van, 'yyyy'),
TRIM (TO_CHAR (x.res_rsv_ruimte_van, 'month')),
TRIM (SUBSTR (a2d.debiteur, 1, INSTR (a2d.debiteur, '/') - 1)),
TRIM (SUBSTR (a2d.debiteur, INSTR (a2d.debiteur, '/') + 1)),
x.noshow,
ph.prs_perslid_naam_friendly,
pc.prs_perslid_naam_friendly;
-- Af te handelen meldingen vandaag vs. komende 5 werkdagen
--CREATE OR REPLACE VIEW fmhn_v_udr_mld_oranje
CREATE OR REPLACE VIEW fmhn_v_udr_mld_open_d
AS
SELECT m.mld_melding_key melding_key,
vt.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
--x.melding_start_key,
--x.melding_regio,
d.alg_district_omschrijving melding_district,
l.alg_locatie_code locatiecode,
l.alg_locatie_omschrijving locatie,
--x.melding_locatieplaats,
--x.melding_gebouwcode,
--x.melding_gebouw,
--x.melding_verdieping,
--x.melding_ruimtenr,
--x.melding_ruimte,
--x.kostensoortgroep,
--x.kostensoort,
--x.kostenplaats,
--x.kostenplaats_oms,
--x.melder,
--x.afdeling,
--x.afdeling_omschrijving afdeling_oms,
--x.invoerder,
--x.meldbron,
vt.ins_srtdiscipline_omschrijving vakgroeptype,
v.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving soortmelding,
--x.behandelgroep,
--x.behandelaar,
COALESCE (bt.ins_discipline_omschrijving, 'Onbekend') behandelteam,
--x.actieve_behandelaar,
--x.melding_status,
--x.sla_nvt,
--x.sla_accptdgn,
--x.sla_accpturen,
--x.sla_werkdgn,
--x.sla_werkuren,
--x.plan_uitvoertijd_sla,
m.mld_melding_datum periode,
--x.melding_einddatum,
--x.melding_einddatum_std,
--x.melding_acceptdatum,
--x.melding_afgemeld,
--x.melding_accepted,
--x.doorlooptijd_werkdgn,
--x.doorlooptijd_werkuren,
--x.onderwerp,
--x.vomschrijving omschrijving,
--x.melding_opmerking,
--x.prioriteit,
--x.rating,
--x.rating_opmerking rating_opm,
--x.actiecode,
--x.accept_sla_dagen,
--x.accept_sla_uren,
--x.uitvoering_sla_dagen,
--x.uitvoering_sla_uren,
--x.afspraak_sla_dagen,
--x.afspraak_sla_uren,
--DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_optijd,
--1 - DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_telaat,
--DECODE (UPPER (x.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_optijd,
--1 - DECODE (UPPER (x.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_telaat,
--DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_optijd,
--1 - DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_telaat,
--x.selfservice,
--TO_CHAR (x.melding_afgemeld, 'yyyy-mm') maand,
DECODE (
SIGN (
TRUNC (
CASE
WHEN x.sla_respijtdgn IS NOT NULL
THEN
m.mld_melding_einddatum_std
+ x.sla_respijtdgn
WHEN x.sla_respijturen IS NOT NULL
THEN
m.mld_melding_einddatum_std
+ (x.sla_respijturen / 24)
ELSE
m.mld_melding_einddatum_std
END)
- TRUNC (SYSDATE)),
0, 1,
0)
sla_vandaag,
CASE
WHEN fac.count_work_days (
SYSDATE,
CASE
WHEN x.sla_respijtdgn IS NOT NULL
THEN
m.mld_melding_einddatum_std
+ x.sla_respijtdgn
WHEN x.sla_respijturen IS NOT NULL
THEN
m.mld_melding_einddatum_std
+ (x.sla_respijturen / 24)
ELSE
m.mld_melding_einddatum_std
END) BETWEEN 1
AND 5
THEN
1
ELSE
0
END
sla_over5wd,
l.alg_locatie_key locatie_key,
m.mld_ins_discipline_key behandelteam_key
FROM mld_v_udr_melding x,
mld_melding m,
mld_stdmelding sm,
mld_discipline v,
ins_srtdiscipline vt,
mld_discipline bt,
alg_locatie l,
alg_district d
WHERE --x.melding_datum < SYSDATE -- Niet in de toekomst!
--AND x.melding_afgemeld IS NULL -- Niet afgemeld, dus lopend!
x.melding_key = m.mld_melding_key
AND m.mld_melding_status NOT IN (1, 5, 6) -- Open (anders dan Afgewezen/Afgemeld/Historie)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_ins_discipline_key NOT IN (48, 243, 823) -- Functioneel Beheer/Fube Quickcalls/Functioneelbeheer ICT Aanvragen
AND m.mld_ins_discipline_key NOT IN (683) -- Facilitair Medewerker FCC (VOR Kaarten!)
AND sm.mld_ins_discipline_key = v.ins_discipline_key
AND v.ins_srtdiscipline_key = vt.ins_srtdiscipline_key
AND vt.ins_srtdiscipline_key IN (21, 24, 201, 25, 26, 27, 28, 29, 30, 121, 122, 123, 141, 142, 143) -- Behandelteams/Aanvraag/Compliment/Idee/Incidentmelding/Klacht/Storing/Storing objecten/RS8 -- FMHN#72353: Vakgroeptype 201 'Evenement aanvragen' afgesplitst van 24 (Aanvragen)
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND ( SIGN (
TRUNC (m.mld_melding_einddatum_std) - TRUNC (SYSDATE)) =
0
OR fac.count_work_days (
SYSDATE,
CASE
WHEN x.sla_respijtdgn IS NOT NULL
THEN
M.mld_melding_einddatum_std + x.sla_respijtdgn
WHEN x.sla_respijturen IS NOT NULL
THEN
M.mld_melding_einddatum_std
+ (x.sla_respijturen / 24)
ELSE
M.mld_melding_einddatum_std
END) BETWEEN 0
AND 5);
-- Openstaande meldingen tussen [w1] en [w2] weken
--CREATE OR REPLACE VIEW fmhn_v_udr_mld_telaat
CREATE OR REPLACE VIEW fmhn_v_udr_mld_open_w
AS
SELECT m.mld_melding_key melding_key,
vt.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
--x.melding_start_key,
--x.melding_regio,
d.alg_district_omschrijving melding_district,
l.alg_locatie_code locatiecode,
l.alg_locatie_omschrijving locatie,
--x.melding_locatieplaats,
--x.melding_gebouwcode,
--x.melding_gebouw,
--x.melding_verdieping,
--x.melding_ruimtenr,
--x.melding_ruimte,
--x.kostensoortgroep,
--x.kostensoort,
--x.kostenplaats,
--x.kostenplaats_oms,
--x.melder,
--x.afdeling,
--x.afdeling_omschrijving afdeling_oms,
--x.invoerder,
--x.meldbron,
vt.ins_srtdiscipline_omschrijving vakgroeptype,
v.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving soortmelding,
--x.behandelgroep,
--x.behandelaar,
COALESCE (bt.ins_discipline_omschrijving, 'Onbekend') behandelteam,
--x.actieve_behandelaar,
--x.melding_status,
--x.sla_nvt,
--x.sla_accptdgn,
--x.sla_accpturen,
--x.sla_werkdgn,
--x.sla_werkuren,
--x.plan_uitvoertijd_sla,
m.mld_melding_datum periode,
--x.melding_einddatum,
--x.melding_einddatum_std,
--x.melding_acceptdatum,
--x.melding_afgemeld,
--x.melding_accepted,
--x.doorlooptijd_werkdgn,
--x.doorlooptijd_werkuren,
--x.onderwerp,
--x.vomschrijving omschrijving,
--x.melding_opmerking,
--x.prioriteit,
--x.rating,
--x.rating_opmerking rating_opm,
--x.actiecode,
--x.accept_sla_dagen,
--x.accept_sla_uren,
--x.uitvoering_sla_dagen,
--x.uitvoering_sla_uren,
--x.afspraak_sla_dagen,
--x.afspraak_sla_uren,
--DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_optijd,
--1 - DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_telaat,
DECODE (SIGN (m.mld_melding_einddatum_std - SYSDATE), -1, 0, 1) uitvoering_sla_optijd,
DECODE (SIGN (m.mld_melding_einddatum_std - SYSDATE), -1, 1, 0) uitvoering_sla_telaat,
--DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_optijd,
--1 - DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_telaat,
--x.selfservice,
--TO_CHAR (x.melding_afgemeld, 'yyyy-mm') maand,
l.alg_locatie_key locatie_key,
m.mld_ins_discipline_key behandelteam_key
FROM --mld_v_udr_melding x,
mld_melding m,
mld_stdmelding sm,
mld_discipline v,
ins_srtdiscipline vt,
mld_discipline bt,
alg_locatie l,
alg_district d
WHERE --x.melding_datum < SYSDATE -- Niet in de toekomst!
--AND x.melding_afgemeld IS NULL -- Niet afgemeld, dus lopend!
--AND x.melding_key = m.mld_melding_key
m.mld_melding_status NOT IN (1, 5, 6) -- Open (anders dan Afgewezen/Afgemeld/Historie)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_ins_discipline_key NOT IN (48, 243, 823) -- Functioneel Beheer/Fube Quickcalls/Functioneelbeheer ICT Aanvragen
AND m.mld_ins_discipline_key NOT IN (683) -- Facilitair Medewerker FCC (VOR Kaarten!)
AND sm.mld_ins_discipline_key = v.ins_discipline_key
AND v.ins_srtdiscipline_key = vt.ins_srtdiscipline_key
AND vt.ins_srtdiscipline_key IN (21, 24, 201, 25, 26, 27, 28, 29, 30, 121, 122, 123, 141, 142, 143) -- Behandelteams/Aanvraag/Compliment/Idee/Incidentmelding/Klacht/Storing/Storing objecten/RS8 -- FMHN#72353: Vakgroeptype 201 'Evenement aanvragen' afgesplitst van 24 (Aanvragen)
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
;
-- Reserveringen & evenementen
CREATE OR REPLACE VIEW fmhn_v_udr_res_aantallen
AS
SELECT DISTINCT
--b.prs_bedrijf_naam,
--p.prs_afdeling_key,
--SUBSTR (a.prs_afdeling_externid, 3) afdnr,
--a.prs_afdeling_naam afdcode,
--a.prs_afdeling_omschrijving afdoms,
d.alg_district_omschrijving district,
l.alg_locatie_code locatiecode,
l.alg_locatie_omschrijving locatie,
aog.alg_gebouw_code gebouwcode,
aog.alg_gebouw_naam gebouw,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resid,
rrr.res_rsv_ruimte_van periode,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
act.res_activiteit_omschrijving activiteit,
rrr.res_rsv_ruimte_omschrijving omschrijving,
rrr.res_rsv_ruimte_bezoekers aantal_pers,
rrr.res_rsv_ruimte_bezoekers_shown aantal_show,
rrr.res_rsv_ruimte_noshow noshow,
rrr.res_status_fo_key fo_status,
rrr.res_status_bo_key bo_status,
rrr.res_rsv_ruimte_verwijder,
TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
DECODE (
rrr.res_rsv_ruimte_dirtlevel,
0,
DECODE (
rrr.res_status_fo_key,
1,
DECODE (rrr.res_activiteit_key,
10, 'Vergadering-Optie',
11, 'Roomservice-Optie',
70, 'Roomservice-Optie', -- Pantry service RS8 als Roomservice???
71, 'Roomservice-Optie', -- Bestuurlijke Top service RS8 als Roomservice???
'Evenement-Optie'),
DECODE (rrr.res_activiteit_key,
10, 'Vergadering-Definitief',
11, 'Roomservice-Definitief',
70, 'Roomservice-Definitief', -- Pantry service RS8 als Roomservice???
71, 'Roomservice-Definitief', -- Bestuurlijke Top service RS8 als Roomservice???
'Evenement-Definitief')),
'Ongeldig')
soortreservering,
l.alg_locatie_key locatie_key
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit act,
--prs_perslid p,
--prs_v_afdeling_boom ab,
--prs_bedrijf b,
--prs_afdeling a,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonrgoed_gegevens aog,
alg_locatie l,
alg_district d
WHERE rrr.res_rsv_ruimte_tot BETWEEN TRUNC (SYSDATE, 'iw') AND TRUNC (SYSDATE, 'iw') + 28 -- Of rrr.res_rsv_ruimte_van
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
AND rrr.res_activiteit_key = act.res_activiteit_key
AND act.res_activiteit_key IN (10, 11, 30, 70, 71) -- Vergadering/Roomservice/Evenement/Pantry service RS8/Bestuurlijke Top service RS8
--AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
--AND p.prs_afdeling_key = ab.prs_afdeling_key
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
--AND ab.prs_afdeling_key = a.prs_afdeling_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND aog.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
;
/* WEG???
CREATE OR REPLACE VIEW fmhn_v_udr_ord_open
AS
SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving soortmelding,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key)
meldingnummer,
DECODE (mld_melding_spoed,
3, lcl.l ('lcl_mld_urg_normaal'),
1, lcl.l ('lcl_mld_urg_kritiek'),
2, lcl.l ('lcl_mld_urg_hoog'),
4, lcl.l ('lcl_mld_urg_laag'))
prio,
d.alg_district_omschrijving district,
l.alg_locatie_code locatiecode,
l.alg_locatie_omschrijving locatie,
aog.alg_gebouw_code gebouwcode,
aog.alg_gebouw_naam gebouw,
o.mld_opdr_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
opdrachtnummer,
ot.mld_typeopdr_omschrijving opdrachttype,
o.mld_opdr_datumbegin,
--TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') datum,
--TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi') tijd,
TO_CHAR (mld_statusopdr_key) status_key,
(SELECT mld_statusopdr_omschrijving
FROM mld_statusopdr
WHERE mld_statusopdr_key = o.mld_statusopdr_key)
status,
o.mld_opdr_einddatum,
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
--TO_CHAR (o.mld_opdr_einddatum, 'hh24:mi') eindtijd,
(SELECT naam
FROM mld_v_uitvoerende
WHERE mld_uitvoerende_key = o.mld_uitvoerende_keys)
opdracht_uitvoerende,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = o.prs_perslid_key)
behandelaar
FROM mld_opdr o,
mld_typeopdr ot,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_disc_params mdp,
alg_locatie l,
alg_district d,
alg_v_allonrgoed_gegevens aog
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- Lopend (inclusief afgemelde Offerteaanvragen?)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
;
*/
/*
CREATE OR REPLACE VIEW fmhn_v_udr_mld_beh
AS
SELECT x.meldingnummer,
x.melding_start_key,
x.melding_regio,
x.melding_district,
x.melding_locatiecode,
x.melding_locatie,
x.melding_locatieplaats,
x.melding_gebouwcode,
x.melding_gebouw,
x.melding_verdieping,
x.melding_ruimtenr,
x.melding_ruimte,
x.kostensoortgroep,
x.kostensoort,
x.kostenplaats,
x.kostenplaats_oms,
x.melder,
x.afdeling,
x.afdeling_omschrijving afdeling_oms,
x.invoerder,
x.meldbron,
x.soortmelding vakgroeptype,
x.productgroep vakgroep,
x.subproductgroep soortmelding,
x.behandelgroep,
x.behandelaar,
x.actieve_behandelgroep,
x.actieve_behandelaar,
x.melding_status,
x.sla_nvt,
x.sla_accptdgn,
x.sla_accpturen,
x.sla_werkdgn,
x.sla_werkuren,
x.plan_uitvoertijd_sla,
x.melding_datum,
x.melding_einddatum,
x.melding_einddatum_std,
x.melding_acceptdatum,
x.melding_afgemeld,
x.melding_accepted,
x.doorlooptijd_werkdgn,
x.doorlooptijd_werkuren,
x.onderwerp,
x.vomschrijving omschrijving,
x.melding_opmerking,
x.prioriteit,
x.rating,
x.rating_opmerking rating_opm,
x.actiecode,
x.accept_sla_dagen,
x.accept_sla_uren,
x.uitvoering_sla_dagen,
x.uitvoering_sla_uren,
x.afspraak_sla_dagen,
x.afspraak_sla_uren,
DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_optijd,
1 - DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_telaat,
DECODE (UPPER (x.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_optijd,
1 - DECODE (UPPER (x.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_telaat,
DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_optijd,
1 - DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_telaat,
x.selfservice,
TO_CHAR (x.melding_afgemeld, 'yyyy-mm') maand,
COALESCE (x.actieve_behandelaar, x.actieve_behandelgroep, x.behandelaar, '*Onbekend') in_behandeling_bij
FROM mld_v_udr_melding x,
mld_melding m,
mld_stdmelding sm,
mld_discipline md
WHERE x.melding_datum < SYSDATE -- Niet in de toekomst!
AND x.melding_afgemeld IS NULL -- Niet afgemeld, dus lopend!
AND x.melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_ins_discipline_key NOT IN (48, 243, 823) -- Functioneel Beheer/Fube Quickcalls/Functioneelbeheer ICT Aanvragen
AND m.mld_ins_discipline_key NOT IN (683) -- Facilitair Medewerker FCC (VOR Kaarten!)
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key IN (21, 24, 201, 25, 26, 27, 28, 29, 30, 121, 122, 123, 141, 142, 143) -- Behandelteams/Aanvraag/Compliment/Idee/Incidentmelding/Klacht/Storing/Storing objecten/RS8 -- FMHN#72353: Vakgroeptype 201 'Evenement aanvragen' afgesplitst van 24 (Aanvragen)
;
*/
CREATE OR REPLACE VIEW FMHN_V_UDR_OPDRACHT_PLUS
(
OPDRACHT_KEY,
OPDRACHT_NUMMER,
OPDRACHT_REGIO,
OPDRACHT_DISTRICT,
LOCATIECODE,
LOCATIE,
OPDRACHT_LOCATIEPLAATS,
FCLT_3D_LOCATIE_KEY,
OPDRACHT_GEBOUWCODE,
OPDRACHT_GEBOUW,
OPDRACHT_VERDIEPING,
OPDRACHT_RUIMTENR,
OPDRACHT_RUIMTE,
OPDRACHT_KOSTENPLAATS,
OPDRACHT_KOSTENPLAATS_OMS,
MELDING_KEY,
OPDRACHT_TYPE,
OPDRACHT_VOLGNUMMER,
OPDRACHT_STATUS,
OPDRACHT_DUUR_GEPLAND,
PERIODE, -- OPDRACHT_DATUM,
OPDRACHT_EINDDATUM,
OPDRACHT_PLANDATUM,
OPDRACHT_ACCEPTDATUM,
OPDRACHT_AFGEMELD,
OPDRACHT_DOORLOOPTIJD,
OPDRACHT_ACCEPTTIJD,
OPDRACHT_OMSCHRIJVING,
OPDRACHT_OPMERKING,
OPDRACHT_UITVOERENDE,
OPDRACHT_UITVOERENDE_CONTACT,
OPDRACHT_BEHANDELAAR,
OPDRACHT_CONTRACT,
OPDRACHT_CONTRACT_VERSIE,
OPDRACHT_CONTACTPERSOON,
OPDRACHT_UREN,
OPDRACHT_CORRECTIE,
OPDRACHT_MATERIAAL,
OPDRACHT_UURTARIEF,
OPDRACHT_KOSTEN,
OPDRACHT_PARENT_KEY,
OPDRACHT_PARENT_NUMMER,
OPDRACHT_PARENT_VOLGNUMMER,
OPDRACHT_VERSTREKTDATUM,
OPDRACHT_LEV_DOORLOOPDAGEN,
OPDRACHT_LEV_DOORLOOPUREN,
UITVOERENDE_OPDRACHTTYPE,
UITVOERENDE_KEY
)
AS
SELECT x.opdracht_key,
x.opdracht_nummer,
x.opdracht_regio,
x.opdracht_district,
x.opdracht_locatie_code,
x.opdracht_locatie,
x.opdracht_locatieplaats,
x.fclt_3d_locatie_key,
x.opdracht_gebouwcode,
x.opdracht_gebouw,
x.opdracht_verdieping,
x.opdracht_ruimtenr,
x.opdracht_ruimte,
x.opdracht_kostenplaats,
x.opdracht_kostenplaats_oms,
x.melding_key,
x.opdracht_type,
x.opdracht_volgnummer,
x.opdracht_status,
x.opdracht_duur_gepland,
x.opdracht_datum periode,
x.opdracht_einddatum,
x.opdracht_plandatum,
x.opdracht_acceptdatum,
x.opdracht_afgemeld,
x.opdracht_doorlooptijd,
x.opdracht_accepttijd,
x.opdracht_omschrijving,
x.opdracht_opmerking,
x.opdracht_uitvoerende,
x.opdracht_uitvoerende_contact,
x.opdracht_behandelaar,
x.opdracht_contract,
x.opdracht_contract_versie,
x.opdracht_contactpersoon,
x.opdracht_uren,
x.opdracht_correctie,
x.opdracht_materiaal,
x.opdracht_uurtarief,
x.opdracht_kosten,
x.opdracht_parent_key,
x.opdracht_parent_nummer,
x.opdracht_parent_volgnummer,
x.opdracht_verstrektdatum,
x.opdracht_lev_doorloopdagen,
x.opdracht_lev_doorloopuren,
x.opdracht_uitvoerende || '-' || opdracht_type uitvoerende,
o.mld_uitvoerende_keys uitvoerende_key
FROM mld_v_udr_opdracht x,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
mld_discipline md
WHERE x.opdracht_key = o.mld_opdr_key
AND o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- Open
AND o.mld_melding_key = m.mld_melding_key
--AND m.mld_melding_status NOT IN (1, 5, 6) -- Open
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_ins_discipline_key NOT IN (48, 243, 823) -- Functioneel Beheer/Fube Quickcalls/Functioneelbeheer ICT Aanvragen
AND m.mld_ins_discipline_key NOT IN (683) -- Facilitair Medewerker FCC (VOR Kaarten!)
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key IN
(21, -- Behandelteams
24, -- Aanvraag
201, -- Evenement aanvraag -- FMHN#72353: Vakgroeptype 201 'Evenement aanvragen' afgesplitst van 24 (Aanvragen)
25, -- Compliment
26, -- Idee
27, -- Incidentmelding
28, -- Klacht
29, -- Storing
30, -- Storing
121, -- RS8 Aanvraag
122, -- RS8 Klacht/Storing
123, -- RS8 Klacht/Storing object
141, -- RS8 Compliment
142, -- RS8 Idee
143) -- RS8 Incidentmelding
;
CREATE OR REPLACE VIEW fmhn_v_rap_kpi
AS
SELECT m.meldingnummer,
m.melding_start_key,
m.melding_regio,
m.melding_district,
m.melding_locatiecode,
m.melding_locatie,
m.melding_locatieplaats,
m.melding_gebouwcode,
m.melding_gebouw,
m.melding_verdieping,
m.melding_ruimtenr,
m.melding_ruimte,
m.kostensoortgroep,
m.kostensoort,
m.kostenplaats,
m.kostenplaats_oms,
m.melder,
m.afdeling,
m.afdeling_omschrijving afdeling_oms,
m.invoerder,
m.meldbron,
m.soortmelding vakgroeptype,
m.productgroep vakgroep,
m.subproductgroep soortmelding,
m.behandelgroep,
m.behandelaar,
m.actieve_behandelgroep,
m.actieve_behandelaar,
m.melding_status,
m.sla_nvt,
m.sla_accptdgn,
m.sla_accpturen,
m.sla_werkdgn,
m.sla_werkuren,
m.plan_uitvoertijd_sla,
m.melding_datum,
m.melding_einddatum,
m.melding_einddatum_std,
m.melding_acceptdatum,
m.melding_afgemeld,
m.melding_accepted,
m.doorlooptijd_werkdgn,
m.doorlooptijd_werkuren,
m.onderwerp,
m.vomschrijving omschrijving,
m.melding_opmerking,
m.prioriteit,
m.rating,
m.rating_opmerking rating_opm,
m.actiecode,
m.accept_sla_dagen,
m.accept_sla_uren,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
DECODE (UPPER (m.accept_sla_optijd), 'JA', 1, 0) accept_sla_optijd,
1 - DECODE (UPPER (m.accept_sla_optijd), 'JA', 1, 0) accept_sla_telaat,
DECODE (UPPER (m.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_optijd,
1 - DECODE (UPPER (m.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_telaat,
DECODE (UPPER (m.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_optijd,
1 - DECODE (UPPER (m.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_telaat,
m.selfservice,
TO_CHAR (m.melding_afgemeld, 'yyyy-mm') maand
FROM mld_v_udr_melding m
WHERE m.melding_afgemeld > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') -- Of m.melding_datum
AND m.sla_nvt = 0
AND INSTR (UPPER (subproductgroep), 'KLACHT') = 0
AND prioriteit IN (3, 4)
;
-- BHV rapportages en notificaties.
CREATE OR REPLACE VIEW fmhn_v_rap_bhv_per_bedrijf
(
ministerie,
organisatie,
naam,
personeelsnummer, --objectomschrijving,
--objectopmerking,
vervaldatum,
locatiecode,
locatieomschrijving,
etage,
bouwdeel,
sectie,
geboortedatum,
datum_indienst,
profiel,
dienstjaren,
inzetmaanden,
datum_jubileum,
verlengingsdatum,
leverancier,
bhv_diplomanummer,
bhv_geldig_tot,
ehbo_diplomanummer,
ehbo_geldig_tot,
basis_herhaling_op,
allround1_herhaling_op,
allround2_herhaling_op,
ploegleider_herhaling_op,
hbhv_herhaling_op
)
AS
SELECT x.prs_bedrijf_naam,
x.prs_afdeling_naam,
x.prs_perslid_naam_full,
x.ins_deel_omschrijving,
--x.ins_deel_opmerking,
x.ins_deel_vervaldatum,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
eta_ud.fac_usrdata_omschr etage,
bd.ins_kenmerkdeel_waarde bouwdeel,
sec_ud.fac_usrdata_omschr sectie,
gbd.ins_kenmerkdeel_waarde geboortedatum,
did.ins_kenmerkdeel_waarde datum_indienst,
pro_ud.fac_usrdata_omschr profiel,
dj.ins_kenmerkdeel_waarde dienstjaren,
im.ins_kenmerkdeel_waarde inzetmaanden,
dju.ins_kenmerkdeel_waarde datum_jubileum,
vld.ins_kenmerkdeel_waarde verlengingsdatum,
lev_ud.fac_usrdata_omschr leverancier,
bdnr.ins_kenmerkdeel_waarde bhv_diplomanummer,
bt.ins_kenmerkdeel_waarde bhv_tot,
ednr.ins_kenmerkdeel_waarde ehbo_diplomanummer,
et.ins_kenmerkdeel_waarde ehbo_tot,
bho.ins_kenmerkdeel_waarde basis_herhaling_op,
a1ho.ins_kenmerkdeel_waarde allround1_herhaling_op,
a2ho.ins_kenmerkdeel_waarde allround2_herhaling_op,
pho.ins_kenmerkdeel_waarde ploegleider_herhaling_op,
hho.ins_kenmerkdeel_waarde hbhv_herhaling_op
FROM (SELECT d.ins_deel_key,
d.ins_deel_omschrijving,
--d.ins_deel_opmerking,
d.ins_deel_vervaldatum,
pf.prs_perslid_naam_full,
a.prs_afdeling_naam,
b.prs_bedrijf_naam
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling_boom ab,
prs_bedrijf b,
prs_afdeling a
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key = 283 -- BHV
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ins_v_aanwezigkenmerkdeel loc
ON x.ins_deel_key = loc.ins_deel_key
AND loc.ins_kenmerk_key = 13 -- BHV-er voor locatie
LEFT JOIN alg_locatie l
ON fac.safe_to_number (loc.ins_kenmerkdeel_waarde) = l.alg_locatie_key
LEFT JOIN ins_v_aanwezigkenmerkdeel eta
ON x.ins_deel_key = eta.ins_deel_key
AND eta.ins_kenmerk_key = 23 -- Etage
LEFT JOIN fac_v_aanwezigusrdata eta_ud
ON fac.safe_to_number (eta.ins_kenmerkdeel_waarde) = eta_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel bd
ON x.ins_deel_key = bd.ins_deel_key
AND bd.ins_kenmerk_key = 18 -- Bouwdeel
LEFT JOIN ins_v_aanwezigkenmerkdeel sec
ON x.ins_deel_key = sec.ins_deel_key
AND sec.ins_kenmerk_key = 38 -- Sectie
LEFT JOIN fac_v_aanwezigusrdata sec_ud
ON fac.safe_to_number (sec.ins_kenmerkdeel_waarde) = sec_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel gbd
ON x.ins_deel_key = gbd.ins_deel_key
AND gbd.ins_kenmerk_key = 24 -- Geboortedatum
LEFT JOIN ins_v_aanwezigkenmerkdeel did
ON x.ins_deel_key = did.ins_deel_key
AND did.ins_kenmerk_key = 19 -- Datum indienst
LEFT JOIN ins_v_aanwezigkenmerkdeel pro
ON x.ins_deel_key = pro.ins_deel_key
AND pro.ins_kenmerk_key = 37 -- Profiel
LEFT JOIN fac_v_aanwezigusrdata pro_ud
ON fac.safe_to_number (pro.ins_kenmerkdeel_waarde) = pro_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel dj
ON x.ins_deel_key = dj.ins_deel_key
AND dj.ins_kenmerk_key = 1 -- Aantal dienstjaren
LEFT JOIN ins_v_aanwezigkenmerkdeel im
ON x.ins_deel_key = im.ins_deel_key
AND im.ins_kenmerk_key = 2 -- Aantal maanden inzetbaar
LEFT JOIN ins_v_aanwezigkenmerkdeel dju
ON x.ins_deel_key = dju.ins_deel_key
AND dju.ins_kenmerk_key = 20 -- Datum jubileum
LEFT JOIN ins_v_aanwezigkenmerkdeel vld
ON x.ins_deel_key = vld.ins_deel_key
AND vld.ins_kenmerk_key = 40 -- Verlengingsdatum
LEFT JOIN ins_v_aanwezigkenmerkdeel lev
ON x.ins_deel_key = lev.ins_deel_key
AND lev.ins_kenmerk_key = 10 -- BHV leverancier
LEFT JOIN fac_v_aanwezigusrdata lev_ud
ON fac.safe_to_number (lev.ins_kenmerkdeel_waarde) = lev_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel bdnr
ON x.ins_deel_key = bdnr.ins_deel_key
AND bdnr.ins_kenmerk_key = 12 -- BHV-diplomanummer
LEFT JOIN ins_v_aanwezigkenmerkdeel bt
ON x.ins_deel_key = bt.ins_deel_key
AND bt.ins_kenmerk_key = 11 -- BHV-diploma geldig tot
LEFT JOIN ins_v_aanwezigkenmerkdeel ednr
ON x.ins_deel_key = ednr.ins_deel_key
AND ednr.ins_kenmerk_key = 22 -- EHBO-diplomanummer
LEFT JOIN ins_v_aanwezigkenmerkdeel et
ON x.ins_deel_key = et.ins_deel_key
AND et.ins_kenmerk_key = 21 -- EHBO-diploma geldig tot
LEFT JOIN ins_v_aanwezigkenmerkdeel bho
ON x.ins_deel_key = bho.ins_deel_key
AND bho.ins_kenmerk_key = 17 -- Basis herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel a1ho
ON x.ins_deel_key = a1ho.ins_deel_key
AND a1ho.ins_kenmerk_key = 8 -- Allround1 herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel a2ho
ON x.ins_deel_key = a2ho.ins_deel_key
AND a2ho.ins_kenmerk_key = 9 -- Allround2 herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel pho
ON x.ins_deel_key = pho.ins_deel_key
AND pho.ins_kenmerk_key = 35 -- Ploegleider herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel hho
ON x.ins_deel_key = hho.ins_deel_key
AND hho.ins_kenmerk_key = 27 -- HBHV herhaling op
;
/*
Basishulpverlener <09> 253,07
Allround bhv-er <09> 506,11
Bhv-er met leidinggevende taken <09> 759,18
*/
CREATE OR REPLACE VIEW FMHN_V_RAP_BHV_GRATIFICATIE
(
JAAR,
PERSONEELSNUMMER,
NAAM,
GEBOORTEDATUM,
MINISTERIE,
ORGANISATIE,
LOCATIECODE,
LOCATIEOMSCHRIJVING,
DATUM_INDIENST,
DIENSTJAREN,
DIENSTJAREN2,
INZETMAANDEN,
INZETMAANDEN2,
DATUM_JUBILEUM,
DATUM_UITDIENST,
PROFIEL,
DATUM_DIPLOMA,
BASIS,
ALLROUND,
LEIDING,
JUBILEUM,
JUBILEUM2,
GRATIFICATIE
)
AS
SELECT TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy') jaar,
personeelsnummer,
naam,
geboortedatum,
ministerie,
organisatie,
locatiecode,
locatieomschrijving,
datum_indienst,
dienstjaren,
dienstjaren2,
inzetmaanden,
inzetmaanden2,
datum_jubileum,
datum_uitdienst,
profiel,
datum_diploma,
basis,
allround,
leiding,
jubileum,
jubileum2,
( ( COALESCE (basis, 0)
+ COALESCE (allround, 0)
+ COALESCE (leiding, 0))
* (inzetmaanden / 12))
+ COALESCE (jubileum2, 0) gratificatie
FROM (SELECT x.ins_deel_omschrijving
personeelsnummer,
x.prs_perslid_naam_full
naam,
fac.safe_to_date (gbd.ins_kenmerkdeel_waarde,
'dd-mm-yyyy')
geboortedatum,
x.prs_bedrijf_naam
ministerie,
x.prs_afdeling_naam
organisatie,
x.ins_deel_vervaldatum
vervaldatum,
l.alg_locatie_code
locatiecode,
l.alg_locatie_omschrijving
locatieomschrijving,
fac.safe_to_date (did.ins_kenmerkdeel_waarde,
'dd-mm-yyyy')
datum_indienst,
dj.ins_kenmerkdeel_waarde
dienstjaren,
fac.safe_to_number (
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy'))
- fac.safe_to_number (
SUBSTR (did.ins_kenmerkdeel_waarde, 7, 4))
dienstjaren2,
im.ins_kenmerkdeel_waarde
inzetmaanden,
12
- DECODE (
SUBSTR (did.ins_kenmerkdeel_waarde, 7, 4),
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy'), DECODE (
SIGN (
TRUNC (
fac.safe_to_date (
did.ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'mm')
- fac.safe_to_date (
did.ins_kenmerkdeel_waarde,
'dd-mm-yyyy')),
-1, fac.safe_to_number (
SUBSTR (
did.ins_kenmerkdeel_waarde,
4,
2)),
fac.safe_to_number (
SUBSTR (
did.ins_kenmerkdeel_waarde,
4,
2))
- 1),
0)
inzetmaanden2,
fac.safe_to_date (dju.ins_kenmerkdeel_waarde,
'dd-mm-yyyy')
datum_jubileum,
x.ins_deel_vervaldatum
datum_uitdienst,
pro_ud.fac_usrdata_key
profiel_key,
pro_ud.fac_usrdata_omschr
profiel,
DECODE (
pro_ud.fac_usrdata_key,
1307, fac.safe_to_date (et.ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
fac.safe_to_date (bt.ins_kenmerkdeel_waarde,
'dd-mm-yyyy'))
datum_diploma,
CASE
WHEN pro_ud.fac_usrdata_key = 1307 -- Basis
THEN
DECODE (bho.ins_kenmerkdeel_waarde,
NULL, TO_NUMBER (NULL),
pro_ud.fac_usrdata_prijs)
ELSE
TO_NUMBER (NULL) -- Wat als Aspirant en t/m Basis gevuld? Of Allround/Leiding en alleen t/m Basis gevuld?
END
basis,
CASE
WHEN pro_ud.fac_usrdata_key = 1306 -- Allround
AND ( a1ho.ins_kenmerkdeel_waarde IS NOT NULL -- En Allround1 gedaan!
OR a2ho.ins_kenmerkdeel_waarde IS NOT NULL) -- Of Allround2 gedaan!
THEN
pro_ud.fac_usrdata_prijs
WHEN pro_ud.fac_usrdata_key = 1306 -- Allround
AND bho.ins_kenmerkdeel_waarde IS NOT NULL -- En enkel Basis gedaan!
THEN
pro_ud_basis.fac_usrdata_prijs --Toch een gratificatie voor Basis.
ELSE
TO_NUMBER (NULL) -- Wat als Aspirant/Basis en t/m Allround gevuld? Of Leiding en alleen t/m Allround gevuld?
END
allround,
CASE
WHEN pro_ud.fac_usrdata_key IN (1304, 1305) -- Hoofd of ploegleider
AND ( pho.ins_kenmerkdeel_waarde IS NOT NULL -- En Ploegleider gedaan!
OR hho.ins_kenmerkdeel_waarde IS NOT NULL) -- of Hoofd gedaan!
THEN
pro_ud.fac_usrdata_prijs
WHEN pro_ud.fac_usrdata_key IN (1304, 1305) -- Hoofd of ploegleider
AND ( a1ho.ins_kenmerkdeel_waarde IS NOT NULL -- En Allround1 gedaan!
OR a2ho.ins_kenmerkdeel_waarde IS NOT NULL) -- Of Allround2 gedaan!
THEN
pro_ud_allround.fac_usrdata_prijs --Toch een gratificatie voor Allround.
WHEN pro_ud.fac_usrdata_key IN (1304, 1305) -- Hoofd of ploegleider
AND bho.ins_kenmerkdeel_waarde IS NOT NULL -- En enkel Basis gedaan!
THEN
pro_ud_basis.fac_usrdata_prijs --Toch een gratificatie voor Basis.
ELSE
TO_NUMBER (NULL) -- Wat als Aspirant/Basis en t/m Allround gevuld? Of Leiding en alleen t/m Allround gevuld?
END
leiding,
DECODE (
SUBSTR (dju.ins_kenmerkdeel_waarde, 7, 4),
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy'), DECODE (
fac.safe_to_number (
dj.ins_kenmerkdeel_waarde),
0, TO_NUMBER (
NULL),
1, TO_NUMBER (
NULL),
2, TO_NUMBER (
NULL),
3, TO_NUMBER (
NULL),
4, TO_NUMBER (
NULL),
5, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
6, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
7, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
8, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
9, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
10, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
11, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
12, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
13, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
14, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
(SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
15
AND fac_usrdata_verwijder
IS NULL)),
TO_NUMBER (NULL))
jubileum,
DECODE (
SUBSTR (dju.ins_kenmerkdeel_waarde, 7, 4),
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy'), DECODE (
fac.safe_to_number (
fac.safe_to_number (
TO_CHAR (
ADD_MONTHS (
SYSDATE,
-1),
'yyyy'))
- fac.safe_to_number (
SUBSTR (
did.ins_kenmerkdeel_waarde,
7,
4))),
--NULL, TO_NUMBER (NULL),
0, TO_NUMBER (
NULL),
1, TO_NUMBER (
NULL),
2, TO_NUMBER (
NULL),
3, TO_NUMBER (
NULL),
4, TO_NUMBER (
NULL),
5, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
6, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
7, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
8, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
9, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
5
AND fac_usrdata_verwijder
IS NULL),
10, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
11, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
12, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
13, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
14, (SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
10
AND fac_usrdata_verwijder
IS NULL),
(SELECT DISTINCT
fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key =
1001
AND fac_usrdata_code =
15
AND fac_usrdata_verwijder
IS NULL)),
TO_NUMBER (NULL))
jubileum2
FROM (SELECT d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_vervaldatum,
p.prs_perslid_key,
pf.prs_perslid_naam_full,
--p.prs_perslid_telefoonnr,
--p.prs_perslid_mobiel,
--p.prs_perslid_email,
a.prs_afdeling_naam,
b.prs_bedrijf_naam
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling_boom ab,
prs_bedrijf b,
prs_afdeling a
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key = 283 -- BHV
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ins_v_aanwezigkenmerkdeel loc
ON x.ins_deel_key = loc.ins_deel_key
AND loc.ins_kenmerk_key = 13 -- BHV-er voor locatie
LEFT JOIN alg_locatie l
ON fac.safe_to_number (loc.ins_kenmerkdeel_waarde) =
l.alg_locatie_key
LEFT JOIN ins_v_aanwezigkenmerkdeel eta
ON x.ins_deel_key = eta.ins_deel_key
AND eta.ins_kenmerk_key = 23 -- Etage
LEFT JOIN fac_v_aanwezigusrdata eta_ud
ON fac.safe_to_number (eta.ins_kenmerkdeel_waarde) =
eta_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel bd
ON x.ins_deel_key = bd.ins_deel_key
AND bd.ins_kenmerk_key = 18 -- Bouwdeel
LEFT JOIN ins_v_aanwezigkenmerkdeel sec
ON x.ins_deel_key = sec.ins_deel_key
AND sec.ins_kenmerk_key = 38 -- Sectie
LEFT JOIN fac_v_aanwezigusrdata sec_ud
ON fac.safe_to_number (sec.ins_kenmerkdeel_waarde) =
sec_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel gbd
ON x.ins_deel_key = gbd.ins_deel_key
AND gbd.ins_kenmerk_key = 24 -- Geboortedatum
LEFT JOIN ins_v_aanwezigkenmerkdeel did
ON x.ins_deel_key = did.ins_deel_key
AND did.ins_kenmerk_key = 19 -- Datum indienst
LEFT JOIN ins_v_aanwezigkenmerkdeel pro
ON x.ins_deel_key = pro.ins_deel_key
AND pro.ins_kenmerk_key = 37 -- Profiel
LEFT JOIN fac_v_aanwezigusrdata pro_ud
ON fac.safe_to_number (pro.ins_kenmerkdeel_waarde) =
pro_ud.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata pro_ud_basis
ON 1307 = pro_ud_basis.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata pro_ud_allround
ON 1306 = pro_ud_allround.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata pro_ud_hoofd
ON 1304 = pro_ud_hoofd.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata pro_ud_ploegl
ON 1305 = pro_ud_ploegl.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel dj
ON x.ins_deel_key = dj.ins_deel_key
AND dj.ins_kenmerk_key = 1 -- Dienstjaren
LEFT JOIN ins_v_aanwezigkenmerkdeel im
ON x.ins_deel_key = im.ins_deel_key
AND im.ins_kenmerk_key = 2 -- Inzetmaanden
LEFT JOIN ins_v_aanwezigkenmerkdeel dju
ON x.ins_deel_key = dju.ins_deel_key
AND dju.ins_kenmerk_key = 20 -- Datum jubileum
LEFT JOIN ins_v_aanwezigkenmerkdeel vld
ON x.ins_deel_key = vld.ins_deel_key
AND vld.ins_kenmerk_key = 40 -- Verlengingsdatum
LEFT JOIN ins_v_aanwezigkenmerkdeel lev
ON x.ins_deel_key = lev.ins_deel_key
AND lev.ins_kenmerk_key = 10 -- BHV leverancier
LEFT JOIN fac_v_aanwezigusrdata lev_ud
ON fac.safe_to_number (lev.ins_kenmerkdeel_waarde) =
lev_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel bdnr
ON x.ins_deel_key = bdnr.ins_deel_key
AND bdnr.ins_kenmerk_key = 12 -- BHV-diplomanummer
LEFT JOIN ins_v_aanwezigkenmerkdeel bt
ON x.ins_deel_key = bt.ins_deel_key
AND bt.ins_kenmerk_key = 11 -- BHV-diploma geldig tot
LEFT JOIN ins_v_aanwezigkenmerkdeel ednr
ON x.ins_deel_key = ednr.ins_deel_key
AND ednr.ins_kenmerk_key = 22 -- EHBO-diplomanummer
LEFT JOIN ins_v_aanwezigkenmerkdeel et
ON x.ins_deel_key = et.ins_deel_key
AND et.ins_kenmerk_key = 21 -- EHBO-diploma geldig tot
LEFT JOIN ins_v_aanwezigkenmerkdeel bho
ON x.ins_deel_key = bho.ins_deel_key
AND bho.ins_kenmerk_key = 17 -- Basis herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel a1ho
ON x.ins_deel_key = a1ho.ins_deel_key
AND a1ho.ins_kenmerk_key = 8 -- Allround1 herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel a2ho
ON x.ins_deel_key = a2ho.ins_deel_key
AND a2ho.ins_kenmerk_key = 9 -- Allround2 herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel pho
ON x.ins_deel_key = pho.ins_deel_key
AND pho.ins_kenmerk_key = 35 -- Ploegleider herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel hho
ON x.ins_deel_key = hho.ins_deel_key
AND hho.ins_kenmerk_key = 27) -- HBHV herhaling op
WHERE profiel_key IN (1304,
1305,
1306,
1307) -- Profiel waarvoor de gratificatie geldt (dus geen Aspiranten)!
AND TO_CHAR (datum_indienst, 'yyyy') <=
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy') -- Dit jaar indienst!
--AND inzetmaanden > 0 -- Dit jaar inzetbaar!
AND ( vervaldatum IS NULL
OR TO_CHAR (vervaldatum, 'yyyy') >=
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy')) -- Dit jaar actief!
;
/*
AND TO_CHAR (DECODE (profiel_key, 1307, ehbo_geldig_tot, bhv_geldig_tot), 'yyyy') >= TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy') -- Dit jaar geldig diploma!
*/
CREATE OR REPLACE VIEW fmhn_v_rap_bhv_lesoverzicht
(
ministerie,
organisatie,
naam,
personeelsnummer, --objectomschrijving,
profiel,
--objectopmerking,
--vervaldatum,
locatiecode,
locatieomschrijving,
--etage,
--bouwdeel,
--sectie,
--geboortedatum,
--datum_indienst,
--dienstjaren,
--inzetmaanden,
--datum_jubileum,
--verlengingsdatum,
--leverancier,
--bhv_diplomanummer,
--bhv_geldig_tot,
--ehbo_diplomanummer,
--ehbo_geldig_tot,
basis_herhaling_jn,
basis_herhaling_op,
allround1_herhaling_jn,
allround1_herhaling_op,
allround2_herhaling_jn,
allround2_herhaling_op,
ploegleider_herhaling_jn,
ploegleider_herhaling_op,
hbhv_herhaling_jn,
hbhv_herhaling_op
)
AS
SELECT x.prs_bedrijf_naam,
x.prs_afdeling_naam,
x.prs_perslid_naam_full,
x.ins_deel_omschrijving,
pro_ud.fac_usrdata_omschr profiel,
--x.ins_deel_opmerking,
--x.ins_deel_vervaldatum,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
--eta_ud.fac_usrdata_omschr etage,
--bd.ins_kenmerkdeel_waarde bouwdeel,
--sec_ud.fac_usrdata_omschr sectie,
--gbd.ins_kenmerkdeel_waarde geboortedatum,
--did.ins_kenmerkdeel_waarde datum_indienst,
--dj.ins_kenmerkdeel_waarde dienstjaren,
--im.ins_kenmerkdeel_waarde inzetmaanden,
--dju.ins_kenmerkdeel_waarde datum_jubileum,
--vld.ins_kenmerkdeel_waarde verlengingsdatum,
--lev_ud.fac_usrdata_omschr leverancier,
--bdnr.ins_kenmerkdeel_waarde bhv_diplomanummer,
--bt.ins_kenmerkdeel_waarde bhv_tot,
--ednr.ins_kenmerkdeel_waarde ehbo_diplomanummer,
--et.ins_kenmerkdeel_waarde ehbo_tot,
DECODE (bho.ins_kenmerkdeel_waarde, NULL, 'Nee', 'Ja') basis_herhaling_jn,
bho.ins_kenmerkdeel_waarde basis_herhaling_op,
DECODE (a1ho.ins_kenmerkdeel_waarde, NULL, 'Nee', 'Ja') allround1_herhaling_jn,
a1ho.ins_kenmerkdeel_waarde allround1_herhaling_op,
DECODE (a2ho.ins_kenmerkdeel_waarde, NULL, 'Nee', 'Ja') allround2_herhaling_jn,
a2ho.ins_kenmerkdeel_waarde allround2_herhaling_op,
DECODE (pho.ins_kenmerkdeel_waarde, NULL, 'Nee', 'Ja') ploegleider_herhaling_jn,
pho.ins_kenmerkdeel_waarde ploegleider_herhaling_op,
DECODE (hho.ins_kenmerkdeel_waarde, NULL, 'Nee', 'Ja') hbhv_herhaling_jn,
hho.ins_kenmerkdeel_waarde hbhv_herhaling_op
FROM (SELECT d.ins_deel_key,
d.ins_deel_omschrijving,
--d.ins_deel_opmerking,
d.ins_deel_vervaldatum,
pf.prs_perslid_naam_full,
a.prs_afdeling_naam,
b.prs_bedrijf_naam
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling_boom ab,
prs_bedrijf b,
prs_afdeling a
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key = 283 -- BHV
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ins_v_aanwezigkenmerkdeel loc
ON x.ins_deel_key = loc.ins_deel_key
AND loc.ins_kenmerk_key = 13 -- BHV-er voor locatie
LEFT JOIN alg_locatie l
ON fac.safe_to_number (loc.ins_kenmerkdeel_waarde) = l.alg_locatie_key
LEFT JOIN ins_v_aanwezigkenmerkdeel did
ON x.ins_deel_key = did.ins_deel_key
AND did.ins_kenmerk_key = 19 -- Datum indienst
LEFT JOIN ins_v_aanwezigkenmerkdeel pro
ON x.ins_deel_key = pro.ins_deel_key
AND pro.ins_kenmerk_key = 37 -- Profiel
LEFT JOIN fac_v_aanwezigusrdata pro_ud
ON fac.safe_to_number (pro.ins_kenmerkdeel_waarde) = pro_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel dj
ON x.ins_deel_key = dj.ins_deel_key
AND dj.ins_kenmerk_key = 1 -- Dienstjaren
LEFT JOIN ins_v_aanwezigkenmerkdeel im
ON x.ins_deel_key = im.ins_deel_key
AND im.ins_kenmerk_key = 2 -- Inzetmaanden
LEFT JOIN ins_v_aanwezigkenmerkdeel bho
ON x.ins_deel_key = bho.ins_deel_key
AND bho.ins_kenmerk_key = 17 -- Basis herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel a1ho
ON x.ins_deel_key = a1ho.ins_deel_key
AND a1ho.ins_kenmerk_key = 8 -- Allround1 herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel a2ho
ON x.ins_deel_key = a2ho.ins_deel_key
AND a2ho.ins_kenmerk_key = 9 -- Allround2 herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel pho
ON x.ins_deel_key = pho.ins_deel_key
AND pho.ins_kenmerk_key = 35 -- Ploegleider herhaling op
LEFT JOIN ins_v_aanwezigkenmerkdeel hho
ON x.ins_deel_key = hho.ins_deel_key
AND hho.ins_kenmerk_key = 27 -- HBHV herhaling op
;
CREATE OR REPLACE VIEW FMHN_V_NOTI_BHV
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS -- Op 14 dagen voor jubileum!
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (sn.fac_srtnotificatie_oms, '##NAAM##', pf.prs_perslid_naam_full),
d.ins_deel_key,
NULL xkey,
NULL xsender,
ko.alg_onrgoedkenmerk_waarde xemail,
NULL xmobile,
NULL attachments
FROM ins_v_aanwezigkenmerkdeel dju,
ins_v_aanwezigdeel d,
prs_v_perslid_fullnames pf,
ins_v_aanwezigkenmerkdeel kd,
alg_locatie l,
alg_v_aanwezigonrgoedkenmerk ko,
fac_srtnotificatie sn
WHERE dju.ins_kenmerk_key = 20 -- Datum jubileum
AND fac.safe_to_date (dju.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - 14 = TRUNC (SYSDATE) -- Jubileum over 14 dagen!
AND dju.ins_deel_key = d.ins_deel_key
AND d.ins_alg_ruimte_key = pf.prs_perslid_key -- BHV-er
AND d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 13 -- BHV-er voor locatie
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) = l.alg_locatie_key
AND l.alg_locatie_key = ko.alg_onrgoed_key
AND ko.alg_onrgoed_niveau = 'L'
AND ko.alg_kenmerk_key = 1080 -- Adviseur(s) veilgheid
AND sn.fac_srtnotificatie_code = 'CUST03'
UNION -- De dag nadat het profiel Aspirant BHV gezet op ander profiel!
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (sn.fac_srtnotificatie_oms, '##NAAM##', pf.prs_perslid_naam_full),
d.ins_deel_key,
NULL xkey,
NULL xsender,
ko.alg_onrgoedkenmerk_waarde xemail,
NULL xmobile,
NULL attachments
FROM fac_tracking t,
ins_v_aanwezigdeel d,
prs_v_perslid_fullnames pf,
ins_v_aanwezigkenmerkdeel kd,
alg_locatie l,
alg_v_aanwezigonrgoedkenmerk ko,
fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = 128 -- INSUPD
AND TRUNC (t.fac_tracking_datum) + 1 = TRUNC (SYSDATE) -- Gisteren gewijzigd=gestart!
AND INSTR (UPPER (t.fac_tracking_oms),'ASPIRANT BHV -->') > 0 -- Het profiel Aspirant BHV gezet op ander profiel!
AND t.fac_tracking_refkey = d.ins_deel_key
AND d.ins_alg_ruimte_key = pf.prs_perslid_key -- BHV-er
AND d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 13 -- BHV-er voor locatie
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) = l.alg_locatie_key
AND l.alg_locatie_key = ko.alg_onrgoed_key
AND ko.alg_onrgoed_niveau = 'L'
AND ko.alg_kenmerk_key = 1080 -- Adviseur(s) veilgheid
AND sn.fac_srtnotificatie_code = 'CUST04';
CREATE OR REPLACE VIEW FMHN_V_RAP_F2P_EXCEPTIONS
AS
SELECT DISTINCT
'Opdracht' stroom,
t.fac_tracking_datum datum,
o.mld_opdr_key refkey,
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) refid,
sm.mld_stdmelding_omschrijving || ' / ' || ot.mld_typeopdr_omschrijving soort,
aog.alg_ruimte_nr ruimte,
t.fac_tracking_oms foutmelding
FROM fac_tracking t,
mld_opdr o,
mld_typeopdr ot,
mld_melding m,
mld_stdmelding sm,
alg_v_allonrgoed_gegevens aog
WHERE t.fac_tracking_datum > fac.safe_to_date ('20-02-2022', 'dd-mm-yyyy')
AND EXISTS
(SELECT 1
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'opdracht'
AND fac_srtnotificatie_key = t.fac_srtnotificatie_key)
AND t.fac_tracking_oms LIKE 'PC:%'
AND INSTR (UPPER (t.fac_tracking_oms), 'NIET SUCCESVOL') > 0
AND t.fac_tracking_refkey = o.mld_opdr_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
UNION ALL
SELECT 'Reservering' stroom,
t1.fac_tracking_datum datum,
rrr.res_rsv_ruimte_key refkey,
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) refid,
ra.res_activiteit_omschrijving soort,
COALESCE (rr.res_ruimte_nr, aog.alg_ruimte_nr) ruimte,
t1.fac_tracking_oms foutmelding
FROM fac_tracking t1,
fac_srtnotificatie sn1,
res_rsv_ruimte rrr,
res_activiteit ra,
res_ruimte_opstelling rro,
res_ruimte rr,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonrgoed_gegevens aog
WHERE t1.fac_tracking_datum > fac.safe_to_date ('20-02-2022', 'dd-mm-yyyy')
AND t1.fac_srtnotificatie_key = sn1.fac_srtnotificatie_key
AND sn1.fac_srtnotificatie_xmlnode = 'reservering'
AND t1.fac_tracking_oms LIKE 'PC:%'
AND INSTR (UPPER (t1.fac_tracking_oms), 'NIET SUCCESVOL') > 0
AND t1.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND rr.res_ruimte_key = rar1.res_ruimte_key(+)
AND rr.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND NOT EXISTS
(SELECT 1
FROM fac_tracking t2, fac_srtnotificatie sn2
WHERE t2.fac_srtnotificatie_key = sn2.fac_srtnotificatie_key
AND sn2.fac_srtnotificatie_xmlnode = 'reservering'
AND t2.fac_tracking_oms LIKE 'PC:%'
AND INSTR (UPPER (t2.fac_tracking_oms), 'NIET SUCCESVOL') > 0
AND t2.fac_tracking_refkey = t1.fac_tracking_refkey
AND t2.fac_tracking_key > t1.fac_tracking_key);
-- Uurlijkse bewaking op exceptions in Facilitor2Prequest-koppeling!
CREATE OR REPLACE VIEW FMHN_V_NOTI_F2P_EXCEPTIONS
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
WITH errors
AS (SELECT MIN (x.datum) datum, COUNT ( * ) aantal
FROM fac_notificatie_job nj, fmhn_v_rap_f2p_exceptions x
WHERE nj.fac_notificatie_job_view = 'FMHN_V_NOTI_F2P_EXCEPTIONS'
AND x.datum > nj.fac_notificatie_job_lastrun)
SELECT DISTINCT -- PC-opdracht gewijzigd anders dan door API-user tbv. Prequest!
csn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
csn.fac_srtnotificatie_oms,
'##OPDRID##',
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)),
'##SRTNOT##',
tsn.fac_srtnotificatie_code),
o.mld_opdr_key,
NULL xkey,
NULL xsender,
'PostbusFMHFunctioneel-applicatiebeheer@minbzk.nl' xemail,
NULL xmobile,
NULL attachments
FROM mld_opdr o,
fac_tracking t,
fac_srtnotificatie tsn, -- Tracking-notificatie
fac_srtnotificatie csn, -- CUST06-notificatie
fac_notificatie_job nj
WHERE o.mld_typeopdr_key = 581 -- Offerteaanvraag PC
--AND o.mld_statusopdr_key IN (-1)
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = tsn.fac_srtnotificatie_key
AND tsn.fac_srtnotificatie_xmlnode = 'opdracht'
AND t.fac_srtnotificatie_key NOT IN (72, 73, 74, 75, 76, 96, 97, 177) -- ORDMLI/ORDMLE/ORDAFM/ORDNEW/ORDUPD/ORDOOK/ORDONO/ORDMAI
AND t.prs_perslid_key IS NOT NULL
AND t.prs_perslid_key NOT IN (3, 44) -- Niet door Facilitor/_API-user tbv. Prequest!
AND csn.fac_srtnotificatie_code = 'CUST06'
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_F2P_EXCEPTIONS'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
UNION ALL
SELECT DISTINCT -- PC-opdracht gewijzigd anders dan door API-user tbv. Prequest!
csn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
csn.fac_srtnotificatie_oms,
'##OPDRID##',
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)),
'##SRTNOT##',
tsn.fac_srtnotificatie_code),
o.mld_opdr_key,
NULL xkey,
NULL xsender,
'PostbusFMHFunctioneel-applicatiebeheer@minbzk.nl' xemail,
NULL xmobile,
NULL attachments
FROM mld_opdr o,
fac_tracking t,
fac_srtnotificatie tsn, -- Tracking-notificatie
fac_srtnotificatie csn, -- CUST06-notificatie
fac_notificatie_job nj
WHERE o.mld_typeopdr_key = 582 -- Uitvoeringsopdracht PC
--AND o.mld_statusopdr_key IN (-1)
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = tsn.fac_srtnotificatie_key
AND tsn.fac_srtnotificatie_xmlnode = 'opdracht'
AND t.fac_srtnotificatie_key NOT IN (72, 73, 75, 76, 177) -- ORDMLI/ORDMLE/ORDNEW/ORDUPD/ORDMAI
AND t.prs_perslid_key IS NOT NULL
AND t.prs_perslid_key NOT IN (3, 44) -- Niet door Facilitor/_API-user tbv. Prequest!
AND csn.fac_srtnotificatie_code = 'CUST06'
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_F2P_EXCEPTIONS'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (sn.fac_srtnotificatie_oms, '##REFID##', x.refid),
x.refkey,
NULL xkey,
NULL xsender,
'PostbusFMHFunctioneel-applicatiebeheer@minbzk.nl' xemail,
NULL xmobile,
NULL attachments
FROM errors,
fmhn_v_rap_f2p_exceptions x,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE errors.aantal <= 25
AND UPPER (x.stroom) = 'OPDRACHT'
AND sn.fac_srtnotificatie_code = 'CUST07' -- opdracht-xmlnode
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_F2P_EXCEPTIONS'
AND x.datum > nj.fac_notificatie_job_lastrun
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (sn.fac_srtnotificatie_oms, '##REFID##', x.refid),
fac.safe_to_number (SUBSTR (x.refid, 1, INSTR (x.refid, '/') - 1)),
x.refkey xkey,
NULL xsender,
'PostbusFMHFunctioneel-applicatiebeheer@minbzk.nl' xemail,
NULL xmobile,
NULL attachments
FROM errors,
fmhn_v_rap_f2p_exceptions x,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE errors.aantal <= 25
AND UPPER (x.stroom) = 'RESERVERING'
AND sn.fac_srtnotificatie_code = 'CUST08' -- reservering-xmlnode
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_F2P_EXCEPTIONS'
AND x.datum > nj.fac_notificatie_job_lastrun
UNION ALL
SELECT '',
NULL,
NULL,
'Prequest-koppeling: ' || TO_CHAR (errors.aantal) || ' fouten in afgelopen uur (zie rapport)!',
-1 refkey,
NULL xkey,
NULL xsender,
'PostbusFMHFunctioneel-applicatiebeheer@minbzk.nl' xemail,
NULL xmobile,
NULL attachments
FROM errors,
fac_notificatie_job nj
WHERE errors.aantal > 25
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_F2P_EXCEPTIONS'
AND errors.datum > nj.fac_notificatie_job_lastrun;
-- Uurlijkse bewaking op WF tb.v AW-proces!
-- CUST09 - Eerste mail naar Veiligheid. Zowel Korte route als Lange route!
-- CUST10 - Eerste mail naar RBO + Teamleiders. Teamleiders alleen igv. Lange route!
-- CUST11 - Eerste mail naar Compartimentseigenaren. Alleen igv. Lange route!
-- CUST12 - Reminder naar Veiligheid + Compartimentseigenaren na 3 dagen. Compartimentseigenaren alleen igv. Lange route!
-- CUST13 - Reminder naar Veiligheid + Compartimentseigenaren na 6 dagen. Alleen igv. Lange route!
-- CUST14 - Overeenstemming naar RBO, Veiligheid, PC, Facilitair adviseurs, Teamleiders + Compartimentseigenaren. Laatste 2 alleen igv. Lange route!
-- CUST15 - Geen overeenstemming naar RBO, Veiligheid, PC, Teamleiders + Compartimentseigenaren. Laatste 2 alleen igv. Lange route!
-- CUST30 - Eerste mail naar Compartimentseigenaren bij Spoedmelding, zowel Korte als Lange route
CREATE OR REPLACE VIEW FMHN_V_NOTI_WF_AW
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_start_key,
NULL xkey,
NULL xsender,
'postbusfmhveiligheidcentraal@rijksoverheid.nl' xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741, 1241) -- Aanvraag AW (Startmelding) & Aanvraag AW Spoed (Startmelding)
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 50 -- MLDNEW
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND sn.fac_srtnotificatie_code = 'CUST09'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_start_key,
NULL xkey,
NULL xsender,
x.xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_melding vm,
(SELECT 742 mld_stdmelding_key, 'coordinator.rijnstraat@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 743 mld_stdmelding_key, 'coordinator.rijnstraat@rijksoverheid.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, ud.fac_usrdata_omschr xemail FROM fac_usrdata ud WHERE fac_usrtab_key = 702 AND fac_usrdata_verwijder IS NULL) x, -- AW Lange route
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741) -- Aanvraag AW (Startmelding)
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 50 -- MLDNEW
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = vm.mld_melding_start_key
AND vm.mld_stdmelding_key = x.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST10'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_start_key,
NULL xkey,
NULL xsender,
x.xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
(SELECT 'coordinator.rijnstraat@rijksoverheid.nl' xemail FROM DUAL
UNION ALL
SELECT ud.fac_usrdata_omschr xemail
FROM fac_usrdata ud
WHERE fac_usrtab_key = 702
AND fac_usrdata_verwijder IS NULL) x,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (1241) -- Aanvraag AW Spoed (Startmelding)
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 50 -- MLDNEW
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND sn.fac_srtnotificatie_code = 'CUST10'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud2.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_v_aanwezigkenmerkmelding km,
alg_onrgoedkenmerk ok,
fac_v_aanwezigusrdata ud1,
fac_v_aanwezigusrdata ud2,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = 741 -- Aanvraag AW (Startmelding)
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 50 -- MLDNEW
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (2563,3582,3583) -- Ruimte/cluster=Lange route
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1120 -- AW-cluster
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
AND sn.fac_srtnotificatie_code = 'CUST11'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud2.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_v_aanwezigkenmerkmelding km,
mld_v_aanwezigkenmerkmelding km2,
alg_onrgoedkenmerk ok,
fac_v_aanwezigusrdata ud1,
fac_v_aanwezigusrdata ud2,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = 741 -- Aanvraag AW (Startmelding)
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 50 -- MLDNEW
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = km.mld_melding_key
AND km2.mld_kenmerk_key = 3581 -- Alle clusters
AND km2.mld_kenmerkmelding_waarde = '21' -- JA
AND km2.mld_melding_key = m.mld_melding_key
AND ok.alg_kenmerk_key = 1120 -- AW-cluster
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
AND sn.fac_srtnotificatie_code = 'CUST11'
GROUP by m.mld_melding_key,
sn.fac_srtnotificatie_code,
sn.fac_srtnotificatie_oms,
m.mld_melding_onderwerp,
ud2.fac_usrdata_omschr
-- UNION ALL
-- SELECT sn.fac_srtnotificatie_code,
-- NULL,
-- NULL,
-- REPLACE (
-- REPLACE (sn.fac_srtnotificatie_oms,
-- '##ID##',
-- TO_CHAR (m.mld_melding_key)),
-- '##SUBJECT##',
-- m.mld_melding_onderwerp),
-- m.mld_melding_key,
-- NULL xkey,
-- NULL xsender,
-- 'postbusfmhveiligheidcentraal@rijksoverheid.nl' xemail,
-- NULL xmobile,
-- NULL attachments
-- FROM mld_melding m,
-- fac_tracking t,
-- fac_notificatie_job nj,
-- fac_srtnotificatie sn
-- WHERE m.mld_stdmelding_key IN (742, 743) -- Aanvraag AW (Veiligheid)/Korte+Lange route
-- AND m.mld_melding_status IN (0, 2, 3, 4, 7) -- Nog niet gesloten
-- AND m.mld_melding_key = t.fac_tracking_refkey
-- AND t.fac_srtnotificatie_key = 50 -- MLDNEW
-- AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
-- AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) = 3 -- Reminder na 3 werkdagen!
-- AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
-- AND NOT EXISTS -- en geen vrije dag!
-- (SELECT 1
-- FROM mld_vrije_dagen
-- WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
-- AND TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) = 7 -- Reminder 's ochtends om 7:00
-- AND sn.fac_srtnotificatie_code = 'CUST12'
-- UNION ALL
-- SELECT sn.fac_srtnotificatie_code,
-- NULL,
-- NULL,
-- REPLACE (
-- REPLACE (sn.fac_srtnotificatie_oms,
-- '##ID##',
-- TO_CHAR (m.mld_melding_key)),
-- '##SUBJECT##',
-- m.mld_melding_onderwerp),
-- m.mld_melding_key,
-- NULL xkey,
-- NULL xsender,
-- ud2.fac_usrdata_omschr xemail,
-- NULL xmobile,
-- NULL attachments
-- FROM mld_melding m,
-- fac_tracking t,
-- fac_notificatie_job nj,
-- mld_v_aanwezigkenmerkmelding km,
-- alg_onrgoedkenmerk ok,
-- fac_v_aanwezigusrdata ud1,
-- fac_v_aanwezigusrdata ud2,
-- fac_srtnotificatie sn
-- WHERE m.mld_stdmelding_key = 744 -- Aanvraag AW (FCC)/Lange route
-- AND m.mld_melding_status IN (0, 2, 3, 4, 7) -- Nog niet gesloten
-- AND m.mld_melding_key = t.fac_tracking_refkey
-- AND t.fac_srtnotificatie_key = 50 -- MLDNEW
-- AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
-- AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) = 3 -- Reminder na 3 werkdagen!
-- AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
-- AND NOT EXISTS -- en geen vrije dag!
-- (SELECT 1
-- FROM mld_vrije_dagen
-- WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
-- AND TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) = 7 -- Reminder 's ochtends om 7:00
-- AND m.mld_melding_key = km.mld_melding_key
-- AND km.mld_kenmerk_key IN (2563,3582,3583) -- Ruimte/cluster=Lange route
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ok.alg_onrgoed_key
-- AND ok.alg_kenmerk_key = 1120 -- AW-cluster
-- AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
-- AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
-- AND sn.fac_srtnotificatie_code = 'CUST12'
-- UNION ALL
-- SELECT sn.fac_srtnotificatie_code,
-- NULL,
-- NULL,
-- REPLACE (
-- REPLACE (sn.fac_srtnotificatie_oms,
-- '##ID##',
-- TO_CHAR (m.mld_melding_key)),
-- '##SUBJECT##',
-- m.mld_melding_onderwerp),
-- m.mld_melding_key,
-- NULL xkey,
-- NULL xsender,
-- ud2.fac_usrdata_omschr xemail,
-- NULL xmobile,
-- NULL attachments
-- FROM mld_melding m,
-- fac_tracking t,
-- fac_notificatie_job nj,
-- mld_v_aanwezigkenmerkmelding km,
-- mld_v_aanwezigkenmerkmelding km2,
-- alg_onrgoedkenmerk ok,
-- fac_v_aanwezigusrdata ud1,
-- fac_v_aanwezigusrdata ud2,
-- fac_srtnotificatie sn
-- WHERE m.mld_stdmelding_key = 744 -- Aanvraag AW (FCC)/Lange route
-- AND m.mld_melding_status IN (0, 2, 3, 4, 7) -- Nog niet gesloten
-- AND m.mld_melding_key = t.fac_tracking_refkey
-- AND t.fac_srtnotificatie_key = 50 -- MLDNEW
-- AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
-- AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) = 3 -- Reminder na 3 werkdagen!
-- AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
-- AND NOT EXISTS -- en geen vrije dag!
-- (SELECT 1
-- FROM mld_vrije_dagen
-- WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
-- AND TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) = 7 -- Reminder 's ochtends om 7:00
-- AND m.mld_melding_key = km.mld_melding_key
-- AND km2.mld_kenmerk_key = 3581 -- Alle clusters
-- AND km2.mld_kenmerkmelding_waarde = '21' -- JA
-- AND km2.mld_melding_key = m.mld_melding_key
-- AND ok.alg_kenmerk_key = 1120 -- AW-cluster
-- AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
-- AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
-- AND sn.fac_srtnotificatie_code = 'CUST12'
-- GROUP by m.mld_melding_key,
-- sn.fac_srtnotificatie_code,
-- sn.fac_srtnotificatie_oms,
-- m.mld_melding_onderwerp,
-- ud2.fac_usrdata_omschr
-- UNION ALL
-- SELECT sn.fac_srtnotificatie_code,
-- NULL,
-- NULL,
-- REPLACE (
-- REPLACE (sn.fac_srtnotificatie_oms,
-- '##ID##',
-- TO_CHAR (m.mld_melding_key)),
-- '##SUBJECT##',
-- m.mld_melding_onderwerp),
-- m.mld_melding_key,
-- NULL xkey,
-- NULL xsender,
-- 'postbusfmhveiligheidcentraal@rijksoverheid.nl' xemail,
-- NULL xmobile,
-- NULL attachments
-- FROM mld_melding m,
-- fac_tracking t,
-- fac_notificatie_job nj,
-- fac_srtnotificatie sn
-- WHERE m.mld_stdmelding_key = 743 -- Aanvraag AW (Veiligheid)/Lange route
-- AND m.mld_melding_status IN (0, 2, 3, 4, 7) -- Nog niet gesloten
-- AND m.mld_melding_key = t.fac_tracking_refkey
-- AND t.fac_srtnotificatie_key = 50 -- MLDNEW
-- AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
-- AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) = 6 -- Reminder na 6 werkdagen!
-- AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
-- AND NOT EXISTS -- en geen vrije dag!
-- (SELECT 1
-- FROM mld_vrije_dagen
-- WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
-- AND TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) = 7 -- Reminder 's ochtends om 7:00
-- AND sn.fac_srtnotificatie_code = 'CUST13'
-- UNION ALL
-- SELECT sn.fac_srtnotificatie_code,
-- NULL,
-- NULL,
-- REPLACE (
-- REPLACE (sn.fac_srtnotificatie_oms,
-- '##ID##',
-- TO_CHAR (m.mld_melding_key)),
-- '##SUBJECT##',
-- m.mld_melding_onderwerp),
-- m.mld_melding_key,
-- NULL xkey,
-- NULL xsender,
-- ud2.fac_usrdata_omschr xemail,
-- NULL xmobile,
-- NULL attachments
-- FROM mld_melding m,
-- fac_tracking t,
-- fac_notificatie_job nj,
-- mld_v_aanwezigkenmerkmelding km,
-- alg_onrgoedkenmerk ok,
-- fac_v_aanwezigusrdata ud1,
-- fac_v_aanwezigusrdata ud2,
-- fac_srtnotificatie sn
-- WHERE m.mld_stdmelding_key = 744 -- Aanvraag AW (FCC)/Lange route
-- AND m.mld_melding_status IN (0, 2, 3, 4, 7) -- Nog niet gesloten
-- AND m.mld_melding_key = t.fac_tracking_refkey
-- AND t.fac_srtnotificatie_key = 50 -- MLDNEW
-- AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
-- AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) = 6 -- Reminder na 6 werkdagen!
-- AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
-- AND NOT EXISTS -- en geen vrije dag!
-- (SELECT 1
-- FROM mld_vrije_dagen
-- WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
-- AND TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) = 7 -- Reminder 's ochtends om 7:00
-- AND m.mld_melding_key = km.mld_melding_key
-- AND km.mld_kenmerk_key IN (2563,3582,3583) -- Ruimte/cluster=Lange route
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ok.alg_onrgoed_key
-- AND ok.alg_kenmerk_key = 1120 -- AW-cluster
-- AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
-- AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
-- AND sn.fac_srtnotificatie_code = 'CUST13'
-- UNION ALL
-- SELECT sn.fac_srtnotificatie_code,
-- NULL,
-- NULL,
-- REPLACE (
-- REPLACE (sn.fac_srtnotificatie_oms,
-- '##ID##',
-- TO_CHAR (m.mld_melding_key)),
-- '##SUBJECT##',
-- m.mld_melding_onderwerp),
-- m.mld_melding_key,
-- NULL xkey,
-- NULL xsender,
-- ud2.fac_usrdata_omschr xemail,
-- NULL xmobile,
-- NULL attachments
-- FROM mld_melding m,
-- fac_tracking t,
-- fac_notificatie_job nj,
-- mld_v_aanwezigkenmerkmelding km,
-- mld_v_aanwezigkenmerkmelding km2,
-- alg_onrgoedkenmerk ok,
-- fac_v_aanwezigusrdata ud1,
-- fac_v_aanwezigusrdata ud2,
-- fac_srtnotificatie sn
-- WHERE m.mld_stdmelding_key = 744 -- Aanvraag AW (FCC)/Lange route
-- AND m.mld_melding_status IN (0, 2, 3, 4, 7) -- Nog niet gesloten
-- AND m.mld_melding_key = t.fac_tracking_refkey
-- AND t.fac_srtnotificatie_key = 50 -- MLDNEW
-- AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
-- AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) = 6 -- Reminder na 6 werkdagen!
-- AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Vandaag is werkdag
-- AND NOT EXISTS -- en geen vrije dag!
-- (SELECT 1
-- FROM mld_vrije_dagen
-- WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE))
-- AND TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) = 7 -- Reminder 's ochtends om 7:00
-- AND m.mld_melding_key = km.mld_melding_key
-- AND km2.mld_kenmerk_key = 3581 -- Alle clusters
-- AND km2.mld_kenmerkmelding_waarde = '21' -- JA
-- AND km2.mld_melding_key = m.mld_melding_key
-- AND ok.alg_kenmerk_key = 1120 -- AW-cluster
-- AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
-- AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
-- AND sn.fac_srtnotificatie_code = 'CUST13'
-- GROUP by m.mld_melding_key,
-- sn.fac_srtnotificatie_code,
-- sn.fac_srtnotificatie_oms,
-- m.mld_melding_onderwerp,
-- ud2.fac_usrdata_omschr
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
x.xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_melding vm,
(SELECT 742 mld_stdmelding_key, 'coordinator.rijnstraat@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 742 mld_stdmelding_key, 'postbusfmhveiligheidcentraal@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 742 mld_stdmelding_key, 'PoortCentraalServicedesk@mtc-pc.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 742 mld_stdmelding_key, 'PostbusFMHAdviseursfacilitairR8@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 743 mld_stdmelding_key, 'coordinator.rijnstraat@rijksoverheid.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, 'postbusfmhveiligheidcentraal@rijksoverheid.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, 'PoortCentraalServicedesk@mtc-pc.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, 'PostbusFMHAdviseursfacilitairR8@rijksoverheid.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, ud.fac_usrdata_omschr xemail FROM fac_usrdata ud WHERE fac_usrtab_key = 702 AND fac_usrdata_verwijder IS NULL) x, -- AW Lange route
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741) -- Aanvraag AW (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = vm.mld_melding_start_key
AND vm.mld_stdmelding_key = x.mld_stdmelding_key
AND NOT EXISTS -- Doorgang nergens gezet op Niet akkoord!
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (2582, 2584)
AND km.mld_melding_key = nam.mld_melding_key
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST14'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud2.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_v_aanwezigkenmerkmelding km,
alg_onrgoedkenmerk ok,
fac_v_aanwezigusrdata ud1,
fac_v_aanwezigusrdata ud2,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741) -- Aanvraag AW (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (2563,3582,3583) -- Ruimte/cluster=Lange route
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1120 -- AW-cluster
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
AND NOT EXISTS -- Doorgang nergens gezet op Niet akkoord!
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (2582, 2584)
AND km.mld_melding_key = nam.mld_melding_key
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST14'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud2.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_v_aanwezigkenmerkmelding km,
mld_v_aanwezigkenmerkmelding km2,
alg_onrgoedkenmerk ok,
fac_v_aanwezigusrdata ud1,
fac_v_aanwezigusrdata ud2,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741) -- Aanvraag AW (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = km.mld_melding_key
AND km2.mld_kenmerk_key = 3581 -- Alle clusters
AND km2.mld_kenmerkmelding_waarde = '21' -- JA
AND km2.mld_melding_key = m.mld_melding_key
AND ok.alg_kenmerk_key = 1120 -- AW-cluster
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
AND NOT EXISTS -- Doorgang nergens gezet op Niet akkoord!
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (2582, 2584)
AND km.mld_melding_key = nam.mld_melding_key
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST14'
GROUP by m.mld_melding_key,
sn.fac_srtnotificatie_code,
sn.fac_srtnotificatie_oms,
m.mld_melding_onderwerp,
ud2.fac_usrdata_omschr
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
x.xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
(SELECT ud.fac_usrdata_omschr xemail
FROM fac_usrdata ud
WHERE fac_usrtab_key = 1201 -- Eigen tabel CUST14/15_SPOED
AND fac_usrdata_verwijder IS NULL) x, -- AW Lange route
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (1241) -- Aanvraag AW Spoed (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND NOT EXISTS -- Controle of de Spoedmelding is afgekeurd door compartimentseigenaar
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (4261) --Kenmerk Compartimentseigenaar akkoord
AND km.mld_melding_key = nam.mld_melding_key
AND km.mld_kenmerkmelding_waarde = '22' -- Nee
AND km.mld_kenmerkmelding_verwijder IS NULL
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST14'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
x.xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_melding vm,
(SELECT 742 mld_stdmelding_key, 'coordinator.rijnstraat@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 742 mld_stdmelding_key, 'postbusfmhveiligheidcentraal@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 742 mld_stdmelding_key, 'PoortCentraalServicedesk@mtc-pc.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 742 mld_stdmelding_key, 'PostbusFMHAdviseursfacilitairR8@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 743 mld_stdmelding_key, 'coordinator.rijnstraat@rijksoverheid.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, 'postbusfmhveiligheidcentraal@rijksoverheid.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, 'PoortCentraalServicedesk@mtc-pc.nl' xemail FROM DUAL -- AW Lange route
UNION ALL
SELECT 743 mld_stdmelding_key, 'PostbusFMHAdviseursfacilitairR8@rijksoverheid.nl' xemail FROM DUAL -- AW Korte route
UNION ALL
SELECT 743 mld_stdmelding_key, ud.fac_usrdata_omschr xemail FROM fac_usrdata ud WHERE fac_usrtab_key = 702 AND fac_usrdata_verwijder IS NULL) x, -- AW Lange route
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741) -- Aanvraag AW (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = vm.mld_melding_start_key
AND vm.mld_stdmelding_key = x.mld_stdmelding_key
AND EXISTS -- Doorgang ergens gezet op Niet akkoord!
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (2582, 2584)
AND km.mld_melding_key = nam.mld_melding_key
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST15'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud2.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_v_aanwezigkenmerkmelding km,
alg_onrgoedkenmerk ok,
fac_v_aanwezigusrdata ud1,
fac_v_aanwezigusrdata ud2,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741) -- Aanvraag AW (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (2563,3582,3583) -- Ruimte/cluster=Lange route
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1120 -- AW-cluster
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
AND EXISTS -- Doorgang ergens gezet op Niet akkoord!
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (2582, 2584)
AND km.mld_melding_key = nam.mld_melding_key
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST15'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud2.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_v_aanwezigkenmerkmelding km,
mld_v_aanwezigkenmerkmelding km2,
alg_onrgoedkenmerk ok,
fac_v_aanwezigusrdata ud1,
fac_v_aanwezigusrdata ud2,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (741) -- Aanvraag AW (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = km.mld_melding_key
AND km2.mld_kenmerk_key = 3581 -- Alle clusters
AND km2.mld_kenmerkmelding_waarde = '21' -- JA
AND km2.mld_melding_key = m.mld_melding_key
AND ok.alg_kenmerk_key = 1120 -- AW-cluster
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
AND EXISTS -- Doorgang ergens gezet op Niet akkoord!
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (2582, 2584)
AND km.mld_melding_key = nam.mld_melding_key
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST15'
GROUP by m.mld_melding_key,
sn.fac_srtnotificatie_code,
sn.fac_srtnotificatie_oms,
m.mld_melding_onderwerp,
ud2.fac_usrdata_omschr
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
x.xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
(SELECT ud.fac_usrdata_omschr xemail
FROM fac_usrdata ud
WHERE fac_usrtab_key = 1201 -- Eigen tabel CUST14/15_SPOED
AND fac_usrdata_verwijder IS NULL) x, -- AW Lange route
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key IN (1241) -- Aanvraag AW Spoed (Startmelding)
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND NOT EXISTS -- Controle of de Spoedmelding is afgekeurd door compartimentseigenaar
(SELECT 1
FROM mld_kenmerkmelding km, mld_melding nam
WHERE km.mld_kenmerk_key IN (4261) --Kenmerk Compartimentseigenaar akkoord
AND km.mld_melding_key = nam.mld_melding_key
AND km.mld_kenmerkmelding_waarde = '21' -- Akkoord = Ja
AND km.mld_kenmerkmelding_verwijder IS NULL
AND nam.mld_melding_start_key = m.mld_melding_key)
AND sn.fac_srtnotificatie_code = 'CUST15'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud2.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M'
|| SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4)
|| '___/M'
|| TO_CHAR (m.mld_melding_start_key)
|| '/2578/*' attachments -- 2578 = bijlagen-kenmerk bij vakgroeptype AW
FROM mld_melding m,
fac_tracking t,
fac_notificatie_job nj,
mld_v_aanwezigkenmerkmelding km,
alg_onrgoedkenmerk ok,
fac_v_aanwezigusrdata ud1,
fac_v_aanwezigusrdata ud2,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = 1241 -- Aanvraag AW Spoed, vervolgmelding aan Compartimentseigenaren
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 50 -- MLDNEW
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_AW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (2563,3582,3583) -- Ruimte/cluster=Lange route
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1120 -- AW-cluster
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud1.fac_usrdata_key
AND fac.safe_to_number (ud1.fac_usrdata_code) = ud2.fac_usrtab_key
AND sn.fac_srtnotificatie_code = 'CUST30';
-- Uurlijkse bewaking op WF tb.v VTW-proces!
-- CUST16 - Nieuwe VTW geconstateerd door VTW-team: ##Korte omschrijving## naar EM-er
-- CUST17 - Definitief advies VTW ##VTW nummer## ##Korte omschrijving## naar RVB
CREATE OR REPLACE VIEW FMHN_V_NOTI_WF_VTW
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (sn.fac_srtnotificatie_oms, '##SLOGAN##', slogan.mld_kenmerkmelding_waarde),
m.mld_melding_key,
NULL xkey,
NULL xsender,
p.prs_perslid_email xemail,
NULL xmobile,
NULL attachments
FROM mld_melding m,
fac_tracking t,
mld_v_aanwezigkenmerkmelding slogan,
fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = 763 -- Behoeftestelling advies/VTW-besluit
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND EXISTS -- Besluit genomen om te vervolgen als VTW (= 2984)
(SELECT 1
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 2747 -- Besluit BS
AND mld_kenmerkmelding_waarde = '2984'
AND mld_melding_key = m.mld_melding_key)
AND m.mld_melding_key = slogan.mld_melding_key
AND slogan.mld_kenmerk_key = 2724 -- Korte omschrijving (verplicht)
AND gg.fac_groep_key = 1703 -- RS8 Contractmanager (VTW)
AND gg.prs_perslid_key = p.prs_perslid_key
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_VTW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND sn.fac_srtnotificatie_code = 'CUST16'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (sn.fac_srtnotificatie_oms, '##SLOGAN##', slogan.mld_kenmerkmelding_waarde),
m.mld_melding_key,
NULL xkey,
NULL xsender,
ud.fac_usrdata_omschr xemail,
NULL xmobile,
'MLD/M' || SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4) || '___/M' || TO_CHAR (m.mld_melding_key) || '/447/*' attachments
FROM mld_melding m,
fac_tracking t,
mld_v_aanwezigkenmerkmelding slogan,
fac_notificatie_job nj,
fac_srtnotificatie sn,
fac_usrdata ud
WHERE m.mld_stdmelding_key = 765 -- Definitief VTW advies
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDAFM
AND m.mld_melding_key = slogan.mld_melding_key
AND slogan.mld_kenmerk_key = 2784 -- Korte omschrijving (verplicht)
AND ud.fac_usrtab_key = 681 --Eigen tabel CUST17
AND ud.fac_usrdata_verwijder IS NULL
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_WF_VTW'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND sn.fac_srtnotificatie_code = 'CUST17';
-- Uurlijkse notificatie nav. meldingen (oa. RS8 fietslocker-aanvragen)!
CREATE OR REPLACE VIEW FMHN_V_NOTI_MLD_DIVERSEN
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##STDMLD##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
NULL xkey,
NULL xsender,
DECODE (INSTR (ud1.fac_usrdata_code, '@'), 0, ud2.fac_usrdata_code, REPLACE (ud2.fac_usrdata_code, '@', ud1.fac_usrdata_code)) xemail, -- Best beetje obscuur
NULL xmobile,
NULL attachments
FROM mld_melding m,
mld_stdmelding sm,
mld_v_aanwezigkenmerkmelding km1,
fac_v_aanwezigusrdata ud1,
mld_v_aanwezigkenmerkmelding km2,
fac_v_aanwezigusrdata ud2,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_key = 603 -- Fietslocker (aanvraag)
AND m.mld_melding_key = km1.mld_melding_key
AND km1.mld_kenmerk_key = 2418 -- Ministerie/Bezoeker
AND fac.safe_to_number (km1.mld_kenmerkmelding_waarde) = ud1.fac_usrdata_key
AND ud1.fac_usrdata_key != 2696 -- Bezoeker
AND m.mld_melding_key = km2.mld_melding_key
AND km2.mld_kenmerk_key = 2419 -- Accorderen door
AND fac.safe_to_number (km2.mld_kenmerkmelding_waarde) = ud2.fac_usrdata_key
AND ud2.fac_usrdata_key != 2726 -- N.v.t.
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_MLD_DIVERSEN'
AND fac.gettrackingdate ('MLDNEW', m.mld_melding_key) > nj.fac_notificatie_job_lastrun
AND sn.fac_srtnotificatie_code = 'CUST18';
-- FMHN#72295: Uurlijkse notificatie van bijlagen op RS8-klachten/storingen naar PC!
CREATE OR REPLACE VIEW FMHN_V_NOTI_F2PC_BIJLAGEN
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##ID##',
TO_CHAR (m.mld_melding_key)),
'##STDMLD##',
sm.mld_stdmelding_omschrijving),
'##DISC##',
md.ins_discipline_omschrijving),
'##PCNR##',
ko.mld_kenmerkopdr_waarde),
m.mld_melding_key,
NULL xkey,
NULL xsender,
'PoortCentraalServicedesk@mtc-pc.nl' xemail,
NULL xmobile,
'MLD/M' || SUBSTR (LPAD (TO_CHAR (m.mld_melding_key), 7, '0'), 1, 4) || '___/M' || TO_CHAR (m.mld_melding_key) || '/' || TO_CHAR (b.fac_bijlagen_kenmerk_key) || '/*' attachments
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
fac_bijlagen b,
mld_opdr o,
mld_v_aanwezigkenmerkopdr ko,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_externnr IS NOT NULL -- Melding via Prequest-koppeling
AND sm.mld_ins_discipline_key = md.ins_discipline_key
--AND md.ins_srtdiscipline_key IN (122, 123) -- RS8 Klacht/Storing (object)
AND m.mld_melding_key = b.fac_bijlagen_refkey
AND b.fac_bijlagen_verwijder IS NULL
AND b.fac_bijlagen_kenmerk_key IN (2981, 2982) -- Bijlagen op Vakgroeptype=RS8 Klacht/Storing (object)
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_typeopdr_key = 582 -- Uitvoeringsopdracht PC (zou zo moeten zijn)
AND o.mld_opdr_key = ko.mld_opdr_key
AND ko.mld_kenmerk_key IN (1181, 1182) -- PC NR
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_F2PC_BIJLAGEN'
AND ko.mld_kenmerkopdr_aanmaak > nj.fac_notificatie_job_lastrun
AND sn.fac_srtnotificatie_code = 'CUST19';
-- Notificaties t.b.v. uitlenen en retourneren thuiswerkstoelen
CREATE OR REPLACE VIEW FMHN_V_NOTI_TWS_BESTELLING
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT DISTINCT x.*
FROM
(SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL sender,
(SELECT prs_perslid_key
FROM prs_v_aanwezigperslid p, mld_kenmerkmelding mkm
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key IN (3400, 3488) -- Kenmerk aanvraag voor (ontvanger) bij melding bestelaanvraag thuiswerkstoel / bestelaanvraag thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND prs_perslid_key = mkm.mld_kenmerkmelding_waarde) receiver,
sn.fac_srtnotificatie_oms text,
m.mld_melding_key,
NULL xkey,
NULL xsender,
NULL xemail,
NULL xmobile,
NULL attachments
FROM mld_melding m,
mld_stdmelding sm,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_key IN (882, 922) -- bestelaanvraag thuiswerkstoel / bestelaanvraag thuiswerkstoel RS8
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_TWS_BESTELLING'
AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > nj.fac_notificatie_job_lastrun -- Afgemeld, dan moeten de definitieve datum en tijdstip kenmerken gevuld zijn.
AND sn.fac_srtnotificatie_code = 'CUST24') x,
mld_kenmerkmelding mkm
WHERE
mkm.mld_melding_key = x.mld_melding_key
AND mkm.mld_kenmerk_key IN (3362, 3443) -- Kenmerk Actie bij melding bestelaanvraag thuiswerkstoel / bestelaanvraag thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_waarde = 3821 -- thuisbezorgen
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND x.receiver IS NOT NULL;
CREATE OR REPLACE VIEW FMHN_V_NOTI_TWS_BESOPHALEN
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT DISTINCT x.*
FROM
(SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL sender,
(SELECT prs_perslid_key
FROM prs_v_aanwezigperslid p, mld_kenmerkmelding mkm
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key IN (3400, 3488) -- Kenmerk aanvraag voor (ontvanger) bij melding bestelaanvraag thuiswerkstoel / bestelaanvraag thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND prs_perslid_key = mkm.mld_kenmerkmelding_waarde) receiver,
sn.fac_srtnotificatie_oms text,
m.mld_melding_key,
NULL xkey,
NULL xsender,
NULL xemail,
NULL xmobile,
NULL attachments
FROM mld_melding m,
mld_stdmelding sm,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_key IN (882, 922) -- bestelaanvraag thuiswerkstoel / bestelaanvraag thuiswerkstoel RS8
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_TWS_BESOPHALEN'
AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > nj.fac_notificatie_job_lastrun -- Afgemeld, dan moeten de definitieve datum en tijdstip kenmerken gevuld zijn.
AND sn.fac_srtnotificatie_code = 'CUST25') x,
mld_kenmerkmelding mkm
WHERE
mkm.mld_melding_key = x.mld_melding_key
AND mkm.mld_kenmerk_key IN (3362, 3443) -- Kenmerk Actie bij melding bestelaanvraag thuiswerkstoel / bestelaanvraag thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_waarde = 3822 -- zelf ophalen
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND x.receiver IS NOT NULL;
CREATE OR REPLACE VIEW FMHN_V_NOTI_TWS_RETOUR
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT DISTINCT x.*
FROM
(SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL sender,
(SELECT prs_perslid_key
FROM prs_v_aanwezigperslid p, mld_kenmerkmelding mkm
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key IN (3399, 3489) -- Kenmerk aanvraag voor (ontvanger) bij melding Retournering thuiswerkstoel / Retournering thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND prs_perslid_key = mkm.mld_kenmerkmelding_waarde) receiver,
sn.fac_srtnotificatie_oms text,
m.mld_melding_key,
NULL xkey,
NULL xsender,
NULL xemail,
NULL xmobile,
NULL attachments
FROM mld_melding m,
mld_stdmelding sm,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_key IN (883, 921) -- retourmelding thuiswerkstoel / retourmelding thuiswerkstoel RS8
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_TWS_RETOUR'
AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > nj.fac_notificatie_job_lastrun -- Afgemeld, dan moeten de definitieve datum en tijdstip kenmerken gevuld zijn.
AND sn.fac_srtnotificatie_code = 'CUST26') x,
mld_kenmerkmelding mkm
WHERE
mkm.mld_melding_key = x.mld_melding_key
AND mkm.mld_kenmerk_key IN (3363, 3442) --Kenmerk Actie bij melding Retournering thuiswerkstoel / Retournering thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_waarde = 3823 -- retour wordt opgehaald
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND x.receiver IS NOT NULL
UNION ALL
SELECT DISTINCT x.*
FROM
(SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL sender,
(SELECT prs_perslid_key
FROM prs_v_aanwezigperslid p, mld_kenmerkmelding mkm
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key IN (3431, 3491) -- Kenmerk aanvraag voor (ontvanger) bij melding Retournering thuiswerkstoel / Retournering thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND prs_perslid_key = mkm.mld_kenmerkmelding_waarde) receiver,
sn.fac_srtnotificatie_oms text,
m.mld_melding_key,
NULL xkey,
NULL xsender,
NULL xemail,
NULL xmobile,
NULL attachments
FROM mld_melding m,
mld_stdmelding sm,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_key IN (881, 941) -- Defect aan thuiswerkstoel / Defect aan thuiswerkstoel RS8
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_TWS_RETOUR'
AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) > nj.fac_notificatie_job_lastrun -- Afgemeld, dan moeten de definitieve datum en tijdstip kenmerken gevuld zijn.
AND sn.fac_srtnotificatie_code = 'CUST26') x,
mld_kenmerkmelding mkm
WHERE
mkm.mld_melding_key = x.mld_melding_key
AND mkm.mld_kenmerk_key IN (4421, 4422) --Kenmerk Actie bij melding Retournering thuiswerkstoel / Retournering thuiswerkstoel RS8
AND mkm.mld_kenmerkmelding_waarde = 3825 -- Actie 'Defect gemeld'
AND mkm.mld_kenmerkmelding_verwijder IS NULL
AND x.receiver IS NOT NULL;
-- TODO:KTO
CREATE OR REPLACE VIEW fmhn_v_udr_mld_kto
AS
SELECT x.meldingnummer,
x.melding_start_key,
x.melding_regio,
x.melding_district,
x.melding_locatiecode,
x.melding_locatie,
x.melding_locatieplaats,
x.melding_gebouwcode,
x.melding_gebouw,
x.melding_verdieping,
x.melding_ruimtenr,
x.melding_ruimte,
x.kostensoortgroep,
x.kostensoort,
x.kostenplaats,
x.kostenplaats_oms,
x.melder,
x.afdeling,
x.afdeling_omschrijving afdeling_oms,
x.invoerder,
x.meldbron,
x.soortmelding vakgroeptype,
x.productgroep vakgroep,
x.subproductgroep soortmelding,
x.behandelgroep,
x.behandelaar,
x.actieve_behandelgroep,
x.actieve_behandelaar,
x.melding_status,
x.sla_nvt,
x.sla_accptdgn,
x.sla_accpturen,
x.sla_werkdgn,
x.sla_werkuren,
x.plan_uitvoertijd_sla,
x.melding_datum,
x.melding_einddatum,
x.melding_einddatum_std,
x.melding_acceptdatum,
x.melding_afgemeld,
x.melding_accepted,
x.doorlooptijd_werkdgn,
x.doorlooptijd_werkuren,
x.onderwerp,
x.vomschrijving omschrijving,
x.melding_opmerking,
x.prioriteit,
x.rating,
x.rating_opmerking rating_opm,
x.actiecode,
x.accept_sla_dagen,
x.accept_sla_uren,
x.uitvoering_sla_dagen,
x.uitvoering_sla_uren,
x.afspraak_sla_dagen,
x.afspraak_sla_uren,
DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_optijd,
1 - DECODE (UPPER (x.accept_sla_optijd), 'JA', 1, 0) accept_sla_telaat,
DECODE (UPPER (x.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_optijd,
1 - DECODE (UPPER (x.uitvoering_sla_optijd), 'JA', 1, 0) uitvoering_sla_telaat,
DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_optijd,
1 - DECODE (UPPER (x.afspraak_sla_optijd), 'JA', 1, 0) afspraak_sla_telaat,
x.selfservice,
TO_CHAR (x.melding_afgemeld, 'yyyy-mm') maand,
COALESCE (x.actieve_behandelaar, x.actieve_behandelgroep, x.behandelaar, '*Onbekend') in_behandeling_bij
FROM mld_v_udr_melding x,
mld_melding m,
prs_perslid p,
prs_v_afdeling_boom ab
WHERE x.melding_datum < SYSDATE -- Niet in de toekomst!
AND x.melding_afgemeld IS NULL -- Niet afgemeld, dus lopend!
--AND x.sla_nvt = 0
--AND INSTR (UPPER (x.subproductgroep), 'KLACHT') = 0
--AND x.prioriteit IN (1, 2)
AND x.melding_key = m.mld_melding_key
AND fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
;
CREATE OR REPLACE VIEW BES_V_UDR_BESTELLING_OPM
(
BESTELLING_KEY,
BESTELAANVRAAGNR,
BESTELDATUM,
LEVERANCIER,
BESTELLER,
INVOERDER,
KOSTENSOORTGROEP,
KOSTENSOORT,
KPN,
KPN_OMSCHRIJVING,
FCLT_3D_AFDELING_KEY,
AFDELING_CODE,
AFDELING_OMSCHRIJVING,
FCLT_3D_LOCATIE_KEY,
LOCATIE_CODE,
REGIO_OMSCHRIJVING,
DISTRICT_OMSCHRIJVING,
AFLEVERADRES,
AFLEVERPLAATS,
MANDAAT,
FCLT_3D_DISCIPLINE_KEY,
CATALOGUS,
GROEP,
PRODUCTOMSCHRIJVING,
PRODUCTCODE,
AFLEVERDATUM,
DOORLOOPTIJD_WERKDGN,
SLA_TIJD,
PRIJS,
INKOOPPRIJS,
STATUS,
GEFIATTEERDDOOR,
BESTELOPDRACHTNUMMER,
AANTAL,
ITEMPRIJS,
ITEMINKOOPPRIJS,
ITEMPOSNR,
OPMERKING
)
AS
SELECT bes_bestelling_key,
bestelaanvraagnr,
besteldatum,
bedrijf_naam,
besteller,
invoerder,
kostensoortgroep,
kostensoort,
kpn,
kpn_omschrijving,
prs_afdeling_key,
afdeling_code,
afdeling_omschrijving,
alg_locatie_key,
locatie_code,
regio_omschrijving,
district_omschijving,
afleveradres,
afleverplaats,
mandaat,
ins_discipline_key,
catalogus,
groep,
productomschrijving,
productcode,
afleverdatum,
doorlooptijd_werkdgn,
sla_tijd,
prijs,
inkoopprijs,
status,
gefiatteerddoor,
bestelopdrachtnummer,
aantal,
itemprijs,
iteminkoopprijs,
itemposnr,
opmerking
FROM (SELECT b.bes_bestelling_key bes_bestelling_key,
'A-' || b.bes_bestelling_key bestelaanvraagnr,
b.bes_bestelling_datum besteldatum,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
besteller,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
COALESCE (
fac.gettrackinguserkey ('BESNEW',
b.bes_bestelling_key),
fac.gettrackinguserkey ('BESAP2',
b.bes_bestelling_key)))
invoerder,
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key =
ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT MAX(COALESCE (
bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key =
d.ins_discipline_key))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT MAX(COALESCE (bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key =
bsg.ins_discipline_key
AND disc.ins_discipline_key =
d.ins_discipline_key))
kostensoort,
k.prs_kostenplaats_nr kpn,
k.prs_kostenplaats_omschrijving kpn_omschrijving,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = sd.prs_bedrijf_key)
bedrijf_naam,
a.prs_afdeling_key,
a.prs_afdeling_naam afdeling_code,
a.prs_afdeling_omschrijving afdeling_omschrijving,
ma.alg_locatie_key alg_locatie_key,
(SELECT alg_locatie_code
FROM alg_locatie l
WHERE l.alg_locatie_key = ma.alg_locatie_key)
locatie_code,
(SELECT alg_regio_omschrijving
FROM alg_locatie l, alg_district d, alg_regio r
WHERE r.alg_regio_key = d.alg_regio_key
AND l.alg_district_key = d.alg_district_key
AND l.alg_locatie_key = ma.alg_locatie_key)
regio_omschrijving,
(SELECT alg_district_omschrijving
FROM alg_locatie l, alg_district d
WHERE l.alg_district_key = d.alg_district_key
AND l.alg_locatie_key = ma.alg_locatie_key)
district_omschijving,
ma.mld_adres_naam afleveradres,
b.bes_bestelling_plaats afleverplaats,
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0)
mandaat,
d.ins_discipline_key ins_discipline_key,
d.ins_discipline_omschrijving catalogus,
sg.bes_srtgroep_omschrijving groep,
b.bes_bestelling_leverdatum afleverdatum,
fac.count_work_days (
b.bes_bestelling_datum,
NVL (
fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
SYSDATE))
doorlooptijd_werkdgn,
NVL (
(SELECT bdp.bes_disc_params_leverdagen
FROM bes_disc_params bdp
WHERE d.ins_discipline_key =
bdp.bes_ins_discipline_key),
0)
sla_tijd,
sd.bes_srtdeel_nr productcode,
bi.bes_bestelling_item_prijs
* bi.bes_bestelling_item_aantal
prijs,
NVL (
bes.getsrtdeelinkprijs (sd.bes_srtdeel_key,
bes_bestelling_datum),
bi.bes_bestelling_item_prijs)
* bi.bes_bestelling_item_aantal
inkoopprijs,
(SELECT bes_bestellingstatuses_omschr
FROM bes_bestellingstatuses bs
WHERE bs.bes_bestellingstatuses_key =
b.bes_bestelling_status)
status,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user)
gefiatteerddoor,
'O-' || bo.bes_bestelopdr_id bestelopdrachtnummer,
bi.bes_bestelling_item_aantal aantal,
bi.bes_bestelling_item_prijs itemprijs,
NVL (
bes.getsrtdeelinkprijs (sd.bes_srtdeel_key,
bes_bestelling_datum),
bi.bes_bestelling_item_prijs)
iteminkoopprijs,
sd.bes_srtdeel_omschrijving productomschrijving,
boi.bes_bestelopdr_item_posnr itemposnr,
b.bes_bestelling_opmerking opmerking
FROM bes_bestelling b,
prs_perslid p,
prs_kostenplaats k,
prs_afdeling a,
mld_adres ma,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline d
WHERE b.prs_perslid_key = p.prs_perslid_key
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.mld_adres_key_lev = ma.mld_adres_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key =
boi.bes_bestelopdr_item_key(+)
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key);
--FMHN#69317 Tijdelijke view tbv bezoekers met parkeerplaats
CREATE OR REPLACE VIEW FMHN_V_UDR_BEZOEKERSPARK
(
KEY,
AFSPRAAK_KEY,
RESERVERING_KEY,
HOST,
CONTACT,
INVOERDER,
PLAATS_CODE,
PLAATS_OMSCHRIJVING,
REGIO,
DISTRICT,
LOCATIE_CODE,
LOCATIE_NAAM,
LOCATIE_PLAATS,
GEBOUW_CODE,
GEBOUW_NAAM,
VERDIEPING_CODE,
VERDIEPING_NAAM,
RUIMTE_CODE,
RUIMTE_NAAM,
AFSPRAAK_RUIMTE,
AFSPRAAK_OPMERKING,
BEZOEKER_NAAM,
BEZOEKER_BEDRIJF,
BEZOEK_VAN,
WEEKDAG_BEZOEK_VAN,
BEZOEK_TOT,
ACTIE,
BEZOEKER_OPMERKING,
BEZOEKER_BINNEN,
BEZOEKER_BUITEN,
PASNR,
PARKEERPLAATS,
FCLT_3D_LOCATIE_KEY,
SELFSERVICE,
TERREIN_OMSCHRIJVING,
TERREIN_CODE
)
AS
SELECT b.bez_bezoekers_key,
a.bez_afspraak_key,
a.res_rsv_ruimte_key,
a.bez_afspraak_gastheer
bez_afspraak_host,
p2.prs_perslid_naam_full
bez_afspraak_contact,
p3.prs_perslid_naam_full
bez_afspraak_invoerder,
og.alg_onroerendgoed_code,
og.alg_onroerendgoed_omschrijving,
r.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
og.alg_gebouw_code,
og.alg_gebouw_naam,
og.alg_verdieping_code,
og.alg_verdieping_omschrijving,
og.alg_ruimte_nr,
og.alg_ruimte_omschrijving,
a.bez_afspraak_ruimte,
a.bez_afspraak_opmerking,
b.bez_afspraak_naam
bezoeker_naam,
b.bez_afspraak_bedrijf
bezoeker_bedrijf,
a.bez_afspraak_datum,
TO_CHAR (a.bez_afspraak_datum, 'D')
weekdag_bezoek_van,
a.bez_afspraak_eind,
ba.bez_actie_omschrijving,
b.bez_bezoekers_opmerking
bezoeker_opmerking,
b.bez_bezoekers_done,
b.bez_bezoekers_out,
b.bez_bezoekers_pasnr,
rd.res_deel_omschrijving,
a.alg_locatie_key,
DECODE (p2.prs_perslid_naam_full,
p3.prs_perslid_naam_full, lcl.l ('lcl_yes'),
lcl.l ('lcl_no'))
selfservice,
(SELECT ts.alg_terreinsector_omschrijving
FROM alg_terreinsector ts
WHERE id.ins_alg_ruimte_type = 'T'
AND ts.alg_terreinsector_key = id.ins_alg_ruimte_key)
AS terrein_omschrijving,
(SELECT ts.alg_terreinsector_code
FROM alg_terreinsector ts
WHERE id.ins_alg_ruimte_type = 'T'
AND ts.alg_terreinsector_key = id.ins_alg_ruimte_key)
AS terrein_code
FROM bez_afspraak a,
bez_bezoekers b,
prs_v_perslid_fullnames_all p2,
prs_v_perslid_fullnames_all p3,
alg_v_allonrgoed_gegevens og,
alg_locatie l,
alg_district d,
alg_regio r,
bez_actie ba,
res_rsv_deel rrd,
res_deel rd,
ins_deel id
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND p2.prs_perslid_key = a.bez_afspraak_contact_key
AND p3.prs_perslid_key(+) = a.prs_perslid_key
AND a.bez_actie_key = ba.bez_actie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = r.alg_regio_key
AND l.alg_locatie_key = a.alg_locatie_key
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys(+)
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key(+)
AND rrd.res_deel_key = rd.res_deel_key(+)
AND rd.res_deel_omschrijving IS NOT NULL
AND a.bez_afspraak_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')
AND id.ins_deel_key = rd.res_ins_deel_key
ORDER BY bez_bezoekers_key;
CREATE OR REPLACE PROCEDURE fmhn_insert_npq(p_res_rsv_ruimte_key IN NUMBER,p_rra_key IN NUMBER, p_aantal IN NUMBER, p_lever_datum IN DATE, p_ra_key IN NUMBER, p_soort IN VARCHAR2)
AS
v_aantal NUMBER:=0;
BEGIN
SELECT COUNT(*) INTO v_aantal FROM fmhn_npq_export WHERE res_rsv_ruimte_key = p_res_rsv_ruimte_key AND res_rsv_artikel_key = p_rra_key;
IF v_aantal = 0
THEN
INSERT INTO fmhn_npq_export(res_rsv_artikel_key,export_datum,res_rsv_ruimte_key,res_artikel_key,aantal,lever_datum,soort)
VALUES(p_rra_key,SYSDATE,p_res_rsv_ruimte_key, p_ra_key, p_aantal, p_lever_datum,p_soort);
ELSE
UPDATE fmhn_npq_export set aantal=p_aantal, lever_datum=p_lever_datum WHERE res_rsv_ruimte_key = p_res_rsv_ruimte_key AND res_rsv_artikel_key = p_rra_key;
END IF;
--COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE fmhn_delete_npq(p_res_rsv_ruimte_key IN NUMBER,p_rra_key IN NUMBER)
AS
BEGIN
DELETE FROM fmhn_npq_export WHERE res_rsv_ruimte_key= p_res_rsv_ruimte_key AND res_rsv_artikel_key = p_rra_key;
--COMMIT;
END;
/
CREATE OR REPLACE VIEW fmhn_v_select_reserv_all
AS
SELECT DISTINCT(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rrr.res_rsv_ruimte_externsyncdate last_export,
rrr.res_rsv_ruimte_verwijder verw_datum,
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
rrr.RES_RSV_RUIMTE_VAN datum_van,
rrr.RES_RSV_RUIMTE_TOT datum_tot,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_bezoekers aantal,
alg.alg_locatie_code locatie_code,
'ruimte' soort,
ros.res_opstelling_omschrijving opstelling,
rrr.res_status_fo_key fo_status,
rrr.res_rsv_ruimte_dirtlevel dirtlevel
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rop,
res_opstelling ros,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg
WHERE rrr.res_status_bo_key = 2
--AND rrr.res_status_fo_key = 2
--AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND ros.res_opstelling_key = rop.res_opstelling_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key= 18
-- AND rrr.res_rsv_ruimte_dirtlevel=0
UNION ALL
SELECT DISTINCT(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rrr.res_rsv_ruimte_externsyncdate last_export,
rrr.res_rsv_ruimte_verwijder verw_datum,
alg.alg_ruimte_nr ruimte_nr,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
rrr.RES_RSV_RUIMTE_VAN datum_van,
rrr.RES_RSV_RUIMTE_TOT datum_tot,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_bezoekers aantal,
alg.alg_locatie_code locatie_code,
'losse-catering' soort,
'N.V.T.' opstelling,
rrr.res_status_fo_key fo_status,
0 dirtlevel
FROM res_rsv_ruimte rrr,
alg_v_ruimte_gegevens_all alg
WHERE alg.alg_ruimte_key = rrr.alg_ruimte_key
AND alg.alg_locatie_key= 18
-- AND rrr.res_rsv_ruimte_dirtlevel=0
-- AND rrr.res_status_fo_key = 2
ORDER BY reservering_key;
CREATE OR REPLACE VIEW fmhn_v_select_reservering
AS
SELECT * FROM (
SELECT DISTINCT(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rrr.res_rsv_ruimte_externsyncdate last_export,
rrr.res_rsv_ruimte_verwijder verw_datum,
(SELECT COUNT(*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_externsyncdate IS NULL) art_not_exp,
(SELECT COUNT(*)
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rrd.res_rsv_deel_externsyncdate IS NULL) deel_not_exp,
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
rrr.RES_RSV_RUIMTE_VAN datum_van,
rrr.RES_RSV_RUIMTE_TOT datum_tot,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_bezoekers aantal,
alg.alg_locatie_code locatie_code,
'ruimte' soort,
ros.res_opstelling_omschrijving opstelling,
rrr.res_status_fo_key fo_status,
rrr.res_rsv_ruimte_dirtlevel dirtlevel,
(SELECT rkw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde rkw,
res_kenmerk rk,
res_srtkenmerk rsk
WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rkw.RES_KENMERK_KEY=rk.RES_KENMERK_KEY
AND rsk.RES_SRTKENMERK_KEY = rk.RES_SRTKENMERK_KEY
AND rsk.RES_SRTKENMERK_UPPER='PC NR ZAAL') pc_nr
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rop,
res_opstelling ros,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg
WHERE rrr.res_status_bo_key = 2
--AND rrr.res_status_fo_key = 2
--AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND ros.res_opstelling_key = rop.res_opstelling_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key= 18
-- AND rrr.res_rsv_ruimte_dirtlevel=0
UNION ALL
SELECT DISTINCT(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rrr.res_rsv_ruimte_externsyncdate last_export,
rrr.res_rsv_ruimte_verwijder verw_datum,
(SELECT COUNT(*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_externsyncdate IS NULL) art_not_exp,
(SELECT COUNT(*)
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rrd.res_rsv_deel_externsyncdate IS NULL) deel_not_exp,
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
rrr.RES_RSV_RUIMTE_VAN datum_van,
rrr.RES_RSV_RUIMTE_TOT datum_tot,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_bezoekers aantal,
alg.alg_locatie_code locatie_code,
'ruimte-verplaatsing' soort,
ros.res_opstelling_omschrijving opstelling,
rrr.res_status_fo_key fo_status,
rrr.res_rsv_ruimte_dirtlevel dirtlevel,
rkw.res_kenmerkreservering_waarde pc_nr
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rop,
res_opstelling ros,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
res_kenmerkwaarde rkw,
res_kenmerk rk,
res_srtkenmerk rsk
WHERE rrr.res_status_bo_key = 2
--AND rrr.res_status_fo_key = 2
--AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND ros.res_opstelling_key = rop.res_opstelling_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key <> 18
AND rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rkw.RES_KENMERK_KEY=rk.RES_KENMERK_KEY
AND rsk.RES_SRTKENMERK_KEY = rk.RES_SRTKENMERK_KEY
AND rsk.RES_SRTKENMERK_UPPER='PC NR ZAAL'
AND rrr.RES_RSV_RUIMTE_VERWIJDER IS NULL
UNION ALL
SELECT DISTINCT(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rrr.res_rsv_ruimte_externsyncdate last_export,
rrr.res_rsv_ruimte_verwijder verw_datum,
(SELECT COUNT(*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_externsyncdate IS NULL) art_not_exp,
(SELECT COUNT(*)
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rrd.res_rsv_deel_externsyncdate IS NULL) deel_not_exp,
alg.alg_ruimte_nr ruimte_nr,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
rrr.RES_RSV_RUIMTE_VAN datum_van,
rrr.RES_RSV_RUIMTE_TOT datum_tot,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_bezoekers aantal,
alg.alg_locatie_code locatie_code,
'losse-catering' soort,
'N.V.T.' opstelling,
rrr.res_status_fo_key fo_status,
rrr.res_rsv_ruimte_dirtlevel dirtlevel,
(SELECT rkw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde rkw,
res_kenmerk rk,
res_srtkenmerk rsk
WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rkw.RES_KENMERK_KEY=rk.RES_KENMERK_KEY
AND rsk.RES_SRTKENMERK_KEY = rk.RES_SRTKENMERK_KEY
AND rsk.RES_SRTKENMERK_UPPER='PC NR ZAAL') pc_nr
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
alg_v_ruimte_gegevens_all alg
WHERE alg.alg_ruimte_key = rrr.alg_ruimte_key
AND alg.alg_locatie_key= 18
AND rrr.res_rsv_ruimte_dirtlevel=0
AND rra.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
-- AND rrr.res_status_fo_key = 2
UNION ALL
SELECT DISTINCT(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rrr.res_rsv_ruimte_externsyncdate last_export,
rrr.res_rsv_ruimte_verwijder verw_datum,
(SELECT COUNT(*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_externsyncdate IS NULL) art_not_exp,
(SELECT COUNT(*)
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rrd.res_rsv_deel_externsyncdate IS NULL) deel_not_exp,
alg.alg_ruimte_nr ruimte_nr,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
rrr.RES_RSV_RUIMTE_VAN datum_van,
rrr.RES_RSV_RUIMTE_TOT datum_tot,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_bezoekers aantal,
alg.alg_locatie_code locatie_code,
'losse-catering-verplaatsing' soort,
'N.V.T.' opstelling,
rrr.res_status_fo_key fo_status,
rrr.res_rsv_ruimte_dirtlevel dirtlevel,
rkw.res_kenmerkreservering_waarde pc_nr
FROM res_rsv_ruimte rrr,
alg_v_ruimte_gegevens_all alg,
res_kenmerkwaarde rkw,
res_kenmerk rk,
res_srtkenmerk rsk
WHERE alg.alg_ruimte_key = rrr.alg_ruimte_key
AND alg.alg_locatie_key <> 18
AND rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rkw.RES_KENMERK_KEY=rk.RES_KENMERK_KEY
AND rsk.RES_SRTKENMERK_KEY = rk.RES_SRTKENMERK_KEY
AND rsk.RES_SRTKENMERK_UPPER='PC NR ZAAL'
AND rrr.RES_RSV_RUIMTE_VERWIJDER IS NULL
-- AND rrr.res_rsv_ruimte_dirtlevel=0
-- AND rrr.res_status_fo_key = 2
ORDER BY reservering_key )
WHERE datum_van> SYSDATE-30 -- We synchrioniseren alleen afspraken die 30 dagen teru gaan, aanpassingen door de facility desk moeten in deze 30 dagen gebeuren.
AND (( last_export IS NULL -- dit zijn de nieuwe reserveringen
AND verw_datum IS NULL
AND fo_status=2
AND dirtlevel=0)
OR ( last_export IS NOT NULL -- dan betreft het hier due een mutatie
AND last_upd > last_export
AND verw_datum IS NULL)
OR ( last_export IS NOT NULL -- dan betreft het een annulering van een reservering
AND verw_datum IS NOT NULL
AND verw_datum > last_export)
OR ( last_export IS NULL -- Deze is door een undelete weer leeg gemaakt , deze wiol FMHn dus geforceerd naar NPQ hebben
AND verw_datum IS NOT NULL -- maar hij is al wel verwijderd,
AND pc_nr IS NOT NULL -- en hij is ooit uitgewisseld met PC
AND TRUNC(verw_datum) = TRUNC(SYSDATE)) -- dit doen we dan alleen voor verwijderde reservering van vandaag
OR ( last_upd<=last_export -- Dit betreft reserveringen die nog niet uitgewisselde res_art en/of res_deel hebben
AND ( art_not_exp>0
OR deel_not_exp >0))
);
CREATE OR REPLACE VIEW fmhn_v_select_res_artikel
AS
SELECT DISTINCT(rra.res_rsv_artikel_key) rra_key,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr reservering_volgnr,
rrr.res_rsv_ruimte_van datum_van,
rrr.res_rsv_ruimte_tot datum_tot,
rrr.res_rsv_ruimte_omschrijving res_oms,
rra.RES_RSV_ARTIKEL_EXTERNSYNCDATE last_export,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rra.res_rsv_artikel_verwijder verw_datum,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
alg.alg_locatie_code locatie_code,
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_key ra_key,
ra.res_artikel_externnr artikel_nr,
ra.res_artikel_omschrijving
|| DECODE (
rra.res_rsv_artikel_afhalen,
NULL, NULL,
'; Ophaaltijd: '
|| TO_CHAR (rra.res_rsv_artikel_afhalen, 'HH24:MI'))
art_omschrijving,
ra.res_artikel_externnr art_extern_nr,
rra.res_rsv_artikel_levering lever_datum,
ins.ins_discipline_externnr cat_externnr,
'ruimte-artikel' soort
FROM res_rsv_artikel rra,
res_rsv_ruimte rrr,
res_artikel ra,
res_ruimte_opstelling rop,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
ins_tab_discipline ins
WHERE rra.res_status_bo_key = 2
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = rra.res_artikel_key
-- AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key= 18
AND ins.ins_discipline_key = ra.res_discipline_key
AND rrr.res_rsv_ruimte_van> SYSDATE-30
-- alle artikelen bij zaal reservering
UNION ALL
SELECT DISTINCT rra.res_rsv_artikel_key rra_key,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr reservering_volgnr,
rrr.res_rsv_ruimte_van datum_van,
rrr.res_rsv_ruimte_tot datum_tot,
rrr.res_rsv_ruimte_omschrijving res_oms,
rra.RES_RSV_ARTIKEL_EXTERNSYNCDATE last_export,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rra.res_rsv_artikel_verwijder verw_datum,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
alg.alg_locatie_code locatie_code,
alg.alg_ruimte_nr ruimte_nr,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_key ra_key,
ra.res_artikel_opmerking artikel_nr,
ra.res_artikel_omschrijving
|| DECODE (
rra.res_rsv_artikel_afhalen,
NULL, NULL,
'; Ophaaltijd: '
|| TO_CHAR (rra.res_rsv_artikel_afhalen, 'HH24:MI'))
art_omschrijving,
ra.res_artikel_externnr art_extern_nr,
rra.res_rsv_artikel_levering lever_datum,
ins.ins_discipline_externnr cat_externnr,
'losse-catering' soort
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_artikel ra,
alg_v_ruimte_gegevens_all alg,
ins_tab_discipline ins
WHERE rra.res_status_bo_key = 2
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = rra.res_artikel_key
AND alg.ALG_RUIMTE_KEY = rrr.ALG_RUIMTE_KEY
AND alg.alg_locatie_key= 18
AND ins.ins_discipline_key = ra.res_discipline_key
AND rrr.res_rsv_ruimte_van> SYSDATE-30
-- alle losse catering
UNION ALL
SELECT DISTINCT (rra.res_rsv_deel_key) rra_key,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr reservering_volgnr,
rrr.res_rsv_ruimte_van datum_van,
rrr.res_rsv_ruimte_tot datum_tot,
rrr.res_rsv_ruimte_omschrijving res_oms,
rra.RES_RSV_deel_EXTERNSYNCDATE last_export,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rra.res_rsv_deel_verwijder verw_datum,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
'RS8' locatie_code,
COALESCE(rer.res_ruimte_friendlyname, (SELECT MAX(alg.alg_ruimte_nr)
FROM res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg
WHERE rarm.res_ruimte_key = rer.res_ruimte_key AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimte_nr,
rra.res_rsv_deel_aantal aantal,
ra.res_deel_key ra_key,
ra.res_deel_opmerking artikel_nr,
ra.res_deel_omschrijving art_omschrijving,
ra.res_deel_externnr art_extern_nr,
rra.res_rsv_deel_van lever_datum,
ins.ins_discipline_externnr cat_externnr,
'res-objecten' soort
FROM res_rsv_ruimte rrr,
res_rsv_deel rra,
res_deel ra,
res_ruimte_opstelling rop,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
ins_tab_discipline ins
WHERE rra.res_status_bo_key = 2
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_deel_key = rra.res_deel_key
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key= 18
AND ins.ins_discipline_key = ra.res_discipline_key
AND rrr.res_rsv_ruimte_van> SYSDATE-30
-- alle res objecten
UNION ALL
SELECT DISTINCT(rra.res_rsv_artikel_key) rra_key,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr reservering_volgnr,
rrr.res_rsv_ruimte_van datum_van,
rrr.res_rsv_ruimte_tot datum_tot,
rrr.res_rsv_ruimte_omschrijving res_oms,
rra.RES_RSV_ARTIKEL_EXTERNSYNCDATE last_export,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rra.res_rsv_artikel_verwijder verw_datum,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
alg.alg_locatie_code locatie_code,
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_key ra_key,
ra.res_artikel_externnr artikel_nr,
ra.res_artikel_omschrijving
|| DECODE (
rra.res_rsv_artikel_afhalen,
NULL, NULL,
'; Ophaaltijd: '
|| TO_CHAR (rra.res_rsv_artikel_afhalen, 'HH24:MI'))
art_omschrijving,
ra.res_artikel_externnr art_extern_nr,
rra.res_rsv_artikel_levering lever_datum,
ins.ins_discipline_externnr cat_externnr,
'ruimte-artikel-verplaatsing' soort
FROM res_rsv_artikel rra,
res_rsv_ruimte rrr,
res_artikel ra,
res_ruimte_opstelling rop,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
ins_tab_discipline ins,
res_kenmerkwaarde rkw,
res_kenmerk rk,
res_srtkenmerk rsk
WHERE rra.res_status_bo_key = 2
-- AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = rra.res_artikel_key
-- AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key <> 18
AND ins.ins_discipline_key = ra.res_discipline_key
AND rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rkw.RES_KENMERK_KEY=rk.RES_KENMERK_KEY
AND rsk.RES_SRTKENMERK_KEY = rk.RES_SRTKENMERK_KEY
AND rsk.RES_SRTKENMERK_UPPER='PC NR ZAAL'
AND rrr.RES_RSV_RUIMTE_VERWIJDER IS NULL
AND rrr.res_rsv_ruimte_van> SYSDATE-30
UNION ALL
SELECT DISTINCT rra.res_rsv_artikel_key rra_key,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr reservering_volgnr,
rrr.res_rsv_ruimte_van datum_van,
rrr.res_rsv_ruimte_tot datum_tot,
rrr.res_rsv_ruimte_omschrijving res_oms,
rra.RES_RSV_ARTIKEL_EXTERNSYNCDATE last_export,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rra.res_rsv_artikel_verwijder verw_datum,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
alg.alg_locatie_code locatie_code,
alg.alg_ruimte_nr ruimte_nr,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_key ra_key,
ra.res_artikel_opmerking artikel_nr,
ra.res_artikel_omschrijving
|| DECODE (
rra.res_rsv_artikel_afhalen,
NULL, NULL,
'; Ophaaltijd: '
|| TO_CHAR (rra.res_rsv_artikel_afhalen, 'HH24:MI'))
art_omschrijving,
ra.res_artikel_externnr art_extern_nr,
rra.res_rsv_artikel_levering lever_datum,
ins.ins_discipline_externnr cat_externnr,
'losse-catering-verplaatsing' soort
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_artikel ra,
alg_v_ruimte_gegevens_all alg,
ins_tab_discipline ins,
res_kenmerkwaarde rkw,
res_kenmerk rk,
res_srtkenmerk rsk
WHERE rra.res_status_bo_key = 2
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = rra.res_artikel_key
AND alg.ALG_RUIMTE_KEY = rrr.ALG_RUIMTE_KEY
AND alg.alg_locatie_key <> 18
AND ins.ins_discipline_key = ra.res_discipline_key
AND rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rkw.RES_KENMERK_KEY=rk.RES_KENMERK_KEY
AND rsk.RES_SRTKENMERK_KEY = rk.RES_SRTKENMERK_KEY
AND rsk.RES_SRTKENMERK_UPPER='PC NR ZAAL'
AND rrr.RES_RSV_RUIMTE_VERWIJDER IS NULL
AND rrr.res_rsv_ruimte_van> SYSDATE-30
UNION ALL
SELECT DISTINCT (rra.res_rsv_deel_key) rra_key,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr reservering_volgnr,
rrr.res_rsv_ruimte_van datum_van,
rrr.res_rsv_ruimte_tot datum_tot,
rrr.res_rsv_ruimte_omschrijving res_oms,
rra.RES_RSV_deel_EXTERNSYNCDATE last_export,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rra.res_rsv_deel_verwijder verw_datum,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
'oud-RS8' locatie_code,
COALESCE(rer.res_ruimte_friendlyname, (SELECT MAX(alg.alg_ruimte_nr)
FROM res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg
WHERE rarm.res_ruimte_key = rer.res_ruimte_key AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimte_nr,
rra.res_rsv_deel_aantal aantal,
ra.res_deel_key ra_key,
ra.res_deel_opmerking artikel_nr,
ra.res_deel_omschrijving art_omschrijving,
ra.res_deel_externnr art_extern_nr,
rra.res_rsv_deel_van lever_datum,
ins.ins_discipline_externnr cat_externnr,
'res-object-verplaatsing' soort
FROM res_rsv_ruimte rrr,
res_rsv_deel rra,
res_deel ra,
res_ruimte_opstelling rop,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
ins_tab_discipline ins,
res_kenmerkwaarde rkw,
res_kenmerk rk,
res_srtkenmerk rsk
WHERE rra.res_status_bo_key = 2
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_deel_key = rra.res_deel_key
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key <> 18
AND ins.ins_discipline_key = ra.res_discipline_key
AND rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rkw.RES_KENMERK_KEY=rk.RES_KENMERK_KEY
AND rsk.RES_SRTKENMERK_KEY = rk.RES_SRTKENMERK_KEY
AND rsk.RES_SRTKENMERK_UPPER='PC NR ZAAL'
AND rrr.RES_RSV_RUIMTE_VERWIJDER IS NULL
AND rrr.res_rsv_ruimte_van> SYSDATE-30
ORDER BY reservering_key, reservering_volgnr;
/*
CREATE OR REPLACE VIEW fmhn_v_select_opdracht
AS
select rrr.res_rsv_ruimte_key rrr_key,
from res_rsv_ruimte rrr,
mld_melding m
where rrr.res_rsv_ruimte_verwijder NOT IS NULL
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key;
*/
CREATE OR REPLACE PROCEDURE fmhn_select_objects (
p_res_rsv_ruimte_key IN NUMBER,
p_soort IN VARCHAR2,
p_counter IN NUMBER)
AS
CURSOR sel_art (v_res_rsv_ruimte_key NUMBER)
IS
SELECT DISTINCT(rra_key) rra_key, -- zorgen dat koppelzalen geen roet in het eten gooien
res_rsv_ruimte_key,
reservering_key,
reservering_volgnr,
res_oms,
last_upd,
last_export,
verw_datum,
besteller,
datum_van,
datum_tot,
artikel_nr,
art_omschrijving,
aantal,
art_extern_nr,
ra_key,
locatie_code,
ruimte_nr,
lever_datum,
COALESCE(cat_externnr,'LEEG') cat_externnr,
COALESCE ((SELECT rak.res_kenmerkartikel_waarde
FROM res_kenmerkartikel rak, res_kenmerk rk, res_rsv_artikel rra, res_artikel ra
WHERE rak.res_rsv_artikel_key=rra_key
AND rra.res_rsv_artikel_key= rak.res_rsv_artikel_key
AND ra.res_artikel_key= rra.res_artikel_key
AND rk.res_discipline_key = ra.res_discipline_key
AND rk.res_kenmerk_key=rak.res_kenmerk_key
AND rk.res_srtkenmerk_key=82 --FMHN#76696 Eerst kijken of er een kenmerk Toelichting250 is (key=82) anders Toelichting50 (key=1)
AND rk.res_kenmerk_verwijder IS NULL),
(SELECT rak.res_kenmerkartikel_waarde
FROM res_kenmerkartikel rak, res_kenmerk rk, res_rsv_artikel rra, res_artikel ra
WHERE rak.res_rsv_artikel_key=rra_key
AND rra.res_rsv_artikel_key= rak.res_rsv_artikel_key
AND ra.res_artikel_key= rra.res_artikel_key
AND rk.res_discipline_key = ra.res_discipline_key -- FMHN#87059 Uitgevallen koppeling tussen facilitor en NPQ FIX
AND rk.res_kenmerk_key=rak.res_kenmerk_key
AND rk.res_srtkenmerk_key=1 --FMHN#76696 Eerst kijken of er een kenmerk Toelichting250 is (key=82) anders Toelichting50 (key=1)
AND rk.res_kenmerk_verwijder IS NULL
)) toelichting
FROM fmhn_v_select_res_artikel
WHERE res_rsv_ruimte_key = v_res_rsv_ruimte_key;
/*
CURSOR sel_del(v_res_rsv_ruimte_key NUMBER)
IS
SELECT *
FROM fmhn_npq_export fne, res_rsv_artikel rra
WHERE fne.res_rsv_ruimte_key=v_res_rsv_ruimte_key
AND fne.soort='Catering'
AND fne.res_rsv_artikel_key NOT IN
(select rra.res_rsv_artikel_key from res_rsv_artikel rra where rra.res_rsv_ruimte_key=v_res_rsv_ruimte_key)
UNION ALL
CURSOR sel_del (v_res_rsv_ruimte_key NUMBER)
IS
SELECT ra.res_artikel_omschrijving art_omschrijving,
fne.aantal aantal,
fne.RES_ARTIKEL_KEY,
rrr.RES_RSV_RUIMTE_VAN lever_datum,
ra.res_artikel_opmerking artikel_nr,
rra.res_rsv_artikel_key rra_key
FROM fmhn_npq_export fne,
res_rsv_ruimte rrr,
res_artikel ra,
res_rsv_artikel rra
WHERE rrr.res_rsv_ruimte_key = v_res_rsv_ruimte_key
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND fne.res_artikel_key = ra.res_artikel_key
AND fne.soort='Catering'
AND fne.res_rsv_artikel_key NOT IN
(SELECT rra_key
FROM fmhn_v_select_res_artikel
WHERE res_rsv_ruimte_key = v_res_rsv_ruimte_key)
UNION ALL
SELECT ra.res_deel_omschrijving art_omschrijving,
fne.aantal aantal,
fne.RES_ARTIKEL_KEY,
rrr.RES_RSV_RUIMTE_VAN lever_datum,
ra.res_deel_opmerking artikel_nr,
rra.res_rsv_deel_key rra_key
FROM fmhn_npq_export fne,
res_rsv_ruimte rrr,
res_deel ra,
res_rsv_deel rra
WHERE rrr.res_rsv_ruimte_key = v_res_rsv_ruimte_key
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND fne.res_artikel_key = ra.res_deel_key
AND fne.soort='Facility'
AND fne.res_rsv_artikel_key NOT IN
(SELECT rra_key
FROM fmhn_v_select_res_artikel
WHERE res_rsv_ruimte_key = v_res_rsv_ruimte_key);
*/
v_base VARCHAR2 (10);
v_bestand VARCHAR2 (50);
v_counter NUMBER;
v_artcounter NUMBER;
v_status VARCHAR2 (20);
v_soort VARCHAR2 (10);
v_count NUMBER :=0;
BEGIN
-- Nu gaan we kijken of er ook artikelen zijn die we moeten exporteren.
v_base := 'ITN';
v_artcounter := 0;
v_counter := p_counter;
v_status := 'ND';
v_count:=0;
-- Check of de reservering al een valide Prequest Nr heeftv terug gekregen.
SELECT COUNT(*) INTO v_count
FROM res_rsv_ruimte rrr, res_kenmerkwaarde rk
WHERE rrr.res_rsv_ruimte_key=p_res_rsv_ruimte_key
AND rk.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rk.res_kenmerk_key IN (341,342,343,365,370); -- kenmerk van de activiteit
IF v_count>0 OR (p_soort='losse-catering' OR p_soort = 'losse-catering-verplaatsing' )THEN
FOR rec_art IN sel_art (p_res_rsv_ruimte_key)
LOOP
v_artcounter := v_artcounter + 1;
v_status := 'ND';
IF rec_art.last_export IS NULL
THEN
v_status := 'Opened';
ELSIF rec_art.last_export IS NOT NULL
AND rec_art.last_upd > rec_art.last_export
AND rec_art.verw_datum IS NULL
THEN
IF (p_soort = 'losse-catering-verplaatsing' OR p_soort = 'ruimte-verplaatsing') THEN
v_status := 'Cancelled';
v_base := 'ITD';
ELSE
v_status := 'Opened';
v_base := 'ITU';
END IF;
ELSIF rec_art.last_export IS NOT NULL
AND rec_art.verw_datum IS NOT NULL
AND rec_art.verw_datum > rec_art.last_export
THEN
v_status := 'Cancelled';
v_base := 'ITD';
END IF;
-- DBMS_OUTPUT.PUT_LINE('Status -'||v_status||'-');
v_bestand := v_base || '-' || rec_art.rra_key || '-';
IF v_status != 'ND' AND rec_art.cat_externnr != 'LEEG'
THEN
-- IF v_artcounter = 1
-- THEN
IF INSTR(rec_art.cat_externnr,'CAT')>0 THEN -- is het een catering aanvraag of een ander soort
v_soort:= 'Catering';
ELSE
v_soort:='Facility';
END IF;
fmhn.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
fmhn.add_xml_row (v_bestand, '<Facilitor>');
-- Check inbouwen of het catering is of iets anders
fmhn.add_xml_row (v_bestand, '<Reservering >');
fmhn.add_xml_element (v_bestand, 'Soort', v_soort);
fmhn.add_xml_element (v_bestand, 'Status', v_status);
fmhn.add_xml_element (v_bestand, 'Catalogus', rec_art.cat_externnr);
fmhn.add_xml_element (v_bestand, 'Key', rec_art.res_rsv_ruimte_key);
fmhn.add_xml_element (v_bestand, 'ReserveringNr', rec_art.reservering_key);
fmhn.add_xml_element (v_bestand, 'VolgNr', rec_art.reservering_volgnr);
fmhn.add_xml_element (v_bestand, 'RuimteNr', rec_art.ruimte_nr);
fmhn.add_xml_element (v_bestand, 'LocatieCode', rec_art.locatie_Code);
fmhn.add_xml_element (v_bestand, 'DatumVan', TO_CHAR (rec_art.datum_van, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_element (v_bestand, 'DatumTot', TO_CHAR (rec_art.datum_tot, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_element (v_bestand, 'Omschrijving', rec_art.res_oms);
fmhn.add_xml_element (v_bestand, 'Toelichting', rec_art.toelichting);
--fmhn_add_xml_element (v_bestand, 'Aantal', rec.aantal);
fmhn.add_xml_element (v_bestand, 'Besteller', rec_art.besteller);
fmhn.add_xml_row (v_bestand, '<Items>');
-- END IF;
fmhn.add_xml_row (v_bestand, '<Item>');
fmhn.add_xml_element (v_bestand, 'ArtikelKey', rec_art.rra_key);
fmhn.add_xml_element (v_bestand, 'Artikelnr', rec_art.art_extern_nr);
fmhn.add_xml_element (v_bestand, 'Status', v_status);
fmhn.add_xml_element (v_bestand, 'Soort', v_soort);
fmhn.add_xml_element (v_bestand, 'Aantal', rec_art.aantal);
fmhn.add_xml_element (v_bestand, 'Omschrijving', rec_art.art_omschrijving);
fmhn.add_xml_element (v_bestand, 'ArtOpm', rec_art.toelichting);
fmhn.add_xml_element (v_bestand, 'LeverDatum', TO_CHAR (rec_art.lever_datum, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_row (v_bestand, '</Item>');
fmhn.add_xml_row (v_bestand, '</Items>');
fmhn.add_xml_row (v_bestand, '</Reservering>');
fmhn.add_xml_row (v_bestand, '</Facilitor>');
IF v_soort= 'Catering'
THEN
UPDATE res_rsv_artikel
SET res_rsv_artikel_externsyncdate = SYSDATE
WHERE res_rsv_ruimte_key = p_res_rsv_ruimte_key AND res_rsv_artikel_key=rec_art.rra_key;
ELSE
UPDATE res_rsv_deel
SET res_rsv_deel_externsyncdate = SYSDATE
WHERE res_rsv_ruimte_key = p_res_rsv_ruimte_key AND res_rsv_deel_key=rec_art.rra_key;
END IF;
IF p_soort='losse-catering' THEN
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_externsyncdate = SYSDATE
WHERE res_rsv_ruimte_key = rec_art.res_rsv_ruimte_key; -- alleen update als er ook wat geexporteerd is.
END IF;
IF p_soort = 'ruimte' OR p_soort='losse-catering' THEN
fmhn_insert_npq (rec_art.res_rsv_ruimte_key, rec_art.rra_key, rec_art.aantal, rec_art.lever_datum, rec_art.ra_key,v_soort);
ELSE
fmhn_delete_npq(rec_art.res_rsv_ruimte_key, rec_art.rra_key);
END IF;
END IF;
END LOOP;
fmhn_export_removed_art(p_res_rsv_ruimte_key);
END IF;
/* IF v_artcounter > 0
THEN
fmhn.add_xml_row (v_bestand, '</Items>');
fmhn.add_xml_row (v_bestand, '</Reservering>');
fmhn.add_xml_row (v_bestand, '</Facilitor>');
UPDATE res_rsv_artikel
SET res_rsv_artikel_externsyncdate = SYSDATE
WHERE res_rsv_ruimte_key = p_res_rsv_ruimte_key;
COMMIT;
END IF;
*/
END;
/
CREATE OR REPLACE PROCEDURE fmhn_export_removed_art( p_res_rsv_ruimte_key IN NUMBER)
AS
CURSOR sel_del (p_res_rsv_ruimte_key NUMBER)
IS
SELECT fne.RES_RSV_ARTIKEL_KEY rra_key,
fne.RES_ARTIKEL_KEY,
fne.AANTAL aantal,
ra.res_artikel_omschrijving art_omschrijving,
ra.RES_ARTIKEL_EXTERNNR artikel_nr,
fne.LEVER_DATUM lever_datum,
'Catering' soort
FROM fmhn_npq_export fne, res_artikel ra
WHERE fne.res_rsv_ruimte_key=p_res_rsv_ruimte_key
AND fne.soort='Catering'
AND ra.RES_ARTIKEL_KEY = fne.RES_ARTIKEL_KEY
and fne.res_rsv_artikel_key not in
(SELECT res_rsv_artikel_key
FROM res_rsv_artikel
WHERE res_rsv_ruimte_key=p_res_rsv_ruimte_key)
UNION ALL
SELECT fne.RES_RSV_ARTIKEL_KEY rra_key,
fne.RES_ARTIKEL_KEY,
fne.AANTAL aantal,
ra.res_deel_omschrijving art_omschrijving,
ra.RES_deel_EXTERNNR artikel_nr,
fne.LEVER_DATUM lever_datum,
'Facility' soort
FROM fmhn_npq_export fne, res_deel ra
WHERE fne.res_rsv_ruimte_key=p_res_rsv_ruimte_key
AND fne.soort='Facility'
AND ra.RES_deel_KEY = fne.RES_ARTIKEL_KEY
and fne.res_rsv_artikel_key not in
(SELECT res_rsv_deel_key
FROM res_rsv_deel
WHERE res_rsv_ruimte_key=p_res_rsv_ruimte_key);
v_base VARCHAR2 (10);
v_bestand VARCHAR2 (50);
v_counter NUMBER;
v_artcounter NUMBER;
v_status VARCHAR2 (20);
v_soort VARCHAR2 (10);
v_count NUMBER :=0;
res_datum_van DATE;
res_datum_tot DATE;
res_reservering NUMBER;
res_volgnr NUMBER;
res_ruimte_nr VARCHAR2(100);
res_soort VARCHAR2(20);
res_locatie_code VARCHAR2(100);
res_omsc VARCHAR2(100);
cat_externnr VARCHAR2(100);
res_besteller VARCHAR2(256);
BEGIN
v_status := 'Cancelled';
v_base :='ITD';
v_artcounter:=0;
-- Check of er artikelen zijn verwijderd.
FOR rec_art_del IN sel_del (p_res_rsv_ruimte_key)
LOOP
-- SELECT res.datum_van,
-- res.datum_tot,
-- res.reservering_key,
-- res.res_rsv_ruimte_volgnr,
-- res.ruimte_nr,
-- res.soort,
-- res.locatie_code,
-- res.oms,
-- res.besteller
-- INTO res_datum_van, res_datum_tot, res_reservering,res_volgnr, res_ruimte_nr, res_soort, res_locatie_code, res_omsc, res_besteller
-- FROM fmhn_v_select_reserv_all res
-- WHERE res.res_rsv_ruimte_key=p_res_rsv_ruimte_key;
SELECT res.res_rsv_ruimte_van,
res.res_rsv_ruimte_tot,
res.res_reservering_key,
res.res_rsv_ruimte_volgnr,
NVL2(alg_ruimte_key,
(SELECT MAX(alg.alg_ruimte_nr)
FROM alg_v_ruimte_gegevens_all alg
WHERE alg.alg_ruimte_key = res.alg_ruimte_key)
,
(SELECT MAX(alg.alg_ruimte_nr)
FROM alg_v_ruimte_gegevens_all alg,
res_ruimte_opstelling rro,
res_ruimte rer,
res_alg_ruimte rarm
WHERE res.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rer.res_ruimte_key = rro.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key)
) ruimte_nr,
NVL2(alg_ruimte_key,
(SELECT MAX(alg.alg_locatie_code)
FROM alg_v_ruimte_gegevens_all alg
WHERE alg.alg_ruimte_key = res.alg_ruimte_key)
,
(SELECT MAX(alg.alg_locatie_code)
FROM alg_v_ruimte_gegevens_all alg,
res_ruimte_opstelling rro, res_ruimte rer,
res_alg_ruimte rarm
WHERE res.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rer.res_ruimte_key = rro.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key)
) locatie_code,
res.res_rsv_ruimte_omschrijving,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = res.res_rsv_ruimte_contact_key) besteller
INTO res_datum_van, res_datum_tot, res_reservering,res_volgnr, res_ruimte_nr, res_locatie_code, res_omsc, res_besteller
FROM res_rsv_ruimte res
WHERE res.res_rsv_ruimte_key=p_res_rsv_ruimte_key;
IF rec_art_del.soort='Catering' THEN
SELECT ins.ins_discipline_externnr externnr
INTO cat_externnr
FROM ins_tab_discipline ins, res_artikel ra
WHERE ra.res_artikel_key = rec_art_del.res_artikel_key
AND ins.ins_discipline_key = ra.res_discipline_key;
ELSE
SELECT ins.ins_discipline_externnr externnr
INTO cat_externnr
FROM ins_tab_discipline ins, res_deel ra
WHERE ra.res_deel_key = rec_art_del.res_artikel_key
AND ins.ins_discipline_key = ra.res_discipline_key;
END IF;
v_artcounter := v_artcounter + 1;
v_bestand := v_base || '-' || rec_art_del.rra_key || '-';
fmhn.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
fmhn.add_xml_row (v_bestand, '<Facilitor>');
fmhn.add_xml_row (v_bestand, '<Reservering >');
fmhn.add_xml_element (v_bestand, 'Soort', rec_art_del.soort);
fmhn.add_xml_element (v_bestand, 'Status', v_status);
fmhn.add_xml_element (v_bestand, 'Catalogus', cat_externnr);
fmhn.add_xml_element (v_bestand, 'Key', p_res_rsv_ruimte_key);
fmhn.add_xml_element (v_bestand, 'ReserveringNr', res_reservering);
fmhn.add_xml_element (v_bestand, 'VolgNr', res_volgnr);
fmhn.add_xml_element (v_bestand, 'RuimteNr', res_ruimte_nr);
fmhn.add_xml_element (v_bestand, 'LocatieCode', res_locatie_code);
fmhn.add_xml_element (v_bestand, 'DatumVan', TO_CHAR (res_datum_van, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_element (v_bestand, 'DatumTot', TO_CHAR (res_datum_tot, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_element (v_bestand, 'Omschrijving', res_omsc);
fmhn.add_xml_element (v_bestand, 'Toelichting', 'Verwijderd artikel');
fmhn.add_xml_element (v_bestand, 'Besteller', res_besteller);
fmhn.add_xml_row (v_bestand, '<Items>');
fmhn.add_xml_row (v_bestand, '<Item>');
fmhn.add_xml_element (v_bestand, 'ArtikelKey', rec_art_del.rra_key);
fmhn.add_xml_element (v_bestand, 'Artikelnr', rec_art_del.artikel_nr);
fmhn.add_xml_element (v_bestand, 'Status', v_status);
fmhn.add_xml_element (v_bestand, 'Aantal', rec_art_del.aantal);
fmhn.add_xml_element (v_bestand, 'Omschrijving', rec_art_del.art_omschrijving);
fmhn.add_xml_element (v_bestand, 'LeverDatum', TO_CHAR (rec_art_del.lever_datum, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_row (v_bestand, '</Item>');
fmhn.add_xml_row (v_bestand, '</Items>');
fmhn.add_xml_row (v_bestand, '</Reservering>');
fmhn.add_xml_row (v_bestand, '</Facilitor>');
fmhn_delete_npq (p_res_rsv_ruimte_key, rec_art_del.rra_key);
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE fmhn_select_reservering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR sel_res
IS
SELECT res_rsv_ruimte_key,
reservering_key,
res_rsv_ruimte_volgnr,
last_upd,
last_export,
verw_datum,
ruimte_nr,
besteller,
datum_van,
datum_tot,
oms,
aantal,
locatie_code,
soort,
opstelling,
fo_status,
dirtlevel,
pc_nr
FROM fmhn_v_select_reservering;
--WHERE aanmk_datum > SYSDATE - 1;
-- AND last_export IS NULL) OR (last_upd > last_export AND last_export<verw_datum) OR verw_datum > last_export;
--WHERE last_export IS NULL;
v_base VARCHAR2 (10);
v_bestand VARCHAR2 (50);
v_counter NUMBER;
v_status VARCHAR2 (20);
v_kenmerk_key NUMBER;
v_kenmerk_count NUMBER;
v_kenmerk_niveau VARCHAR2(10);
BEGIN
v_base := 'REN';
v_counter := 1;
DELETE FROM fac_rapport -- Opschonen oude Reserevering exports
WHERE fac_rapport_node LIKE 'RE%' OR fac_rapport_node LIKE 'IT%';
COMMIT;
FOR rec IN sel_res
LOOP
v_status := 'ND';
IF rec.soort = 'ruimte' OR rec.soort = 'ruimte-verplaatsing' THEN
-- Eerst gaan bepalen of we wat moeten doen voor dit record.
IF rec.last_export IS NULL AND rec.fo_status=2 AND rec.dirtlevel=0
AND rec.verw_datum IS NULL --IVM FMHN#73448
THEN
v_status := 'Opened';
v_base := 'REN';
ELSIF rec.last_export IS NOT NULL
AND rec.last_upd > rec.last_export
AND rec.verw_datum IS NULL
AND rec.fo_status=2
THEN
IF rec.soort = 'ruimte-verplaatsing' THEN
v_status := 'Cancelled'; -- dit zijn res die een npq nr hebben maar niet meer in RS8 zijn
v_base := 'RED';
ELSE
v_status := 'Opened'; -- NPQ kent geen update status
v_base := 'REU';
END IF;
ELSIF (rec.last_export IS NOT NULL
AND rec.verw_datum IS NOT NULL
AND rec.verw_datum > rec.last_export)
OR
(rec.last_export IS NULL -- Deze is door een undelete weer leeg gemaakt , deze wiol FMHn dus geforceerd naar NPQ hebben
AND rec.verw_datum IS NOT NULL -- maar hij is al wel verwijderd,
AND rec.pc_nr IS NOT NULL)
-- AND rec.fo_status=1
THEN
v_status := 'Cancelled';
v_base := 'RED';
END IF;
IF v_status != 'ND' -- We gaan alleen een XML maken als er een status is anders dan 'ND'
THEN
v_bestand := v_base || '-' || v_counter|| '-'; -- Dit kunnen we beter omdraaien eerst de counter en dan de soort bericht (REN, REU, RED) zorgt voor juiste file volgordelijkheid
fmhn.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
fmhn.add_xml_row (v_bestand, '<Facilitor>');
fmhn.add_xml_row (v_bestand, '<Reservering>');
fmhn.add_xml_element (v_bestand, 'Soort', 'Zaalreservering');
fmhn.add_xml_element (v_bestand, 'Status', v_status);
fmhn.add_xml_element (v_bestand, 'Key', rec.res_rsv_ruimte_key);
fmhn.add_xml_element (v_bestand, 'ReserveringNr', rec.reservering_key);
fmhn.add_xml_element (v_bestand, 'VolgNr', rec.res_rsv_ruimte_volgnr);
fmhn.add_xml_element (v_bestand, 'RuimteNr', rec.ruimte_nr);
fmhn.add_xml_element (v_bestand, 'Opstelling', rec.opstelling);
fmhn.add_xml_element (v_bestand, 'LocatieCode', rec.locatie_Code);
fmhn.add_xml_element (v_bestand, 'DatumVan', TO_CHAR (rec.datum_van, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_element (v_bestand, 'DatumTot', TO_CHAR (rec.datum_tot, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_element (v_bestand, 'Omschrijving', rec.oms);
fmhn.add_xml_element (v_bestand, 'Aantal', rec.aantal);
fmhn.add_xml_element (v_bestand, 'Besteller', rec.besteller);
fmhn.add_xml_row (v_bestand, '</Reservering>');
fmhn.add_xml_row (v_bestand, '</Facilitor>');
--fmhn_select_objects (rec.res_rsv_ruimte_key,'ruimte', v_counter); -- Kijken of deze reservering ook catering artikelen heeft
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_externsyncdate = SYSDATE
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
-- IF v_status = 'Cancelled' THEN
-- we gaan kijken of deze reservering een opdracht heeft zo ja dan die ook anuleren
--fmhn_remove_opdracht(rec.res_rsv_ruimte_key)
-- END IF;
END IF;
fmhn_select_objects (rec.res_rsv_ruimte_key,rec.soort, v_counter); -- Kijken of deze reservering ook catering artikelen heeft
ELSE
-- We hebben alleen een losse catering aanvraag
IF (rec.fo_status=2 AND rec.verw_datum IS NULL) OR
(rec.last_export IS NOT NULL
AND rec.verw_datum IS NOT NULL
AND rec.verw_datum > rec.last_export)
THEN
fmhn_select_objects (rec.res_rsv_ruimte_key,rec.soort, v_counter); -- Kijken of deze reservering ook catering artikelen heeft
END IF;
END IF;
IF rec.soort = 'ruimte-verplaatsing' THEN
v_kenmerk_key:=-1;
SELECT COUNT(*) INTO v_kenmerk_count
FROM res_rsv_ruimte rrr, res_kenmerkwaarde rk
WHERE rrr.res_rsv_ruimte_key=rec.res_rsv_ruimte_key
AND rk.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rk.res_kenmerk_key IN (341,342,343,365,370);
IF v_kenmerk_count>0 THEN
SELECT rk.res_kenmerk_key, rk.res_kenmerk_niveau
INTO v_kenmerk_key, v_kenmerk_niveau
FROM res_rsv_ruimte rrr, res_kenmerkwaarde rkw,res_kenmerk rk
WHERE rrr.res_rsv_ruimte_key=rec.res_rsv_ruimte_key
AND rkw.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rk.RES_KENMERK_KEY = rkw.RES_KENMERK_KEY
AND rk.res_kenmerk_key IN (341,342,343,365,370);
IF v_kenmerk_key>0 THEN
flx.deleteflex('RES',v_kenmerk_key,rec.res_rsv_ruimte_key,v_kenmerk_niveau);
END IF;
-- Als laatste de extrensyncdate ook opruimen zodat het een schonne reservering is.
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_externsyncdate = NULL
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
END IF;
END IF;
v_counter := v_counter + 1;
END LOOP;
COMMIT;
END;
/
CREATE OR REPLACE VIEW fmhn_v_export_reservering (
result,
result_order,
exp_res
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
FROM fac_rapport
WHERE fac_rapport_node LIKE 'RE%'
UNION
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
FROM fac_rapport
WHERE fac_rapport_node LIKE 'I%';
-- Procedure om alle opdrachten die zijn geexporteerd naar prequest en die nadien geannuleerd zijn
-- te exporteren om een annulerings bericht naar Prequest te sturen
CREATE OR REPLACE PROCEDURE fmhn_select_annulering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR sel_ann
IS
SELECT DISTINCT o.mld_opdr_key opdr_key,
o.mld_opdr_bedrijfopdr_volgnr opdr_volgnr,
o.mld_melding_key meld_key,
sm.mld_stdmelding_externnr externnr,
t.mld_typeopdr_isofferte offerte,
rm.alg_ruimte_nr ruimte_nr,
o.mld_opdr_einddatum eind_datum,
t.mld_typeopdr_key typeopdr_key
FROM mld_opdr o,
mld_melding m,
mld_stdmelding sm,
mld_typeopdr t,
mld_kenmerkopdr ko,
alg_v_ruimte_gegevens rm
WHERE o.mld_statusopdr_key IN (1, 2)
AND o.mld_melding_key = m.mld_melding_key
AND t.mld_typeopdr_key = o.mld_typeopdr_key
AND t.mld_typeopdr_key IN (581, 582) -- Op prod 581,582 op de productie
AND sm.mld_stdmelding_key = m.MLD_STDMELDING_KEY
AND sm.mld_stdmelding_externnr LIKE 'KLVW%'
AND ko.mld_opdr_key = o.MLD_OPDR_KEY
AND ko.mld_kenmerk_key IN (1181, 1182)
AND rm.alg_ruimte_key = m.mld_alg_onroerendgoed_keys
AND ( o.mld_opdr_externsyncdate IS NULL
OR o.mld_opdr_externsyncdate BETWEEN (SELECT (ft.fac_tracking_datum- 1 / (24 * 60)) -- puur omdat de elke 5min ook de extrensyncdat gezet kan hebben, maar dat is dan 1 munuut gelden
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 221) -- Opdracht Annulering
AND (SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 221) -- Opdracht Annulering
)
AND NOT EXISTS (SELECT *
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key=88 -- ORDSNT
AND UPPER(ft.fac_tracking_oms) LIKE '%PC: DE OPDRACHT IS SUCCESVOL GEANNULEERD%'); -- om te voorkomen dat ze toch worden verstuurd...
v_base VARCHAR2 (10);
v_bestand VARCHAR2 (50);
v_counter NUMBER;
BEGIN
v_base := 'ANN';
v_counter := 1;
DELETE FROM fac_rapport -- Opschonen oude annulerings bericht exports
WHERE fac_rapport_node LIKE 'AN%';
COMMIT;
FOR rec IN sel_ann
LOOP
v_bestand := v_base || '-' || v_counter|| '-';
fmhn.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
fmhn.add_xml_row (v_bestand, '<Facilitor>');
fmhn.add_xml_row (v_bestand, '<Activity>');
fmhn.add_xml_element (v_bestand, 'Status', 'Canceled');
fmhn.add_xml_element (v_bestand, 'OpdrachtKey', rec.opdr_key);
fmhn.add_xml_element (v_bestand, 'OpdrachtVolgNr', rec.opdr_volgnr);
fmhn.add_xml_element (v_bestand, 'MeldingKey', rec.meld_key);
fmhn.add_xml_element (v_bestand, 'Offerte', rec.offerte);
fmhn.add_xml_element (v_bestand, 'RuimteNr', rec.ruimte_nr);
fmhn.add_xml_element (v_bestand, 'ExternNr', rec.externnr);
fmhn.add_xml_element (v_bestand, 'DatumVan', TO_CHAR (rec.eind_datum, 'YYYY-MM-DD"T"hh24:mi:ss'));
fmhn.add_xml_row (v_bestand, '</Activity>');
fmhn.add_xml_row (v_bestand, '</Facilitor>');
v_counter :=v_counter+1;
UPDATE mld_opdr SET mld_opdr_externsyncdate=SYSDATE
WHERE mld_opdr_key = rec.opdr_key;
-- COMMIT;
END LOOP;
END;
/
CREATE OR REPLACE VIEW fmhn_v_export_annulering(
result,
result_order,
exp_res
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
FROM fac_rapport
WHERE fac_rapport_node LIKE 'AN%';
CREATE OR REPLACE VIEW fmhn_v_rap_idm_org_sync
(
hide_f_sortering,
mincode,
idmlevel,
afdid,
afdcode,
afdoms,
afdidparent,
begindat,
einddat,
sync_datum,
prs_afdeling_key
)
AS
SELECT x.mincode || SUBSTR ('0' || TO_CHAR (x.idmlevel), -2) || x.afdid sortering,
x.mincode,
x.idmlevel,
SUBSTR (x.afdid, 3) afdid,
afdcode.prs_kenmerklink_waarde afdcode,
x.afdoms,
DECODE (x.idmlevel, 1, NULL, SUBSTR (x.afdidparent, 3)) afdidparent,
begindat.prs_kenmerklink_waarde begindat,
einddat.prs_kenmerklink_waarde einddat,
COALESCE (a.prs_afdeling_externsyncdate, a.prs_afdeling_aanmaak) sync_datum,
x.prs_afdeling_key
FROM fmhn_v_idm_afdeling x,
prs_afdeling a,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1001) afdcode, -- Afdelingscode
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1005) begindat, -- Begindatum
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1006) einddat -- Einddatum
WHERE x.idmlevel > 0
AND x.prs_afdeling_key = a.prs_afdeling_key(+)
AND a.prs_afdeling_key = afdcode.prs_link_key(+)
AND a.prs_afdeling_key = begindat.prs_link_key(+)
AND a.prs_afdeling_key = einddat.prs_link_key(+);
CREATE OR REPLACE VIEW fmhn_v_rap_idm_prs_sync
(
mincode,
prsnr,
afid,
achternaam,
tussenvoegsel,
voorletters,
voornaam,
mv,
tel,
mob,
email,
begindat,
einddat,
sync_datum,
laatste_login,
verplichtingen,
prs_perslid_key
)
AS
SELECT SUBSTR (p.prs_perslid_externid, 1, 2) mincode,
SUBSTR (p.prs_perslid_externid, 3) prsnr,
SUBSTR (a.prs_afdeling_externid, 3) afdid,
p.prs_perslid_naam achternaam,
p.prs_perslid_tussenvoegsel tussenvoegsel,
p.prs_perslid_voorletters voorletters,
p.prs_perslid_voornaam voornaam,
DECODE (p.prs_perslid_geslacht, 0, 'V', 1, 'M', NULL) mv,
p.prs_perslid_telefoonnr tel,
p.prs_perslid_mobiel mob,
p.prs_perslid_email email,
TO_CHAR (p.prs_perslid_ingangsdatum, 'dd-mm-yyyy') begindat,
TO_CHAR (p.prs_perslid_einddatum, 'dd-mm-yyyy') einddat,
COALESCE (p.prs_perslid_externsyncdate, p.prs_perslid_aanmaak) sync_datum,
p.prs_perslid_login,
v.aantal verplichtingen,
p.prs_perslid_key
FROM prs_perslid p, prs_afdeling a,
( SELECT prs_perslid_key, COUNT ( * ) aantal
FROM prs_v_verplichting_keys
GROUP BY prs_perslid_key) v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid IS NOT NULL
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = v.prs_perslid_key(+);
-- TODO: Zodra Planon uit de lucht deze en de volgende view verwijderen (want
-- tijdelijke export-oplossing)!
CREATE OR REPLACE VIEW fmhn_v_f2p_afdeling
AS
SELECT prs_bedrijf_key,
prs_afdeling_key,
prs_afdeling_parentkey,
prs_kostenplaats_key,
LEVEL - 1 idmlevel,
mincode,
afdid,
afdcode,
afdidparent,
SYS_CONNECT_BY_PATH (afdcode, '#') pad
FROM (SELECT NULL prs_bedrijf_key,
NULL prs_afdeling_key,
NULL prs_afdeling_parentkey,
NULL prs_kostenplaats_key,
NULL mincode,
'IDM' afdid,
'IDM' afdcode,
NULL afdidparent
FROM DUAL
UNION ALL
SELECT b.prs_bedrijf_key,
NULL prs_afdeling_key,
NULL prs_afdeling_parentkey,
NULL prs_kostenplaats_key,
mc_ud.fac_usrdata_code mincode,
UPPER (mc_ud.fac_usrdata_code || oc.prs_kenmerklink_waarde) afdid, -- UPPER!
DECODE (mc_ud.fac_usrdata_code,
'01', 'BUZA',
'03', 'MINIenW',
'04', 'o354',
'07', '50000897',
'14', 'VENJ',
TRIM (SUBSTR (mc_ud.fac_usrdata_omschr, INSTR (mc_ud.fac_usrdata_omschr, '-') + 1)))
afdcode,
'IDM' afdidparent
FROM prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1020) mc, -- Ministeriecode (bij Bedrijf)
fac_v_aanwezigusrdata mc_ud,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1021) oc -- Organisatieonderdeelcode (bij Bedrijf)
WHERE b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_intern = 1
AND b.prs_bedrijf_key = mc.prs_link_key
AND fac.safe_to_number (mc.prs_kenmerklink_waarde) = mc_ud.fac_usrdata_key
AND b.prs_bedrijf_key = oc.prs_link_key
UNION ALL
SELECT NULL prs_bedrijf_key,
a.prs_afdeling_key,
a.prs_afdeling_parentkey,
a.prs_kostenplaats_key,
SUBSTR (a.prs_afdeling_externid, 1, 2) mincode,
a.prs_afdeling_externid afdid, -- UPPER-gevuld!
afdcode.prs_kenmerklink_waarde afdcode,
UPPER (SUBSTR (a.prs_afdeling_externid, 1, 2) || kl.prs_kenmerklink_waarde) afdidparent -- UPPER!
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1001) afdcode -- Afdelingscode
WHERE 1 = 1 --a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerk_key = 1002 -- Identificatie parentafd.
AND a.prs_afdeling_key = afdcode.prs_link_key)
WHERE afdid IS NOT NULL
CONNECT BY PRIOR afdid = afdidparent
START WITH afdidparent IS NULL;
-- mincode;prsnr;afdid;achternaam;tussenvoegsel;voorletters;voornaam;mv;tel;mob;email;begindat;einddat
CREATE OR REPLACE VIEW fmhn_v_rap_idm_prs_f2p
(
hide_f_sortering,
mincode,
prsnr,
afid,
achternaam,
tussenvoegsel,
voorletters,
voornaam,
mv,
tel,
mob,
email,
begindat,
einddat,
ppsgebruikersnaam,
aanmaak
)
AS
SELECT 0,
'mincode',
'prsnr',
'afdid',
'achternaam',
'tussenvoegsel',
'voorletters',
'voornaam',
'mv',
'tel',
'mob',
'email',
'begindat',
'einddat',
'ppsgebruikersnaam',
NULL
FROM DUAL
UNION ALL
SELECT 1,
SUBSTR (p.prs_perslid_externid, 1, 2) mincode,
SUBSTR (p.prs_perslid_externid, 3) prsnr,
REPLACE (SUBSTR (x.pad, 6), '#', '.') afdid,
p.prs_perslid_naam achternaam,
p.prs_perslid_tussenvoegsel tussenvoegsel,
p.prs_perslid_voorletters voorletters,
p.prs_perslid_voornaam voornaam,
DECODE (p.prs_perslid_geslacht, 0, 'V', 1, 'M', NULL) mv,
p.prs_perslid_telefoonnr tel,
p.prs_perslid_mobiel mob,
p.prs_perslid_email email,
TO_CHAR (p.prs_perslid_ingangsdatum, 'dd-mm-yyyy') begindat,
TO_CHAR (p.prs_perslid_einddatum, 'dd-mm-yyyy') einddat,
SUBSTR (p.prs_perslid_externid, 1, 2) || SUBSTR (p.prs_perslid_externid, 3) ppsgebruikersnaam,
p.prs_perslid_aanmaak aanmaak
FROM prs_perslid p, fmhn_v_f2p_afdeling x
WHERE p.prs_perslid_verwijder IS NULL
AND SUBSTR (p.prs_perslid_externid, 1, 2) IN ('01', '03', '04', '07', '14')
AND p.prs_afdeling_key = x.prs_afdeling_key
;
CREATE OR REPLACE VIEW fmhn_v_rap_dvl_klanten
(
module,
refkey,
aanmaakdatum,
mincode,
prsnr,
afid,
naam,
email
)
AS
SELECT x.srt,
x.refkey,
x.fac_tracking_datum,
SUBSTR (p.prs_perslid_externid, 1, 2) mincode,
SUBSTR (p.prs_perslid_externid, 3) prsnr,
SUBSTR (afd.prs_afdeling_externid, 3) afdid,
pf.prs_perslid_naam_full,
p.prs_perslid_email email
FROM prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_afdeling afd,
(SELECT 'MLD' AS srt,
m.mld_melding_key AS refkey,
m.prs_perslid_key_voor AS perslid_key,
t.fac_tracking_datum
FROM mld_melding m, fac_tracking t
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 50 -- MLDNEW
UNION ALL
SELECT 'BES' AS srt,
b.bes_bestelling_key AS refkey,
b.prs_perslid_key_voor AS perslid_key,
t.fac_tracking_datum
FROM bes_bestelling b, fac_tracking t
WHERE b.bes_bestelling_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 8 -- BESNEW
UNION ALL
SELECT 'RES' AS srt,
rrr.res_rsv_ruimte_key AS refkey,
rrr.res_rsv_ruimte_contact_key AS perslid_key,
t.fac_tracking_datum
FROM res_v_aanwezigrsv_ruimte rrr, fac_tracking t
WHERE rrr.res_rsv_ruimte_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 107 -- RESNEW
UNION ALL
SELECT 'BEZ' AS srt,
a.bez_afspraak_key refkey,
a.bez_afspraak_contact_key AS perslid_key,
MAX (t.fac_tracking_datum) AS fac_tracking_datum
FROM bez_afspraak a, fac_tracking t
WHERE a.bez_afspraak_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 30
GROUP BY a.bez_afspraak_key, a.bez_afspraak_contact_key) x -- BEZMUT
WHERE x.perslid_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = afd.prs_afdeling_key;
-- FMHN#69873: Rapportage om te bepalen wie KCP/Opdrachtgever is en in welke
-- pool(s) ze zitten!
CREATE OR REPLACE VIEW fmhn_v_rap_kcp_og
(
fclt_3d_bedrijf_key,
ministerie,
onderdeelcode,
omschrijving,
naam,
kcp,
opdrachtgever,
email,
telefoon,
mobiel,
pools
)
AS
SELECT ab.prs_bedrijf_key,
TRIM (SUBSTR (mc_ud.fac_usrdata_omschr, INSTR (mc_ud.fac_usrdata_omschr, '-') + 1)),
SUBSTR (a.prs_afdeling_externid, 3),
a.prs_afdeling_omschrijving,
pf.prs_perslid_naam_friendly,
--sp.prs_srtperslid_omschrijving,
DECODE (INSTR (fac_groep_upper, 'KCP'), 0, NULL, 'Ja') kcp,
DECODE (INSTR (fac_groep_upper, 'OPDRACHTGEVER'), 0, NULL, 'Ja') opdrachtgever,
p.prs_perslid_email,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
vg.pools
FROM prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf,
--prs_srtperslid sp,
prs_afdeling a,
prs_v_afdeling_boom ab,
--(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1008) mc, -- Ministeriecode
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1020) mc, -- Ministeriecode (bij Bedrijf)
fac_v_aanwezigusrdata mc_ud,
fac_gebruikersgroep gg,
fac_groep g,
( SELECT gg.prs_perslid_key,
LISTAGG (g.fac_groep_omschrijving, ', ') WITHIN GROUP (ORDER BY g.fac_groep_omschrijving)
pools
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key
AND INSTR (g.fac_groep_upper, 'POR_') = 1
GROUP BY gg.prs_perslid_key) vg -- Vervangersgroepen(/pools)
WHERE p.prs_perslid_key = pf.prs_perslid_key
--AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = mc.prs_link_key(+)
AND fac.safe_to_number (mc.prs_kenmerklink_waarde) = mc_ud.fac_usrdata_key(+)
AND p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = g.fac_groep_key
AND (INSTR (g.fac_groep_upper, 'KCP') > 0 OR INSTR (g.fac_groep_upper, 'OPDRACHTGEVER') > 0)
AND p.prs_perslid_key = vg.prs_perslid_key(+);
-- Domein-view tbv. Aanvraag ARBO-middelen!
CREATE OR REPLACE VIEW FMHN_V_RS8_ARBO_BANQ
(
fac_usrdata_key,
omschrijving,
vervaldatum
)
AS
SELECT fac_usrdata_key,
DECODE (INSTR (fac_usrdata_omschr, '|'), 0, fac_usrdata_omschr, SUBSTR (fac_usrdata_omschr, INSTR (fac_usrdata_omschr, '|') + 1))
|| ' / <20>' || REPLACE (TO_CHAR (fac_usrdata_prijs, 'FM99990.00'), '.', ',')
|| ' [' || DECODE (SUBSTR (fac_usrdata_code, 1, 1), '_', 'ARBO', '') || fac_usrdata_code || ']',
fac_usrdata_vervaldatum
FROM fac_usrdata
WHERE fac_usrtab_key = 381 -- RS8-ARBO
;
-- Domein-view tbv. Bijvullen olie schredder!
CREATE OR REPLACE VIEW FMHN_V_RS8_OLIE_BANQ
(
fac_usrdata_key,
omschrijving,
vervaldatum
)
AS
SELECT fac_usrdata_key,
DECODE (INSTR (fac_usrdata_omschr, '|'), 0, fac_usrdata_omschr, SUBSTR (fac_usrdata_omschr, INSTR (fac_usrdata_omschr, '|') + 1))
|| ' / <20>' || REPLACE (TO_CHAR (fac_usrdata_prijs, 'FM99990.00'), '.', ',')
|| ' [' || DECODE (SUBSTR (fac_usrdata_code, 1, 1), '_', 'OLIE', '') || fac_usrdata_code || ']',
fac_usrdata_vervaldatum
FROM fac_usrdata
WHERE fac_usrtab_key = 601 -- RS8-OLIE
;
-- Domein-view tbv. AW-WF/Korte route alleen ruimten buiten clusters!
CREATE OR REPLACE VIEW FMHN_V_RS8_AW_RUIMTE
(
alg_ruimte_key,
ruimte,
verwijderdatum
)
AS
SELECT r.alg_ruimte_key,
r.alg_ruimte_nr ruimte,
r.alg_ruimte_verwijder verwijderdatum
FROM alg_ruimte r
WHERE SUBSTR (r.alg_ruimte_nr, 1, 1) != '_'
AND EXISTS (SELECT 1 FROM alg_v_allonroerendgoed WHERE alg_locatie_key = 18 AND alg_ruimte_key = r.alg_ruimte_key) -- RS8
AND (NOT EXISTS (SELECT 1 FROM alg_onrgoedkenmerk WHERE alg_kenmerk_key = 1120 AND alg_onrgoed_key = r.alg_ruimte_key)
OR r.alg_ruimte_verwijder IS NOT NULL);
-- Domein-view tbv. AW-WF/Lange route alleen ruimten binnen clusters!
CREATE OR REPLACE VIEW FMHN_V_RS8_AW_RUIMTECLUSTER
(
alg_ruimte_key,
ruimtecluster,
verwijderdatum
)
AS
SELECT r.alg_ruimte_key,
r.alg_ruimte_nr || DECODE (ud.fac_usrdata_key, NULL, '', ' / ' || ud.fac_usrdata_omschr) ruimtecluster,
r.alg_ruimte_verwijder verwijderdatum
FROM alg_ruimte r,
(SELECT *
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1120) ok, -- AW-cluster
(SELECT *
FROM fac_usrdata
WHERE fac_usrtab_key = 481) ud -- RS8 AW-clusters
WHERE SUBSTR (r.alg_ruimte_nr, 1, 1) != '_'
AND EXISTS (SELECT 1 FROM alg_v_allonroerendgoed WHERE alg_locatie_key = 18 AND alg_ruimte_key = r.alg_ruimte_key) -- RS8
AND r.alg_ruimte_key = ok.alg_onrgoed_key(+)
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+);
CREATE OR REPLACE VIEW FMHN_V_RAP_PRO
(
KEY,
PROJECTNUMMER,
ACTIEF,
WORKFLOWSTEP,
FASE,
WORKFLOW_VOLGNR,
PROJECT_FASE,
STAP,
PROJECTLEIDER,
MELDING_DATUM,
MELDING_EINDDATUM,
DOORLOOPTIJD_WERKDGN,
MELDING_DISTRICT,
FCLT_3D_LOCATIE_KEY,
MELDING_LOCATIECODE,
RVB_PANDCODE,
MELDING_GEBOUW,
INVOERDER,
AANVRAGER_KEY,
AANVRAGER,
FCLT_3D_AFDELING_KEY,
AFDELING,
AFDELING_OMSCHRIJVING,
BEDRIJF_KEY,
BEDRIJF,
AANTAL_OFFERTES,
VERPLICHTINGENNUMMER,
ONDERWERP,
OMSCHRIJVING,
ZOOM,
G,
R,
O,
T,
I,
K,
PROJECTTYPE,
MLDAFM,
UITVOERING_GEREED,
ADM_AFHANDELEN_GESTART,
ADM_AFHANDELEN_GEREED
)
AS
SELECT p.key,
(SELECT fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm, mld_kenmerk km, mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = p.key)
AS projectnummer,
p.status
AS actief,
p.workflowstep,
(SELECT wfsm.mld_stdmelding_omschrijving
FROM mld_stdmelding wfsm, mld_melding wfm
WHERE p.workflowstep = wfm.mld_melding_key
AND wfsm.mld_stdmelding_key = wfm.mld_stdmelding_key)
AS fase,
p.workflow_volgnr,
CASE (p.workflow_volgnr)
WHEN 10 THEN 'Administratieve afhandeling'
WHEN 8 THEN 'Offerte / uitvoering'
WHEN 6 THEN 'Specificeren'
WHEN 4 THEN 'Beoordelen'
WHEN 2 THEN 'Aanvraag'
END
AS Project_fase,
(SELECT wfsm.mld_stdmelding_omschrijving
FROM mld_stdmelding wfsm, mld_melding wfm
WHERE p.key = wfm.mld_melding_key
AND wfsm.mld_stdmelding_key = wfm.mld_stdmelding_key)
AS stap,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames
WHERE prs_perslid_key =
(SELECT fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 285 -- Kenmerksoort Projectleider
AND kmm.mld_melding_key = p.uitvoer_key)) -- p.key ipv p.workflowstep (FMHN#71560) --p.uitvoer_key ipv p.key (FMHN#73032)
AS projectleider,
p.melding_datum,
p.melding_einddatum,
p.doorlooptijd_werkdgn,
p.melding_district,
p.fclt_3d_locatie_key,
p.melding_locatiecode,
p.rvb_pandcode,
p.melding_gebouw,
p.invoerder,
p.aanvrager_key,
p.aanvrager,
p.fclt_3d_afdeling_key,
p.afdeling,
p.afdeling_omschrijving,
p.bedrijf_key,
p.bedrijf,
(SELECT COUNT (mld_melding_key)
FROM mld_melding
WHERE mld_stdmelding_key = 665 --Offerte opstellen
AND mld_melding_status <> 1
AND mld_melding_start_key = p.key)
aantal_offertes,
( SELECT LISTAGG (kmm.mld_kenmerkmelding_waarde, ', ')
WITHIN GROUP (ORDER BY kmm.mld_melding_key DESC) AS verplichtingen_nrs
FROM mld_kenmerkmelding kmm, mld_kenmerk km, mld_melding m
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND km.mld_kenmerk_omschrijving = 'Verplichtingennummer'
AND kmm.mld_melding_key = m.mld_melding_start_key
AND m.mld_stdmelding_key = 665 --Offerte opstellen
AND kmm.mld_melding_key = p.key
GROUP BY kmm.mld_melding_key)
AS verplichtingen_nrs,
p.onderwerp,
p.omschrijving,
p.zoom,
(SELECT k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k
WHERE k.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1428
AND k.mld_melding_key = p.key)
AS g,
(SELECT k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k
WHERE k.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1429
AND k.mld_melding_key = p.key)
AS r,
(SELECT k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k
WHERE k.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1430
AND k.mld_melding_key = p.key)
AS o,
(SELECT k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k
WHERE k.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1431
AND k.mld_melding_key = p.key)
AS t,
(SELECT k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k
WHERE k.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1432
AND k.mld_melding_key = p.key)
AS i,
(SELECT k.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding k
WHERE k.mld_kenmerkmelding_verwijder IS NULL
AND k.mld_kenmerk_key = 1433
AND k.mld_melding_key = p.key)
AS k,
DECODE (
p.workflow_volgnr,
'6', (SELECT ud.fac_usrdata_omschr
FROM fac_v_aanwezigusrdata ud
WHERE ud.fac_usrdata_key =
(SELECT fac.safe_to_number (
kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key =
km.mld_kenmerk_key
AND km.mld_srtkenmerk_key =
sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 298 -- Kenmerksoort Projecttype
AND kmm.mld_melding_key =
p.specificeren_key)),
(SELECT ud.fac_usrdata_omschr
FROM fac_v_aanwezigusrdata ud
WHERE ud.fac_usrdata_key =
(SELECT fac.safe_to_number (
kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key =
sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 298 -- Kenmerksoort Projecttype
AND kmm.mld_melding_key = p.uitvoer_key)))
AS projecttype,
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 45 --MLDAFM
AND t.fac_tracking_refkey = p.key)
AS MLDAFM,
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t, mld_melding m
WHERE t.fac_srtnotificatie_key = 45 --MLDAFM
AND m.mld_stdmelding_key = 664 -- Uitvoeren
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_melding_start_key = p.melding_start_key)
AS uitvoering_gereed,
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t, mld_melding m
WHERE t.fac_srtnotificatie_key = 50 --MLDNEW
AND m.mld_stdmelding_key = 668 -- Administratief afhandelen
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_melding_start_key = p.melding_start_key)
AS administratief_afhandelen_gestart,
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t, mld_melding m
WHERE t.fac_srtnotificatie_key = 45 --MLDAFM
AND m.mld_stdmelding_key = 668 -- Administratief afhandelen
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_melding_start_key = p.melding_start_key)
AS administratief_afhandelen_gereed
FROM ((SELECT melding_key
AS key,
melding_start_key,
m.mld_stdmelding_key,
(SELECT MAX (wf.mld_melding_key)
FROM mld_melding wf
WHERE wf.mld_melding_start_key = melding_start_key
AND wf.mld_stdmelding_key IN
(SELECT wfs.mld_stdmelding_key
FROM mld_workflowstep wfs)) --Andere stdmeldingen uitsluiten, om te voorkomen dat een los toegevoegde melding als fase gezien wordt
AS workflowstep,
(SELECT MAX (wfsm.mld_stdmelding_volgnr)
FROM mld_melding wf, mld_stdmelding wfsm
WHERE wf.mld_melding_start_key = melding_start_key
AND wf.mld_stdmelding_key =
wfsm.mld_stdmelding_key
AND wf.mld_stdmelding_key IN
(SELECT wfs.mld_stdmelding_key
FROM mld_workflowstep wfs)) --Andere stdmeldingen uitsluiten, om te voorkomen dat een los toegevoegde melding als fase gezien wordt
AS workflow_volgnr,
melding_status
AS status,
melding_datum,
melding_einddatum,
doorlooptijd_werkdgn,
melding_district,
fclt_3d_locatie_key,
melding_locatiecode,
melding_gebouwcode
AS rvb_pandcode,
melding_gebouw,
invoerder,
melder_key
AS aanvrager_key,
melder
AS aanvrager,
fclt_3d_afdeling_key,
afdeling,
afdeling_omschrijving,
bedrijf_key,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = bedrijf_key)
AS bedrijf,
onderwerp,
vomschrijving
AS omschrijving,
'Projectaanvraag'
AS zoom,
(SELECT MAX (uitv.mld_melding_key)
FROM mld_melding uitv
WHERE uitv.mld_stdmelding_key = 664 -- Standaardmelding Uitvoeren
AND uitv.mld_melding_start_key =
melding_start_key)
AS uitvoer_key,
(SELECT MAX (spec.mld_melding_key)
FROM mld_melding spec
WHERE spec.mld_stdmelding_key = 663 -- Standaardmelding Specificeren
AND spec.mld_melding_start_key =
melding_start_key)
AS specificeren_key
FROM mld_v_udr_melding,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline disc
WHERE melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND disc.ins_srtdiscipline_key IN (161) --Vakgroeptype Projecten
AND melding_key = melding_start_key)
UNION ALL
(SELECT melding_key
AS key,
melding_start_key,
m.mld_stdmelding_key,
(SELECT MAX (wf.mld_melding_key)
FROM mld_melding wf
WHERE wf.mld_melding_start_key = melding_start_key
AND wf.mld_stdmelding_key IN
(SELECT wfs.mld_stdmelding_key
FROM mld_workflowstep wfs)) --Andere stdmeldingen uitsluiten, om te voorkomen dat een los toegevoegde melding als fase gezien wordt
AS workflowstep,
(SELECT MAX (wfsm.mld_stdmelding_volgnr)
FROM mld_melding wf, mld_stdmelding wfsm
WHERE wf.mld_melding_start_key = melding_start_key
AND wf.mld_stdmelding_key =
wfsm.mld_stdmelding_key
AND wf.mld_stdmelding_key IN
(SELECT wfs.mld_stdmelding_key
FROM mld_workflowstep wfs)) --Andere stdmeldingen uitsluiten, om te voorkomen dat een los toegevoegde melding als fase gezien wordt
AS workflow_volgnr,
melding_status
AS status,
melding_datum,
melding_einddatum,
doorlooptijd_werkdgn,
melding_district,
fclt_3d_locatie_key,
melding_locatiecode,
melding_gebouwcode
AS rvb_pandcode,
melding_gebouw,
invoerder,
melder_key
AS aanvrager_key,
melder
AS aanvrager,
fclt_3d_afdeling_key,
afdeling,
afdeling_omschrijving,
bedrijf_key,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = bedrijf_key)
AS bedrijf,
onderwerp,
vomschrijving
AS omschrijving,
'Alles'
AS zoom,
(SELECT MAX (uitv.mld_melding_key)
FROM mld_melding uitv
WHERE uitv.mld_stdmelding_key = 664 -- Standaardmelding Uitvoeren
AND uitv.mld_melding_start_key =
melding_start_key)
AS uitvoer_key,
(SELECT MAX (spec.mld_melding_key)
FROM mld_melding spec
WHERE spec.mld_stdmelding_key = 663 -- Standaardmelding Specificeren
AND spec.mld_melding_start_key =
melding_start_key)
AS specificeren_key
FROM mld_v_udr_melding,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline disc
WHERE melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND disc.ins_srtdiscipline_key IN (161) --Vakgroeptype Projecten
AND melding_key <> melding_start_key)) p;
CREATE OR REPLACE VIEW FMHN_V_RAP_PRO_FO
(
PROJECTNUMMER,
ACTIEF,
KEY,
STAP,
PROJECTLEIDER,
MELDING_DATUM,
MELDING_EINDDATUM,
DOORLOOPTIJD_WERKDGN,
MELDING_DISTRICT,
FCLT_3D_LOCATIE_KEY,
MELDING_LOCATIECODE,
RVB_PANDCODE,
MELDING_GEBOUW,
INVOERDER,
AANVRAGER_KEY,
AANVRAGER,
FCLT_3D_AFDELING_KEY,
AFDELING,
AFDELING_OMSCHRIJVING,
BEDRIJF_KEY,
BEDRIJF,
VERPLICHTINGENNUMMER,
ONDERWERP,
OMSCHRIJVING,
OMSCHRIJVING2,
SAMENVATTING_OFFERTE,
OFFERTENUMMER,
OFFERTESTATUS,
SOORT_OFFERTE,
TEN_BEHOEVE_VAN,
LOCATIE,
GEBOUWCODE,
OFFERTEDATUM,
AANTAL_VERDEELSLEUTELS,
MINISTERIE_1,
VERDEELSLEUTEL_1,
MINISTERIE_2,
VERDEELSLEUTEL_2,
MINISTERIE_3,
VERDEELSLEUTEL_3,
MINISTERIE_4,
VERDEELSLEUTEL_4,
SOORT_OFFERTEREGEL,
TOTAAL_BEDRAG_EXCL,
TOTAAL_BEDRAG,
AANTAL_UREN,
UITPUTTING,
PROJECTTYPE,
MLDAFM,
UITVOERING_GEREED,
ADM_AFHANDELEN_GESTART,
ADM_AFHANDELEN_GEREED
)
AS
SELECT p.PROJECTNUMMER,
p.ACTIEF,
p.KEY,
p.STAP,
p.PROJECTLEIDER,
p.MELDING_DATUM,
p.MELDING_EINDDATUM,
p.DOORLOOPTIJD_WERKDGN,
p.MELDING_DISTRICT,
p.FCLT_3D_LOCATIE_KEY,
p.MELDING_LOCATIECODE,
p.RVB_PANDCODE,
p.MELDING_GEBOUW,
p.INVOERDER,
p.AANVRAGER_KEY,
p.AANVRAGER,
p.FCLT_3D_AFDELING_KEY,
p.AFDELING,
p.AFDELING_OMSCHRIJVING,
p.BEDRIJF_KEY,
p.BEDRIJF,
-- p.AANTAL_OFFERTES,
p.VERPLICHTINGENNUMMER,
p.ONDERWERP,
p.OMSCHRIJVING,
o.mld_opdr_omschrijving as samenvatting_offerte,
(SELECT kmo.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr kmo
WHERE kmo.mld_kenmerk_key = 3121 --Kenmerk Omschrijving bij opdracht
AND kmo.mld_opdr_key = o.mld_opdr_key
AND kmo.mld_kenmerkopdr_verwijder IS NULL),
(SELECT kmm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1751 --Kenmerk offertenummer bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT ud.fac_usrdata_omschr
FROM mld_kenmerkmelding kmm, fac_v_aanwezigusrdata ud
WHERE kmm.mld_kenmerk_key = 1752 --Kenmerk offertestatus bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND ud.fac_usrdata_key = kmm.mld_kenmerkmelding_waarde
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT ud.fac_usrdata_omschr
FROM mld_kenmerkmelding kmm, fac_v_aanwezigusrdata ud
WHERE kmm.mld_kenmerk_key = 1827 --Kenmerk soort offerte bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND ud.fac_usrdata_key = kmm.mld_kenmerkmelding_waarde
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding kmm, prs_bedrijf b
WHERE kmm.mld_kenmerk_key = 1829 --Kenmerk TBV bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND b.prs_bedrijf_key = kmm.mld_kenmerkmelding_waarde
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT kmm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1527 --Kenmerk Locatie bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT kmm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1390 --Kenmerk Pandcode bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT kmm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1388 --Kenmerk Offertedatum bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT kmm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1338 --Kenmerk Aantal Verdeelsleutels bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding kmm, prs_bedrijf b
WHERE kmm.mld_kenmerk_key = 1740 --Kenmerk Ministerie1 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND b.prs_bedrijf_key = kmm.mld_kenmerkmelding_waarde
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
COALESCE (
(SELECT fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1844 --Kenmerk Verdeelsleutel1 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
100),
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding kmm, prs_bedrijf b
WHERE kmm.mld_kenmerk_key = 1741 --Kenmerk Ministerie2 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND b.prs_bedrijf_key = kmm.mld_kenmerkmelding_waarde
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1845 --Kenmerk Verdeelsleutel2 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding kmm, prs_bedrijf b
WHERE kmm.mld_kenmerk_key = 1742 --Kenmerk Ministerie3 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND b.prs_bedrijf_key = kmm.mld_kenmerkmelding_waarde
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1846 --Kenmerk Verdeelsleutel3 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding kmm, prs_bedrijf b
WHERE kmm.mld_kenmerk_key = 1744 --Kenmerk Ministerie4 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND b.prs_bedrijf_key = kmm.mld_kenmerkmelding_waarde
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = 1847 --Kenmerk Verdeelsleutel4 bij Offerte opstellen
AND kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL),
(SELECT ud.fac_usrdata_omschr
FROM mld_kenmerkopdr kmo, fac_v_aanwezigusrdata ud
WHERE kmo.mld_kenmerk_key = 2040 --Kenmerk Soort offerteregel bij opdracht
AND kmo.mld_opdr_key = o.mld_opdr_key
AND ud.fac_usrdata_key = kmo.mld_kenmerkopdr_waarde
AND kmo.mld_kenmerkopdr_verwijder IS NULL),
(SELECT fac.safe_to_number (kmo.mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr kmo
WHERE kmo.mld_kenmerk_key = 2044 --Kenmerk Totaal Bedrag (excl) bij opdracht
AND kmo.mld_opdr_key = o.mld_opdr_key
AND kmo.mld_kenmerkopdr_verwijder IS NULL),
(SELECT fac.safe_to_number (kmo.mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr kmo
WHERE kmo.mld_kenmerk_key = 2075 --Kenmerk Totaal Bedrag bij opdracht
AND kmo.mld_opdr_key = o.mld_opdr_key
AND kmo.mld_kenmerkopdr_verwijder IS NULL),
(SELECT fac.safe_to_number (kmo.mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr kmo
WHERE kmo.mld_kenmerk_key = 2074 --Kenmerk Aantal uren bij opdracht
AND kmo.mld_opdr_key = o.mld_opdr_key
AND kmo.mld_kenmerkopdr_verwijder IS NULL),
(SELECT fac.safe_to_number (kmo.mld_kenmerkopdr_waarde)
FROM mld_kenmerkopdr kmo
WHERE kmo.mld_kenmerk_key = 2076 --Kenmerk Uitputting bij opdracht
AND kmo.mld_opdr_key = o.mld_opdr_key
AND kmo.mld_kenmerkopdr_verwijder IS NULL),
p.projecttype,
p.mldafm,
p.uitvoering_gereed,
p.adm_afhandelen_gestart,
p.adm_afhandelen_gereed
FROM FMHN_V_RAP_PRO p, mld_melding m, mld_opdr o
WHERE m.mld_melding_key = p.key
AND m.mld_stdmelding_key = 665 -- Offerte opstellen
AND o.mld_melding_key = m.mld_melding_key
ORDER BY key DESC;
CREATE OR REPLACE VIEW FMHN_V_RAP_NOTIFYPROJ
(
ALERT,
MELDING_KEY,
ONDERWERP,
MUTATIEDATUM,
PERSLID_KEY,
EMAIL
)
AS
SELECT 'Afgewezen'
AS alert,
m.mld_melding_key,
'Projectactiviteit '
|| sm.mld_stdmelding_omschrijving
|| ' is afgewezen (melding '
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')'
AS onderwerp,
(SELECT DISTINCT MAX (t.fac_tracking_datum)
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'MLDREJ'
AND t.fac_tracking_refkey = m.mld_melding_key)
AS mutatiedatum,
NULL
AS perslid_key,
x.xemail
AS email
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline disc,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 841 -- Eigen tabel 'ProjNoti1'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_status = 1
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND disc.ins_srtdiscipline_key IN (161) --Vakgroeptype Projecten
UNION ALL
SELECT 'Projectaanvraag' AS alert,
m.mld_melding_key,
'Er is een nieuwe projectaanvraag ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
m.prs_perslid_key AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 842 -- Eigen tabel 'ProjNoti2'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (662) --Aanvraagformulier nieuw project door klant
AND sn.fac_srtnotificatie_code = 'MLDNEW'
UNION ALL
SELECT 'Projectaanvraag' AS alert,
m.mld_melding_key,
'Er is een nieuw project geregistreerd ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
m.prs_perslid_key AS perslid_key,
ud.fac_usrdata_omschr AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn, fac_usrdata ud
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (667) --Aanvraagformulier projectregistratie RM/PM
AND ud.fac_usrtab_key = 701
AND ud.fac_usrdata_verwijder IS NULL
AND sn.fac_srtnotificatie_code = 'MLDNEW'
UNION ALL
SELECT 'Projectlid_nieuw' AS alert,
m.mld_melding_key,
'Er is een nieuw projectdossier met projectmedewerkers toegevoegd ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 843 -- Eigen tabel 'ProjNoti3'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (664) --Aanvraagformulier uitvoeren (dossier)
AND sn.fac_srtnotificatie_code = 'MLDNEW'
UNION ALL
SELECT 'Projectlid_mutatie' AS alert,
m.mld_melding_key,
'Er is een projectdossier gewijzigd met projectmedewerkers ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 844 -- Eigen tabel 'ProjNoti4'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (663, 664) --Specificeren <20>n Uitvoeren
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%-->%'
AND ( t.fac_tracking_oms LIKE '%Projectlid %'
OR t.fac_tracking_oms LIKE '%Projectleider: %')
UNION ALL
SELECT 'Projectlid_mutatie'
AS alert,
m.mld_melding_key,
'Er is een projectdossier gewijzigd met projectmedewerkers ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')'
AS onderwerp,
t.fac_tracking_datum,
(SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm, mld_kenmerk km, mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND km.mld_kenmerk_key = 1764 -- Kenmerk Projectleider bij stap 'Uitvoeren/dossier'
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
AS perslid_key,
NULL
AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (663, 664) --Specificeren <20>n Uitvoeren
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%-->%'
AND ( t.fac_tracking_oms LIKE '%Projectlid %'
OR t.fac_tracking_oms LIKE '%Projectleider: %')
UNION ALL
SELECT 'Project_mutatie_gereeddatum' AS alert,
m.mld_melding_key,
'Er is een gereeddatum van een project gewijzigd ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 845 -- Eigen tabel 'ProjNoti5'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key = 664 --Aanvraagformulier uitvoeren (dossier)
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%-->%'
AND t.fac_tracking_oms LIKE '%Gereed: %'
UNION ALL
SELECT 'Administratief_gereed' AS alert,
m.mld_melding_key,
'Project ('
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ') is in uitvoering gereed, uren dichten in Synergy' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 846 -- Eigen tabel 'ProjNoti6'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key = 668 --Aanvraagformulier Administratief afhandelen
AND sn.fac_srtnotificatie_code = 'MLDNEW'
UNION ALL
SELECT 'Projectdossier_projectleider'
AS alert,
m.mld_melding_key,
'Er is een nieuw projectdossier aangemaakt, met u als projectleider ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')'
AS onderwerp,
t.fac_tracking_datum,
(SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm, mld_kenmerk km, mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND km.mld_kenmerk_key = 1764 -- Kenmerk Projectleider bij stap 'Uitvoeren/dossier'
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
AS perslid_key,
NULL
AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (664) --Aanvraagformulier uitvoeren (dossier)
AND sn.fac_srtnotificatie_code = 'MLDNEW'
UNION ALL
SELECT 'Aanbieden_offerte' AS alert,
m.mld_melding_key,
'Graag offerte aanbieden voor project ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 847 -- Eigen tabel 'ProjNoti7'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (665) --Offerte opstellen
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%Offertestatus%'
AND t.fac_tracking_oms LIKE '%--> Offerte klaar voor aanbieden%'
UNION ALL
SELECT 'Offerte_akkoord' AS alert,
m.mld_melding_key,
'Er is een akkoord ontvangen op offerte bij project ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 848 -- Eigen tabel 'ProjNoti8'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (665) --Offerte opstellen
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%Offertestatus%'
AND t.fac_tracking_oms LIKE '%--> Offerte akkoord%'
UNION ALL
SELECT 'Offerte_akkoord' AS alert,
m.mld_melding_key,
'Er is een akkoord ontvangen op offerte bij project ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
(SELECT DISTINCT prs_perslid_email
FROM prs_perslid
WHERE prs_perslid_key =
(SELECT DISTINCT
fac.safe_to_number (
kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk,
mld_melding m_uitvoer,
mld_melding m_offerte
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key =
sk.mld_srtkenmerk_key
AND km.mld_kenmerk_key = 1764 -- Kenmerk Projectleider bij stap 'Uitvoeren/dossier'
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key =
m_uitvoer.mld_melding_key --m.mld_melding_key
AND m_uitvoer.mld_melding_start_key =
m_offerte.mld_melding_start_key
AND m_offerte.mld_melding_key =
m.mld_melding_key
AND m_uitvoer.mld_melding_status IN (2,3,4,7))) AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (665) --Offerte opstellen
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%Offertestatus%'
AND t.fac_tracking_oms LIKE '%--> Offerte akkoord%'
UNION ALL
SELECT 'Offerte_financiele_afhandeling' AS alert,
m.mld_melding_key,
'Er is een offerte met status financiele afhandeling bij project ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 850 -- Eigen tabel 'ProjNoti9'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (665) --Offerte opstellen
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%Offertestatus%'
AND t.fac_tracking_oms LIKE '%--> Financiele afhandeling%';
CREATE OR REPLACE VIEW FMHN_V_RAP_NOTIFYPROJDIGI
(
ALERT,
MELDING_KEY,
ONDERWERP,
MUTATIEDATUM,
PERSLID_KEY,
EMAIL
)
AS
SELECT 'Projectdossier' AS alert,
m.mld_melding_key,
'Er is een nieuw projectdossier aangemaakt ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 861 -- Eigen tabel 'ProjNoti10'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (664) --Aanvraagformulier uitvoeren (dossier)
AND sn.fac_srtnotificatie_code = 'MLDNEW'
UNION ALL
SELECT 'Dossier_digidoc' AS alert,
m.mld_melding_key,
'Graag dossier aanmaken voor project ('
|| m.mld_melding_key
|| ', projectnummer '
|| (SELECT DISTINCT
fac.safe_to_number (kmm.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 296 -- Kenmerksoort Projectnummer (automatisch)
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key)
|| ')' AS onderwerp,
t.fac_tracking_datum,
NULL AS perslid_key,
x.xemail AS email
FROM mld_melding m, fac_tracking t, fac_srtnotificatie sn,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 862 -- Eigen tabel 'ProjNoti11'
AND fac_usrdata_verwijder IS NULL) x
WHERE m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND m.mld_stdmelding_key IN (663) --Specificeren
AND sn.fac_srtnotificatie_code = 'MLDUPD'
AND t.fac_tracking_oms LIKE '%Digidoc: (leeg) -->%';
CREATE OR REPLACE VIEW FMHN_V_NOTI_NOTIFYPROJ
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT 'CUST05',
NULL,
x.perslid_key,
x.onderwerp,
x.melding_key,
NULL,
NULL,
COALESCE (x.email,
(SELECT p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_perslid_key = x.perslid_key)),
NULL
FROM FMHN_V_RAP_NOTIFYPROJ x
WHERE x.mutatiedatum > (SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'FMHN_V_NOTI_NOTIFYPROJ')
UNION ALL
SELECT DISTINCT 'CUST21',
NULL,
x.perslid_key,
x.onderwerp,
x.melding_key,
NULL,
NULL,
COALESCE (x.email,
(SELECT p.prs_perslid_email
FROM prs_perslid p
WHERE p.prs_perslid_key = x.perslid_key)),
NULL
FROM FMHN_V_RAP_NOTIFYPROJDIGI x
WHERE x.mutatiedatum > (SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'FMHN_V_NOTI_NOTIFYPROJ');
--TBV Notificatie voor het versturen van verzoeken voor het invullen van (actieve) KTO formulieren
CREATE OR REPLACE VIEW FMHN_V_RAP_KTO_ACTIEF
(
MLD_MELDING_KEY,
MLD_MELDING_DATUM,
MLD_MELDING_EINDDATUM,
MLD_MELDING_STATUS,
JAAR,
KWARTAAL,
MAAND,
MLD_ALG_LOCATIE_KEY,
PRS_PERSLID_KEY,
PRS_PERSLID_KEY_VOOR,
MLD_MELDING_ONDERWERP,
MLD_MELDING_OMSCHRIJVING,
MLD_MELDING_KTO,
MLD_MELDING_KTO_KEY,
MLD_MELDING_KTO_TYPE,
MLD_MELDING_KTO_VERSTUURD,
NODE,
INS_SRTDISCIPLINE_KEY,
KTO_STDMELDING,
KTO_STDMELDING_KEY,
INS_DISCIPLINE_OMSCHRIJVING,
INS_DISCIPLINE_KTOPERCENTAGE,
INS_DISCIPLINE_KTODREMPEL,
MLD_STDMELDING_KEY,
MLD_STDMELDING_OMSCHRIJVING,
MLD_STDMELDING_KTO,
PART,
VOLGNNR,
MAILING,
VERSTUURD
)
AS
SELECT x.mld_melding_key,
x.mld_melding_datum,
x.mld_melding_einddatum,
x.mld_melding_status,
x.jaar,
x.kwartaal,
x.maand,
x.mld_alg_locatie_key,
x.prs_perslid_key,
x.prs_perslid_key_voor,
x.mld_melding_onderwerp,
x.mld_melding_omschrijving,
x.mld_melding_kto,
x.mld_melding_kto_key,
x.mld_melding_kto_type,
x.mld_melding_kto_verstuurd,
'melding' node,
x.ins_srtdiscipline_key,
DECODE (x.ins_srtdiscipline_key, -- Let op: mapping ook in stylesheet
24, 'Aanvraag',
201, 'Aanvraag', -- FMHN#72353: Vakgroeptype 201 'Evenement aanvragen' afgesplitst van 24 (Aanvragen)
29, 'Storing',
30, 'Storing',
27, 'Klachten',
28, 'Klachten') kto_stdmelding,
DECODE (x.ins_srtdiscipline_key,
24, 162,
201,162, -- FMHN#72353: Vakgroeptype 201 'Evenement aanvragen' afgesplitst van 24 (Aanvragen)
29, 164,
30, 164,
27, 163,
28, 163) kto_stdmelding_key,
x.ins_discipline_omschrijving,
x.ins_discipline_ktopercentage,
x.ins_discipline_ktodrempel,
x.mld_stdmelding_key,
x.mld_stdmelding_omschrijving,
x.mld_stdmelding_kto,
x.part,
ROWNUM volgnnr,
(CASE ROWNUM / x.part
WHEN TRUNC (ROWNUM / x.part) THEN 1
ELSE 0
END) mailing,
(SELECT fac_tracking_datum
FROM fac_tracking t
WHERE fac_srtnotificatie_key = 241 -- CUST01 - Notificatie actieve KTO
AND t.fac_tracking_refkey = x.mld_melding_key) verstuurd
FROM ( SELECT m.mld_melding_key,
m.mld_melding_datum,
m.mld_melding_einddatum,
m.mld_melding_status,
fac.safe_to_number (TO_CHAR (m.mld_melding_datum, 'YYYY'))
jaar,
fac.safe_to_number (TO_CHAR (m.mld_melding_datum, 'Q'))
kwartaal,
fac.safe_to_number (TO_CHAR (m.mld_melding_datum, 'MM'))
maand,
m.mld_alg_locatie_key,
m.prs_perslid_key,
m.prs_perslid_key_voor,
m.mld_melding_onderwerp,
m.mld_melding_omschrijving,
m.mld_melding_kto,
m.mld_melding_kto_key,
m.mld_melding_kto_type,
m.mld_melding_kto_verstuurd,
disc.ins_srtdiscipline_key,
disc.ins_discipline_omschrijving,
disc.ins_discipline_ktopercentage,
disc.ins_discipline_ktodrempel,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
sm.mld_stdmelding_kto,
TRUNC (100 / ins_discipline_ktopercentage)
AS part
FROM --mld_v_udr_melding x,
mld_melding m, mld_stdmelding sm, ins_tab_discipline disc
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND m.mld_melding_status IN (5, 6, 99) -- niet meer lopend!
AND disc.ins_discipline_ktopercentage > 0
AND ( sm.mld_stdmelding_kto <> 0 -- Keuze Nooit bij 'Doet mee in KTO'
OR sm.mld_stdmelding_kto IS NULL)
ORDER BY fac.safe_to_number (
TO_CHAR (m.mld_melding_datum, 'YYYY')) DESC,
fac.safe_to_number (TO_CHAR (m.mld_melding_datum, 'Q')) DESC,
disc.ins_discipline_ktopercentage,
disc.ins_discipline_omschrijving,
m.prs_perslid_key_voor) x;
CREATE OR REPLACE VIEW fmhn_v_noti_kto_actief
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT 'CUST01' AS code,
NULL AS sender,
m.prs_perslid_key_voor AS receiver,
'U wordt gevraagd om een klanttevredenheidsformulier in te vullen voor '
|| m.node
|| ' '
|| m.mld_melding_key
|| ' ('
|| COALESCE (m.mld_melding_onderwerp,
m.mld_stdmelding_omschrijving)
|| ')' AS text,
m.mld_melding_key AS key,
NULL AS extra_key
FROM FMHN_V_RAP_KTO_ACTIEF m
WHERE mailing = 1
AND TRUNC (mld_melding_datum) >=
ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3)
AND TRUNC (mld_melding_datum) <
ADD_MONTHS (TRUNC (SYSDATE, 'Q'), 0)
AND TRUNC(SYSDATE, 'Q') = TRUNC (SYSDATE) -- Enkel uitvoeren op 1e datum van het kwartaal
AND NOT EXISTS
(SELECT fac_tracking_key
FROM fac_tracking t
WHERE fac_srtnotificatie_key = 241 -- CUST01 - Notificatie actieve KTO
AND t.fac_tracking_refkey = m.mld_melding_key)
ORDER BY m.mld_melding_datum;
-- Looplijst voor vergaderservice van TM147 FMHN#70058
CREATE OR REPLACE VIEW fmhn_v_rap_voorz_lijst
(
KEY,
NUMMER,
RES_OMSCHRIJVING,
INVOERDATUM,
DATUM,
GASTHEER,
CONTACT,
GASTHEER_EMAIL,
CONTACT_EMAIL,
INVOERDER,
KOSTENSOORTGROEP,
KOSTENSOORT,
KPN,
KPN_OMSCHRIJVING,
KPN_EXTERN,
FCLT_3D_DIVISIE_KEY,
DIVISIE_NAAM,
DIVISIE_OMSCHRIJVING,
FCLT_3D_AFDELING_KEY,
AFDELING_CODE,
AFDELING_OMSCHRIJVING,
REGIO_OMSCHRIJVING,
DISTRICT_OMSCHIJVING,
FCLT_3D_LOCATIE_KEY,
LOCATIE,
LOCATIE_OMSCHRIJVING,
LOCATIE_PLAATS,
GEBOUW,
VERDIEPING,
RUIMTE,
OPSTELLING,
CAPACITEIT,
OMSTELTIJD_IN_MIN,
GROEPERING,
NO_SHOW,
MANDAAT,
PERSONEELSNR,
FCLT_3D_DISCIPLINE_KEY,
CATALOGUS_KEY,
CATALOGUS,
RESERVEERBARE_RUIMTE,
BEZOEKERS,
VAN,
TOT,
DUUR,
STATUS,
BOSTATUS,
ACTIVITEIT,
SRTACTIVITEIT_KEY,
ACTIVITEITSOORT,
OPMERKING,
VOORZIENING_DISCIPLINE_KEY,
VOORZIENING_TYPE,
VOORZIENING_CATALOGUS,
LEVERANCIER,
VOORZIENING_PRODUCT_KEY,
VOORZIENING_PRODUCT,
VOORZIENING_TOTAALPRIJS,
VOORZIENING_VAN,
VOORZIENING_TOT,
VOORZIENING_AANTAL,
VOORZIENING_PRIJS,
RESERVERING_STATUS
)
AS
SELECT rrr.res_rsv_ruimte_key,
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_omschrijving,
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
rrr.res_rsv_ruimte_van,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT ph.prs_perslid_email
FROM prs_perslid ph
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT pc.prs_perslid_email
FROM prs_perslid pc
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT pf.prs_perslid_naam_full
FROM fac_tracking tr,
fac_srtnotificatie str,
prs_v_perslid_fullnames_all pf
WHERE tr.prs_perslid_key = pf.prs_perslid_key
AND str.fac_srtnotificatie_code = 'RESNEW'
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key))))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key))))
kostensoort,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
k.prs_kostenplaats_extern,
an.prs_afdeling_key,
an.prs_afdeling_naam,
an.prs_afdeling_omschrijving,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
(SELECT rs.res_disc_params_preposttime * 60
FROM ins_tab_discipline d,
res_disc_params rs,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rs.res_ins_discipline_key = d.ins_discipline_key
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key) omsteltijd,
(SELECT ao.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ao
WHERE ao.alg_onrgoed_niveau = 'R'
AND ao.alg_kenmerk_key = 1000
AND ao.alg_onrgoed_key = r2a.alg_ruimte_key) bouwdeel,
rrr.res_rsv_ruimte_noshow,
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
prs_perslid_nr,
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)),
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
(SELECT res_status_bo_omschrijving
FROM res_status_bo rs
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
ra.res_activiteit_omschrijving,
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
rrr.res_rsv_ruimte_opmerking,
voorz.ins_discipline_key,
voorz.vtype,
voorz.catalogus,
(SELECT prs_bedrijf_naam
FROM res_disc_params rdp, prs_bedrijf b
WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key
AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
voorz.product_key,
voorz.product,
voorz.totaalprijs,
TO_CHAR (voorz.van, 'hh24:mi'),
TO_CHAR (voorz.tot, 'hh24:mi'),
voorz.aantal,
voorz.prijs,
DECODE (rrr.res_rsv_ruimte_flag,
0, NULL,
1, 'Aanwezig',
2, 'Afwezig',
3, 'Gecontroleerd')
--(SELECT rkw.res_kenmerkreservering_waarde
-- FROM res_kenmerkwaarde rkw, res_kenmerk rk
-- WHERE rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
-- AND rkw.res_kenmerkwaarde_verwijder IS NULL
-- AND rk.res_srtkenmerk_key = 161 --kenmerksoort Status
-- AND rkw.res_kenmerk_key = rk.res_kenmerk_key)
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
prs_afdeling an,
prs_v_afdeling_boom ab,
( SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE r.res_rsv_ruimte_verwijder IS NULL
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL
AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
-rd.res_deel_key product_key,
rd.res_deel_omschrijving product,
DECODE (
rd.res_deel_prijs_vast,
1,
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
* 24
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
totaalprijs,
rrd.res_rsv_deel_van van,
rrd.res_rsv_deel_tot tot,
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
'object' vtype
FROM res_v_aanwezigrsv_deel rrd,
res_deel rd,
ins_deel d,
ins_tab_discipline c
WHERE rrd.res_deel_key = rd.res_deel_key
AND d.ins_deel_key = rd.res_ins_deel_key
AND rrd.res_rsv_ruimte_key IS NOT NULL
AND rd.res_deel_omschrijving NOT LIKE '%BWP%'
AND c.ins_discipline_key = rd.res_discipline_key) voorz
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
AND (rrr.res_ruimte_opstel_key IS NOT NULL
OR voorz.res_rsv_ruimte_key IS NOT NULL)
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
CREATE OR REPLACE VIEW FMHN_V_RAP_VTW_WF_PROGRESS
(
--wf,
startmelding_key,
startmelding_datum,
--startmelding_onderwerp,
startmelding_status,
melder,
fclt_3d_afdeling_key,
melder_afdeling_code,
melder_afdeling_oms,
--startmelding_behandelaar,
--max_stap_stdmelding_key,
bij_stap, -- max_stap_stdmelding_oms,
stapmelding_key,
stapmelding_datum,
--stapmelding_onderwerp,
stapmelding_status,
stapmelding_behandelaar,
korte_oms,
vtw_nr,
projectleider_og,
projectleider_pc,
gebruikers,
ontvangstdatum_offerte,
vervaldatum_offerte,
aanbiedingskosten,
eenmalige_invest_capex,
maandelijkse_expl_opex,
reservering_vervanging_lcc,
aandachtspunten,
datum_formeel,
datum_opdracht_verstrekt_aan_pc,
verwachte_uitvoeringsdatum,
daadwerkelijke_beschikb_datum,
datum_vroegtijdige_ingebruikname,
datum_gevraagd_aan_rvb_bs,
datum_door_pc_verwachte_aanl_vtw,
verwachte_afronding_toets_fmh,
ingediend_bij_klant_op,
verwachte_afronding_advies_fmh,
verwachte_start_werkzaamheden,
os_tekst,
vtw_on_hold
)
AS
SELECT --(SELECT mld_workflowstep_omschrijving FROM mld_workflowstep WHERE mld_workflowstep_key = x.mld_workflowstep_key)
-- wf,
x.mld_melding_key startmelding_key,
x.mld_melding_datum startmelding_datum,
--x.mld_melding_onderwerp startmelding_onderwerp,
x.mld_statuses_omschrijving startmelding_status,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.prs_perslid_key)
melder,
x.prs_afdeling_key,
x.prs_afdeling_naam melder_afdeling_code,
x.prs_afdeling_omschrijving melder_afdeling_oms,
--(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.mld_melding_behandelaar_key)
-- startmelding_behandelaar,
--stap.mld_stdmelding_key max_stap_stdmelding_key,
stap.mld_stdmelding_omschrijving max_stap_stdmelding_oms,
stap.mld_melding_key max_stap_melding_key,
stap.mld_melding_datum max_stap_melding_datum,
--stap.mld_melding_onderwerp max_stap_melding_onderwerp,
stap.mld_statuses_omschrijving max_stap_melding_status,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = stap.mld_melding_behandelaar_key)
max_stap_melding_behandelaar,
kko.mld_kenmerkmelding_waarde korte_oms,
kvn.mld_kenmerkmelding_waarde vtw_nr,
plog.mld_kenmerkmelding_waarde projectleider_og,
plpc.mld_kenmerkmelding_waarde projectleider_pc,
g.gebruikers gebruiker,
ovdo.mld_kenmerkmelding_waarde ontvangstdatum_offerte,
vvdo.mld_kenmerkmelding_waarde vervaldatum_offerte,
abk.mld_kenmerkmelding_waarde aanbiedingskosten,
capex.mld_kenmerkmelding_waarde capex,
opex.mld_kenmerkmelding_waarde opex,
lcc.mld_kenmerkmelding_waarde lcc,
adp.mld_kenmerkmelding_waarde aandachtspunten,
dvar.mld_kenmerkmelding_waarde datum_vtw_aangevraagd_door_rvb,
dovp.mld_kenmerkmelding_waarde datum_opdracht_verstrekt_aan_pc,
vud.mld_kenmerkmelding_waarde verwachte_uitvoeringsdatum,
dwbd.mld_kenmerkmelding_waarde daadwerkelijke_beschikbaarheidsdatum,
dvig.mld_kenmerkmelding_waarde datum_vroegtijdige_ingebruikname,
dgrb.mld_kenmerkmelding_waarde datum_gevraagd_aan_rvb_om_bs_te_dienen,
dpav.mld_kenmerkmelding_waarde datum_door_pc_verwachte_aanlevering_vtw,
vatf.mld_kenmerkmelding_waarde verwachte_afronding_toets_fmh,
ibdk.mld_kenmerkmelding_waarde ingediend_bij_de_klant,
vaaf.mld_kenmerkmelding_waarde verwachte_afronding_advies_fmh,
vsw.mld_kenmerkmelding_waarde verwachte_start_werkzaamheden,
ost.mld_kenmerkmelding_waarde OS_tekst,
onh.mld_srtkenmerk_omschrijving vtw_on_hold
FROM (SELECT m.mld_melding_key,
m.mld_melding_datum,
m.mld_melding_onderwerp,
ms.mld_statuses_omschrijving,
m.mld_melding_behandelaar_key,
m.mld_workflowstep_key,
p.prs_perslid_key,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving
FROM mld_melding m,
mld_statuses ms,
prs_perslid p,
prs_afdeling a
WHERE m.mld_workflowstep_key = 122 -- Behoeftestelling (startmelding)
--AND m.mld_melding_status NOT IN (1, 5, 6) -- Lopende WFs (eerste WF-stap nog niet gesloten)
AND m.mld_melding_status = ms.mld_statuses_key
AND m.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key) x
LEFT JOIN (SELECT m.mld_melding_start_key,
m.mld_melding_key,
m.mld_melding_datum,
m.mld_melding_onderwerp,
ms.mld_statuses_omschrijving,
m.mld_melding_behandelaar_key,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving
FROM mld_melding m, mld_statuses ms, mld_stdmelding sm
WHERE --m.mld_workflowstep_key IS NOT NULL -- Beschouw alleen WF-stappen
m.mld_melding_start_key IS NOT NULL -- Beschouw alleen VTW-stappen
AND m.mld_melding_status = ms.mld_statuses_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND NOT EXISTS
(SELECT 1
FROM mld_melding
WHERE --mld_workflowstep_key IS NOT NULL -- Beschouw alleen WF-stappen
mld_melding_start_key IS NOT NULL -- Beschouw alleen VTW-stappen
AND mld_melding_start_key = m.mld_melding_start_key
AND mld_melding_key > m.mld_melding_key)) stap
ON x.mld_melding_key = stap.mld_melding_start_key
LEFT JOIN mld_v_aanwezigkenmerkmelding kko
ON stap.mld_melding_key = kko.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 441 -- Korte omschrijving
AND mld_kenmerk_key = kko.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding kvn
ON stap.mld_melding_key = kvn.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 453 -- VTW nummer
AND mld_kenmerk_key = kvn.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding plog
ON stap.mld_melding_key = plog.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 463 -- Projectleider OG
AND mld_kenmerk_key = plog.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding plpc
ON stap.mld_melding_key = plpc.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 462 -- Projectleider PC
AND mld_kenmerk_key = plpc.mld_kenmerk_key)
LEFT JOIN ( SELECT km.mld_melding_key,
LISTAGG (k.mld_kenmerk_omschrijving, ', ') WITHIN GROUP (ORDER BY k.mld_kenmerk_omschrijving)
gebruikers
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 66 -- Vinkje
AND k.mld_kenmerk_volgnummer IN (12, 14, 16, 18, 20, 22, 24, 26, 28)
GROUP BY km.mld_melding_key) g
ON stap.mld_melding_key = g.mld_melding_key
LEFT JOIN mld_v_aanwezigkenmerkmelding plpc
ON stap.mld_melding_key = plpc.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 462 -- Projectleider PC
AND mld_kenmerk_key = plpc.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding ovdo
ON stap.mld_melding_key = ovdo.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 454 -- Ontvangstdatum offerte
AND mld_kenmerk_key = ovdo.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding vvdo
ON stap.mld_melding_key = vvdo.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 455 -- Vervaldatum offerte
AND mld_kenmerk_key = vvdo.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding abk
ON stap.mld_melding_key = abk.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 456 -- Aanbiedingskosten
AND mld_kenmerk_key = abk.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding capex
ON stap.mld_melding_key = capex.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 457 -- Eenmalige investeringskosten (CAPEX)
AND mld_kenmerk_key = capex.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding opex
ON stap.mld_melding_key = opex.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 459 -- Maandelijkse exploitatiekosten (OPEX)
AND mld_kenmerk_key = opex.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding lcc
ON stap.mld_melding_key = lcc.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 458 -- Reservering vervangingskosten (LCC)
AND mld_kenmerk_key = lcc.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding adp
ON stap.mld_melding_key = adp.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 451 -- Aandachtspunten
AND mld_kenmerk_key = adp.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding opex
ON stap.mld_melding_key = opex.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 459 -- Maandelijkse exploitatiekosten (OPEX)
AND mld_kenmerk_key = opex.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding dvar
ON stap.mld_melding_key = dvar.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 481 -- Datum VTW aangevraagd door RVB
AND mld_kenmerk_key = dvar.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding dovp
ON stap.mld_melding_key = dovp.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 465 -- Datum opdracht verstrekt aan PC
AND mld_kenmerk_key = dovp.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding vud
ON stap.mld_melding_key = vud.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 466 -- Verwachte uitvoeringsdatum
AND mld_kenmerk_key = vud.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding dwbd
ON stap.mld_melding_key = dwbd.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 467 -- Daadwerkelijke beschikbaarheidsdatum
AND mld_kenmerk_key = dwbd.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding dvig
ON stap.mld_melding_key = dvig.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 468 -- Datum vroegtijdige ingebruikname
AND mld_kenmerk_key = dvig.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding dgrb
ON stap.mld_melding_key = dgrb.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 901 -- Datum gevraagd aan RVB om BS in te dienen
AND mld_kenmerk_key = dgrb.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding dpav
ON stap.mld_melding_key = dpav.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 902 -- Datum door PC verwachtte aanlevering VTW
AND mld_kenmerk_key = dpav.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding vatf
ON stap.mld_melding_key = vatf.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 903 -- Verwachte afronding toets FMH
AND mld_kenmerk_key = vatf.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding ibdk
ON stap.mld_melding_key = ibdk.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 904 -- Ingediend bij de klant op
AND mld_kenmerk_key = ibdk.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding vaaf
ON stap.mld_melding_key = vaaf.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 905 -- Verwachte afronding advies FMH
AND mld_kenmerk_key = vaaf.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding vsw
ON stap.mld_melding_key = vsw.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 906 -- Verwachte start werkzaamheden
AND mld_kenmerk_key = vsw.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding ost
ON stap.mld_melding_key = ost.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 907 -- OS tekst
AND mld_kenmerk_key = ost.mld_kenmerk_key)
LEFT JOIN (SELECT km.mld_melding_key, skm.mld_srtkenmerk_omschrijving
FROM mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk skm
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1021 -- VTW ON HOLD
AND k.mld_srtkenmerk_key = skm.mld_srtkenmerk_key
GROUP BY km.mld_melding_key, skm.mld_srtkenmerk_omschrijving) onh
ON stap.mld_melding_key = onh.mld_melding_key;
CREATE OR REPLACE VIEW FMHN_V_NOTI_INCIDENTS
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
'CUST20',
NULL,
x.prs_perslid_key,
'Er is een nieuwe incidentmelding '
|| m.mld_melding_key
|| ' voor '
|| ld.alg_district_upper,
m.mld_melding_key,
NULL,
NULL,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
ins_srtdiscipline sd,
alg_locatie l,
alg_district ld,
(SELECT p.prs_perslid_key,
pk.prs_kenmerklink_waarde,
ud.fac_usrdata_upper
FROM prs_perslid p,
prs_kenmerklink pk,
fac_usrtab ut,
fac_usrdata ud
WHERE p.prs_perslid_key = pk.prs_link_key
AND pk.prs_kenmerklink_niveau = 'P'
AND pk.prs_kenmerk_key = 1060 -- persoonskenmerk 'Notificaties incidenten'
AND ut.fac_usrtab_key = 621 -- Eigen tabel 'LT Notify INC'
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND fac.safe_to_number (pk.prs_kenmerklink_waarde) =
ud.fac_usrdata_key) x
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sd.ins_srtdiscipline_key IN (27, 42, 143) --Vakgroeptypen betreffende incidentmeldingen
AND m.mld_melding_key NOT IN
(SELECT t.fac_tracking_refkey
FROM fac_tracking t
WHERE fac_tracking_oms LIKE '%CUST20%'
AND t.fac_tracking_refkey = m.mld_melding_key)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'YYYYMMDD')) >
20220707 --Start van notificatie op 8 juli 2022
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = ld.alg_district_key
AND x.fac_usrdata_upper = ld.alg_district_upper(+)
UNION ALL
SELECT DISTINCT
'CUST20',
NULL,
x.prs_perslid_key,
'Er is een nieuwe incidentmelding '
|| m.mld_melding_key
|| ' voor '
|| ld.alg_district_upper,
m.mld_melding_key,
NULL,
NULL,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
ins_srtdiscipline sd,
alg_locatie l,
alg_district ld,
(SELECT p.prs_perslid_key,
pk.prs_kenmerklink_waarde,
ud.fac_usrdata_upper
FROM prs_perslid p,
prs_kenmerklink pk,
fac_usrtab ut,
fac_usrdata ud
WHERE p.prs_perslid_key = pk.prs_link_key
AND pk.prs_kenmerklink_niveau = 'P'
AND pk.prs_kenmerk_key = 1060 -- persoonskenmerk 'Notificaties incidenten'
AND ut.fac_usrtab_key = 621 -- Eigen tabel 'LT Notify INC'
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND fac.safe_to_number (pk.prs_kenmerklink_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrdata_upper = 'ALLE LT') x
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sd.ins_srtdiscipline_key IN (27, 42, 143) --Vakgroeptypen betreffende incidentmeldingen
AND m.mld_melding_key NOT IN
(SELECT t.fac_tracking_refkey
FROM fac_tracking t
WHERE fac_tracking_oms LIKE '%CUST20%'
AND t.fac_tracking_refkey = m.mld_melding_key)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'YYYYMMDD')) >
20220707 --Start van notificatie op 8 juli 2022
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = ld.alg_district_key;
/
CREATE OR REPLACE VIEW fmhn_v_udr_melding
(
hide_f_sortering,
melding_key,
meldingnummer,
melding_start_key,
externnummer,
melding_regio,
melding_district,
melding_locatiecode,
melding_locatie,
melding_locatieplaats,
fclt_3d_locatie_key,
melding_gebouwcode,
melding_gebouw,
melding_verdieping,
melding_ruimtenr,
melding_ruimte,
melding_ordernr,
kostensoortgroep,
kostensoort,
kostenplaats,
kostenplaats_oms,
melder,
melder_key,
melder_email,
afdeling,
afdeling_omschrijving,
fclt_3d_afdeling_key,
divisie,
divisie_omschrijving,
fclt_3d_divisie_key,
bedrijf_key,
invoerder,
meldbron,
soortmelding,
fclt_3d_discipline_key,
productgroep,
subproductgroep,
behandelgroep,
behandelaar,
behandelaar_key,
subproductgroepgroep,
fclt_3d_discipline2_key,
actieve_behandelgroep,
actieve_behandelaar_key,
actieve_behandelaar,
melding_status,
sla_nvt,
sla_werkdgn,
sla_werkuren,
sla_respijtdgn,
sla_respijturen,
sla_accptdgn,
sla_accpturen,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum,
melding_einddatum_std,
melding_acceptdatum,
melding_afgemeld,
melding_accepted,
doorlooptijd_werkdgn,
doorlooptijd_werkuren,
onderwerp,
vomschrijving,
melding_opmerking,
prioriteit,
prioriteittxt,
rating,
rating_opmerking,
bolletje,
actiecode,
accept_sla_dagen,
accept_sla_uren,
uitvoering_sla_dagen,
uitvoering_sla_uren,
afspraak_sla_dagen,
afspraak_sla_uren,
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
selfservice
)
AS
SELECT melding_key AS sortering,
melding_key,
meldingnummer,
melding_start_key,
externnummer,
melding_regio,
melding_district,
melding_locatiecode,
melding_locatie,
melding_locatieplaats,
fclt_3d_locatie_key,
melding_gebouwcode,
melding_gebouw,
melding_verdieping,
melding_ruimtenr,
melding_ruimte,
melding_ordernr,
kostensoortgroep,
kostensoort,
kostenplaats,
kostenplaats_oms,
melder,
melder_key,
melder_email,
afdeling,
afdeling_omschrijving,
fclt_3d_afdeling_key,
divisie,
divisie_omschrijving,
fclt_3d_divisie_key,
bedrijf_key,
invoerder,
meldbron,
soortmelding,
fclt_3d_discipline_key,
productgroep,
subproductgroep,
behandelgroep,
behandelaar,
behandelaar_key,
subproductgroepgroep,
fclt_3d_discipline2_key,
actieve_behandelgroep,
actieve_behandelaar_key,
actieve_behandelaar,
melding_status,
sla_nvt,
sla_werkdgn,
sla_werkuren,
sla_respijtdgn,
sla_respijturen,
sla_accptdgn,
sla_accpturen,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum,
melding_einddatum_std,
melding_acceptdatum,
melding_afgemeld,
melding_accepted,
doorlooptijd_werkdgn,
doorlooptijd_werkuren,
onderwerp,
vomschrijving,
melding_opmerking,
prioriteit,
prioriteittxt,
rating,
rating_opmerking,
bolletje,
actiecode,
accept_sla_dagen,
accept_sla_uren,
uitvoering_sla_dagen,
uitvoering_sla_uren,
afspraak_sla_dagen,
afspraak_sla_uren,
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
selfservice
FROM mld_v_udr_melding
ORDER BY melding_key DESC;
CREATE OR REPLACE VIEW FMHN_v_Catering2NPQ_fout
(
res_rsv_ruimte_key,
res_reservering_key,
res_reservering_volgnr,
res_aanmaakdatum,
last_upd,
last_export,
verw_datum,
ruimte_nr,
van,
tot,
omschrijving,
fo_status
)
AS
SELECT DISTINCT(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key reservering_key,
rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%') last_upd,
rrr.res_rsv_ruimte_externsyncdate last_export,
rrr.res_rsv_ruimte_verwijder verw_datum,
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
rrr.RES_RSV_RUIMTE_VAN datum_van,
rrr.RES_RSV_RUIMTE_TOT datum_tot,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_status_fo_key fo_status
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_ruimte_opstelling rop,
res_opstelling ros,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg
WHERE rrr.res_status_bo_key = 2
--AND rrr.res_status_fo_key = 2
--AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND ros.res_opstelling_key = rop.res_opstelling_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key= 18
AND rra.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_key NOT IN (select fac_tracking_refkey from fac_tracking where fac_tracking_oms like '%rtikel is succesvol verstuurd%');
--FMHN#74481 Evaluatieformulier One2Ten vanuit evenementreservering
-- Uitgangspunten:
-- Gekoppeld aan de ruimte reservering obv activiteit Evenementen (alle catalogi/locaties, ook RS8). Of moet dit anders/beperkter?
-- Vast te leggen met RESBOF rechten
-- Notificatie gaat naar 'Bestemd voor'
-- Kenmerk (vinkje) met omschrijving 'Evaluatieformulier versturen', deze moet uiterlijk op de dag van het evenement worden aangezet.
-- Notificatie volgt daags na evenement (of nog een dag later indien notificatie onverhoopt zou falen).
-- Desgewenst kan ik het beschikbaar maken om enkele evenementen met twk te notificeren bij de eerste run. Dan maak ik het kenmerk alvast beschikbaar (en kan het bij evenementen aangevinkt worden) en kan dan gevuld worden door het evenemententeam en dan zet ik pas op 21 oktober de notificatiejob in Facilitor.
-- Bij meerdaagse evenementen (herhaal-reserveringen, met reserveringsvolgnummer > 1) kunnen meerdere evaluaties uitgevraagd worden, indien bij meerdere het vinkje aan staat.
CREATE OR REPLACE VIEW FMHN_V_NOTI_EVENTEVALUATIE
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XEMAIL,
XMOBILE,
FAC_SRTNOTIFICATIE_KEY,
ATTACHMENTS,
XSENDER,
PRS_BEDRIJFADRES_KEY
)
AS
SELECT 'CUST22',
NULL,
rsvr.res_rsv_ruimte_host_key,
'Feedback evenement FMHaaglanden',
res.res_reservering_key,
rsvr.res_rsv_ruimte_key,
NULL xemail,
NULL xmobile,
541 fac_srtnotificatie_key, --CUST22
NULL attachments,
'fmhevenementen@one2ten.com' xsender,
NULL prs_bedrijfadres_key
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte rsvr,
res_ruimte_opstelling opst,
res_ruimte r,
res_kenmerkwaarde rkw
WHERE res.res_reservering_key = rsvr.res_reservering_key
AND opst.res_ruimte_opstel_key = rsvr.res_ruimte_opstel_key
AND opst.res_ruimte_key = r.res_ruimte_key
AND rkw.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
AND rkw.res_kenmerk_key = 801 -- Kenmerk Evaluatieformulier versturen
AND rkw.res_kenmerkreservering_waarde = 1 -- vinkje aan
AND rkw.res_kenmerkwaarde_verwijder IS NULL
AND rsvr.res_status_fo_key NOT IN (3, 4) --Niet geblokkeerd of vervallen
AND rsvr.res_activiteit_key = 30 -- Evenement
AND ( rsvr.res_rsv_ruimte_van > (SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (
fac_notificatie_job_view) =
'FMHN_V_NOTI_EVENTEVALUATIE')
OR (SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'FMHN_V_NOTI_EVENTEVALUATIE')
IS NULL);
/
CREATE OR REPLACE VIEW FMHN_V_NOTI_RESREMINDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XEMAIL,
XMOBILE,
FAC_SRTNOTIFICATIE_KEY,
ATTACHMENTS,
XSENDER,
PRS_BEDRIJFADRES_KEY
)
AS
SELECT 'RESINF',
NULL,
rsvr.res_rsv_ruimte_contact_key,
'Reservering '
|| res.res_reservering_key
|| ': U heeft op '
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'DD-MM')
|| ' van '
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'HH24:MI')
|| ' tot '
|| TO_CHAR (rsvr.res_rsv_ruimte_tot, 'HH24:MI')
|| ' ruimte '
|| r.res_ruimte_nr
|| ' gereserveerd - '
|| rsvr.res_rsv_ruimte_omschrijving,
res.res_reservering_key,
rsvr.res_rsv_ruimte_key,
NULL
xemail,
NULL
xmobile,
NULL
fac_srtnotificatie_key,
NULL
attachments,
NULL
xsender,
NULL
prs_bedrijfadres_key
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte rsvr,
res_ruimte_opstelling opst,
res_disc_params rdp,
res_ruimte r
WHERE r.res_discipline_key = rdp.res_ins_discipline_key
AND rdp.res_disc_params_noti_dagen IS NOT NULL
AND res.res_reservering_key = rsvr.res_reservering_key
AND opst.res_ruimte_opstel_key = rsvr.res_ruimte_opstel_key
AND opst.res_ruimte_key = r.res_ruimte_key
AND rsvr.res_status_fo_key <= 5
AND rsvr.res_rsv_ruimte_van BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen
+ 1,
'DAGEN')
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
AND rsvr.res_rsv_ruimte_van >= SYSDATE
AND rsvr.res_activiteit_key NOT IN (30) --Activiteit 30 = Evenement
UNION ALL
SELECT 'RESINF',
NULL,
res_rsv_ruimte_contact_key,
'Reservering '
|| res_reservering_key
|| ': U heeft op '
|| TO_CHAR (MIN (van), 'dd-mm')
|| DECODE (
MIN (van),
MAX (tot), ' om ' || TO_CHAR (MIN (van), 'hh24:mi'),
' van '
|| TO_CHAR (MIN (van), 'hh24:mi')
|| ' tot '
|| TO_CHAR (MAX (tot), 'hh24:mi'))
|| ' in ruimte ('
|| (SELECT alg_gebouw_code
|| '-'
|| alg_verdieping_code
|| '-'
|| alg_ruimte_nr
FROM alg_v_onroerendgoed_gegevens arg
WHERE arg.alg_ruimte_key = ruimte_key)
|| ') '
|| COUNT (res_reservering_key)
|| ' voorziening(en) gereserveerd.',
res_reservering_key,
res_rsv_ruimte_key,
NULL
xemail,
NULL
xmobile,
NULL
fac_srtnotificatie_key,
NULL
attachments,
NULL
xsender,
NULL
prs_bedrijfadres_key
FROM (SELECT rsvr.res_rsv_ruimte_contact_key,
res.res_reservering_key,
rsvd.res_rsv_deel_van van,
rsvd.res_rsv_deel_tot tot,
rsvr.res_rsv_ruimte_key,
rsvr.alg_ruimte_key ruimte_key
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte rsvr,
res_disc_params rdp,
res_rsv_deel rsvd,
res_deel rd
WHERE rsvd.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
AND rd.res_deel_key = rsvd.res_deel_key
AND rd.res_discipline_key = rdp.res_ins_discipline_key
AND rdp.res_disc_params_noti_dagen IS NOT NULL
AND res.res_reservering_key = rsvr.res_reservering_key
AND rsvr.res_ruimte_opstel_key IS NULL
AND rsvr.res_status_fo_key <= 5
AND rsvd.res_rsv_deel_verwijder IS NULL
AND rsvd.res_rsv_deel_van BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen
+ 1,
'DAGEN')
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
AND rsvd.res_rsv_deel_van >= SYSDATE
AND rsvr.res_activiteit_key NOT IN (30) --Activiteit 30 = Evenement
UNION ALL
SELECT rsvr.res_rsv_ruimte_contact_key,
res.res_reservering_key,
rsva.res_rsv_artikel_levering van,
rsva.res_rsv_artikel_levering tot,
rsvr.res_rsv_ruimte_key,
rsvr.alg_ruimte_key ruimte_key
FROM res_v_aanwezigreservering res,
res_v_aanwezigrsv_ruimte rsvr,
res_disc_params rdp,
res_rsv_artikel rsva,
res_artikel ra
WHERE rsva.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
AND ra.res_discipline_key = rdp.res_ins_discipline_key
AND rsva.res_artikel_key = ra.res_artikel_key
AND rdp.res_disc_params_noti_dagen IS NOT NULL
AND res.res_reservering_key = rsvr.res_reservering_key
AND rsvr.res_ruimte_opstel_key IS NULL
AND rsvr.res_status_fo_key <= 5
AND rsva.res_rsv_artikel_verwijder IS NULL
AND rsva.res_rsv_artikel_levering BETWEEN fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen,
'DAGEN')
AND fac.datumtijdplusuitvoertijd (
SYSDATE,
res_disc_params_noti_dagen
+ 1,
'DAGEN')
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
AND rsva.res_rsv_artikel_levering >= SYSDATE
AND rsvr.res_activiteit_key NOT IN (30) --Activiteit 30 = Evenement
)
GROUP BY res_rsv_ruimte_contact_key,
res_reservering_key,
res_rsv_ruimte_key,
ruimte_key;
CREATE OR REPLACE VIEW FMHN_V_NOTI_EVENT_ACCREJ
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT 'CUST23',
NULL,
m.prs_perslid_key,
'Evenement (aanvraag) ' || m.mld_melding_key || ' is geaccepteerd',
m.mld_melding_key,
NULL
xkey,
NULL
xsender,
NULL
xemail,
NULL
xmobile,
NULL
attachments
FROM mld_melding m, fac_tracking t, fac_notificatie_job nj
WHERE m.mld_stdmelding_key = 25 -- Aanvraag evenement
AND m.mld_melding_key = t.fac_tracking_refkey
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_EVENT_ACCREJ'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND t.fac_srtnotificatie_key = 44 -- MLDACP
AND NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 561 -- CUST23
AND fac_tracking_refkey = m.mld_melding_key)
UNION ALL
SELECT 'CUST23',
NULL,
m.prs_perslid_key,
'Evenement (aanvraag) ' || m.mld_melding_key || ' is afgewezen',
m.mld_melding_key,
NULL xkey,
NULL xsender,
NULL xemail,
NULL xmobile,
NULL attachments
FROM mld_melding m, fac_tracking t, fac_notificatie_job nj
WHERE m.mld_stdmelding_key = 25 -- Aanvraag evenement
AND m.mld_melding_key = t.fac_tracking_refkey
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_EVENT_ACCREJ'
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
AND t.fac_srtnotificatie_key = 52 -- MLDREJ
AND NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 561 -- CUST23
AND fac_tracking_refkey = m.mld_melding_key);
--FMHN#72721 Monitoring koppelingen
CREATE OR REPLACE VIEW FMHN_V_MONITOR_NPQ
(
RES_RSV_RUIMTE_KEY,
RESERVERING,
RES_RESERVERING_VOLGNR,
RES_AANMAAKDATUM,
LAST_UPDATE,
LAST_EXPORT,
VERWIJDER_DATUM,
RUIMTE_NR,
VAN,
TOT,
OMSCHRIJVING,
FO_STATUS,
BO_STATUS,
PLANONNR,
PC_ZAAL_NR,
ARTIKEL
)
AS
SELECT DISTINCT
(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key
reservering,
rrr.res_rsv_ruimte_volgnr
volgnr,
rrr.res_rsv_ruimte_aanmaak
aanmaak_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%')
last_update,
rrr.res_rsv_ruimte_externsyncdate
last_export,
rrr.res_rsv_ruimte_verwijder
verwijder_datum,
COALESCE (rer.res_ruimte_friendlyname, alg.alg_ruimte_nr)
ruimte_nr,
rrr.RES_RSV_RUIMTE_VAN
datum_van,
rrr.RES_RSV_RUIMTE_TOT
datum_tot,
rrr.res_rsv_ruimte_omschrijving
omschrijving,
rfo.res_status_fo_omschrijving
fo_status,
rbo.res_status_bo_omschrijving
bo_status,
(SELECT MIN (rkm.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde rkm, res_kenmerk km
WHERE km.res_srtkenmerk_key = 21 -- Kenmerksoort Referentie
AND rkm.res_kenmerk_key = km.res_kenmerk_key
AND rrr.res_rsv_ruimte_key = rkm.res_rsv_ruimte_key
AND rkm.res_kenmerkwaarde_verwijder IS NULL)
AS planonnr,
(SELECT MIN (rkm.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde rkm, res_kenmerk km
WHERE km.res_srtkenmerk_key = 61 -- Kenmerksoort PC_Nr_zaal
AND rkm.res_kenmerk_key = km.res_kenmerk_key
AND rrr.res_rsv_ruimte_key = rkm.res_rsv_ruimte_key
AND rkm.res_kenmerkwaarde_verwijder IS NULL)
AS PC_Nr_zaal,
ra.res_artikel_omschrijving
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_ruimte_opstelling rop,
res_opstelling ros,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
res_artikel ra,
res_status_bo rbo,
res_status_fo rfo
WHERE rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND ros.res_opstelling_key = rop.res_opstelling_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key = 18
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_status_fo_key = rfo.res_status_fo_key
AND rrr.res_status_bo_key = rbo.res_status_bo_key
AND rra.res_artikel_key = ra.res_artikel_key
UNION ALL
SELECT DISTINCT
(rrr.res_rsv_ruimte_key),
rrr.res_reservering_key
reservering,
rrr.res_rsv_ruimte_volgnr
volgnr,
rrr.res_rsv_ruimte_aanmaak
aanmaak_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 108
AND prs_perslid_key <> 44 -- mutaties via de API call door NPQ willen we niet zien
AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE -- tracking die toegevoegd is bij de export naar NPQ willen we niet zien
'PC:%')
last_update,
rrr.res_rsv_ruimte_externsyncdate
last_export,
rrr.res_rsv_ruimte_verwijder
verwijder_datum,
COALESCE (rer.res_ruimte_friendlyname, alg.alg_ruimte_nr)
ruimte_nr,
rrr.RES_RSV_RUIMTE_VAN
datum_van,
rrr.RES_RSV_RUIMTE_TOT
datum_tot,
rrr.res_rsv_ruimte_omschrijving
omschrijving,
rfo.res_status_fo_omschrijving
fo_status,
rbo.res_status_bo_omschrijving
bo_status,
(SELECT MIN (rkm.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde rkm, res_kenmerk km
WHERE km.res_srtkenmerk_key = 21 -- Kenmerksoort Referentie
AND rkm.res_kenmerk_key = km.res_kenmerk_key
AND rrr.res_rsv_ruimte_key = rkm.res_rsv_ruimte_key
AND rkm.res_kenmerkwaarde_verwijder IS NULL)
AS planonnr,
(SELECT MIN (rkm.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde rkm, res_kenmerk km
WHERE km.res_srtkenmerk_key = 61 -- Kenmerksoort PC_Nr_zaal
AND rkm.res_kenmerk_key = km.res_kenmerk_key
AND rrr.res_rsv_ruimte_key = rkm.res_rsv_ruimte_key
AND rkm.res_kenmerkwaarde_verwijder IS NULL)
AS PC_Nr_zaal,
NULL
AS artikel
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rop,
res_opstelling ros,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg,
res_status_bo rbo,
res_status_fo rfo
WHERE rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND ros.res_opstelling_key = rop.res_opstelling_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
AND alg.alg_locatie_key = 18
AND rrr.res_status_fo_key = rfo.res_status_fo_key
AND rrr.res_status_bo_key = rbo.res_status_bo_key;
CREATE OR REPLACE VIEW FMHN_V_MLD_CISO
AS
SELECT m.mld_melding_key AS meldingnummer,
g.alg_gebouw_naam AS melding_gebouw,
p1.prs_perslid_naam_full AS melder,
a.prs_afdeling_omschrijving AS afdeling,
d.ins_discipline_omschrijving AS vakgroep,
sm.mld_stdmelding_omschrijving AS melding,
p2.prs_perslid_naam_full AS behandelaar,
m.mld_melding_datum AS melding_datumtijd,
ms.mld_statuses_omschrijving AS status,
TRUNC (m.mld_melding_datum) AS melding_datum,
m.mld_melding_omschrijving AS omschrijving
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
alg_locatie l,
alg_gebouw g,
prs_v_perslid_fullnames p1,
prs_v_perslid_fullnames p2,
prs_perslid p,
prs_afdeling a,
mld_statuses ms
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 42 -- Incidenten
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_verwijder IS NULL
AND l.alg_locatie_verwijder IS NULL
AND m.prs_perslid_key = p1.prs_perslid_key
AND m.mld_melding_behandelaar_key = p2.prs_perslid_key(+)
AND p1.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND m.mld_melding_status = ms.mld_statuses_key
AND EXISTS
(SELECT kmm.mld_melding_key
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = 108 -- IB-issue
AND kmm.mld_kenmerkmelding_waarde = '21' -- Ja
AND kmm.mld_melding_key = m.mld_melding_key);
CREATE OR REPLACE VIEW FMHN_V_MLD_INCIDENTEN
AS
SELECT m.mld_melding_key
AS meldingnummer,
g.alg_gebouw_naam
AS melding_gebouw,
p1.prs_perslid_naam_full
AS melder,
a.prs_afdeling_omschrijving
AS afdeling,
d.ins_discipline_omschrijving
AS vakgroep,
sm.mld_stdmelding_omschrijving
AS melding,
p2.prs_perslid_naam_full
AS behandelaar,
m.mld_melding_datum
AS melding_datumtijd,
ms.mld_statuses_omschrijving
AS status,
TRUNC (m.mld_melding_datum)
AS melding_datum,
m.mld_melding_omschrijving
AS omschrijving,
COALESCE((SELECT DISTINCT (ud.fac_usrdata_omschr)
FROM mld_kenmerk km, mld_kenmerkmelding kmm, fac_usrdata ud
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (kmm.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key
AND km.mld_srtkenmerk_key = 108 --Kenmerksoort IB-issue
AND ud.fac_usrtab_key = 2 -- Enkel waarden uit eigen tabel 'Ja/Nee'
AND mld_kenmerkmelding_verwijder IS NULL), 'Onbekend')
AS IB_issue,
(SELECT DISTINCT (ud.fac_usrdata_omschr)
FROM mld_kenmerk km, mld_kenmerkmelding kmm, fac_usrdata ud
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (kmm.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key
AND km.mld_kenmerk_volgnummer = 21
AND mld_kenmerkmelding_verwijder IS NULL)
AS hulpdiensten_betrokken,
(SELECT DISTINCT (ud.fac_usrdata_omschr)
FROM mld_kenmerk km, mld_kenmerkmelding kmm, fac_usrdata ud
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (kmm.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key
AND km.mld_kenmerk_volgnummer = 22
AND mld_kenmerkmelding_verwijder IS NULL)
AS hulpdiensten,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 23
AND mld_kenmerkmelding_verwijder IS NULL)
AS overige_hulpdiensten_politie,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 24
AND mld_kenmerkmelding_verwijder IS NULL)
AS overige_hulpdiensten_brandweer,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 25
AND mld_kenmerkmelding_verwijder IS NULL)
AS overige_hulpdiensten_ambulance,
(SELECT DISTINCT (ud.fac_usrdata_omschr)
FROM mld_kenmerk km, mld_kenmerkmelding kmm, fac_usrdata ud
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (kmm.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key
AND km.mld_kenmerk_volgnummer = 32
AND mld_kenmerkmelding_verwijder IS NULL)
AS slachtoffers,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 52
AND mld_kenmerkmelding_verwijder IS NULL)
AS naam_mogelijke_betrokkene,
(SELECT DISTINCT (ud.fac_usrdata_omschr)
FROM mld_kenmerk km, mld_kenmerkmelding kmm, fac_usrdata ud
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (kmm.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key
AND km.mld_kenmerk_volgnummer = 61
AND mld_kenmerkmelding_verwijder IS NULL)
AS camerabeelden_veilig,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 62
AND mld_kenmerkmelding_verwijder IS NULL)
AS bijzonderheden,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 63
AND mld_kenmerkmelding_verwijder IS NULL)
AS datum_incident,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 64
AND mld_kenmerkmelding_verwijder IS NULL)
AS tijd_incident,
(SELECT DISTINCT (mld_kenmerkmelding_waarde)
FROM mld_kenmerk km, mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND kmm.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_volgnummer = 65
AND mld_kenmerkmelding_verwijder IS NULL)
AS locatie_in_gebouw,
( SELECT LISTAGG (
TO_CHAR (mn.mld_melding_note_aanmaak,
'YYYY-MM-DD - HH24:MI')
|| ': '
|| mn.mld_melding_note_omschrijving,
'; ' || CHR (10)
ON OVERFLOW TRUNCATE)
WITHIN GROUP (ORDER BY mn.mld_melding_key DESC) AS notities
FROM mld_melding_note mn
WHERE mn.mld_melding_key = m.mld_melding_key
GROUP BY mn.mld_melding_key)
AS notities
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
alg_locatie l,
alg_gebouw g,
prs_v_perslid_fullnames p1,
prs_v_perslid_fullnames p2,
prs_perslid p,
prs_afdeling a,
mld_statuses ms
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 42 -- Incidenten
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_verwijder IS NULL
AND l.alg_locatie_verwijder IS NULL
AND m.prs_perslid_key = p1.prs_perslid_key
AND m.mld_melding_behandelaar_key = p2.prs_perslid_key(+)
AND p1.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND m.mld_melding_status = ms.mld_statuses_key;
CREATE OR REPLACE VIEW FMHN_V_RAP_GROEPLEDEN
(
NAAM,
FCLT_F_LOGIN,
FCLT_F_GROEP,
EMAIL,
DEPARTEMENT_AFDELING,
FUNCTIE,
DATUM_LAATST_INGELOGD,
BEGINDATUM,
EINDDATUM,
AANTAL_RECHTEN
)
AS
SELECT p.prs_perslid_naam,
p.prs_perslid_oslogin,
gr.fac_groep_omschrijving,
p.prs_perslid_email,
substr(a.pad,6),
sp.prs_srtperslid_omschrijving,
p.prs_perslid_login,
p.prs_perslid_ingangsdatum,
p.prs_perslid_einddatum,
TO_CHAR (COUNT (*))
FROM fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
fac_groep gr,
fac_groeprechten grr,
prs_srtperslid sp,
fmhn_v_idm_afdeling a
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = gr.fac_groep_key
AND gr.fac_groep_key = grr.fac_groep_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
GROUP BY p.prs_perslid_naam,
p.prs_perslid_oslogin,
gr.fac_groep_omschrijving,
p.prs_perslid_email,
sp.prs_srtperslid_omschrijving,
a.pad,
p.prs_perslid_login,
p.prs_perslid_ingangsdatum,
p.prs_perslid_einddatum;
CREATE OR REPLACE VIEW FMHN_V_RAP_GROEPRECHTEN
(
NAAM,
FCLT_F_LOGIN,
EMAIL,
LAST_LOGIN,
FCLT_F_MODULE,
FCLT_F_FUNCODE,
FCLT_F_FUNCTIE,
FCLT_F_ASPECT,
FCLT_F_GROEP,
ORGLEVELREAD,
ORGLEVELWRITE,
ALGLEVELREAD,
ALGLEVELWRITE,
DEPARTEMENT_AFDELING,
FUNCTIE,
DATUM_LAATST_INGELOGD,
BEGINDATUM,
EINDDATUM
)
AS
SELECT -- GROEPEN MET DISCIPLINES
p.prs_perslid_naam,
p.prs_perslid_oslogin,
p.prs_perslid_email,
p.prs_perslid_login,
f.fac_functie_module,
f.fac_functie_code,
COALESCE (fac_locale_xsl_cust,
fac_locale_xsl_tekst,
f.fac_functie_omschrijving),
DECODE (
a.ins_discipline_module,
'BES', lcl.l ('bes_discipline') || ' ',
'CHT', lcl.l ('cht_discipline') || ' ',
'CNT', lcl.l ('cnt_discipline') || ' ',
'CTR', lcl.l ('ctr_discipline') || ' ',
'FAQ', lcl.l ('faq_discipline') || ' ',
'INS', lcl.l ('ins_discipline') || ' ',
'MLD', lcl.l ('mld_discipline')
|| (CASE
WHEN ins_srtdiscipline_prefix IS NULL
THEN
''
ELSE
' ' || ins_srtdiscipline_prefix || '-'
END),
'RES', lcl.l ('res_discipline') || ' ',
ins_discipline_module || ' ')
|| ins_discipline_omschrijving
omschrijving,
gr.fac_groep_omschrijving,
fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG'),
SUBSTR (afd.pad, 6),
sp.prs_srtperslid_omschrijving,
p.prs_perslid_login,
p.prs_perslid_ingangsdatum,
p.prs_perslid_einddatum
FROM fac_groeprechten g,
fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
prs_srtperslid sp,
fac_functie f,
ins_srtdiscipline isd,
ins_tab_discipline a,
fac_groep gr,
fac_locale_xsl flx,
fmhn_v_idm_afdeling afd
WHERE g.ins_discipline_key = a.ins_discipline_key
AND g.fac_groep_key = gr.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = gr.fac_groep_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND isd.ins_srtdiscipline_key(+) = a.ins_srtdiscipline_key
AND f.fac_functie_key = g.fac_functie_key
AND f.fac_functie_discipline = 1
AND ins_discipline_verwijder IS NULL
AND p.prs_afdeling_key = afd.prs_afdeling_key
AND flx.fac_locale_xsl_label(+) = f.fac_functie_omschrijving
AND flx.fac_locale_xsl_lang(+) = 'NL'
AND flx.fac_locale_xsl_module(+) = 'ASP'
UNION ALL -- GROEPEN ZONDER DISCIPLINES
SELECT p.prs_perslid_naam,
p.prs_perslid_oslogin,
prs_perslid_email,
prs_perslid_login,
f.fac_functie_module,
f.fac_functie_code,
COALESCE (fac_locale_xsl_cust,
fac_locale_xsl_tekst,
f.fac_functie_omschrijving),
NULL
omschrijving,
gr.fac_groep_omschrijving,
fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG'),
SUBSTR (afd.pad, 6),
sp.prs_srtperslid_omschrijving,
p.prs_perslid_login,
p.prs_perslid_ingangsdatum,
p.prs_perslid_einddatum
FROM fac_groeprechten g,
fac_functie f,
fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
prs_srtperslid sp,
fac_groep gr,
fac_locale_xsl flx, -- lcl.l gebruik was extreem traag dus maar hardcoded
fmhn_v_idm_afdeling afd
WHERE fac_functie_discipline = 0
AND g.fac_functie_key = f.fac_functie_key
AND g.fac_groep_key = gg.fac_groep_key
AND gg.fac_groep_key = gr.fac_groep_key
AND p.prs_perslid_key = gg.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_afdeling_key = afd.prs_afdeling_key
AND flx.fac_locale_xsl_label(+) = f.fac_functie_omschrijving
AND flx.fac_locale_xsl_lang(+) = 'NL'
AND flx.fac_locale_xsl_module(+) = 'ASP';
CREATE OR REPLACE VIEW FMHN_V_LABEL_DEEL_RES_DATUM
(
FCLT_F_DATUM,
INS_DEEL_KEY,
RES_DEEL_OMSCHRIJVING,
WAARDE1,
WAARDE,
WAARDE3,
WAARDE_HTML,
WAARDE_HTML2,
TOOLTIP
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datums.datum
fclt_f_datum,
isd.res_ins_deel_key
ins_deel_key,
res_deel_omschrijving,
CHR (10)
|| LISTAGG (
DECODE (
naam,
NULL, '',
'[s40]'
|| naam
|| ' ('
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| '-'
|| DECODE (TRUNC (res_rsv_deel_tot),
TRUNC (res_rsv_deel_van), TO_CHAR (res_rsv_deel_tot, 'HH24:MI'),
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|| ')'),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde1,
CHR (10)
|| LISTAGG (
DECODE (naam,
NULL, '',
'[s40]' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde2,
CHR (10)
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde3,
LISTAGG (
DECODE (
naam,
NULL, '',
'<span class="body">'
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| ' '
|| naam
|| '</span>'),
'<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde_html,
LISTAGG (DECODE (naam, NULL, '', '<span class="body">' || naam || '</span>'), '<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde_html2,
res_deel_opmerking
FROM res_v_aanwezigdeel isd,
datums,
(SELECT datum,
res_ins_deel_key,
DECODE (p.prs_perslid_visibility,
1, pf.prs_perslid_naam_friendly,
a.prs_afdeling_omschrijving)
naam,
res_rsv_deel_van,
res_rsv_deel_tot
FROM res_v_aanwezigdeel r,
res_v_aanwezigrsv_deel rrd,
res_rsv_ruimte rrr,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
datums
WHERE r.res_deel_key = rrd.res_deel_key
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot ) res -- Bezet
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+) AND datums.datum = res.datum(+)
GROUP BY datums.datum, isd.res_ins_deel_key, res_deel_omschrijving, res_deel_opmerking;
CREATE OR REPLACE VIEW fmhn_v_dwh_gui_counter
(
key,
groep,
trefwoord,
zoekresultaat,
keuze,
datum,
jaar,
maand,
aantal
)
AS
SELECT fac_gui_counter_key,
fac_gui_counter_group,
fac_gui_counter_info,
fac_gui_counter_result,
fac_gui_counter_choice,
datum,
TO_NUMBER (TO_CHAR (datum, 'yyyy')) AS jaar,
TO_NUMBER (TO_CHAR (datum, 'MM')) AS maand,
COUNT
FROM (SELECT fgc.fac_gui_counter_key,
fgc.fac_gui_counter_group,
fgc.fac_gui_counter_info,
fgc.fac_gui_counter_refkey,
choice.fac_gui_counter_info fac_gui_counter_choice,
result.fac_gui_counter_info fac_gui_counter_result,
TRUNC (fac_gui_counter_date) datum,
1 AS COUNT,
fgc.prs_perslid_key,
prs_perslid_naam_full,
pfu.prs_srtperslid_omschrijving
FROM fac_gui_counter fgc,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_srtperslid pfu,
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
FROM fac_gui_counter fgc
WHERE fac_gui_counter_info IS NOT NULL
AND fac_gui_counter_group = 'searchchoice') choice,
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
FROM fac_gui_counter fgc
WHERE fac_gui_counter_info IS NOT NULL
AND fac_gui_counter_group = 'searchresult') result
WHERE fac_gui_counter_group = 'search'
AND fgc.fac_gui_counter_info IS NOT NULL
AND fgc.prs_perslid_key = pf.prs_perslid_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = pfu.prs_srtperslid_key
AND choice.fac_gui_counter_refkey(+) =
fgc.fac_gui_counter_key
AND result.fac_gui_counter_refkey(+) =
fgc.fac_gui_counter_key
UNION ALL
SELECT fgc.fac_gui_counter_key,
fgc.fac_gui_counter_group,
COALESCE (fac_menu_altlabel, lcl.l (fac_menuitems_label)),
fgc.fac_gui_counter_refkey,
NULL,
NULL,
TRUNC (fgc.fac_gui_counter_date) datum,
fgc.fac_gui_counter_count,
fgc.prs_perslid_key,
prs_perslid_naam_full,
pfu.prs_srtperslid_omschrijving
FROM fac_gui_counter fgc,
prs_v_perslid_fullnames pf,
fac_menu m,
fac_menuitems mi,
prs_perslid p,
prs_srtperslid pfu
WHERE fgc.fac_gui_counter_group = 'menu'
AND fgc.prs_perslid_key = pf.prs_perslid_key(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = pfu.prs_srtperslid_key
AND m.fac_menu_key = fac_gui_counter_refkey
AND mi.fac_menuitems_key(+) = m.fac_menuitems_key
AND fgc.fac_gui_counter_refkey IN (461, 462, 10838));
CREATE OR REPLACE VIEW FMHN_V_INSOUT_TWS
(
discipline,
objectgroep,
objectsoort,
deel_key,
identificatie,
opmerking,
datum_inname,
jaar_inname,
maand_inname,
plaats,
datum_uitgifte,
jaar_uitgifte,
maand_uitgifte,
uitgegeven_aan,
afdeling,
kostenplaats,
kostendrager,
departement,
standplaats,
qr_code,
debiteur
)
AS
SELECT disc.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_omschrijving,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
DECODE (ins_alg_ruimte_type,
'R', fac.gettrackingdate ('INSINN', d.ins_deel_key),
NULL)
AS datum_inname,
DECODE (
ins_alg_ruimte_type,
'R', TO_CHAR (fac.gettrackingdate ('INSINN', d.ins_deel_key),
'YYYY'),
NULL)
AS jaar_inname,
DECODE (
ins_alg_ruimte_type,
'R', TO_CHAR (fac.gettrackingdate ('INSINN', d.ins_deel_key),
'MM'),
NULL)
AS maand_inname,
DECODE (
ins_alg_ruimte_type,
'R', r.alg_plaatsaanduiding,
DECODE (r.alg_plaatsomschrijving,
NULL, NULL,
' (' || r.alg_plaatsomschrijving || ')'), NULL)
AS plaats,
DECODE (ins_alg_ruimte_type,
'P', fac.gettrackingdate ('INSOUT', d.ins_deel_key),
NULL)
AS datum_uitgifte,
DECODE (
ins_alg_ruimte_type,
'P', TO_CHAR (fac.gettrackingdate ('INSOUT', d.ins_deel_key),
'YYYY'),
NULL)
AS jaar_uitgifte,
DECODE (
ins_alg_ruimte_type,
'P', TO_CHAR (fac.gettrackingdate ('INSOUT', d.ins_deel_key),
'MM'),
NULL)
AS datum_uitgifte,
DECODE (ins_alg_ruimte_type, 'P', pf.prs_perslid_naam_full, NULL)
AS uitgegeven_aan,
DECODE (ins_alg_ruimte_type,
'P', a.prs_afdeling_omschrijving,
NULL)
AS afdeling,
DECODE (
ins_alg_ruimte_type,
'P', DECODE (
fa.mincode,
'01', (CASE
WHEN fa.idmlevel >= 7
THEN
REGEXP_SUBSTR (
fa.pad,
'^[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/[^/]*')
ELSE
fa.pad
END),
fa.pad),
NULL)
AS kostenplaats,
kd.kostendrager_vervoer,
DECODE (ins_alg_ruimte_type, 'P', ud.fac_usrdata_omschr, NULL)
AS departement,
DECODE (ins_alg_ruimte_type, 'P', l.alg_gebouw_naam, NULL)
AS standplaats,
kmd1.ins_kenmerkdeel_waarde AS qr_code,
DECODE (ins_alg_ruimte_type, 'P', SUBSTR(a2d.debiteur,INSTR(a2d.debiteur, '/')+1), NULL)
AS debiteur
FROM ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline disc,
alg_v_allonrgoed_gegevens r,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
prs_kenmerklink pkl,
fac_usrdata ud,
fmhn_v_rap_afd2debnr kd,
alg_v_allonrgoed_gegevens l,
ins_kenmerkdeel kmd1,
fmhn_v_rap_afd2debnr a2d,
fmhn_v_rap_idm_afdboom fa
WHERE d.ins_deel_verwijder IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = disc.ins_discipline_key
AND sg.ins_srtgroep_key = 281 -- Objectgroep Bureaustoelen onder Meubilair
AND d.ins_alg_ruimte_key = r.alg_ruimte_key(+)
AND d.ins_alg_ruimte_key = pf.prs_perslid_key(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_afdeling_key = a2d.prs_afdeling_key(+)
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND a.prs_afdeling_key = pkl.prs_link_key(+)
AND pkl.prs_kenmerk_key = 1000 --Kenmerk Ministeriecode
AND pkl.prs_kenmerklink_waarde = ud.fac_usrdata_key
AND a.prs_afdeling_key = kd.prs_afdeling_key(+)
AND p.alg_onroerendgoed_keys = l.alg_onroerendgoed_keys(+)
AND d.ins_deel_key = kmd1.ins_deel_key(+)
AND kmd1.ins_kenmerk_key = 261 --Kenmerk QR code bij Meubilair
AND kmd1.ins_kenmerkdeel_verwijder IS NULL
AND fa.prs_afdeling_key = a2d.prs_afdeling_key;
CREATE OR REPLACE VIEW FMHN_V_INSOUT_DIENSTFIETS
(
DISCIPLINE,
OBJECTGROEP,
OBJECTSOORT,
DEEL_KEY,
DIENSTFIETSNUMMER,
OPMERKING,
DATUM_INNAME,
TIJD_INNAME,
PLAATS,
DATUM_UITGIFTE,
TIJD_UITGIFTE,
UITGEGEVEN_AAN,
UITGEGEVEN_DOOR
)
AS
SELECT distinct disc.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_omschrijving,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
DECODE (ins_alg_ruimte_type,
'R', fac.gettrackingdate ('INSINN', d.ins_deel_key),
NULL)
AS datum_inname,
DECODE (ins_alg_ruimte_type,
'R', fac.gettrackingdate ('INSINN', d.ins_deel_key),
NULL)
AS tijd_inname,
DECODE (
ins_alg_ruimte_type,
'R', r.alg_plaatsaanduiding,
DECODE (r.alg_plaatsomschrijving,
NULL, NULL,
' (' || r.alg_plaatsomschrijving || ')'), NULL)
AS plaats,
DECODE (ins_alg_ruimte_type,
'P', fac.gettrackingdate ('INSOUT', d.ins_deel_key),
NULL)
AS datum_uitgifte,
DECODE (ins_alg_ruimte_type,
'P', fac.gettrackingdate ('INSOUT', d.ins_deel_key),
NULL)
AS tijd_uitgifte,
DECODE (ins_alg_ruimte_type, 'P', pf.prs_perslid_naam_full, NULL)
AS uitgegeven_aan,
DECODE (ins_alg_ruimte_type,
'P',
(SELECT pd.prs_perslid_naam_full
FROM (SELECT MAX (fac_tracking_key) AS fac_tracking_key
FROM fac_tracking
WHERE fac_srtnotificatie_key = 130 -- INSOUT
AND fac_tracking_refkey = d.ins_deel_key) x,
fac_tracking t,
prs_v_perslid_fullnames pd
WHERE x.fac_tracking_key = t.fac_tracking_key
AND t.prs_perslid_key = pd.prs_perslid_key),
NULL)
AS uitgegeven_door
FROM ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline disc,
alg_v_allonrgoed_gegevens r,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k
WHERE d.ins_deel_verwijder IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = disc.ins_discipline_key
AND sg.ins_srtgroep_key = 42 -- Objectgroep Dienstfietsen onder Vervoermiddelen
AND d.ins_alg_ruimte_key = r.alg_ruimte_key(+)
AND d.ins_alg_ruimte_key = pf.prs_perslid_key(+)
AND pf.prs_perslid_key = p.prs_perslid_key(+)
AND p.prs_afdeling_key = a.prs_afdeling_key(+)
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
CREATE OR REPLACE VIEW CAD_V_THEMA_DEEL_RES_TODAY
(
FCLT_F_DATUM,
INS_DEEL_KEY,
MIN_VAN,
MAX_TOT,
WAARDE1,
WAARDE,
WAARDE3
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datum
fclt_f_datum,
ins_deel_key,
MIN (res_rsv_deel_van)
min_van,
MAX (res_rsv_deel_tot)
max_tot,
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0 ELSE 3 -- hele dag
END
waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
ELSE 3 -- hele dag
END
waarde,
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
waarde3
FROM (SELECT datums.datum,
res_ins_deel_key ins_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot
FROM res_v_aanwezigdeel r,
ins_deel d,
datums,
(SELECT datum,
res_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot
FROM datums, res_v_aanwezigrsv_deel rrd
WHERE res_rsv_deel_van > TRUNC (SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
AND datums.datum = blokkerend.datum(+)
AND datums.datum = TRUNC (SYSDATE) -- Deze view: alleen vandaag!
AND ( r.res_deel_vervaldatum IS NULL
OR r.res_deel_vervaldatum > datums.datum)
AND d.ins_deel_key = r.res_ins_deel_key)
GROUP BY datum, ins_deel_key
ORDER BY datum, ins_deel_key;
CREATE OR REPLACE VIEW FMHN_V_LABEL_DEEL_RES_TODAY
(
FCLT_F_DATUM,
INS_DEEL_KEY,
RES_DEEL_OMSCHRIJVING,
WAARDE1,
WAARDE,
WAARDE3,
WAARDE_HTML,
WAARDE_HTML2,
TOOLTIP
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datums.datum fclt_f_datum,
isd.res_ins_deel_key ins_deel_key,
res_deel_omschrijving,
CHR (10)
|| LISTAGG (
DECODE (
naam,
NULL, '',
'[s40]'
|| naam
|| ' ('
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| '-'
|| DECODE (
TRUNC (res_rsv_deel_tot),
TRUNC (res_rsv_deel_van), TO_CHAR (
res_rsv_deel_tot,
'HH24:MI'),
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|| ')'),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde1,
CHR (10)
|| LISTAGG (
DECODE (
naam,
NULL, '',
'[s40]'
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| ' '
|| naam),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde2,
CHR (10)
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde3,
LISTAGG (
DECODE (
naam,
NULL, '',
'<span class="body">'
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| ' '
|| naam
|| '</span>'),
'<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde_html,
LISTAGG (
DECODE (naam,
NULL, '',
'<span class="body">' || naam || '</span>'),
'<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde_html2,
res_deel_opmerking
FROM res_v_aanwezigdeel isd,
datums,
(SELECT datum,
res_ins_deel_key,
DECODE (p.prs_perslid_visibility,
1, pf.prs_perslid_naam_friendly,
a.prs_afdeling_omschrijving) naam,
res_rsv_deel_van,
res_rsv_deel_tot
FROM res_v_aanwezigdeel r,
res_v_aanwezigrsv_deel rrd,
res_rsv_ruimte rrr,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
datums
WHERE r.res_deel_key = rrd.res_deel_key
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot) res -- Bezet
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+)
AND datums.datum = res.datum(+)
AND datums.datum = TRUNC (SYSDATE) -- Deze view: alleen vandaag!
GROUP BY datums.datum,
isd.res_ins_deel_key,
res_deel_omschrijving,
res_deel_opmerking;
CREATE OR REPLACE VIEW FMHN_V_NOTI_BHVERS
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT DISTINCT 'CUST27',
NULL,
NULL,
'Automatische bericht bij status verandering van aspirant naar basis bhv',
d.ins_deel_key,
NULL,
NULL,
x.xemail,
NULL,
NULL
FROM fac_tracking t,
ins_deel d,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 901 -- Eigen tabel 'NotificatieBHVERS'
AND fac_usrdata_verwijder IS NULL) x
WHERE d.ins_deel_key = t.fac_tracking_refkey
AND INSTR (UPPER (t.fac_tracking_oms),
'ASPIRANT BHV --> BASIS BHV') >
0 -- Het profiel Aspirant BHV gezet naar Basis BHV
AND t.fac_srtnotificatie_key = 128 --INSUPD
AND t.fac_tracking_datum > (SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (
fac_notificatie_job_view) =
'FMHN_V_NOTI_BHVERS')
UNION ALL
SELECT DISTINCT 'CUST28',
NULL,
NULL,
'Automatisch bericht bij locatieverandering bhv<68>er in de bhv tool',
d.ins_deel_key,
NULL,
NULL,
x.xemail,
NULL,
NULL
FROM fac_tracking t,
ins_deel d,
(SELECT fac_usrdata_omschr2 AS xemail
FROM fac_usrdata
WHERE fac_usrtab_key = 901 -- Eigen tabel 'NotificatieBHVERS'
AND fac_usrdata_verwijder IS NULL) x
WHERE d.ins_deel_key = t.fac_tracking_refkey
AND INSTR (UPPER (t.fac_tracking_oms), 'BHV-ER VOOR LOCATIE: ') >
0 -- Het profiel Aspirant BHV gezet naar Basis BHV
AND t.fac_srtnotificatie_key = 128 --INSUPD
AND t.fac_tracking_datum > (SELECT fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE UPPER (
fac_notificatie_job_view) =
'FMHN_V_NOTI_BHVERS');
CREATE OR REPLACE VIEW FMHN_V_BEZOEKERS
AS
SELECT b.locatie_naam locatie,
b.CONTACT naam_contactpersoon,
pba.prs_perslid_email email_contactpersoon,
b.bezoeker_naam naam_bezoeker,
b.bezoeker_bedrijf bedrijf_bezoeker,
b.bezoek_van datum_bezoek,
b.bezoek_van tijd_bezoek,
bac.bez_actie_omschrijving actie
FROM BEZ_V_UDR_BEZOEKER b,
bez_afspraak ba,
prs_perslid pba,
bez_actie bac
WHERE ba.bez_afspraak_key = b.afspraak_key
AND ba.bez_actie_key = bac.bez_actie_key
AND ba.BEZ_AFSPRAAK_CONTACT_KEY = pba.prs_perslid_key;
CREATE OR REPLACE VIEW FMHN_V_RAP_DVL_KLANTEN_SUM
AS
SELECT TO_CHAR (aanmaakdatum, 'YYYY') AS invoerjaar,
COUNT (DISTINCT email) AS aantal
FROM fmhn_v_rap_dvl_klanten
GROUP BY TO_CHAR (aanmaakdatum, 'YYYY')
ORDER BY 1;
CREATE OR REPLACE VIEW FMHN_V_RAP_DVL_KLANTEN_SUM_DAY
(
DATUM,
INVOERJAAR,
AANTAL
)
AS
SELECT TRUNC (aanmaakdatum),
TO_CHAR (aanmaakdatum, 'YYYY') AS invoerjaar,
COUNT (DISTINCT email) AS aantal
FROM fmhn_v_rap_dvl_klanten
GROUP BY TRUNC (aanmaakdatum), TO_CHAR (aanmaakdatum, 'YYYY')
ORDER BY 1;
CREATE OR REPLACE VIEW FMHN_V_MELDBRON
(
MELDING_KEY,
BRON,
MELDINGGROEP,
DATUM,
LOCATIE_KEY,
LOCATIE,
GEBOUW_TERREIN,
PLAATS,
DISCIPLINE_KEY,
DISCIPLINE,
VAKGROEP,
STDMELDING,
ONDERWERP,
ACTIEVE_BEHANDELAAR,
AANVRAGER
)
AS
SELECT m.mld_melding_key,
b.bron,
smg.mld_stdmeldinggroep_naam,
TRUNC (mld_melding_datum),
l.alg_locatie_key,
l.alg_locatie_omschrijving,
COALESCE (onrg.alg_gebouw_naam, onrg.alg_terreinsector_naam),
onrg.alg_plaatsaanduiding,
sd.ins_srtdiscipline_omschrijving,
disc.ins_discipline_key,
disc.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
m.mld_melding_onderwerp,
beh.prs_dep_afd,
aanv.prs_dep_afd
FROM mld_melding m,
mld_stdmelding sm,
mld_kenmerkmelding kmm,
mld_kenmerk km,
mld_srtkenmerk sk,
MLD_STDMELDINGGROEP smg,
alg_locatie l,
alg_v_onroerendgoed_gegevens onrg,
ins_srtdiscipline sd,
ins_tab_discipline disc,
fmhn_v_idm_medewerker beh,
fmhn_v_idm_medewerker aanv,
(SELECT fac_usrdata_key AS bron_key, fac_usrdata_omschr2 AS bron
FROM fac_usrdata
WHERE fac_usrtab_key = 1101 -- Eigen tabel 'BronAanvraag'
AND fac_usrdata_verwijder IS NULL) b
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_key = 882 -- Kenmerksoort Bron aanvraag
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m.mld_melding_key
AND fac.safe_to_number (kmm.mld_kenmerkmelding_waarde) =
b.bron_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND disc.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.prs_perslid_key = aanv.prs_perslid_key
AND COALESCE (m.mld_melding_behandelaar2_key,
m.mld_melding_behandelaar_key) =
beh.prs_perslid_key(+);
CREATE OR REPLACE VIEW FMHN_V_UITGIFTE
(
UITGIFTE_KEY,
DEEL_KEY,
DISCIPLINE,
GROEP,
OBJECTSOORT,
OBJECT,
UITGIFTE,
INNAME,
INNAME_UITLEENREGISTRATIE,
GEPLANDE_INNAME,
PERSOON,
CONTACTPERSOON,
AFDELING_OMSCHRIJVING,
AFDELING_CODE,
BEDRIJF_NAAM,
VERWIJDERDATUM,
VERVALDATUM
)
AS
SELECT du.ins_deel_uitgifte_key uitgifte_key,
du.ins_deel_key deel_key,
dis.ins_discipline_omschrijving discipline,
sg.ins_srtgroep_omschrijving groep,
sd.ins_srtdeel_omschrijving objectsoort,
d.ins_deel_omschrijving object,
du.ins_deel_uitgifte_begin uitgifte,
coalesce(d.ins_deel_vervaldatum, d.ins_deel_verwijder, du.ins_deel_uitgifte_ingeleverd) inname,
du.ins_deel_uitgifte_ingeleverd inname_uitleenregistratie,
du.ins_deel_uitgifte_eind_plan geplande_inname,
pf.prs_perslid_naam_friendly persoon,
DECODE (cp.prs_contactpersoon_voornaam,
NULL, '',
cp.prs_contactpersoon_voornaam || ' ')
|| DECODE (cp.prs_contactpersoon_tussenv,
NULL, '',
cp.prs_contactpersoon_tussenv || ' ')
|| cp.prs_contactpersoon_naam contactpersoon,
a.prs_afdeling_omschrijving afdeling_omschrijving,
a.prs_afdeling_naam afdeling_code,
b.prs_bedrijf_naam bedrijf_naam,
d.ins_deel_verwijder,
d.ins_deel_vervaldatum
FROM ins_deel_uitgifte du,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_discipline dis,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling a,
prs_bedrijf b,
prs_contactpersoon cp
WHERE du.ins_deel_key = d.ins_deel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND d.ins_discipline_key = dis.ins_discipline_key
AND sg.ins_discipline_key = dis.ins_discipline_key
AND du.prs_perslid_key = p.prs_perslid_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key(+)
AND p.prs_afdeling_key = a.prs_afdeling_key(+)
AND a.prs_bedrijf_key = b.prs_bedrijf_key(+)
AND du.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
ORDER BY du.ins_deel_key, du.ins_deel_uitgifte_begin;
CREATE OR REPLACE VIEW fmhn_v_rap_dubbelemail
(
identificatie_persoon,
prs_perslid_email,
prs_perslid_aanmaak
)
AS
SELECT pk.prs_kenmerklink_waarde, p.prs_perslid_email, TRUNC(p.prs_perslid_aanmaak)
FROM prs_perslid p, prs_kenmerklink pk
WHERE p.prs_perslid_email IN
(SELECT email
FROM ( SELECT prs_perslid_email AS email,
COUNT (*) AS aantal
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
GROUP BY prs_perslid_email)
WHERE aantal > 1)
AND p.prs_perslid_email <> '@'
AND TRUNC (p.prs_perslid_aanmaak) >
TRUNC (TO_DATE ('01012023', 'DDMMYYYY'))
AND ( p.prs_perslid_inactief IS NULL
OR TRUNC (p.prs_perslid_inactief) > TRUNC (SYSDATE))
AND p.prs_perslid_key = pk.prs_link_key
AND pk.prs_kenmerklink_verwijder IS NULL
AND pk.prs_kenmerklink_niveau = 'P'
AND pk.prs_kenmerk_key = 1009 -- Kenmerk 'Identificatie persoon'
ORDER BY p.prs_perslid_aanmaak DESC;
CREATE OR REPLACE VIEW fmhn_v_noti_dubbelemail
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile,
xsender,
attachments
)
AS
SELECT DISTINCT
'CUST29'
AS code,
NULL,
NULL,
'Attentie: er is een account (of meerdere accounts) die een dubbel emailadres heeft',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_view_name) = 'FMHN_V_RAP_DUBBELEMAIL')
rapportnr,
NULL,
'fmhfb@rijksoverheid.nl',
NULL,
NULL,
NULL
FROM fmhn_v_rap_dubbelemail x, fac_notificatie_job nj
WHERE UPPER (fac_notificatie_job_view) = 'FMHN_V_NOTI_DUBBELEMAIL'
-- AND ( x.prs_perslid_aanmaak > nj.fac_notificatie_job_lastrun --Toch herzien: als een emaildres gewijzigd wordt, wijzigt de aanmaakdatum niet
-- OR nj.fac_notificatie_job_lastrun IS NULL)
AND (SELECT COUNT (*) FROM fmhn_v_rap_dubbelemail) > 0;
CREATE OR REPLACE VIEW FMHN_V_NOTI_RES_DICTU
(
SENDER,
RECEIVER,
TEXT,
CODE,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL,
NULL,
'Er is een nieuwe reservering voor '
|| TO_CHAR (rrd.res_rsv_deel_van, 'dd-mm-yyyy')
|| ', met reservering nummer '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr,
'RES2BO',
rrr.res_reservering_key,
rrr.res_rsv_ruimte_key,
SUBSTR(ba.prs_bedrijfadres_url, INSTR(ba.prs_bedrijfadres_url, 'mailto:') + LENGTH('mailto:')) prs_bedrijfadres_url,
NULL
FROM res_rsv_deel rrd,
res_deel rd,
res_disc_params rdp,
res_rsv_ruimte rrr,
fac_notificatie_job nj,
prs_bedrijfadres ba
WHERE rrd.res_rsv_deel_verwijder IS NULL
AND rd.res_deel_key = rrd.res_deel_key
AND rd.res_discipline_key = rdp.res_ins_discipline_key
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rdp.prs_bedrijf_key = 560 --Min.v. Economische Zaken en Klimaat Dienst ICTU
AND rrr.res_status_fo_key NOT IN (3, 4) --Niet geblokkeerd of vervallen
AND nj.fac_notificatie_job_view = 'FMHN_V_NOTI_RES_DICTU'
AND ( nj.fac_notificatie_job_lastrun IS NULL
OR rrd.res_rsv_deel_aanmaak > nj.fac_notificatie_job_lastrun)
AND ba.prs_bedrijf_key = rdp.prs_bedrijf_key
AND ba.prs_bedrijfadres_type = 'N';
CREATE OR REPLACE VIEW fmhn_v_npq_notsend
(
res_rsv_ruimte_key,
TYPE,
nummer,
omschrijving,
laatste_datum_niet_verstuurd
)
AS
SELECT rrr.res_rsv_ruimte_key,
'reservering',
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_omschrijving,
x.datum
FROM res_rsv_ruimte rrr,
( SELECT t.fac_tracking_refkey, MAX (t.fac_tracking_datum) AS datum
FROM fac_tracking t
WHERE ( t.fac_tracking_oms LIKE
'%PC: De reservering is niet succesvol verstuurd%'
OR t.fac_tracking_oms LIKE
'%PC: Het artikel is niet succesvol verstuurd%')
GROUP BY t.fac_tracking_refkey) x
WHERE x.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND (SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE ( t.fac_tracking_oms LIKE
'%PC: De reservering is niet succesvol verstuurd%'
OR t.fac_tracking_oms LIKE
'%PC: Het artikel is niet succesvol verstuurd%')
AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey
AND TRUNC (t.fac_tracking_datum) >
TRUNC (SYSDATE) - 365) >
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE ( t.fac_tracking_oms LIKE
'%PC: De reservering is succesvol verstuurd%'
OR t.fac_tracking_oms LIKE
'%PC: Het artikel is succesvol verstuurd%')
AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey)
UNION ALL
SELECT o.mld_opdr_key,
'opdracht',
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
o.mld_opdr_omschrijving,
x.datum
FROM mld_opdr o,
( SELECT t.fac_tracking_refkey, MAX (t.fac_tracking_datum) AS datum
FROM fac_tracking t
WHERE ( t.fac_tracking_oms LIKE
'%PC: De offerte opdracht is niet succesvol verstuurd%'
OR t.fac_tracking_oms LIKE
'%PC: De uitvoerings opdracht is niet succesvol verstuurd%')
GROUP BY t.fac_tracking_refkey) x
WHERE x.fac_tracking_refkey = o.mld_opdr_key
AND (SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE ( t.fac_tracking_oms LIKE
'%PC: De offerte opdracht is niet succesvol verstuurd%'
OR t.fac_tracking_oms LIKE
'%PC: De uitvoerings opdracht is niet succesvol verstuurd%')
AND o.mld_opdr_key = t.fac_tracking_refkey
AND TRUNC (t.fac_tracking_datum) >
TRUNC (SYSDATE) - 365) >
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE ( t.fac_tracking_oms LIKE
'%PC: De offerte opdracht is succesvol verstuurd%'
OR t.fac_tracking_oms LIKE
'%PC: De uitvoerings opdracht is succesvol verstuurd%')
AND o.mld_opdr_key = t.fac_tracking_refkey)
ORDER BY datum DESC;
CREATE OR REPLACE VIEW FMHN_V_PERS_VERPLICHTING
(
PRS_PERSLID_KEY,
NAAM,
PERSONEELSNR,
FUNCTIE,
TELEFOON,
MINISTERIE,
ORGANISATIE,
KOSTENPLAATS,
INGANGSDATUM,
EINDDATUM,
INACTIEFDATUM,
AANTAL_VERPLICHTINGEN,
VERPLICHTINGEN
)
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 || ')')
naam,
p.prs_perslid_nr,
f.prs_srtperslid_omschrijving,
p.prs_perslid_telefoonnr,
ud.fac_usrdata_omschr,
a.prs_afdeling_omschrijving,
k.prs_kostenplaats_nr,
p.prs_perslid_ingangsdatum,
p.prs_perslid_einddatum,
prs_perslid_inactief,
COUNT (v.item),
SUBSTR (
LISTAGG (m.fac_message_text || ' ' || v.item,
'; ' || CHR (13)
ON OVERFLOW TRUNCATE)
WITHIN GROUP (ORDER BY v.xmlnode, v.item),
0,
4000)
FROM prs_v_aanwezigperslid p
JOIN prs_afdeling a ON a.prs_afdeling_key = p.prs_afdeling_key
JOIN prs_kostenplaats k
ON k.prs_kostenplaats_key = a.prs_kostenplaats_key
LEFT JOIN prs_v_verplichting v
ON v.prs_perslid_key = p.prs_perslid_key
JOIN fac_message m ON m.fac_message_code = v.fac_message_code
JOIN prs_kenmerklink kl ON kl.prs_link_key = p.prs_perslid_key --tbv ministeriecode
JOIN fac_usrdata ud
ON ud.fac_usrdata_key = kl.prs_kenmerklink_waarde
JOIN prs_srtperslid f
ON f.prs_srtperslid_key = p.prs_srtperslid_key
WHERE prs_kenmerk_key = 1008 -- Ministeriecode
GROUP BY p.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_voorletters,
p.prs_perslid_tussenvoegsel,
p.prs_perslid_voornaam,
p.prs_perslid_nr,
f.prs_srtperslid_omschrijving,
p.prs_perslid_telefoonnr,
ud.fac_usrdata_omschr,
a.prs_afdeling_omschrijving,
k.prs_kostenplaats_nr,
p.prs_perslid_ingangsdatum,
p.prs_perslid_einddatum,
prs_perslid_inactief;
CREATE OR REPLACE VIEW FMHN_V_RES_AANVRAAG
AS
SELECT rrr.res_rsv_ruimte_key
key,
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key)
locatie,
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key)
gebouw,
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key)
gebouw_code,
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key)
verdieping,
r2a.ruimte_nr,
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
resnr,
TRUNC (rrr.res_rsv_ruimte_van)
datum,
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI')
van,
TRUNC (rrr.res_rsv_ruimte_tot)
datum_tot,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI')
tot,
rrr.res_rsv_ruimte_omschrijving
omschrijving,
rrr.res_rsv_ruimte_bezoekers
aantal,
r2a.opstelling,
( SELECT LISTAGG (
rra.res_rsv_artikel_aantal
|| ' '
|| ra.res_artikel_omschrijving
|| ', '
|| CHR (10))
WITHIN GROUP (ORDER BY rra.res_rsv_artikel_aantal) AS artikel_lijst
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_verwijder IS NULL
AND ra.res_artikel_key = rra.res_artikel_key
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
GROUP BY res_rsv_ruimte_key)
voorzieningen,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key)
bestemd_voor,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
aanvrager,
(SELECT pc.prs_perslid_telefoonnr
FROM prs_perslid pc
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
aanvrager_telefoonnr,
(SELECT pc.prs_perslid_mobiel
FROM prs_perslid pc
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
aanvrager_mobiel,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
ra.res_activiteit_omschrijving
activiteit,
(SELECT MAX (kmw.res_kenmerkreservering_waarde)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw, res_kenmerk km
WHERE km.res_kenmerk_key = kmw.res_kenmerk_key
AND km.RES_SRTKENMERK_KEY = 21
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
referentie,
(SELECT MAX (kmw.res_kenmerkreservering_waarde)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw, res_kenmerk km
WHERE km.res_kenmerk_key = kmw.res_kenmerk_key
AND km.RES_SRTKENMERK_KEY = 41
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
telefoonnr_contactpersoon,
(SELECT MAX (kmw.res_kenmerkreservering_waarde)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw, res_kenmerk km
WHERE km.res_kenmerk_key = kmw.res_kenmerk_key
AND km.RES_SRTKENMERK_KEY = 1
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
toelichting,
(SELECT MAX (kmw.res_kenmerkreservering_waarde)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw, res_kenmerk km
WHERE km.res_kenmerk_key = kmw.res_kenmerk_key
AND km.RES_SRTKENMERK_KEY = 61
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
PC_nr_zaal,
(SELECT MAX (kmw.res_kenmerkreservering_waarde)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw, res_kenmerk km
WHERE km.res_kenmerk_key = kmw.res_kenmerk_key
AND km.RES_SRTKENMERK_KEY = 62
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
PC_nr_voorzieningen,
(SELECT MAX (p.PRS_DEP_AFD)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw,
res_kenmerk km,
FMHN_V_IDM_MEDEWERKER p
WHERE km.res_kenmerk_key = kmw.res_kenmerk_key
AND km.RES_SRTKENMERK_KEY = 162
AND fac.safe_to_number (kmw.res_kenmerkreservering_waarde) =
p.PRS_PERSLID_KEY
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
behandelaar,
(SELECT MAX (ud.fac_usrdata_omschr)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw,
res_kenmerk km,
fac_usrdata ud
WHERE km.res_kenmerk_key = kmw.res_kenmerk_key
AND km.RES_SRTKENMERK_KEY = 181
AND fac.safe_to_number (kmw.res_kenmerkreservering_waarde) =
ud.fac_usrdata_key
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
soort_evenement,
rrr.res_rsv_ruimte_verwijder
res_geannuleerd,
m2r.aanvraag_aanvrager,
m2r.aanvraag_opdrachtgever,
m2r.aanvraag_status,
m2r.aanvraag_toelichting,
m2r.aanvraag_afgewezen_door
FROM res_rsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
-- prs_afdeling a,
-- prs_afdeling an,
-- prs_v_afdeling_boom ab,
( SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE r.res_rsv_ruimte_verwijder IS NULL
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL
AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
(SELECT m.mld_melding_key,
m.res_rsv_ruimte_key,
(SELECT p.prs_dep_afd
FROM FMHN_V_IDM_MEDEWERKER p
WHERE p.prs_perslid_key = m.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL)
aanvraag_aanvrager,
(SELECT p.prs_dep_afd
FROM FMHN_V_IDM_MEDEWERKER p
WHERE p.prs_perslid_key = m.prs_perslid_key_voor
AND p.prs_perslid_verwijder IS NULL)
aanvraag_opdrachtgever,
ms.mld_statuses_omschrijving
aanvraag_status,
m.mld_melding_opmerking
aanvraag_toelichting,
(SELECT MAX (p.prs_dep_afd)
FROM fac_tracking t, FMHN_V_IDM_MEDEWERKER p
WHERE t.fac_srtnotificatie_key = 52 -- MLDREJ
AND t.prs_perslid_key = p.prs_perslid_key
AND t.fac_tracking_refkey = m.mld_melding_key)
aanvraag_afgewezen_door,
mld_melding_kto_key
FROM mld_melding m, mld_statuses ms
WHERE m.res_rsv_ruimte_key IS NOT NULL
AND ms.mld_statuses_key = m.mld_melding_status) m2r
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = m2r.res_rsv_ruimte_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
-- AND p.prs_afdeling_key = a.prs_afdeling_key
-- AND ab.prs_afdeling_key1 = an.prs_afdeling_key
-- AND ab.prs_afdeling_key = p.prs_afdeling_key
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
CREATE OR REPLACE VIEW FMHN_V_NOTI_KLANTVERZOEK
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
'MLDNEW',
NULL,
m.prs_perslid_key_voor,
'Melding '
|| m.mld_melding_key
|| ' aangemaakt'
|| DECODE (m.mld_melding_onderwerp,
NULL, NULL,
' - (' || m.mld_melding_onderwerp || ')'),
m.mld_melding_key,
NULL,
NULL,
NULL,
NULL
FROM mld_melding m,
(SELECT km.mld_kenmerkmelding_waarde, km.mld_melding_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 4841 --Kenmerk Onderwerp Klantverzoek
AND km.mld_kenmerkmelding_verwijder IS NULL) subj
WHERE m.mld_stdmelding_key = 1341 -- Registratie Klantverzoek
AND subj.mld_melding_key = m.mld_melding_key
AND subj.mld_kenmerkmelding_waarde IN ('6402', '6403', '6405', '6406') -- Ontvangstbevestiging bij Informatief Klantverzoek, Onvolledig klantverzoek, Parkeerkaarten en Rijkspas
AND m.mld_melding_key NOT IN
(SELECT t.fac_tracking_refkey
FROM fac_tracking t
WHERE LOWER (t.fac_tracking_oms) LIKE
'%notificatie mldnew verstuurd aan %'
AND t.fac_srtnotificatie_key = 202 --MLDTRK
AND t.fac_tracking_refkey = m.mld_melding_key)
UNION ALL
SELECT DISTINCT
'MLDAFM',
NULL,
m.prs_perslid_key_voor,
'Melding '
|| m.mld_melding_key
|| ' gereed'
|| DECODE (m.mld_melding_onderwerp,
NULL, NULL,
' - (' || m.mld_melding_onderwerp || ')'),
m.mld_melding_key,
NULL,
NULL,
NULL,
NULL
FROM mld_melding m,
(SELECT km.mld_kenmerkmelding_waarde, km.mld_melding_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 4841 --Kenmerk Onderwerp Klantverzoek
AND km.mld_kenmerkmelding_verwijder IS NULL) subj,
(SELECT km.mld_kenmerkmelding_waarde, km.mld_melding_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 4842 --Kenmerk Vervolgmelding gemaakt (J/N = 21/22)
AND km.mld_kenmerkmelding_verwijder IS NULL) vervolg
WHERE m.mld_stdmelding_key = 1341 -- Registratie Klantverzoek
AND m.mld_melding_key = subj.mld_melding_key
AND m.mld_melding_key = vervolg.mld_melding_key(+)
AND m.mld_melding_status IN (5, 6)
AND ( subj.mld_kenmerkmelding_waarde IN ('6401',
'6404',
'6405',
'6406',
'6407') -- Ontvangstbevestiging bij Informatief Klantverzoek, Reserveringsaanvraag, Parkeerkaarten, Rijkspas en Bezoekersvraag
OR ( subj.mld_kenmerkmelding_waarde IN ('6402', '6403') -- Ontvangstbevestiging bij Overig klantverzoek en Onvolledig klantverzoek
AND vervolg.mld_kenmerkmelding_waarde = '21'))
AND m.mld_melding_key NOT IN
(SELECT t.fac_tracking_refkey
FROM fac_tracking t
WHERE LOWER (t.fac_tracking_oms) LIKE
'%notificatie mldafm verstuurd aan %'
AND t.fac_srtnotificatie_key = 202 --MLDTRK
AND t.fac_tracking_refkey = m.mld_melding_key)
UNION ALL
SELECT DISTINCT
'MLDAFM',
NULL,
m.prs_perslid_key_voor,
'Melding '
|| m.mld_melding_key
|| ' actie gevraagd'
|| DECODE (m.mld_melding_onderwerp,
NULL, NULL,
' - (' || m.mld_melding_onderwerp || ')'),
m.mld_melding_key,
NULL,
NULL,
NULL,
NULL
FROM mld_melding m,
(SELECT km.mld_kenmerkmelding_waarde, km.mld_melding_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 4841 --Kenmerk Onderwerp Klantverzoek
AND km.mld_kenmerkmelding_verwijder IS NULL) subj,
(SELECT km.mld_kenmerkmelding_waarde, km.mld_melding_key
FROM mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 4842 --Kenmerk Vervolgmelding gemaakt (J/N = 21/22)
AND km.mld_kenmerkmelding_verwijder IS NULL) vervolg
WHERE m.mld_stdmelding_key = 1341 -- Registratie Klantverzoek
AND m.mld_melding_key = subj.mld_melding_key
AND m.mld_melding_key = vervolg.mld_melding_key(+)
AND m.mld_melding_status IN (5, 6)
AND ( subj.mld_kenmerkmelding_waarde IN ('6402', '6403') -- Ontvangstbevestiging bij Overig klantverzoek en Onvolledig klantverzoek
AND vervolg.mld_kenmerkmelding_waarde = '22')
AND m.mld_melding_key NOT IN
(SELECT t.fac_tracking_refkey
FROM fac_tracking t
WHERE LOWER (t.fac_tracking_oms) LIKE
'%notificatie mldafm verstuurd aan %'
AND t.fac_srtnotificatie_key = 202 --MLDTRK
AND t.fac_tracking_refkey = m.mld_melding_key);
CREATE OR REPLACE VIEW fmhn_v_wms_reserveringen
AS
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
reserveringsnr,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || '/' || r.alg_ruimte_nr
resnr_ruimtenr,
rrr.res_rsv_ruimte_aanmaak
aanmaak,
rrr.res_rsv_ruimte_van
van,
rrr.res_rsv_ruimte_tot
tot,
rrr.res_rsv_ruimte_bezoekers
deelnemers,
g.alg_gebouw_key,
g.alg_gebouw_code
gebouw_code,
g.alg_gebouw_naam
gebouw,
r.alg_ruimte_key,
r.alg_ruimte_nr
ruimte_nr,
r.alg_ruimte_omschrijving
ruimte_omschrijving,
rr.res_ruimte_nr
res_ruimte_omschrijving,
prs_perslid_naam_full
naam,
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key)
status_fo,
rrr.res_rsv_ruimte_verwijder
verwijder,
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t
WHERE t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND t.fac_srtnotificatie_key = 108 -- RESUPD
)
last_update_datum
FROM res_rsv_ruimte rrr,
prs_v_perslid_fullnames_all pf,
res_ruimte rr,
res_ruimte_opstelling rro,
res_alg_ruimte rar,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rar.res_ruimte_key = rro.res_ruimte_key
AND rar.alg_ruimte_key = r.alg_ruimte_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
AND rro.res_ruimte_opstel_verwijder IS NULL
AND rar.res_alg_ruimte_verwijder IS NULL;
CREATE OR REPLACE VIEW fmhn_v_rap_scherm_ek
AS
SELECT *
FROM ( SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
AS nummer,
rrr.res_rsv_ruimte_omschrijving
AS res_omschrijving,
rrr.res_rsv_ruimte_van
AS datum,
r2a.ruimte_nr
AS ruimte,
rrr.res_rsv_ruimte_van
AS van,
rrr.res_rsv_ruimte_tot
AS tot,
(SELECT MAX(rrg.alg_ruimte_nr) -- Voor locatie Eerste Kamer (daar is deze view voor) zijn er geen koppelzalen en daarom volstaat dit
FROM res_rsv_ruimte rrr2
JOIN res_ruimte_opstelling rro
ON rrr2.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
JOIN res_ruimte rr
ON rro.res_ruimte_key = rr.res_ruimte_key
JOIN res_alg_ruimte rar
ON rr.res_ruimte_key = rar.res_ruimte_key
JOIN alg_v_ruimte_gegevens rrg
ON rar.alg_ruimte_key = rrg.alg_ruimte_key
WHERE rrr2.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AS ruimte_nr,
(SELECT kenm.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kenm
WHERE kenm.res_kenmerkwaarde_verwijder IS NULL
AND kenm.res_kenmerk_key = 68
AND kenm.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AS toelichting
FROM res_v_aanwezigrsv_ruimte rrr
LEFT JOIN
( SELECT res_rsv_ruimte_key,
MAX (rr.res_ruimte_nr) AS ruimte_nr
FROM res_rsv_ruimte r
JOIN res_ruimte_opstelling ro
ON r.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
JOIN res_ruimte rr
ON ro.res_ruimte_key = rr.res_ruimte_key
WHERE r.res_rsv_ruimte_verwijder IS NULL
GROUP BY res_rsv_ruimte_key) r2a
ON rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key
WHERE EXISTS
(SELECT 1
FROM res_ruimte_opstelling ro
JOIN res_ruimte rr
ON ro.res_ruimte_key = rr.res_ruimte_key
JOIN res_alg_ruimte rar
ON rr.res_ruimte_key = rar.res_ruimte_key
JOIN alg_ruimte ar
ON rar.alg_ruimte_key = ar.alg_ruimte_key
JOIN alg_verdieping v
ON ar.alg_verdieping_key =
v.alg_verdieping_key
JOIN alg_gebouw g
ON v.alg_gebouw_key = g.alg_gebouw_key
JOIN alg_locatie l
ON g.alg_locatie_key = l.alg_locatie_key
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND l.alg_locatie_key = 161)
ORDER BY nummer,
res_omschrijving,
datum,
ruimte,
van,
tot,
ruimte_nr,
toelichting);
------ 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