VBGO#68713 -- Reserveringen omzetten via dump in Facilitor

FCLT#68828 -- Optimalisatie werkplek themaview

svn path=/Customer/trunk/; revision=53215
This commit is contained in:
Arthur Egberink
2021-09-30 09:26:32 +00:00
parent 0ed51c3069
commit aa34c72abd

View File

@@ -309,8 +309,8 @@ AS
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 >= TRUNC (res_rsv_deel_van)
AND datum < TRUNC (res_rsv_deel_tot) + 1) blokkerend -- vandaag en nog niet afgelopen
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)
@@ -357,6 +357,295 @@ AS
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;
/
--yask_v_kosten_export_power_bi
------ payload end ------
SET DEFINE OFF