Files
Customer/VBGO/vbgo.sql
Arthur Egberink ed972d8da2 VBGO#68790 -- Graag rapportage kopieren naar Vebego omgeving
svn path=/Customer/trunk/; revision=53224
2021-09-30 13:47:19 +00:00

784 lines
35 KiB
MySQL

--
-- $Id$
--
-- Script containing customer specific db-configuration for VBGO.
DEFINE thisfile = 'VBGO.SQL'
DEFINE dbuser = '^VBGO'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
-- Koppeling om persoonsgegevens in te lezen vanuit AD(?) van Yask.
CREATE OR REPLACE PROCEDURE vbgo_import_prs (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- v_alg_locatie_code 1
-- v_alg_gebouw_code 2
-- v_alg_verdieping_volgnr 3
-- v_alg_ruimte_nr 4
-- v_prs_werkplek_volgnr 5
-- v_prs_werkplek_omschrijving 6
-- v_prs_afdeling_naam 7
-- v_prs_perslid_naam 8
-- v_prs_perslid_tussenvoegsel 9
-- v_prs_perslid_voornaam 10
-- v_prs_perslid_voorletters 11
-- v_prs_perslid_partner_naam 12
-- v_prs_perslid_partner_tussenv 13
-- v_prs_naamgebruik_code 14
-- v_prs_perslid_geslacht 15
-- v_prs_perslid_telefoonnr 16
-- v_prs_perslid_mobiel 17
-- v_prs_perslid_email 18
-- v_prs_perslid_dienstverband 19
-- v_prs_perslid_nr 20
-- v_prs_srtperslid_omschrijving 21
-- v_prs_perslid_oslogin 22
-- v_prs_perslid_wachtwoord 23
-- v_prs_perslid_titel 24
-- v_prs_perslid_apikey 25
-- v_dummy 26
-- v_prs_kenmerk1 27
-- v_prs_kenmerk2 28
-- v_prs_kenmerk3 29
-- v_prs_kenmerk4 30
-- v_prs_kenmerk5 31
-- v_prs_kenmerk6 32
-- v_prs_kenmerk7 33
-- v_prs_kenmerk8 34
-- v_prs_kenmerk9 35
-- v_prs_kenmerk10 36
-- v_prs_kenmerk11 37
-- v_prs_kenmerk12 38
-- v_prs_kenmerk13 39
-- v_prs_kenmerk14 40
-- v_prs_kenmerk15 41
-- v_prs_kenmerk16 42
-- v_prs_kenmerk17 43
-- v_prs_kenmerk18 44
-- v_prs_kenmerk19 45
-- v_prs_kenmerk20 46
-- Voeg een lege regel toe anders wordt de eerste persoon geskipped.
--INSERT INTO fac_imp_file (fac_imp_file_line, fac_imp_file_index, fac_import_key)
-- VALUES ('Header', 0, p_import_key);
-- Afdeling-kolom kopieren naar extra kolom 11 (= kenmerk4)!
UPDATE fac_imp_file i
SET i.fac_imp_file_line =
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line || ';', ';', 1, 10))
|| ';'
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 3)
+ 1, INSTR (fac_imp_file_line, ';', 1, 4)
- INSTR (fac_imp_file_line, ';', 1, 3)
- 1)
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
-- Afdeling-kolom resetten (op 'XXX' want verplicht)!
UPDATE fac_imp_file i
SET i.fac_imp_file_line =
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 3))
|| 'XXX'
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 4))
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
-- Functie-kolom kopieren naar extra kolom 12 (= kenmerk5)!
UPDATE fac_imp_file i
SET i.fac_imp_file_line =
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line || ';', ';', 1, 11))
|| ';'
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 5)
+ 1, INSTR (fac_imp_file_line, ';', 1, 6)
- INSTR (fac_imp_file_line, ';', 1, 5)
- 1)
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
-- Functie-kolom resetten (op 'Medewerker' want verplicht)!
UPDATE fac_imp_file i
SET i.fac_imp_file_line =
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 5))
|| 'Medewerker'
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 6))
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
COMMIT;
-- Generieke import.
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
--'%UserPrincipalName;GivenName;SurName;Company;Department;Title;OfficePhone;Mobile;Mail;Maildomain%');
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;4;3;0;2;'
|| '0;0;0;0;0;7;8;9;0;0;'
|| '6;0;0;0;0;0;1;5;10;11;'
|| '12;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'%UserPrincipalName;GivenName;SurName;Company;Department;Title;OfficePhone;Mobile;Mail;Maildomain%');
-- Klantspecifieke aanpassingen.
-- Loginnaam-kolom volgens kenmerk1 gedeelte voor '@'!
UPDATE fac_imp_perslid i
SET i.prs_perslid_oslogin = SUBSTR (i.prs_kenmerk1, 1, INSTR (i.prs_kenmerk1, '@') - 1);
-- Afdeling-kolom bepalen via Company-kolom (in kenmerk4) -> ET (key=141) -> Afdeling-1!
UPDATE fac_imp_perslid i
SET i.prs_afdeling_naam =
(SELECT MAX (a.prs_afdeling_upper)
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-Company -> Afdeling-1
prs_afdeling a
WHERE ud.fac_usrtab_key = 141 -- AD2Afdeling
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk4)
AND UPPER (ud.fac_usrdata_omschr) = UPPER (a.prs_afdeling_naam)
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_verwijder IS NULL)
WHERE EXISTS
(SELECT 1
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-Company -> Afdeling-1
prs_afdeling a
WHERE ud.fac_usrtab_key = 141 -- AD2Afdeling
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk4)
AND UPPER (ud.fac_usrdata_omschr) = UPPER (a.prs_afdeling_naam)
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_verwijder IS NULL);
-- Functie-kolom volgens kenmerk5 anders 'Medewerker' (zoals hierboven gereset)!
UPDATE fac_imp_perslid i
SET i.prs_srtperslid_omschrijving = COALESCE (SUBSTR (i.prs_kenmerk5, 1, 60), i.prs_srtperslid_omschrijving);
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Inleesproces personen afgebroken!');
END vbgo_import_prs;
/
CREATE OR REPLACE PROCEDURE vbgo_update_prs (p_import_key IN NUMBER)
AS
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers (met
-- een personeelsnummer).
c_max_delta_percentage NUMBER (10) := 50; -- 50%!
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_prs_import NUMBER (10); -- #actieve personen na import!
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
-- Verwijderen personen niet in import als geldt: kwartaal niet ingelogd,
-- onder afgesproken afdelingen en met e-mail adres!
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_email
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_login, p.prs_perslid_aanmaak) < TRUNC (ADD_MONTHS (SYSDATE, -3), 'mm') -- Kwartaal niet ingelogd!
AND p.prs_afdeling_key IN (-1) -- Onder afgesproken afdelingen!
AND p.prs_perslid_email IS NOT NULL -- Met e-mail adres!
AND NOT EXISTS
(SELECT 1
FROM fac_imp_perslid
WHERE UPPER (prs_perslid_email) = UPPER (p.prs_perslid_email))
ORDER BY 2;
BEGIN
-- Bepaal aantal actieve personen in FACILITOR na import!
SELECT COUNT (DISTINCT prs_perslid_email)
INTO v_count_prs_import
FROM fac_imp_perslid
WHERE prs_perslid_email IS NOT NULL;
-- Bepaal aantal actieve personen in FACILITOR voor import!
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
INTO v_count_prs_actual
FROM prs_v_aanwezigperslid
WHERE prs_perslid_email IS NOT NULL;
IF (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage))
THEN
fac.imp_writelog (
p_import_key, 'E',
'Verschil tussen huidig aantal en te importeren aantal personen te groot!',
'- max. verschilpercentage = [' || TO_CHAR (c_max_delta_percentage) || '%]'
|| CHR (13) || CHR (10)
|| '- #personen/import = [' || TO_CHAR (v_count_prs_import) || ']'
|| CHR (13) || CHR (10)
|| '- #personen/huidig = [' || TO_CHAR (v_count_prs_actual) || ']');
RETURN;
END IF;
-- Generieke update (op e-mail adres).
prs.update_perslid (p_import_key, 'EMAIL', NULL);
/*
-- Toekennen autorisatiegroep!
--INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
-- SELECT p.prs_perslid_key, -1
-- FROM prs_perslid p
-- WHERE p.prs_afdeling_key = -1
-- AND NOT EXISTS
-- (SELECT 1
-- FROM fac_gebruikersgroep
-- WHERE fac_groep_key = -1
-- AND prs_perslid_key = p.prs_perslid_key);
--COMMIT;
-- Controleren dat geen leeg bestand is ontvangen!
--SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
--IF v_count > 100
--THEN
-- Verwijder personen die niet meer in de import voorkomen.
--FOR rec IN c_del
--LOOP
-- prs.delete_perslid (p_import_key, rec.prs_perslid_key);
--END LOOP;
--END IF;
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces personen afgebroken!');
END;
/
-- View voor reserveerbare (werkplek)OBJECTEN, het default thema met key 13
-- Deze core-view wordt direct als kleur-objecten-thema gebruikt, maar kan ook als basis voor een alternatief via worden gebruikt
-- Kijkt nu hard maximaal 42 dagen tov van nu vooruit, wat hopelijk even genoeg is voor alle situaties
-- De verschillende waardevarianten zijn presentatie alternatieven, evt meerdere regels onder elkaar
-- waarde1: Voor hele dagen: Vrij(0) of Bezet (3)
-- waarde: Voor halve dagen: Vrij(0), Ochtendbezet(1), MiddagBezet(2), Helemaalbezet(3) of het type werkplek (kenmerk bij deel)
-- waarde3: Voor tellen: Het aantal reservering op de dag, met 0 is dus Vrij
CREATE OR REPLACE VIEW vbgo_v_thema_wp_res_datum
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 FAC.safe_to_number(fac_usrdata_code)
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,
fac_usrdata_code
FROM res_v_aanwezigdeel r,
ins_deel d,
datums,
ins_kenmerkdeel kd,
fac_usrdata ud,
(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 (r.res_deel_vervaldatum IS NULL or r.res_deel_vervaldatum > datums.datum)
AND d.ins_deel_key = r.res_ins_deel_key
AND d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 1 -- type werkplek
AND FAC.safe_to_number(ins_kenmerkdeel_waarde) = ud.fac_usrdata_key)
GROUP BY datum, ins_deel_key, fac_usrdata_code
ORDER BY datum, ins_deel_key;
-- rapportage voor vergaderdisplays
CREATE OR REPLACE VIEW vbgo_v_rap_res_room_display
AS
SELECT prs_perslid_naam_friendly
res_rsv_ruimte_host_friendly,
res_ruimte_nr,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'Day')
dagvdweek,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'Month')
maand,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'YYYY')
jaar,
TO_CHAR (COALESCE (rrr.res_rsv_ruimte_van, SYSDATE), 'DD')
dag,
DECODE (rrr.res_rsv_ruimte_key, NULL, 'Vrij',
DECODE(SIGN(rrr.res_rsv_ruimte_van - SYSDATE), 1, 'Vrij', 'Bezet'))
status,
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi')
res_rsv_ruimte_van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi')
res_rsv_ruimte_tot,
rar.res_alg_ruimte_key
FROM res_ruimte rr,
res_rsv_ruimte rrr,
prs_v_perslid_fullnames pf,
res_alg_ruimte rar,
(SELECT *
FROM res_v_rsv_ruimte_2_alg_ruimte
WHERE res_rsv_ruimte_tot > SYSDATE
AND TRUNC(res_rsv_ruimte_van) = TRUNC(SYSDATE))
r2a
WHERE rr.res_ruimte_key = r2a.res_ruimte_key(+)
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key(+)
AND rr.res_ruimte_key = rar.res_ruimte_key;
-- Tijdelijke procedures om reserveringen uit Outlook in te lezen
CREATE OR REPLACE PROCEDURE vbgo_import_res (p_import_key IN NUMBER)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_afdelingscode VARCHAR2 (100);
v_afdelingsomschrijving VARCHAR2 (100);
v_afdelingsparent VARCHAR2 (100);
v_zaal VARCHAR2(1000);
v_starttijd VARCHAR2(100);
v_eindtijd VARCHAR2(100);
v_onderwerp VARCHAR2(1000);
v_organisator VARCHAR2(100);
v_uitgenodigd VARCHAR2(1000);
v_dummy VARCHAR2(1000);
v_perslid_key NUMBER;
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
-- Eerst de importtabel leegmaken
DELETE vbgo_imp_res;
FOR rec IN c
LOOP
BEGIN
v_errormsg := 'Fout FETCH te importeren rij';
v_newline := rec.fac_imp_file_line;
v_errormsg := 'Fout opvragen te importeren rij';
v_aanduiding := '';
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_fielddelimitor, v_zaal);
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
fac.imp_getfield (v_newline, c_fielddelimitor, v_starttijd);
fac.imp_getfield (v_newline, c_fielddelimitor, v_eindtijd);
fac.imp_getfield (v_newline, c_fielddelimitor, v_onderwerp);
fac.imp_getfield (v_newline, c_fielddelimitor, v_organisator);
fac.imp_getfield (v_newline, c_fielddelimitor, v_uitgenodigd);
v_aanduiding := v_zaal || '|' || v_starttijd || '|' || v_eindtijd;
v_errormsg :=
'Fout bij toevoegen te impoteren bedrijf/afdeling [' || v_aanduiding || ']';
BEGIN
SELECT MAX(prs_perslid_key)
INTO v_perslid_key
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND UPPER(prs_perslid_email) = UPPER(v_organisator);
EXCEPTION WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
'');
END;
INSERT INTO vbgo_imp_res (zaal,
starttijd,
eindtijd,
onderwerp,
organisator,
uitgenodigd)
VALUES (v_zaal,
v_starttijd,
v_eindtijd,
v_onderwerp,
v_organisator,
v_uitgenodigd);
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'');
END vbgo_import_res;
/
CREATE OR REPLACE PROCEDURE vbgo_update_res (p_import_key IN NUMBER)
AS
CURSOR c IS
SELECT *
FROM vbgo_imp_res
WHERE TO_DATE (starttijd, 'dd-mm-yyyy hh24:mi') > SYSDATE
AND starttijd NOT LIKE 'Starttijd';
v_ruimte_opstel_key NUMBER;
v_perslid_key NUMBER;
v_res_ruimte_key NUMBER;
v_rsv_ruimte_key NUMBER;
v_reservering_key NUMBER;
v_opmerking VARCHAR2(200);
v_aanduiding VARCHAR2 (100);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
BEGIN
FOR rec IN c
LOOP
BEGIN
v_opmerking := NULL;
v_aanduiding := rec.zaal || '-' || rec.starttijd;
v_errorhint := 'Opzoeken reserveerbare ruimte: ' || rec.zaal;
SELECT CASE SUBSTR (rec.zaal, 1, INSTR (rec.zaal, '@') - 1)
WHEN 'ams.jordaan' THEN 21 --AMS Vergaderruimte 2 - De Jordaan ams.jordaan@vebego.mail.onmicrosoft.com
WHEN 'AMS.Albert' THEN 41 --AMS Vergaderruimte 1 - Albert Cuyp AMS.Albert@vebego.mail.onmicrosoft.com
WHEN 'ams.dam' THEN 42 --AMS Vergaderruimte 3 - De dam ams.dam@vebego.mail.onmicrosoft.com
WHEN 'ams.vondelpark' THEN 61 --AMS Vergaderruimte 6 - Het vondelpark ams.vondelpark@vebego.mail.onmicrosoft.com
WHEN 'ams.rembrandtplein' THEN 62 --AMS Vergaderruimte 5 - Rembrandtplein ams.rembrandtplein@vebego.mail.onmicrosoft.com
WHEN 'ams.johan' THEN 63 --AMS Vergaderruimte 4 - Johan Cruijf Arena ams.johan@vebego.mail.onmicrosoft.com
WHEN 'Vergaderruimte.1.Eindhoven' THEN 81 --EIND Vergaderruimte 1 - Eindhoven Vergaderruimte.1.Eindhoven@hago.nl
WHEN 'Vergaderruimte.2.Eindhoven' THEN 101 --EIND Vergaderruimte 2 - Eindhoven Vergaderruimte.2.Eindhoven@hago.nl
WHEN 'Vergaderruimte.3.Eindhoven' THEN 121 --EIND Vergaderruimte 3 - Eindhoven Vergaderruimte.3.Eindhoven@hago.nl
WHEN 'ruimte1arn' THEN 141 --ARN Vergaderruimte 1 - Arnhem ruimte1arn@vebego.mail.onmicrosoft.com
WHEN '19' THEN 142 --EIND Vergaderruimte 4 - Eindhoven
WHEN 'ruimte2arn' THEN 143 --ARN Vergaderruimte 2 - Arnhem ruimte2arn@vebego.mail.onmicrosoft.com
WHEN 'ruimte3arn' THEN 144 --ARN Vergaderruimte 3 - Arnhem ruimte3arn@vebego.mail.onmicrosoft.com
WHEN '22' THEN 161 --EIND Combi ruimte 2&3 - Eindhoven
WHEN '23' THEN 161 --EIND Combi ruimte 2&3 - Eindhoven
WHEN 'Vergaderruimte1' THEN 181 --DB Vergaderruimte 1 - Den Bosch Vergaderruimte1@hagozorg.nl
WHEN '25' THEN 201 --DB Vergaderruimte 3 - Den Bosch
WHEN 'Vergaderruimte4' THEN 221 --DB Vergaderruimte 4 - Den Bosch Vergaderruimte4@hagozorg.nl
WHEN 'Vergaderruimte5' THEN 222 --DB Vergaderruimte 5 - Den Bosch Vergaderruimte5@hagozorg.nl
WHEN 'Vergaderkamer.Capelle.Hago.Zorg' THEN 223 --CAP Vergaderruimte ZW - Capelle Vergaderkamer.Capelle.Hago.Zorg@hagozorg.nl
WHEN 'Vergaderruimte6' THEN 224 --DB Vergaderruimte 6 - Den Bosch Vergaderruimte6@hagozorg.nl
WHEN 'Vergaderruimte1CAY' THEN 225 --CAP Vergaderruimte 1 - Capelle Vergaderruimte1CAY@hago.nl
WHEN 'Vergaderruimte7' THEN 226 --DB Vergaderruimte 7 - Den Bosch Vergaderruimte7@hagozorg.nl
WHEN 'Vergaderruimte2CAY' THEN 227 --CAP Vergaderruimte 2 - Capelle Vergaderruimte2CAY@hago.nl
WHEN 'Vergaderruimte8' THEN 228 --DB Vergaderruimte 8 - Den Bosch Vergaderruimte8@hagozorg.nl
WHEN '34' THEN 229 --CAP Spreekkamer - Capelle
WHEN 'Vergaderkamer.heerlen1' THEN 241 --HRL/8 Vergaderruimte 1 - Heerlen Vergaderkamer.heerlen1@hagozorg.nl
WHEN 'Vergaderkamer.heerlen2' THEN 242 --HRL/8 Vergaderruimte 2 - Heerlen Vergaderkamer.heerlen2@hagozorg.nl
WHEN 'Vergaderkamer.heerlen3' THEN 243 --HRL/8 Vergaderruimte 3 - Heerlen Vergaderkamer.heerlen3@hagozorg.nl
WHEN 'Vergaderkamer.heerlen4' THEN 244 --HRL/8 Vergaderruimte 4 - Heerlen Vergaderkamer.heerlen4@hagozorg.nl
WHEN 'Vergaderkamer.heerlen5' THEN 245 --HRL/8 Vergaderruimte 5 - Heerlen Vergaderkamer.heerlen5@hagozorg.nl
WHEN 'Vergaderkamer.heerlen.6' THEN 246 --HRL/8 Vergaderruimte 6 - Heerlen Vergaderkamer.heerlen.6@hagozorg.nl
WHEN '41' THEN 247 --HRL/8 Vergaderruimte 7 - Heerlen
WHEN '42' THEN 261 --HRL/8 Vergaderruimte 1 - Heerlen 8A
WHEN '43' THEN 262 --HRL/8 Vergaderruimte 2 - Heerlen 8A
WHEN '44' THEN 263 --HRL/8 Vergaderruimte 3 - Heerlen 8A
WHEN '45' THEN 264 --HRL/8 Vergaderruimte 4 - Heerlen 8A
WHEN '45' THEN 265 --HRL/8 Vergaderruimte 5 - Heerlen 8A
WHEN '46' THEN 266 --HRL/8 Vergaderruimte 6 - Heerlen 8A
ELSE -1
END
INTO v_res_ruimte_key
FROM DUAL;
v_errorhint := 'Opzoeken opstelling: ' || rec.zaal;
SELECT res_ruimte_opstel_key
INTO v_ruimte_opstel_key
FROM res_ruimte_opstelling
WHERE res_ruimte_opstel_verwijder IS NULL
AND res_ruimte_key = v_res_ruimte_key;
BEGIN
SELECT prs_perslid_key
INTO v_perslid_key
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND UPPER (prs_perslid_email) =
UPPER (rec.organisator);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_perslid_key := 3; -- Facilitor
v_opmerking := 'Contactpersoon: ' || rec.organisator;
END;
INSERT INTO res_reservering (res_reservering_verwijder)
VALUES (NULL)
RETURNING res_reservering_key
INTO v_reservering_key;
v_errormsg := 'Fout toevoegen rsv_ruimte.';
INSERT INTO res_rsv_ruimte (res_reservering_key,
res_rsv_ruimte_volgnr,
res_rsv_ruimte_opmerking,
res_rsv_ruimte_omschrijving,
prs_kostenplaats_key,
res_rsv_ruimte_contact_key,
res_rsv_ruimte_host_key,
res_ruimte_opstel_key,
res_activiteit_key,
res_rsv_ruimte_van,
res_rsv_ruimte_tot,
res_rsv_ruimte_bezoekers,
res_status_fo_key,
res_status_bo_key)
VALUES (v_reservering_key,
1,
v_opmerking,
rec.onderwerp,
NULL,
v_perslid_key,
v_perslid_key,
v_ruimte_opstel_key,
10, -- vergadering
TO_DATE (rec.starttijd, 'DD-MM-YYYY:HH24:MI'),
TO_DATE (rec.eindtijd, 'DD-MM-YYYY:HH24:MI'),
NULL,
2,
2)
RETURNING res_rsv_ruimte_key
INTO v_rsv_ruimte_key;
FAC.trackaction ('RESNEW',
v_rsv_ruimte_key,
3,
SYSDATE,
'Aangemaakt door conversie uit Outook');
RES.set_ruimte_dirty (v_rsv_ruimte_key);
fac.imp_writelog (p_import_key,
'I',
'Reservering is aangemaakt: ' || v_rsv_ruimte_key,
v_aanduiding);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
END;
END;
/
-- Views overgenomen uit de Yask omgeving
CREATE OR REPLACE VIEW vbgo_v_kosten_doorbelasting
AS
SELECT sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnummer,
m.mld_melding_key,
l.alg_locatie_omschrijving meldinglocatie,
pf.prs_perslid_naam_full melder,
sd.ins_srtdiscipline_omschrijving soortmelding,
d.ins_discipline_omschrijving productgroep,
std.mld_stdmelding_omschrijving subproductgroep,
ksm.prs_kostensoort_oms melding_nen_omschrijving,
ksm.prs_kostensoort_refcode melding_nen_code,
CASE
WHEN m.mld_melding_status = 5 AND m.mld_melding_afgerond = 1
THEN
'Afgerond'
ELSE
ms.mld_statuses_omschrijving
END
meldingstatus,
fs.fac_usrdata_omschr facturatiestatus,
m.mld_melding_datum meldingdatum,
MLD.getmeldingstatusdate (m.mld_melding_key, 5) afgemeld,
m.mld_melding_onderwerp onderwerp,
m.mld_melding_omschrijving vomschrijving,
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnummer,
ot.mld_typeopdr_omschrijving opdrachttype,
so.mld_statusopdr_omschrijving opdrachtstatus,
o.mld_opdr_omschrijving opdrachtomschrijving,
kso.prs_kostensoort_oms opdracht_nen_omschrijving,
b.prs_bedrijf_naam opdrachtuitvoerende,
o.mld_opdr_kosten opdrachtkosten,
'Geen' soortopslag,
0 opslag,
o.mld_opdr_kosten kostenplusopslag,
NULL geenopslag,
NULL boekmaand,
aog.alg_gebouw_naam meldinggebouw,
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 182) klant_inkoopordernr, -- keys uit Yask omgeving.
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 181) klant_kostenplaats,
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 183) klant_werkorder,
o.mld_opdr_key,
l.alg_district_key
FROM prs_v_perslid_fullnames_all pf,
prs_kostensoort ksm,
mld_statuses ms,
mld_opdr o,
mld_typeopdr ot,
mld_statusopdr so,
prs_bedrijf b,
alg_locatie l,
prs_kostensoort kso,
mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd,
alg_v_allonrgoed_gegevens aog,
(SELECT mld_melding_key, fac_usrdata_omschr
FROM fac_usrdata ud, mld_kenmerkmelding km
WHERE km.mld_kenmerk_key = 1 -- Facturatiestatus
AND FAC.safe_to_number (mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key) fs
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND std.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND m.mld_melding_status = ms.mld_statuses_key
AND m.mld_melding_key = fs.mld_melding_key(+)
AND m.mld_melding_key = o.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_statusopdr_key = so.mld_statusopdr_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+);
--yask_v_kosten_export_power_bi
CREATE OR REPLACE VIEW vbgo_v_kosten_export_power_bi
AS
SELECT d.meldingnummer,
d.mld_melding_key,
d.meldinglocatie,
u.melding_gebouw,
u.melding_gebouwcode,
d.melder,
d.soortmelding,
d.productgroep,
d.subproductgroep,
d.melding_nen_omschrijving,
d.melding_nen_code,
d.meldingstatus,
d.facturatiestatus,
d.meldingdatum,
d.afgemeld,
d.onderwerp,
d.vomschrijving,
d.opdrachtnummer,
d.opdrachttype,
d.opdrachtstatus,
d.opdrachtomschrijving,
d.opdracht_nen_omschrijving,
d.opdrachtuitvoerende,
d.opdrachtkosten,
d.soortopslag,
d.opslag,
d.kostenplusopslag,
d.geenopslag,
d.boekmaand,
d.klant_inkoopordernr,
d.klant_kostenplaats,
d.klant_werkorder,
d.mld_opdr_key,
u.sla_accpturen,
u.plan_uitvoertijd_sla,
u.accept_sla_dagen,
u.accept_sla_uren,
u.afspraak_sla_dagen,
u.accept_sla_optijd,
u.uitvoering_sla_optijd,
u.afspraak_sla_optijd,
u.melding_afgemeld datum_afgemeld,
u.melding_accepted datum_acceptatie,
u.melding_datum datum_aanmaak,
u.fclt_3d_locatie_key
FROM vbgo_v_kosten_doorbelasting d, mld_v_udr_melding u
WHERE d.mld_melding_key = u.melding_key;
------ 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