Files
Customer/CEVA/ceva.sql
Sander Schepers d4d0b3f302 CEVA#70220 Bezoekersregistratie
svn path=/Customer/trunk/; revision=55170
2022-03-01 14:00:26 +00:00

327 lines
11 KiB
SQL

-- Script containing customer specific configuration sql statements for CEVA Logistics
-- $Revision$
-- $Id$
DEFINE thisfile = 'CEVA.SQL'
DEFINE dbuser = '^CEVA'
DEFINE custid = 'CEVA'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE FORCE VIEW CEVA_V_RAP_VIS_NOCHECKOUT
(
BEZ_AFSPRAAK_KEY,
AFSPRAAKDATUM,
AFSPRAAKTIJDVANAF,
AFSPRAAKTIJDTOT,
GASTHEER,
BEZ_BEZOEK_KEY,
BEZOEKER,
BEDRIJF,
BADGENR,
TIJDBINNEN,
KENTEKEN,
TELEFOON
)
AS
SELECT
a.bez_afspraak_key,
TRUNC (a.bez_afspraak_datum) as datum_afspraak,
TO_CHAR (a.bez_afspraak_datum, 'HH24:MI') as vanaf,
TO_CHAR (a.bez_afspraak_eind, 'HH24:MI') as tot,
a.bez_afspraak_gastheer,
b.bez_bezoekers_key,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf,
b.bez_bezoekers_pasnr,
TO_CHAR (b.bez_bezoekers_done, 'HH24:MI') as TIJDBINNEN,
(SELECT kmw.bez_kenmerkwaarde_waarde
FROM bez_kenmerk km, bez_kenmerkwaarde kmw
WHERE km.bez_kenmerk_key = 1001 -- Key voor 'Licence plate'
AND b.bez_bezoekers_key = kmw.bez_bezoekers_key
AND km.bez_kenmerk_key = kmw.bez_kenmerk_key
AND km.bez_kenmerk_key = kmw.bez_kenmerk_key) as license_plate,
(SELECT kmw.bez_kenmerkwaarde_waarde
FROM bez_kenmerk km, bez_kenmerkwaarde kmw
WHERE km.bez_kenmerk_key = 1002 -- Key voor 'Mobile Phone'
AND b.bez_bezoekers_key = kmw.bez_bezoekers_key
AND km.bez_kenmerk_key = kmw.bez_kenmerk_key
AND km.bez_kenmerk_key = kmw.bez_kenmerk_key) as mobile_phone
FROM
bez_bezoekers b,
bez_afspraak a
WHERE
b.bez_afspraak_key = a.bez_afspraak_key
AND TRUNC (a.bez_afspraak_datum) = TRUNC (SYSDATE)
AND b.bez_bezoekers_done IS NOT NULL
AND b.bez_bezoekers_out IS NULL
-- ER KAN NOG EEN WHERE KOMEN OM TE SCOPEN NAAR LOCATIE
;
-- View om bij te houden welke menu items worden gebruikt.
/* Formatted on 7/10/2019 11:12:54 (QP5 v5.318) */
CREATE OR REPLACE VIEW CEVA_V_RAP_GUI_COUNTER
(
FAC_GUI_COUNTER_KEY,
FAC_GUI_COUNTER_GROUP,
FAC_GUI_COUNTER_INFO,
FAC_GUI_COUNTER_REFKEY,
FAC_GUI_COUNTER_CHOICE,
FAC_GUI_COUNTER_RESULT,
FAC_GUI_COUNTER_DATE,
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM_FULL,
PRS_AFDELING_OMSCHRIJVING,
PRS_BEDRIJF_NAAM
)
AS
SELECT fgc.fac_gui_counter_key,
fgc.fac_gui_counter_group,
fgc.fac_gui_counter_info,
fgc.fac_gui_counter_refkey,
choice.fac_gui_counter_info fac_gui_counter_choice,
result.fac_gui_counter_info fac_gui_counter_result,
fac_gui_counter_date,
fgc.prs_perslid_key,
prs_perslid_naam_full,
afd.prs_afdeling_omschrijving,
bedr.prs_bedrijf_naam
FROM fac_gui_counter fgc,
prs_v_perslid_fullnames pf,
prs_perslid pr,
prs_afdeling afd,
prs_bedrijf bedr,
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
FROM fac_gui_counter fgc
WHERE fac_gui_counter_info IS NOT NULL
AND fac_gui_counter_group = 'searchchoice') choice,
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
FROM fac_gui_counter fgc
WHERE fac_gui_counter_info IS NOT NULL
AND fac_gui_counter_group = 'searchresult') result
WHERE fac_gui_counter_group = 'search'
AND fgc.fac_gui_counter_info IS NOT NULL
AND fgc.prs_perslid_key = pf.prs_perslid_key
AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
AND pr.prs_perslid_key = fgc.prs_perslid_key
AND afd.PRS_AFDELING_KEY = pr.prs_afdeling_key
AND bedr.prs_bedrijf_key = afd.prs_bedrijf_key
UNION ALL
SELECT fgc.fac_gui_counter_key,
fgc.fac_gui_counter_group,
fac_usrrap_omschrijving,
fgc.fac_gui_counter_refkey,
NULL,
NULL,
fac_gui_counter_date,
fgc.prs_perslid_key,
prs_perslid_naam_full,
afd.prs_afdeling_omschrijving,
bedr.prs_bedrijf_naam
FROM fac_gui_counter fgc,
prs_v_perslid_fullnames pf,
fac_usrrap fr,
prs_afdeling afd,
prs_perslid pr,
prs_bedrijf bedr
WHERE fgc.fac_gui_counter_group = 'report'
AND fgc.prs_perslid_key = pf.prs_perslid_key(+)
AND fr.fac_usrrap_key(+) = fgc.fac_gui_counter_refkey
AND pr.prs_perslid_key = fgc.prs_perslid_key
AND afd.PRS_AFDELING_KEY = pr.prs_afdeling_key
AND bedr.prs_bedrijf_key = afd.prs_bedrijf_key
UNION ALL
SELECT fgc.fac_gui_counter_key,
fgc.fac_gui_counter_group,
COALESCE (fac_menu_altlabel, lcl.l (fac_menuitems_label)),
fgc.fac_gui_counter_refkey,
NULL,
NULL,
fac_gui_counter_date,
fgc.prs_perslid_key,
prs_perslid_naam_full,
afd.prs_afdeling_omschrijving,
bedr.prs_bedrijf_naam
FROM fac_gui_counter fgc,
prs_v_perslid_fullnames pf,
prs_afdeling afd,
prs_bedrijf bedr,
prs_perslid pr,
fac_menu m,
fac_menuitems mi
WHERE fgc.fac_gui_counter_group = 'menu'
AND fgc.prs_perslid_key = pf.prs_perslid_key(+)
AND m.fac_menu_key = fac_gui_counter_refkey
AND mi.fac_menuitems_key(+) = m.fac_menuitems_key
AND pr.prs_perslid_key = fgc.prs_perslid_key
AND afd.PRS_AFDELING_KEY = pr.prs_afdeling_key
AND bedr.prs_bedrijf_key = afd.prs_bedrijf_key;
CREATE OR REPLACE FORCE VIEW CEVA_V_NOTI_VIS_NOCHECKOUT
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
XKEY
)
AS
SELECT 'CUST01',
NULL,
bez_afspraak_key,
'Bezoekers niet afgemeld',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE fac_usrrap_view_name = 'CEVA_V_RAP_VIS_NOCHECKOUT'),
bez_bezoek_key
FROM CEVA_V_RAP_VIS_NOCHECKOUT
;
CREATE OR REPLACE VIEW ceva_v_noti_visitors
AS
SELECT NULL
sender,
NULL
receiver,
'Welcome to CEVA'
text,
'CUST02'
code,
b.bez_bezoekers_key
key,
NULL
xkey,
COALESCE (m.bez_kenmerkwaarde_waarde, b.bez_bezoekers_email)
xemail,
NULL
xmobile,
LISTAGG (bijl.bijlage, '|') WITHIN GROUP (ORDER BY bijl.bijlage)
AS attachments
FROM bez_bezoekers b,
bez_afspraak a,
alg_locatie l,
(SELECT af.bez_afspraak_key, fac_bijlagen_key bijlage
FROM fac_v_bijlagen bij, bez_afspraak af
WHERE fac_bijlagen_module = 'ALG'
AND af.alg_locatie_key = bij.fac_bijlagen_refkey
AND bij.fac_bijlagen_kenmerk_key = 1360) bijl, --Kenmerk attachment notificatie bij locatie (1340 in accept)
(SELECT fac_notificatie_job_nextrun, fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'CEVA_V_NOTI_VISITORS') n,
(SELECT bk.bez_bezoekers_key, bk.bez_kenmerkwaarde_waarde
FROM bez_kenmerkwaarde bk
WHERE bk.bez_kenmerk_key = 1020 -- kenmerk email (1021 in accept)
AND bk.bez_kenmerkwaarde_verwijder IS NULL) m
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND a.alg_locatie_key = l.alg_locatie_key
AND a.bez_afspraak_key = bijl.bez_afspraak_key(+)
AND b.bez_bezoekers_key = m.bez_bezoekers_key(+)
AND b.bez_bezoekers_aanmaak BETWEEN n.fac_notificatie_job_lastrun
AND n.fac_notificatie_job_nextrun
GROUP BY alg_onrgoed_keys,
a.bez_afspraak_key,
b.bez_bezoekers_key,
bez_bezoekers_email,
m.bez_kenmerkwaarde_waarde;
CREATE OR REPLACE PACKAGE CEVA
AS
PROCEDURE schonen_personen;
END;
/
-- Dagelijks schonen personen die langer dan een jaar niet hebben ingelogd.
CREATE OR REPLACE PACKAGE BODY CEVA
AS
PROCEDURE schonen_personen
AS
c_applname VARCHAR2 (50) := 'SCHONEN_PERSONEN';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_perslid_key NUMBER (15);
CURSOR c IS
SELECT p.*
FROM prs_v_aanwezigperslid p, FAC_V_LCRAP_FE_VS_KEY_DATA u
WHERE p.prs_perslid_key = u.prs_perslid_key
AND ( TRUNC (p.prs_perslid_login) <
TRUNC (SYSDATE) - 365
AND p.prs_perslid_login IS NOT NULL)
UNION ALL
SELECT p.*
FROM prs_v_aanwezigperslid p, FAC_V_LCRAP_FE_VS_KEY_DATA u
WHERE p.prs_perslid_key = u.prs_perslid_key
AND ( TRUNC (p.prs_perslid_aanmaak) <
TRUNC (SYSDATE) - 365
AND p.prs_perslid_login IS NULL);
BEGIN
FOR rec IN c
LOOP
BEGIN
v_perslid_key := rec.prs_perslid_key;
prs.delete_perslid (1, v_perslid_key);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (c_applname,
'E',
v_errormsg,
'Daily achtergrond taak afgebroken!');
END;
END;
/
CREATE OR REPLACE PROCEDURE CEVA_DAILY
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Dagelijks schonen personen die langer dan een jaar niet hebben ingelogd.
ceva.schonen_personen ();
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile