Files
Customer/onces/YASK/VENR#87896.sql
Arthur Egberink 419e132518 VENR#87896 Scriptontwikkeling voor bezoekersexport/import van VENR naar YASK
svn path=/Customer/; revision=68406
2025-03-14 08:47:16 +00:00

205 lines
7.7 KiB
SQL

--
-- $Id$
--
-- Import tabel uitbreiden met btw tarief.
DEFINE thisfile = 'VENR#87896.SQL'
DEFINE dbuser = '^YASK'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
-- importtabel tbv import van catering.
DECLARE
CURSOR c IS
SELECT fac_imp_csv_col01
bez_afspraak_key,
(SELECT MAX (prs_perslid_key)
FROM prs_perslid
WHERE LOWER (prs_perslid_email) = LOWER (fac_imp_csv_col02) AND prs_perslid_verwijder IS NULL)
prs_perslid_key,
fac_imp_csv_col02
prs_perslid_email,
(SELECT prs_perslid_key
FROM prs_perslid
WHERE LOWER (prs_perslid_email) = LOWER (fac_imp_csv_col03) AND prs_perslid_verwijder IS NULL)
bez_afsrpaak_host_key,
fac_imp_csv_col03
bez_afspraak_host_email,
(SELECT MAX (prs_perslid_key)
FROM prs_perslid
WHERE LOWER (prs_perslid_email) = LOWER (fac_imp_csv_col04) AND prs_perslid_verwijder IS NULL)
bez_afspraak_contact_key,
fac_imp_csv_col04
bez_afspraak_contact_email,
fac_imp_csv_col05
bez_afspraak_gastheer,
fac_imp_csv_col06
bez_afspraak_telefoonnr,
TO_DATE (fac_imp_csv_col07, 'yyyy-mm-dd hh24:mi:ss')
bez_afspraak_datum,
TO_DATE (fac_imp_csv_col08, 'yyyy-mm-dd hh24:mi:ss')
bez_afspraak_eind,
(SELECT bez_actie_key
FROM bez_actie
WHERE bez_actie_omschrijving = fac_imp_csv_col09 AND bez_actie_verwijder IS NULL)
bez_actie_key,
fac_imp_csv_col09
bez_actie_omschrijving,
(SELECT alg_locatie_key
FROM alg_locatie
WHERE alg_locatie_code = 'DMU')
alg_locatie_key,
fac_imp_csv_col10
alg_gebouw_code,
fac_imp_csv_col11
alg_verdieping_code,
fac_imp_csv_col12
alg_ruimte_nr,
fac_imp_csv_col13
bez_afspraak_ruimte,
fac_imp_csv_col14
bez_afspraak_opmerking,
fac_imp_csv_col15
bez_afspraak_naam,
fac_imp_csv_col16
bez_afspraak_bedrijf
FROM fac_imp_csv
WHERE fac_imp_csv_index <> 1
ORDER BY fac_imp_csv_col01;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (4000);
v_aanduiding VARCHAR2 (1000);
v_gebouw_key NUMBER;
v_verdieping_key NUMBER;
v_ruimte_key NUMBER;
v_onrgoed_key NUMBER;
v_afspraak_key NUMBER;
v_afspraak_key_prev NUMBER;
v_opmerking VARCHAR2(200);
BEGIN
v_afspraak_key_prev := -1;
FOR rec IN c
LOOP
BEGIN
v_opmerking := NULL;
v_aanduiding := rec.bez_afspraak_key || ' - ' || rec.bez_afspraak_naam;
IF v_afspraak_key_prev <> rec.bez_afspraak_key
THEN
-- opzoeken ruimte
v_errorhint := 'Check op gebouw: ' || rec.alg_gebouw_code;
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_gebouw
WHERE alg_gebouw_code = rec.alg_gebouw_code AND alg_locatie_key = rec.alg_locatie_key;
v_errorhint := 'Check op verdieping: ' || rec.alg_verdieping_code;
IF rec.alg_verdieping_code IS NOT NULL
THEN
SELECT alg_verdieping_key
INTO v_verdieping_key
FROM alg_verdieping
WHERE alg_gebouw_key = v_gebouw_key AND alg_verdieping_code = rec.alg_verdieping_code;
v_errorhint := 'Check op ruimte: ' || rec.alg_ruimte_nr;
IF rec.alg_ruimte_nr IS NOT NULL
THEN
BEGIN
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_ruimte
WHERE alg_verdieping_key = v_verdieping_key AND REPLACE(alg_ruimte_nr, ' ') = REPLACE(rec.alg_ruimte_nr, ' ');
EXCEPTION WHEN NO_DATA_FOUND
THEN
SELECT MAX(alg_ruimte_key)
INTO v_ruimte_key
FROM alg_ruimte
WHERE alg_verdieping_key = v_verdieping_key;
v_opmerking := 'Originele ruimte kon niet gevonden worden: ' || rec.alg_ruimte_nr;
END;
v_onrgoed_key := v_ruimte_key;
ELSE
v_onrgoed_key := v_verdieping_key;
END IF;
ELSE
v_onrgoed_key := v_gebouw_key;
END IF;
v_errorhint := 'Aanmaken afspraak: ' || rec.bez_afspraak_key;
INSERT INTO bez_afspraak (prs_perslid_key,
bez_afspraak_contact_key,
bez_afspraak_gastheer,
bez_afspraak_telefoonnr,
bez_afspraak_datum,
bez_actie_key,
alg_locatie_key,
alg_onrgoed_keys,
bez_afspraak_opmerking,
bez_afspraak_eind,
bez_afspraak_externnr)
VALUES (rec.prs_perslid_key,
rec.bez_afspraak_contact_key,
rec.bez_afspraak_gastheer,
rec.bez_afspraak_telefoonnr,
rec.bez_afspraak_datum,
rec.bez_actie_key,
rec.alg_locatie_key,
v_onrgoed_key,
DECODE(v_opmerking, NULL, rec.bez_afspraak_opmerking, v_opmerking || CHR(10) || CHR(10) || rec.bez_afspraak_opmerking),
rec.bez_afspraak_eind,
rec.bez_afspraak_key)
RETURNING bez_afspraak_key
INTO v_afspraak_key;
v_afspraak_key_prev := rec.bez_afspraak_key;
END IF;
INSERT INTO bez_bezoekers (bez_afspraak_key, bez_afspraak_naam, bez_afspraak_bedrijf)
VALUES (v_afspraak_key, rec.bez_afspraak_naam, rec.bez_afspraak_bedrijf);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('MIGRATIE BEZOEKERS',
'E',
SUBSTR (v_errormsg, 1, 100),
SUBSTR (v_errorhint, 1, 100));
END;
END LOOP;
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