Files
Customer/onces/VOLK/FCLT#56045_4.sql
Suzan Wiegerinck 217adcb8dc FCLT#56045 Implementatie Volksbank
svn path=/Customer/; revision=42192
2019-04-19 12:54:48 +00:00

273 lines
9.0 KiB
SQL

/* Formatted on 19-4-2019 13:56:13 (QP5 v5.336) */
--
-- $Id$
--
-- Importeren bezoekers
DEFINE thisfile = 'FCLT#56045_4.SQL'
DEFINE dbuser = '^VOLK'
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 ------
DECLARE
c_park_disc_key NUMBER
:= fac.safe_to_number (fac.getsetting ('vis_parking_key'));
v_resnr VARCHAR2 (100);
v_errorhint VARCHAR2 (200);
v_count NUMBER;
v_res_rsv_ruimte_key NUMBER (10);
v_bez_afspraak_key NUMBER (10);
v_aanvrager_key NUMBER (10);
v_gastheer_key NUMBER (10);
v_gastheer_naam VARCHAR2 (100);
v_van DATE;
v_tot DATE;
v_alg_locatie_key NUMBER (10);
v_alg_gebouw_key NUMBER (10);
v_alg_gebouw_code VARCHAR (20);
v_facilitor NUMBER (10);
v_bez_bezoekers_key NUMBER (10);
CURSOR c_afspr IS
SELECT DISTINCT
aanvr.prs_perslid_key aanvrager_key,
voor.prs_perslid_key voor_key,
ib.nummer,
aanvr.prs_perslid_naam_full aanvrager_naam,
voor.prs_perslid_naam_full voor_naam,
ib.gebouw,
DECODE (ib.gebouw,
'UTRCR1', 'CR1',
'DENPE0', 'PE0',
'GELJO1', 'JO1') res_gebouw,
g.alg_gebouw_key,
g.alg_locatie_key,
IB.DATUM || ' ' || IB.START_TIJD AS start_datum_tijd,
IB.DATUM || ' ' || IB.EIND_TIJD AS eind_datum_tijd
FROM volk_import_bezoekers IB,
alg_gebouw g,
(SELECT p.prs_perslid_key,
p.prs_perslid_nr,
pn.prs_perslid_naam_full
FROM prs_perslid p, prs_v_perslid_fullnames_all pn
WHERE p.prs_perslid_key = pn.prs_perslid_key) aanvr,
(SELECT p.prs_perslid_key,
p.prs_perslid_nr,
pn.prs_perslid_naam_full
FROM prs_perslid p, prs_v_perslid_fullnames_all pn
WHERE p.prs_perslid_key = pn.prs_perslid_key) voor
WHERE voor.prs_perslid_nr =
TO_CHAR (ib.persnr_voor, 'FM0000000')
AND aanvr.prs_perslid_nr =
TO_CHAR (ib.persnr_aanvrager, 'FM0000000')
AND g.alg_gebouw_verwijder IS NULL
AND g.mld_dienstniveau_key = 2
AND DECODE (ib.gebouw,
'UTRCR1', 'CR1',
'DENPE0', 'PE0',
'GELJO1', 'JO1') =
g.alg_gebouw_code;
CURSOR c_bez IS
SELECT nummer,
bezoeker,
bedrijf,
DECODE (
(DECODE (bez.gebouw,
'UTRCR1', 'CR1',
'DENPE0', 'PE0',
'GELJO1', 'JO1')), --- we kennen in Facilitor alleen parkeerplaatsen in Utrecht en Den Bosch
'CR1', COALESCE (park_gewenst, 'Nee'),
'PE0', COALESCE (park_gewenst, 'Nee'),
'Nee') res_park,
kenteken,
bez_afspraak_key,
DECODE (bez.gebouw,
'UTRCR1', 'CR1',
'DENPE0', 'PE0',
'GELJO1', 'JO1') res_gebouw,
g.alg_gebouw_key,
g.alg_locatie_key
FROM volk_import_bezoekers bez,
alg_gebouw g,
prs_perslid a,
prs_perslid v
WHERE DECODE (bez.gebouw,
'UTRCR1', 'CR1',
'DENPE0', 'PE0',
'GELJO1', 'JO1') =
g.alg_gebouw_code
AND g.mld_dienstniveau_key = 2
AND bez.persnr_aanvrager = a.prs_perslid_nr
AND bez.persnr_voor = v.prs_perslid_nr;
BEGIN
-- met een schone lei beginnen
DELETE imp_log
WHERE imp_log_applicatie = 'IMP_BEZ';
DELETE bez_bezoekers;
DELETE bez_afspraak;
DELETE bez_kenmerkwaarde
WHERE bez_kenmerk_key = 1000;
DELETE res_rsv_deel
WHERE res_rsv_deel_key IN
(SELECT res_rsv_deel_key
FROM res_rsv_deel rd, res_deel d
WHERE rd.res_deel_key = d.res_deel_key
AND d.res_discipline_key = c_park_disc_key);
UPDATE volk_import_bezoekers
SET bez_afspraak_key = ''
WHERE bez_afspraak_key IS NOT NULL;
COMMIT;
v_facilitor := 3;
--- Stap 1: eerste de afspraken aanmaken
FOR rec IN c_afspr
LOOP
v_errorhint := 'Bepalen begintijd';
v_van :=
TO_DATE (rec.start_datum_tijd,
'dd-mm-yyyy hh24:mi');
v_errorhint := 'Bepalen eindtijd';
v_tot :=
TO_DATE (rec.eind_datum_tijd,
'dd-mm-yyyy hh24:mi');
v_errorhint := 'Bepalen contactpersoon';
v_aanvrager_key := rec.aanvrager_key;
v_errorhint := 'Bepalen gastheer';
v_gastheer_key := rec.voor_key;
v_errorhint := 'Naam gastheer/vrouw';
v_gastheer_naam := rec.voor_naam;
v_errorhint := 'Bepalen gebouw';
v_alg_gebouw_key := rec.alg_gebouw_key;
v_alg_gebouw_code := rec.res_gebouw;
v_errorhint := 'Bepalen locatie';
v_alg_locatie_key := rec.alg_locatie_key;
INSERT INTO bez_afspraak (prs_perslid_key,
bez_afspraak_host_key,
bez_afspraak_contact_key,
bez_afspraak_gastheer,
bez_afspraak_datum,
bez_actie_key,
alg_locatie_key,
res_rsv_ruimte_key,
bez_afspraak_ruimte,
bez_afspraak_opmerking,
bez_afspraak_eind)
VALUES (v_facilitor,
v_gastheer_key,
v_aanvrager_key,
v_gastheer_naam,
v_van,
2,
v_alg_locatie_key,
NULL,
v_alg_gebouw_code,
'Import vanuit Prequest',
v_tot)
RETURNING bez_afspraak_key
INTO v_bez_afspraak_key;
UPDATE volk_import_bezoekers ib
SET ib.bez_afspraak_key = v_bez_afspraak_key
WHERE ib.nummer = rec.nummer;
END LOOP;
-- Stap 2: bij de zojuist geregistreerde afspraken alle bezoekers aanmaken
FOR rec IN c_bez
LOOP
v_errorhint := 'Toevoegen bezoeker';
INSERT INTO bez_bezoekers (bez_afspraak_key,
bez_afspraak_naam,
bez_afspraak_bedrijf)
VALUES (rec.bez_afspraak_key,
SUBSTR (rec.bezoeker, 1, 30),
SUBSTR (rec.bedrijf, 1, 60))
RETURNING bez_bezoekers_key
INTO v_bez_bezoekers_key;
--Kenmerk kenteken vullen
IF rec.kenteken IS NOT NULL
THEN
INSERT INTO bez_kenmerkwaarde (bez_bezoekers_key,
bez_kenmerk_key,
bez_kenmerkwaarde_waarde)
VALUES (v_bez_bezoekers_key, 1000, rec.kenteken);
END IF;
-- Parkeerplaats reserveren
IF UPPER (rec.res_park) = 'JA'
THEN
v_errorhint := 'Claimen parkeerplaats';
bez.claim_parking (v_bez_bezoekers_key, rec.alg_gebouw_key);
v_errorhint := 'Checken parkeerplaats';
SELECT bez.hasparking (v_bez_bezoekers_key)
INTO v_count
FROM DUAL;
IF (v_count = 0)
THEN
fac.writelog (
'IMP_BEZ',
'W',
'Geen parkeerplaats geclaimd ('
|| v_bez_bezoekers_key
|| ')',
v_errorhint);
END IF;
END IF;
END LOOP;
COMMIT;
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN
adm.systrackscriptId (
'$Id$',
1);
END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile