akza#64021: Koppeling Facilitor - Proxyclick,werkende versie met een post, put en delete van bezoekers naar PC

svn path=/Customer/trunk/; revision=48411
This commit is contained in:
Suzan Wiegerinck
2020-10-07 12:57:27 +00:00
parent c40b53ad2a
commit fcda579cee

View File

@@ -8400,7 +8400,7 @@ CREATE OR REPLACE VIEW AKZA_V_RAP_TBADGES
AANVRAAG_GEREED,
GEVRAAGDE_EINDDAT
)
AS
AS
SELECT DISTINCT
DECODE (SUBSTR (mdw.badge_nr, 1, 2),
'30', 'Amsterdam',
@@ -8417,7 +8417,7 @@ AS
soort_badge,
mdw.blokkade_datum,
badges.aanvrager,
badges.aanvrager_key,
badges.aanvrager_key,
badges.mld_melding_key,
'<a class="details" onclick=''FcltMgr.openDetail("'
|| 'appl/mld/mld_melding.asp?mld_key='
@@ -8797,7 +8797,7 @@ AS
ORDER BY max_aanvraag.melding_voor) badges
WHERE badgehouder_prskey = badges.melding_voor(+)
AND UPPER (soort_badge) = 'TIJDELIJKE BADGE'
ORDER BY mdw.badge_nr, mdw.badgehouder_prskey;
ORDER BY mdw.badge_nr, mdw.badgehouder_prskey;
CREATE OR REPLACE VIEW AKZA_V_NOTI_MLD_EINDTMPBADGE
(
@@ -8817,7 +8817,7 @@ SELECT 'CUST03',
|| ' (badgenummer: '
|| badge_nr.badge_nr
|| ')',
p.prs_perslid_key,
p.prs_perslid_key,
NULL
FROM prs_perslid p, -- badgehouder
akza_v_rap_tbadges b,
@@ -8856,9 +8856,9 @@ AS
b.melding_key,
b.html_meldingnr
FROM akza_v_rap_tbadges b
WHERE soort_badge = 'Tijdelijke badge'
WHERE soort_badge = 'Tijdelijke badge'
AND blokkade_datum > TRUNC (SYSDATE - 1);
--- EXPORTS --------------------------------------------------------------------
-- FACILITOR beoordeelt maandelijks welke taken in de komende periode moeten worden uitgevoerd,
@@ -8923,7 +8923,7 @@ BEGIN
|| rec.ins_deel_key
|| ' is niet uitgevoerd',
'Melding: ' || p_mld_melding_key);
COMMIT;
END;
END LOOP;
@@ -8946,7 +8946,7 @@ AS
IS
SELECT * FROM akza_v_noti_objbeh;
BEGIN
v_errorhint := 'init';
@@ -9039,9 +9039,9 @@ BEGIN
fac.writelog (p_applname, 'I',
'Melding voor '||rec.to_omschr||', namens '||rec.ref_omschr,
rec.aantal||' objecten');
AKZA_INSERT_OBJECTEN (rec.to_key, rec.ref_key, v_melding_key);
END IF;
EXCEPTION
@@ -10899,7 +10899,7 @@ AS
-- Notificatie naar areagedelegeerde AKZA#41201
-- Voor alle nieuwe meldingen waarbij het vinkje werkvergunning aanstaat (km441) en een waarbij een werkvergunning is aangemaakt (km961)
-- En waarbij aangegeven is dat de areagedelegeerde geinformeerd moet worden (km1021), AKZA#57881 direct of op een later moment
-- En waarbij aangegeven is dat de areagedelegeerde geinformeerd moet worden (km1021), AKZA#57881 direct of op een later moment
-- hierbij de areagedelegeerde ophalen die bij de ruimte is vastgelegd (km 1160)
CREATE OR REPLACE VIEW AKZA_V_NOTI_PTW_AREAGD
(
@@ -11264,7 +11264,7 @@ AS
OR (og.alg_gebouw_key = 9456 AND og.alg_ruimte_key = 13895))
AND ins_deelsrtcontrole_plandatum <= ADD_MONTHS (SYSDATE, 1)
AND ins_deelsrtcontrole_plandatum >= SYSDATE);
CREATE OR REPLACE VIEW AKZA_V_RUIMTES
(
ruimte_key,
@@ -11306,8 +11306,8 @@ AS
deelsrtcontrole_status status_certificering
FROM ins_v_deel_gegevens o, ins_v_udr_deelinspect c
WHERE ins_srtgroep_upper = 'TRAINING EN OPLEIDING'
AND o.ins_deel_key = c.deel_key(+));
AND o.ins_deel_key = c.deel_key(+));
-- Tbv van de aanvraag van (tijdelijke) badges is het nodig om een onderscheid te kunnen maken tussen medewerkers intern (incl. Teijin) en contractors
CREATE OR REPLACE VIEW AKZA_V_CONTRACTORS
(
@@ -11344,7 +11344,7 @@ AS
AND prs_kenmerklink_waarde = fac_usrdata_key
AND ud.fac_usrdata_verwijder is null
AND (fac_usrdata_vervaldatum > sysdate or fac_usrdata_vervaldatum is null);
CREATE OR REPLACE VIEW AKZA_V_AANVR_TBADGE
(
PRS_PERSLID_KEY,
@@ -11356,7 +11356,7 @@ AS
FROM AKZA_V_PERSLID_INTERN
UNION ALL
SELECT "PRS_PERSLID_KEY", "NAAM", "PRS_PERSLID_VERWIJDER"
FROM AKZA_V_CONTRACTORS);
FROM AKZA_V_CONTRACTORS);
CREATE OR REPLACE VIEW AKZA_V_NOTI_CTR_LOD
(
@@ -11373,7 +11373,7 @@ AS
SELECT fac_srtnotificatie_code
CODE,
7520
SENDER, --- 7520 Facilitor
SENDER, --- 7520 Facilitor
NULL
RECEIVER,
'Informatie cLODs'
@@ -11402,7 +11402,7 @@ AS
'09',
'10',
'11',
'12');
'12');
CREATE OR REPLACE VIEW AKZA_V_PERSLID_BADGE_INT
(
@@ -11419,7 +11419,7 @@ AS
AND prs_kenmerk_key = 1560
AND fac_usrtab_key = 471
AND ud.FAC_USRDATA_KEY in (4381, 1747,4382,4377)
AND prs_kenmerklink_waarde = fac_usrdata_key
AND prs_kenmerklink_waarde = fac_usrdata_key
AND ( fac_usrdata_vervaldatum > SYSDATE
OR fac_usrdata_vervaldatum IS NULL);
@@ -11438,13 +11438,349 @@ AS
AND prs_kenmerk_key = 1560
AND fac_usrtab_key = 471
AND ud.FAC_USRDATA_KEY = 1746
AND prs_kenmerklink_waarde = fac_usrdata_key
AND prs_kenmerklink_waarde = fac_usrdata_key
AND ( fac_usrdata_vervaldatum > SYSDATE
OR fac_usrdata_vervaldatum IS NULL);
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
OR fac_usrdata_vervaldatum IS NULL);
CREATE OR REPLACE PACKAGE akza
AS
PROCEDURE refreshscore (p_userkey IN NUMBER);
PROCEDURE set_kenmerk_bez (p_kenmerk_key IN NUMBER,
p_link_key IN NUMBER,
p_kenmerk_waarde IN VARCHAR2);
PROCEDURE set_bezoeker_syncdate (p_request_type IN VARCHAR2,
p_afspraak_key IN NUMBER,
p_bezoeker_key IN NUMBER,
p_host_key IN NUMBER,
p_starttijd IN VARCHAR2,
p_eindtijd IN VARCHAR2,
p_meetingid_pc IN VARCHAR2,
p_responsestatus IN NUMBER);
PROCEDURE log_proxyclick_imp (p_bezoeker_key IN NUMBER,
p_responsestatus IN NUMBER,
p_request_type IN VARCHAR2);
END;
/
CREATE OR REPLACE PACKAGE BODY akza
AS
PROCEDURE refreshscore (p_userkey IN NUMBER)
AS
v_usrtab_periode_key fac_usrdata.fac_usrtab_key%TYPE; --NUMBER(10);
v_usrdata_volgnr fac_usrdata.fac_usrdata_volgnr%TYPE; --NUMBER(3);
v_usrdata_date akza_kpi_scores.periode%TYPE; --DATE;
BEGIN
-- Waarden die we willen overschrijven verwijderen.
DELETE kpi_score
WHERE (kpi_definitie_key, kpi_score_datum, alg_locatie_key) IN
(SELECT DISTINCT
d.kpi_definitie_key,
ka.periode,
ka.alg_locatie_key
FROM akza_v_kpi_all ka, kpi_definitie d
WHERE d.kpi_definitie_code = ka.kpi_code);
-- Opnieuw inlezen van KPI scores.
-- (akza_v_kpi_all bevat wat kolommen waar we niets mee
INSERT INTO kpi_score (kpi_definitie_key,
kpi_score_datum,
alg_locatie_key,
kpi_score_xmlnode,
kpi_score_refkey,
kpi_score_score,
kpi_score_norm_score,
kpi_score_drempels)
SELECT d.kpi_definitie_key,
ka.periode,
ka.alg_locatie_key,
'melding',
ka.mld_melding_key,
ka.normscore,
'0|70|90|100' normdrempels,
ka.normscores
FROM akza_v_kpi_all ka, kpi_definitie d
WHERE d.kpi_definitie_code = ka.kpi_code;
END refreshscore;
PROCEDURE set_kenmerk_bez (p_kenmerk_key IN NUMBER,
p_link_key IN NUMBER,
p_kenmerk_waarde IN VARCHAR2)
AS
v_count NUMBER;
v_niveau VARCHAR2 (1);
BEGIN
SELECT COUNT (*)
INTO v_count
FROM bez_kenmerkwaarde
WHERE bez_bezoekers_key = p_link_key
AND bez_kenmerk_key = p_kenmerk_key
AND bez_kenmerkwaarde_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE bez_kenmerkwaarde
WHERE bez_bezoekers_key = p_link_key
AND bez_kenmerk_key = p_kenmerk_key
AND bez_kenmerkwaarde_verwijder IS NULL;
ELSE
UPDATE bez_kenmerkwaarde
SET bez_kenmerkwaarde_waarde = p_kenmerk_waarde
WHERE bez_bezoekers_key = p_link_key
AND bez_kenmerk_key = p_kenmerk_key
AND bez_kenmerkwaarde_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO bez_kenmerkwaarde (bez_kenmerk_key,
bez_bezoekers_key,
bez_kenmerkwaarde_waarde)
VALUES (p_kenmerk_key, p_link_key, p_kenmerk_waarde);
END IF;
END IF;
END set_kenmerk_bez;
PROCEDURE set_bezoeker_syncdate (p_request_type IN VARCHAR2,
p_afspraak_key IN NUMBER,
p_bezoeker_key IN NUMBER,
p_host_key IN NUMBER,
p_starttijd IN VARCHAR2,
p_eindtijd IN VARCHAR2,
p_meetingid_pc IN VARCHAR2,
p_responsestatus IN NUMBER)
AS
v_kenmerk_key bez_kenmerk.bez_kenmerk_key%TYPE;
v_syncdate DATE;
BEGIN
SELECT bez_kenmerk_key
INTO v_kenmerk_key
FROM bez_kenmerk b
WHERE b.bez_kenmerk_upper = 'SYNCDATE';
SELECT SYSDATE INTO v_syncdate FROM DUAL;
akza.log_proxyclick_imp (p_bezoeker_key,
p_responsestatus,
p_request_type);
IF p_request_type = 'POST'
THEN
akza.set_kenmerk_bez (v_kenmerk_key, p_bezoeker_key, v_syncdate);
INSERT INTO AKZA_BEZOEKERS_PC (AFSPRAAKKEY,
BEZOEKERKEY,
START_TIJD,
EIND_TIJD,
GASTHEER,
MEETING_ID_PC)
VALUES (p_afspraak_key,
p_bezoeker_key,
p_starttijd,
p_eindtijd,
p_host_key,
p_meetingid_pc);
ELSE
IF p_request_type = 'PUT'
THEN
akza.set_kenmerk_bez (v_kenmerk_key, p_bezoeker_key, v_syncdate);
UPDATE AKZA_BEZOEKERS_PC pc
SET AFSPRAAKKEY = p_afspraak_key,
BEZOEKERKEY = p_bezoeker_key,
START_TIJD = p_starttijd,
EIND_TIJD = p_eindtijd,
GASTHEER = p_host_key,
MEETING_ID_PC = p_meetingid_pc
WHERE p_meetingid_pc = pc.meeting_id_pc;
ELSE
IF p_request_type = 'DELETE'
THEN
DELETE AKZA_BEZOEKERS_PC pc
WHERE p_meetingid_pc = pc.meeting_ID_pc;
END IF;
END IF;
END IF;
COMMIT;
END set_bezoeker_syncdate;
PROCEDURE log_proxyclick_imp (p_bezoeker_key IN NUMBER,
p_responsestatus IN NUMBER,
p_request_type IN VARCHAR2)
AS
v_log_status imp_log.imp_log_status%TYPE;
v_log_datum imp_log.imp_log_datum%TYPE;
BEGIN
CASE
WHEN p_responsestatus < 200 AND p_responsestatus > 299
THEN
v_log_status := 'W';
ELSE
v_log_status := 'I';
END CASE;
SELECT SYSDATE INTO v_log_datum FROM DUAL;
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,
IMP_LOG_DATUM,
IMP_LOG_STATUS,
IMP_LOG_OMSCHRIJVING,
IMP_LOG_HINT)
VALUES ('Proxyclick',
v_log_datum,
v_log_status,
'Bezoeker: ' || p_bezoeker_key,
p_request_type || ' result: ' || p_responsestatus);
COMMIT;
END log_proxyclick_imp;
END;
/
---------------------------------------------
-- Ten behoeve van de Proxyclick koppeling --
---------------------------------------------
CREATE OR REPLACE VIEW AKZA_V_BEZOEKER_PC
(
REQUEST,
OMSCHRIJVING,
AFSPRAAK_KEY,
BEZOEKER_KEY,
BEZOEKER_NAAM,
BEZOEKER_BEDRIJF,
BEZOEKER_EMAIL,
AFSPRAAK_VAN,
AFSPRAAK_TOT,
GASTHEER_VOORNAAM,
GASTHEER_ACHTERNAAM,
GASTHEER_EMAIL,
GASTHEER_KEY,
MEETING_ID
)
AS
SELECT 'POST',
'Afspraak vanuit Facilitor'
omschr,
a.bez_afspraak_key,
b.bez_bezoekers_key,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf,
email.bez_kenmerkwaarde_waarde
email,
TO_CHAR (a.bez_afspraak_datum, 'YYYY-MM-DD')
|| 'T'
|| TO_CHAR (a.bez_afspraak_datum, 'HH24:MI:SS')
|| '+01:00 '
utc_afspraak_datum,
TO_CHAR (a.bez_afspraak_eind, 'YYYY-MM-DD')
|| 'T'
|| TO_CHAR (a.bez_afspraak_eind, 'HH24:MI:SS')
|| '+01:00 '
utc_afspraak_eind,
p.prs_perslid_voornaam,
p.prs_perslid_naam
|| DECODE (prs_perslid_tussenvoegsel,
NULL, NULL,
', ' || prs_perslid_tussenvoegsel),
p.prs_perslid_email,
p.prs_perslid_key,
''
FROM bez_bezoekers b,
bez_afspraak a,
prs_perslid p,
(SELECT kw.bez_bezoekers_key, bez_kenmerkwaarde_waarde
FROM bez_kenmerk k, bez_kenmerkwaarde kw
WHERE k.bez_kenmerk_upper LIKE 'E-MAIL%'
AND kw.bez_kenmerk_key = k.bez_kenmerk_key) email
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND a.alg_locatie_key = 2 -- Alleen locatie Arnhem
AND TRUNC (a.bez_afspraak_datum) >= TRUNC (SYSDATE) -- Alleen afspraken nu of in de toekomst
AND email.bez_bezoekers_key = b.bez_bezoekers_key
AND a.bez_afspraak_host_key = p.prs_perslid_key
AND NOT EXISTS
(SELECT kw.bez_bezoekers_key, bez_kenmerkwaarde_waarde
FROM bez_kenmerk k, bez_kenmerkwaarde kw
WHERE k.bez_kenmerk_upper = 'SYNCDATE' -- Er is nog geen sync naar Proxyclick geweest
AND kw.bez_kenmerk_key = k.bez_kenmerk_key
AND kw.bez_bezoekers_key = b.bez_bezoekers_key)
UNION ALL
SELECT 'PUT',
'Afspraak vanuit Facilitor',
a.bez_afspraak_key,
b.bez_bezoekers_key,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf,
email.bez_kenmerkwaarde_waarde
email,
TO_CHAR (a.bez_afspraak_datum, 'YYYY-MM-DD')
|| 'T'
|| TO_CHAR (a.bez_afspraak_datum, 'HH24:MI:SS')
|| '+01:00 '
utc_afspraak_datum,
TO_CHAR (a.bez_afspraak_eind, 'YYYY-MM-DD')
|| 'T'
|| TO_CHAR (a.bez_afspraak_eind, 'HH24:MI:SS')
|| '+01:00 '
utc_afspraak_eind,
p.prs_perslid_voornaam,
p.prs_perslid_naam
|| DECODE (prs_perslid_tussenvoegsel,
NULL, NULL,
', ' || prs_perslid_tussenvoegsel),
p.prs_perslid_email,
p.prs_perslid_key,
pc.meeting_id_pc
FROM akza_bezoekers_pc pc,
bez_bezoekers b,
bez_afspraak a,
prs_perslid p,
(SELECT kw.bez_bezoekers_key, bez_kenmerkwaarde_waarde
FROM bez_kenmerk k, bez_kenmerkwaarde kw
WHERE k.bez_kenmerk_upper LIKE 'E-MAIL%'
AND kw.bez_kenmerk_key = k.bez_kenmerk_key) email
WHERE b.bez_bezoekers_key = pc.bezoekerkey
AND a.bez_afspraak_key = b.bez_afspraak_key
AND email.bez_bezoekers_key = b.bez_bezoekers_key
AND a.alg_locatie_key = 2 -- Alleen locatie Arnhem
AND TRUNC (a.bez_afspraak_datum) >= TRUNC (SYSDATE) -- Alleen afspraken nu of in de toekomst
AND a.bez_afspraak_host_key = p.prs_perslid_key
AND ( pc.START_TIJD <>
( TO_CHAR (a.bez_afspraak_datum, 'YYYY-MM-DD')
|| 'T'
|| TO_CHAR (a.bez_afspraak_datum, 'HH24:MI:SS')
|| '+01:00 ')
OR pc.EIND_TIJD <>
( TO_CHAR (a.bez_afspraak_eind, 'YYYY-MM-DD')
|| 'T'
|| TO_CHAR (a.bez_afspraak_eind, 'HH24:MI:SS')
|| '+01:00 ')
OR pc.gastheer <> p.prs_perslid_key)
UNION ALL
SELECT 'DELETE',
'Afspraak vanuit Facilitor',
fac.safe_to_number (pc.afspraakkey),
fac.safe_to_number (pc.bezoekerkey),
'',
'',
'',
pc.start_tijd,
pc.eind_tijd,
'',
'',
'',
0,
pc.meeting_id_pc
FROM akza_bezoekers_pc pc
WHERE pc.bezoekerkey NOT IN (SELECT b.bez_bezoekers_key
FROM bez_bezoekers b);
------ payload end ------