FCLT#56045 Implementatie Volksbank

svn path=/Customer/trunk/; revision=41933
This commit is contained in:
Suzan Wiegerinck
2019-04-04 08:02:59 +00:00
parent 5f93857eb0
commit 2b9c8b41e4

View File

@@ -1,3 +1,4 @@
/* Formatted on 4/4/2019 09:57:02 (QP5 v5.336) */
--
-- $Id$
--
@@ -55,9 +56,7 @@ BEGIN
UPDATE fac_imp_perslid
SET prs_perslid_oslogin =
SUBSTR (
(SUBSTR (prs_kenmerk2,
1,
(INSTR (prs_kenmerk2, '@') - 1))),
(SUBSTR (prs_kenmerk2, 1, (INSTR (prs_kenmerk2, '@') - 1))),
1,
30);
@@ -256,7 +255,7 @@ AS
WHERE gg.fac_groep_key = g.fac_groep_key
AND gg.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND UPPER (g.fac_groep_omschrijving) <> '_DEFAULT'
AND UPPER (g.fac_groep_omschrijving) <> '_DEFAULT'
AND p.prs_perslid_oslogin NOT LIKE '%\_%' ESCAPE '\')
oud
LEFT OUTER JOIN
@@ -524,77 +523,58 @@ AS
FROM MLD_V_UDR_MELDING m
WHERE UPPER (soortmelding) LIKE '%WINKEL%';
-- View met bezoekers met een parkeerplek die al dan niet een een firmbase key hebben
-- Op basis hiervan kan bepaald worden of een insert,update of delete nodig is
CREATE OR REPLACE VIEW VOLK_V_EXPORT_FIRMBASE
(
bez_bezoeker_key,
bez_afspraak_key,
bez_startdatum,
bez_einddatum,
firmbase_key,
kenteken,
visitor_profile
)
AS
SELECT b.bez_bezoekers_key,
a.bez_afspraak_key,
a.bez_afspraak_datum,
a.bez_afspraak_eind,
firmb.bez_kenmerkwaarde_waarde AS firmbase_key, --- KOMT ER EEN KEY TERUG OF KAN IK HIER RESPONS CODE IN TERUGZETTEN?
kenteken.bez_kenmerkwaarde_waarde AS kenteken,
''
FROM bez_afspraak a,
bez_bezoekers b,
(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
AND d.ins_srtdeel_key = o.ins_srtdeel_key
AND ins_srtdeel_upper LIKE 'PARKEERPLAATS%') park,
(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 = 'FIRMBASE_KEY') firmb,
(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 = 'KENTEKEN') kenteken
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND b.bez_bezoekers_key = park.bez_bezoekers_key
AND firmb.bez_bezoekers_key(+) = b.bez_bezoekers_key
AND kenteken.bez_bezoekers_key(+) = b.bez_bezoekers_key
AND a.bez_afspraak_datum < TRUNC (SYSDATE) + 2
AND a.bez_afspraak_datum > SYSDATE;
CREATE OR REPLACE VIEW VOLK_V_RAPP_TRACKING_UITLEEN
(
ins_deel_key,
object_omschrijving,
datum,
datum_tijd,
tracking,
omschrijving,
door
INS_DEEL_KEY,
OBJECT_OMSCHRIJVING,
DATUM,
DATUM_TIJD,
TRACKING,
OMSCHRIJVING
)
AS
SELECT d.ins_deel_key,
d.ins_deel_omschrijving,
TRUNC (t.fac_tracking_datum) periode,
TRUNC (t.fac_tracking_datum)
periode,
t.fac_tracking_datum,
DECODE (t.fac_srtnotificatie_key,
124, 'Uitgegeven',
125, 'Ingenomen') tracking,
t.fac_tracking_oms,
p.prs_perslid_naam_full
FROM fac_tracking t, ins_deel d, prs_v_perslid_fullnames_all p
124, 'Uitgegeven door: ' || p.prs_perslid_naam_friendly,
125, 'Ingenomen door: ' || p.prs_perslid_naam_friendly)
tracking,
DECODE (
t.fac_srtnotificatie_key,
124, (DECODE (
naam_cnt.ins_kenmerkdeel_waarde,
NULL, t.fac_tracking_oms,
'Object '
|| d.ins_deel_omschrijving
|| ' is uitgegeven aan '
|| naam_cnt.ins_kenmerkdeel_waarde)),
t.fac_tracking_oms)
tracking_omschr
FROM fac_tracking t,
ins_deel d,
prs_v_perslid_fullnames_all p,
(SELECT ins_deel_key, ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE ins_kenmerk_key = 2 AND ins_kenmerkdeel_verwijder IS NULL)
naam_cnt,
(SELECT ins_deel_key, ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE ins_kenmerk_key = 3 AND ins_kenmerkdeel_verwijder IS NULL)
telnr_cnt
WHERE fac_tracking_refkey = d.ins_deel_key
AND t.prs_perslid_key = p.prs_perslid_key
AND d.ins_srtdeel_key IN (24, 22) -- passen en sleutels
AND naam_cnt.ins_deel_key(+) = d.ins_deel_key
AND telnr_cnt.ins_deel_key(+) = d.ins_deel_key
AND t.fac_tracking_oms IS NOT NULL
AND d.ins_srtdeel_key IN (41,
42,
43,
44) -- passen en sleutels
AND fac_srtnotificatie_key IN (124, 125) -- uitgifte (insout) en inname (insinn)
ORDER BY ins_deel_key, fac_tracking_datum;
ORDER BY ins_deel_key, t.fac_tracking_datum;
CREATE OR REPLACE VIEW VOLK_V_NOTI_BEZOEKERS
(
@@ -639,10 +619,11 @@ AS
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)
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);
@@ -671,16 +652,16 @@ BEGIN
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';
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,
@@ -735,8 +716,10 @@ AS
FROM prs_bedrijf b,
(SELECT bdl.prs_bedrijf_key,
d.prs_dienst_omschrijving,
NVL ( NVL (l.alg_locatie_omschrijving,
g.ALG_GEBOUW_OMSCHRIJVING), 'Alle locaties') locatie
NVL (
NVL (l.alg_locatie_omschrijving,
g.ALG_GEBOUW_OMSCHRIJVING),
'Alle locaties') locatie
FROM prs_bedrijfdienstlocatie bdl,
prs_dienst d,
alg_locatie l,
@@ -745,7 +728,290 @@ AS
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
AND bdl.alg_locatie_key = l.alg_locatie_key(+)) scope
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,
BEZ_AFSPRAAK_KEY,
BEZ_STARTDATUM,
BEZ_EINDDATUM,
FIRMBASE_RESPONSE,
KENTEKEN,
VISITOR_PROFILE,
VISITOR_ID
)
AS
SELECT b.bez_bezoekers_key,
a.bez_afspraak_key,
a.bez_afspraak_datum,
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,
'VBank',
guid.bez_kenmerkwaarde_waarde AS guid
FROM bez_afspraak a,
bez_bezoekers b,
(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
AND d.ins_srtdeel_key = o.ins_srtdeel_key
AND ins_srtdeel_upper LIKE 'PARKEERPLAATS%') park,
(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 = 'FIRMBASE RESPONSE') firmb,
(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 = 'KENTEKEN') kenteken,
(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
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 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 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
v_rap_count NUMBER;
v_visitor_id VARCHAR (100);
v_kenmerk_visid NUMBER;
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
-- Firmbase koppeling bestaat uit 3 verschillende onderdelen:
-- Insert Visitor, Update Visitor, Cancel Visitor
-- 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
CURSOR IV IS
SELECT p.*
FROM volk_v_exp_firmbase p
WHERE p.visitor_id IS NULL
AND p.bez_bezoeker_key NOT IN
(SELECT f.bez_bezoeker_key
FROM volk_registraties_firmbase f);
-- Stap 2: Update Visitor
-- Er ontstaat verschil in kentekens tussen de VOLK eigen tabel en bez. tabel
-- Selectcriteria: alle bezoekers uit volk_v_exp_firmbase met Firmbase key waarbij kenteken afwijkt van de gegevens uit VOLK tabel
-- De nieuwe gegevens worden geexporteerd en de eigen tabel wordt bijgewerkt
CURSOR UV IS
SELECT p.*
FROM volk_v_exp_firmbase p, volk_registraties_firmbase f
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)
-- 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
-- Er wordt een delete visitor gestuurd en het record wordt uit de eigen tabel verwijderd
CURSOR CV IS
SELECT f.*
FROM volk_registraties_firmbase f
WHERE f.visitor_id NOT IN (SELECT v.visitor_id
FROM volk_v_exp_firmbase v)
UNION ALL
SELECT f.*
FROM volk_registraties_firmbase f, volk_v_exp_firmbase v
WHERE f.visitor_id = v.visitor_id
AND ( f.bez_startdatum <> v.bez_startdatum
OR f.bez_einddatum <> v.bez_einddatum);
BEGIN
DELETE imp_log
WHERE imp_log_applicatie = p_applname;
DELETE fac_rapport
WHERE fac_rapport_node = p_applname;
v_rap_count := 0;
SELECT k.bez_kenmerk_key
INTO v_kenmerk_visid
FROM bez_kenmerk k
WHERE k.bez_kenmerk_upper = 'VISITORID';
FOR rec IN UV
LOOP
v_rap_count := v_rap_count + 1;
v_aanduiding :=
v_rap_count
|| ': '
|| rec.bez_afspraak_key
|| '/'
|| rec.bez_bezoeker_key;
v_errormsg := 'Exportregel update visitor Firmbase aanmaken';
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel,
fac_rapport_soort)
VALUES (
p_applname,
v_rap_count,
'node update.js'
|| ' "'
|| rec.visitor_id
|| '"'
|| ' "'
|| rec.kenteken
|| '"',
0);
-- dan ook het kenteken in de eigen tabel aanpassen
UPDATE volk_registraties_firmbase v
SET kenteken = rec.kenteken
WHERE v.visitor_id = rec.visitor_id;
COMMIT;
END LOOP;
FOR rec IN CV
LOOP
v_rap_count := v_rap_count + 1;
v_aanduiding :=
v_rap_count
|| ': '
|| rec.bez_afspraak_key
|| '/'
|| rec.bez_bezoeker_key;
v_errormsg := 'Exportregel delete visitor Firmbase aanmaken';
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel,
fac_rapport_soort)
VALUES (p_applname,
v_rap_count,
'node cancel.js' || ' "' || rec.visitor_id || '"',
0);
--- Registratie verwijderen uit logtabel
--- VisitorID verwijderen bij de reservering omdat de bezoeker een nieuwe ID moet krijgen via insert
DELETE volk_registraties_firmbase f
WHERE f.visitor_id = rec.visitor_id;
DELETE bez_kenmerkwaarde
WHERE bez_kenmerk_key = v_kenmerk_visid
AND bez_bezoekers_key = rec.bez_bezoeker_key;
COMMIT;
END LOOP;
FOR rec IN IV
LOOP
v_rap_count := v_rap_count + 1;
v_aanduiding :=
v_rap_count
|| ': '
|| rec.bez_afspraak_key
|| '/'
|| rec.bez_bezoeker_key;
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'))
INTO v_visitor_id
FROM volk_v_exp_firmbase p
WHERE p.bez_bezoeker_key = rec.bez_bezoeker_key;
--- als er wel een parkeerplaats is ingevuld, maar er is geen kenteken bekend, dan moet het kenteken veld gevuld worden met:
--- KL- en de laatste 6 posities van het VisitorID, bij ons is dat de bezoekerkey aangevuld met voorloopnullen
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel,
fac_rapport_soort)
VALUES (
p_applname,
v_rap_count,
'node register.js'
|| ' "'
|| v_visitor_id
|| '"'
|| ' "'
|| NVL (
rec.kenteken,
'KL-'
|| TO_CHAR (rec.bez_bezoeker_key, 'FM000000'))
|| '"'
|| ' "'
|| rec.bez_startdatum
|| '"'
|| ' "'
|| rec.bez_einddatum
|| '"',
0);
-- registratie ook in eigen tabel toevoegen
INSERT INTO volk_registraties_firmbase (bez_bezoeker_key,
bez_startdatum,
bez_einddatum,
kenteken,
visitor_id)
VALUES (rec.bez_bezoeker_key,
rec.bez_startdatum,
rec.bez_einddatum,
rec.kenteken,
v_visitor_id);
-- guid ook registreren bij desbetreffende bezoekersregistratie
INSERT INTO bez_kenmerkwaarde (bez_kenmerk_key,
bez_bezoekers_key,
bez_kenmerkwaarde_waarde)
VALUES (v_kenmerk_visid, rec.bez_bezoeker_key, v_visitor_id);
COMMIT;
END LOOP;
COMMIT;
END volk_SELECT_firmbase;
/
--- genereert het export bestand voor Firmbase
CREATE OR REPLACE VIEW VOLK_V_EXPORT_FIRMBASE
(
RESULT,
RESULT_ORDER
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = 'FIRMBASE';
COMMIT;
------ payload end ------
SET DEFINE OFF