FCLT#56045 Implementatie Volksbank

svn path=/Customer/trunk/; revision=42176
This commit is contained in:
Suzan Wiegerinck
2019-04-18 14:55:14 +00:00
parent 4d13f89b41
commit 400aaa82ff

View File

@@ -1,4 +1,3 @@
/* Formatted on 4/4/2019 09:57:02 (QP5 v5.336) */
--
-- $Id$
--
@@ -578,132 +577,57 @@ AS
CREATE OR REPLACE VIEW VOLK_V_NOTI_BEZOEKERS
(
SRTNOTIFICATIE,
SRTNOTIFICATIE_KEY,
SENDER,
RECEIVER,
TEXT,
AFSPRAAK_KEY,
MAIL_TO,
CONTACT,
BEZOEK_VAN,
BEZOEK_TOT,
LOCATIE
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
sn.fac_srtnotificatie_code,
sn.fac_srtnotificatie_key,
DECODE (
sn.fac_srtnotificatie_key,
NULL sender,
NULL receiver,
DECODE (
t.fac_srtnotificatie_key,
30, 'Nieuwe bezoekersregistratie, registratienummer: '
|| b.afspraak_key,
31, 'Wijziging in bezoekersregistratie ' || b.afspraak_key)
TEXT,
sn.fac_srtnotificatie_code,
sn.fac_srtnotificatie_key,
b.afspraak_key,
fac_usrdata_omschr,
b.contact,
b.bezoek_van,
b.bezoek_tot,
l.alg_locatie_code
null xkey,
ud.fac_usrdata_omschr,
null xmobile
FROM fac_tracking t,
bez_v_udr_bezoeker b,
alg_locatie l,
fac_usrdata ud,
fac_srtnotificatie sn
WHERE sn.fac_srtnotificatie_key IN (30, 31) --- BEZMUT, registreren nieuwe afspraak en BEZUPD, wijzigen afspraak
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
WHERE
t.fac_tracking_refkey = b.afspraak_key
AND t.fac_srtnotificatie_key in( 30 , 31) --- BEZMUT, registreren nieuwe afspraak en BEZUPD, wijzigen afspraak
AND sn.fac_srtnotificatie_code = 'CUST01'
AND t.fac_tracking_refkey = b.afspraak_key
AND b.fclt_3d_locatie_key = l.alg_locatie_key
AND ud.FAC_USRDATA_code = l.alg_locatie_code
AND ud.fac_usrtab_key = 141 --- mailadressen worden uit een eigen tabel gehaald, 1/96 want: bezoekersmutaties van de afgelopen 15 minuten
AND t.fac_tracking_datum > SYSDATE - (1 / 96);
COMMIT;
CREATE OR REPLACE PROCEDURE volk_export_noti_bezoekers (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errorhint VARCHAR2 (100);
v_aanduiding VARCHAR2 (100);
v_afspraak_key NUMBER (10);
CURSOR c IS SELECT * FROM VOLK_V_NOTI_BEZOEKERS;
BEGIN
v_errorhint := 'init';
DELETE imp_log
WHERE imp_log_applicatie = p_applname;
FOR rec IN c
LOOP
BEGIN
v_errorhint := 'Add mail';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_lang,
prs_perslid_key_sender)
SELECT fac_srtnotificatie_key,
2,
rec.mail_to,
rec.text,
rec.afspraak_key,
2,
'NL',
3
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST01';
fac.imp_writelog (p_applname,
'I',
'Bezoekers bij afspraak ' || rec.afspraak_key,
'Per mail verzonden naar: ' || rec.mail_to);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
p_applname,
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (p_applname,
'E',
'Error ' || oracle_err_num || '/' || oracle_err_mes,
v_errorhint);
END volk_export_noti_bezoekers;
/
BEGIN
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
END;
/
AND ud.fac_usrdata_code = l.alg_locatie_code
AND ud.fac_usrtab_key = 141 --- bezoekersmutaties van het afgelopen uur
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'VOLK_V_NOTI_BEZOEKERS')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'VOLK_V_NOTI_BEZOEKERS');
CREATE OR REPLACE VIEW VOLK_V_RAPP_BEDRIJF_DIENST
(
bedrijf_naam,
@@ -730,7 +654,6 @@ AS
WHERE b.prs_bedrijf_key = scope.prs_bedrijf_key;
-- De bron view met gegevens over bezoekers die een parkeerplaats moeten krijgen vandaag of morgen
CREATE OR REPLACE VIEW VOLK_V_EXP_FIRMBASE
(
BEZ_BEZOEKER_KEY,
@@ -739,8 +662,10 @@ CREATE OR REPLACE VIEW VOLK_V_EXP_FIRMBASE
BEZ_EINDDATUM,
FIRMBASE_RESPONSE,
KENTEKEN,
LANDCODE,
VISITOR_PROFILE,
VISITOR_ID
VISITOR_ID,
BEZOEKER_NAAM
)
AS
SELECT b.bez_bezoekers_key,
@@ -749,10 +674,13 @@ AS
a.bez_afspraak_eind,
firmb.bez_kenmerkwaarde_waarde AS firmbase_resp, --- KOMT ER EEN KEY TERUG OF KAN IK HIER RESPONS CODE IN TERUGZETTEN?
kenteken.bez_kenmerkwaarde_waarde AS kenteken,
'NL' AS landcode,
'VBank',
guid.bez_kenmerkwaarde_waarde AS guid
guid.bez_kenmerkwaarde_waarde AS guid,
b.bez_afspraak_naam AS bezoeker_naam
FROM bez_afspraak a,
bez_bezoekers b,
alg_locatie l,
(SELECT rd.bez_bezoekers_key, d.*
FROM res_rsv_deel rd, res_v_ins_deel d, ins_srtdeel o
WHERE rd.res_deel_key = d.res_deel_key
@@ -769,17 +697,18 @@ AS
(SELECT kw.bez_bezoekers_key, bez_kenmerkwaarde_waarde
FROM bez_kenmerkwaarde kw, bez_kenmerk k
WHERE k.bez_kenmerk_key = kw.bez_kenmerk_key
AND k.bez_kenmerk_upper = 'VISITORID') guid
AND k.bez_kenmerk_upper = 'VISITORID') guid
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND b.bez_bezoekers_key = park.bez_bezoekers_key --- alleen als er een parkeerplaats bij zit
AND b.bez_bezoekers_key = park.bez_bezoekers_key
AND a.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_key = 104 --- alleen Utrecht groot kantoor
AND firmb.bez_bezoekers_key(+) = b.bez_bezoekers_key
AND kenteken.bez_bezoekers_key(+) = b.bez_bezoekers_key
AND guid.bez_bezoekers_key(+) = b.bez_bezoekers_key
AND guid.bez_bezoekers_key(+) = b.bez_bezoekers_key
AND a.bez_afspraak_datum < TRUNC (SYSDATE) + 2
AND a.bez_afspraak_datum > SYSDATE;
-- Procedure om de bezoekers met een parkeerplaats klaar te zetten voor de export
CREATE OR REPLACE PROCEDURE VOLK_SELECT_FIRMBASE (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
@@ -799,7 +728,7 @@ AS
-- Stap 1: Insert Visitor
-- Selectcriteria: alle bezoekers uit volk_v_exp_firmbase die nog niet in de tabel mey Firmbase registraties staan
-- of eigenlijk ook: nog geen visitor_id hebben
-- Of eigenlijk ook: nog geen visitor_id hebben
CURSOR IV IS
SELECT p.*
FROM volk_v_exp_firmbase p
@@ -816,12 +745,13 @@ AS
CURSOR UV IS
SELECT p.*
FROM volk_v_exp_firmbase p, volk_registraties_firmbase f
WHERE p.bez_bezoeker_key = f.bez_bezoeker_key
WHERE p.bez_bezoeker_key = f.bez_bezoeker_key
AND NVL (p.kenteken, 'KL') <> NVL (f.kenteken, 'KL');
-- Stap 3: Cancel Visitor
-- De bezoekersregistratie staat wel in de eigen tabel maar niet in de bez. tabel (bezoeker (en evt ook afspraak) is verwijderd)
-- Bezoekers uit het verleden kijken we niet naar, die staan sowieso niet in de view
-- LET OP: ook bij het wijzigen van datum/tijd van de afspraak moet eerst een delete en dan een nieuwe insert gedaan worden
-- Selectcriteria: alle bezoekers uit VOLK eigen tabel die niet meer voorkomen in volk_v_exp_firmbase
-- Of bezoekers uit VOLK eigen tabel waarbij begin en/of eindtijd afwijkt van de informatie uit de standaard tabel
@@ -829,7 +759,8 @@ AS
CURSOR CV IS
SELECT f.*
FROM volk_registraties_firmbase f
WHERE f.visitor_id NOT IN (SELECT v.visitor_id
WHERE f.bez_startdatum > SYSDATE
AND f.visitor_id NOT IN (SELECT v.visitor_id
FROM volk_v_exp_firmbase v)
UNION ALL
SELECT f.*
@@ -874,8 +805,16 @@ BEGIN
|| rec.visitor_id
|| '"'
|| ' "'
|| rec.kenteken
|| '"',
|| NVL (
rec.kenteken,
'KL-'
|| TO_CHAR (rec.bez_bezoeker_key, 'FM000000'))
|| '"'
|| ' "'
|| NVL (
rec.landcode, 'NL')
|| '" >>%0.log 2>>&1'
,
0);
-- dan ook het kenteken in de eigen tabel aanpassen
@@ -903,7 +842,7 @@ BEGIN
fac_rapport_soort)
VALUES (p_applname,
v_rap_count,
'node cancel.js' || ' "' || rec.visitor_id || '"',
'node cancel.js' || ' "' || rec.visitor_id || '" >>%0.log 2>>&1',
0);
--- Registratie verwijderen uit logtabel
@@ -931,15 +870,7 @@ BEGIN
v_errormsg := 'Exportregel insert visitor Firmbase aanmaken';
SELECT ( DBMS_RANDOM.STRING ('X', 8)
|| '-'
|| DBMS_RANDOM.STRING ('X', 4)
|| '-'
|| DBMS_RANDOM.STRING ('X', 4)
|| '-'
|| DBMS_RANDOM.STRING ('X', 4)
|| '-'
|| TO_CHAR (p.bez_bezoeker_key, 'FM000000000000'))
SELECT substr(sys_guid(), 1, 26) || TO_CHAR (p.bez_bezoeker_key, 'FM000000')
INTO v_visitor_id
FROM volk_v_exp_firmbase p
WHERE p.bez_bezoeker_key = rec.bez_bezoeker_key;
@@ -963,12 +894,19 @@ BEGIN
'KL-'
|| TO_CHAR (rec.bez_bezoeker_key, 'FM000000'))
|| '"'
|| ' "'
|| rec.bez_startdatum
|| ' "'
|| NVL (
rec.landcode, 'NL')
|| '"'
|| ' "'
|| rec.bez_einddatum
|| '"',
|| replace (rec.bez_startdatum, ' ', 'T')
|| '"'
|| ' "'
|| replace (rec.bez_einddatum, ' ', 'T')
|| '"'
|| ' "'
|| rec.bezoeker_naam
|| '" >>%0.log 2>>&1',
0);
-- registratie ook in eigen tabel toevoegen
@@ -993,11 +931,11 @@ BEGIN
COMMIT;
END LOOP;
COMMIT;
END volk_SELECT_firmbase;
/
--- genereert het export bestand voor Firmbase
CREATE OR REPLACE VIEW VOLK_V_EXPORT_FIRMBASE
@@ -1011,9 +949,55 @@ AS
WHERE fac_rapport_node = 'FIRMBASE';
CREATE OR REPLACE PACKAGE VOLK
AS
PROCEDURE mld_after_insert (p_melding_key IN NUMBER);
END;
/
CREATE OR REPLACE PACKAGE BODY VOLK
AS
PROCEDURE mld_after_insert (p_melding_key IN NUMBER)
AS
CURSOR c IS
SELECT m.mld_melding_key
FROM mld_stdmelding sm,
ins_tab_discipline vg,
ins_srtdiscipline vgt,
mld_disc_params vgp,
mld_melding m
WHERE sm.mld_ins_discipline_key = vg.ins_discipline_key
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
AND UPPER (ins_srtdiscipline_omschrijving) LIKE '%WINKEL%'
AND sm.mld_ins_discipline_key = vgp.mld_ins_discipline_key
AND vgp.mld_disc_params_kanpubliek = 1
AND m.mld_melding_publiek = 0
AND m.mld_stdmelding_key = sm.mld_stdmelding_key;
v_count NUMBER;
v_stdmelding_key NUMBER;
BEGIN
FOR rec IN C
LOOP
UPDATE mld_melding m
SET m.mld_melding_publiek = 1
WHERE m.mld_melding_key = rec.mld_melding_key;
END LOOP;
END;
END;
/
COMMIT;
------ payload end ------
BEGIN
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
END;
/
SET DEFINE OFF
BEGIN