DLLG#66674 -- Koppeling met Brivo

svn path=/Customer/trunk/; revision=52372
This commit is contained in:
Arthur Egberink
2021-07-14 18:41:48 +00:00
parent e1566a0e3b
commit 55dcc28cc9

View File

@@ -17,7 +17,6 @@ SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE DLLG
AS
FUNCTION res_presave (p_user_key IN NUMBER,
@@ -41,6 +40,8 @@ AS
END;
/
CREATE OR REPLACE PACKAGE BODY DLLG
AS
FUNCTION res_presave (p_user_key IN NUMBER,
@@ -307,7 +308,7 @@ AS
v_result := FourBin2Hex (v_bin_str) || v_result;
END LOOP;
RETURN v_result;
RETURN LOWER(LTRIM(v_result, '0'));
END;
@@ -334,6 +335,7 @@ AS
v_card_number_key NUMBER;
v_facility_code_key NUMBER;
v_hex_code_key NUMBER;
v_dec_code_key NUMBER;
v_date DATE;
BEGIN
FOR rec IN c
@@ -388,6 +390,11 @@ AS
FROM bez_kenmerk
WHERE bez_kenmerk_upper = 'HEX CODE';
SELECT bez_kenmerk_key
INTO v_dec_code_key
FROM bez_kenmerk
WHERE bez_kenmerk_upper = 'DEC CODE';
DBMS_OUTPUT.put_line ('v_date');
SELECT bez_afspraak_datum
@@ -404,35 +411,16 @@ AS
WHERE kw.bez_bezoekers_key = p_bezkey
AND kw.bez_kenmerk_key = v_card_number_key;
WHILE v_found = 0 AND v_count < 1000
LOOP
--DBMS_OUTPUT.put_line (COALESCE (v_code, '-1'));
SELECT COUNT (*)
INTO v_exists
FROM bez_bezoekers b, bez_kenmerkwaarde kw, bez_afspraak a
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND kw.bez_bezoekers_key = b.bez_bezoekers_key
AND b.bez_bezoekers_key <> p_bezkey
AND kw.bez_kenmerk_key = v_card_number_key
AND kw.bez_kenmerkwaarde_waarde = COALESCE (v_code, '-1')
AND bez_afspraak_datum BETWEEN v_date - 1 AND v_date + 2;
IF v_exists > 0 OR v_code IS NULL
IF v_code IS NULL OR SUBSTR(v_code, 2, 4) <> SUBSTR(p_bezkey, 2, 4)
THEN
v_code := TRUNC (DBMS_RANDOM.VALUE (9999, 50000));
--DBMS_OUTPUT.put_line ('Nieuwe code:' || v_code);
ELSE
v_found := 1;
v_code := ROUND(DBMS_RANDOM.value(0,4)) || SUBSTR(p_bezkey, LENGTH(p_bezkey)-3, LENGTH(p_bezkey));
FLX.setflex ('BEZ',
v_card_number_key,
p_bezkey,
v_code);
END IF;
v_count := v_count + 1;
END LOOP;
FLX.setflex ('BEZ',
v_facility_code_key,
p_bezkey,
@@ -440,6 +428,7 @@ AS
-- Vul het flexveld hex code met de hex waarde die gescant moet worden.
-- We gebruiken hiervoor 'The Standard 26-Bit Format'
FLX.setflex (
'BEZ',
v_hex_code_key,
@@ -447,6 +436,13 @@ AS
DLLG.get_hex_card_data (
LPAD (TRIM (TO_CHAR (v_code, 'XXXXXX')), 4, '0'),
LPAD (TRIM (TO_CHAR (123, 'XXXXXX')), 2, '0')));
FLX.setflex (
'BEZ',
v_dec_code_key,
p_bezkey,
'123' || LPAD(TRIM(v_code), 5, '0'));
END;
PROCEDURE set_bezoeker_syncdate (p_bezkey IN NUMBER,
@@ -489,7 +485,7 @@ AS
FLX.setflex ('BEZ',
v_sync_timestamp_key,
p_bezkey,
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SSS'));
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
END;
END;
@@ -1819,6 +1815,7 @@ CREATE OR REPLACE VIEW dllg_v_bezoeker_brivo
bezoeker_email,
card_number,
facility_code,
hex_code,
afspraak_van,
afspraak_tot,
meeting_id
@@ -1834,6 +1831,7 @@ SELECT 'POST',
b.bez_bezoekers_email,
c.card,
f.facility,
h.hex_code,
TRUNC(a.bez_afspraak_datum),
TRUNC(a.bez_afspraak_datum)+1,
''
@@ -1846,11 +1844,16 @@ SELECT 'POST',
(SELECT kw.bez_bezoekers_key, bez_kenmerkwaarde_waarde facility
FROM bez_kenmerk k, bez_kenmerkwaarde kw
WHERE k.bez_kenmerk_upper LIKE 'FACILITY CODE%'
AND kw.bez_kenmerk_key = k.bez_kenmerk_key) f
AND kw.bez_kenmerk_key = k.bez_kenmerk_key) f,
(SELECT kw.bez_bezoekers_key, bez_kenmerkwaarde_waarde hex_code
FROM bez_kenmerk k, bez_kenmerkwaarde kw
WHERE k.bez_kenmerk_upper LIKE 'HEX CODE%'
AND kw.bez_kenmerk_key = k.bez_kenmerk_key) h
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND TRUNC(a.bez_afspraak_datum) = TRUNC (SYSDATE) -- Alleen afspraken nu
AND b.bez_bezoekers_key = c.bez_bezoekers_key
AND b.bez_bezoekers_key = f.bez_bezoekers_key
AND b.bez_bezoekers_key = h.bez_bezoekers_key
AND NOT EXISTS
(SELECT kw.bez_bezoekers_key, bez_kenmerkwaarde_waarde
FROM bez_kenmerk k, bez_kenmerkwaarde kw
@@ -1858,6 +1861,29 @@ SELECT 'POST',
AND kw.bez_kenmerk_key = k.bez_kenmerk_key
AND kw.bez_bezoekers_key = b.bez_bezoekers_key);
-- Notificatie naar bezoekers
CREATE OR REPLACE VIEW dllg_v_noti_visitor
AS
SELECT NULL sender,
NULL receiver,
'Bezoekafspraak op ' || TO_CHAR('bez_afspraak_datum', 'DD-MM-YYYY') || ' om ' || TO_CHAR('bez_afspraak_datum', 'HH24:MI') || ' uur bij DLL' text,
'CUST01' code,
a.bez_afspraak_key key,
bez_bezoekers_key xkey,
bez_bezoekers_email xemail,
NULL xmobile
FROM bez_afspraak a, bez_bezoekers b
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND a.bez_afspraak_datum < fac.datumtijdplusuitvoertijd (SYSDATE, 3, 'D')
AND a.bez_afspraak_datum > SYSDATE
AND NOT EXISTS
(SELECT 1
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND t.fac_tracking_refkey = a.bez_afspraak_key
AND b.bez_bezoekers_aanmaak < fac_tracking_datum);
------ payload end ------