1643 lines
62 KiB
SQL
1643 lines
62 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific configuration sql statements for PCHW: PCH Gemeente Westland
|
|
|
|
DEFINE thisfile = 'PCHW.SQL'
|
|
DEFINE dbuser = '^PCHW'
|
|
|
|
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 PROCEDURE pchw_import_perslid (p_import_key IN NUMBER)
|
|
AS
|
|
v_seq_of_columns VARCHAR(255);
|
|
BEGIN
|
|
|
|
v_seq_of_columns := '0;0;0;4;5;6;7;8;9;11;10;0;0;0;0;13;14;15;0;17;16;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46';
|
|
prs.import_perslid(p_import_key, v_seq_of_columns, 'LOCATIECODE;GEBOUWCODE;BOUWLAAGVOLGNUMMER;RUIMTENUMMER;WERKPLEKVOLGNUMMER;OMSCHRIJVING;AFDELINGSCODE;PERSOONACHTERNAAM;TUSSENVOEGSEL;VOORLETTERS;VOORNAAM;TITEL/AANHEF;TELEFOONNUMMER;MOBIEL;EMAIL;FUNCTIE;PERSONEELSNUMMER;LOGINNAAM;PASSWORD%');
|
|
|
|
-- Het personeelsnummer gebruiken we ook als login. Inloggen via SSO vindt plaats op emailadres.
|
|
-- Doordat de import soms door Excel gehaald wordt zetten we zelf de voorloopnullen er weer in.
|
|
UPDATE fac_imp_perslid
|
|
SET prs_perslid_oslogin = prs_perslid_nr,
|
|
prs_perslid_nr = TO_CHAR (prs_perslid_nr, 'FM00000000');
|
|
|
|
END pchw_import_perslid;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_update_perslid (
|
|
p_import_key IN NUMBER
|
|
) IS
|
|
|
|
CURSOR c_del
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
|
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
|
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_nr IS NOT NULL
|
|
AND i.prs_perslid_nr IS NULL
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
ORDER BY 2;
|
|
|
|
CURSOR c_imp
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
v_perslid_key NUMBER;
|
|
v_perslid_nr VARCHAR2(100);
|
|
v_kostenplaats_nr VARCHAR2(100);
|
|
v_count NUMBER;
|
|
|
|
BEGIN
|
|
-- generic update
|
|
|
|
SELECT count(*)
|
|
INTO v_count
|
|
FROM fac_imp_perslid;
|
|
|
|
IF v_count < 500
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Het aantal te importeren personen is te klein ('
|
|
|| TO_CHAR (v_count) || ')',
|
|
'Zie Specificatie'
|
|
);
|
|
RETURN;
|
|
END IF;
|
|
|
|
prs.update_perslid (p_import_key, 'NR', NULL);
|
|
|
|
-- 2 maanden na het zetten van de uitdienst datum worden de medewerkers daadwerkelijk verwijderd.
|
|
FOR rec IN c_del
|
|
LOOP
|
|
BEGIN
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
END;
|
|
END LOOP;
|
|
|
|
INSERT INTO prs_perslidkostenplaats (prs_perslid_key, prs_perslidkostenplaats_boeken)
|
|
SELECT prs_perslid_key, 1
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE NOT EXISTS (
|
|
SELECT pk.prs_perslid_key
|
|
FROM prs_perslidkostenplaats pk
|
|
WHERE p.prs_perslid_key = pk.prs_perslid_key);
|
|
|
|
END pchw_update_perslid;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_import_organisatie (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_import_organisatie (p_import_key);
|
|
END pchw_import_organisatie;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_update_organisatie (p_import_key IN NUMBER)
|
|
AS
|
|
|
|
CURSOR c_del
|
|
IS
|
|
SELECT prs_afdeling_key, prs_afdeling_upper, prs_afdeling_omschrijving
|
|
FROM prs_v_afdeling
|
|
WHERE prs_afdeling_verwijder IS NULL
|
|
AND prs_bedrijf_key = 121
|
|
AND prs_afdeling_upper NOT IN (SELECT prs_afdeling_naam FROM fac_imp_organisatie)
|
|
ORDER BY niveau DESC;
|
|
|
|
CURSOR c_kpn
|
|
IS
|
|
SELECT b.prs_afdeling_key, a1.prs_kostenplaats_key, prs_afdeling_naam, prs_afdeling_omschrijving
|
|
FROM prs_v_afdeling_boom b, prs_afdeling a1
|
|
WHERE b.prs_bedrijf_key = 121 -- Gemeente Westland
|
|
AND b.prs_afdeling_key1 = a1.prs_afdeling_key
|
|
AND b.niveau <> 1;
|
|
|
|
BEGIN
|
|
fac_update_organisatie (p_import_key);
|
|
|
|
-- Vervallen afdeling proberen we te verwijderen
|
|
FOR rec IN c_del
|
|
LOOP
|
|
BEGIN
|
|
UPDATE prs_afdeling
|
|
SET prs_afdeling_verwijder = SYSDATE
|
|
WHERE prs_afdeling_key = rec.prs_afdeling_key;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
'Afdeling kan niet verwijderd worden:' || rec.prs_afdeling_key || ' Code:' || rec.prs_afdeling_upper || ' Omschrijving:' || rec.prs_afdeling_omschrijving,
|
|
'');
|
|
END;
|
|
END LOOP;
|
|
|
|
-- aanpassen vqan kostenplaatsen bij afdelingen. De kostenplaatsen worden bij het top element vastgelegd.
|
|
-- De kinderen moeten deze kostenplaats dus erven.
|
|
FOR rec IN c_kpn
|
|
LOOP
|
|
BEGIN
|
|
UPDATE prs_afdeling
|
|
SET prs_kostenplaats_key = rec.prs_kostenplaats_key
|
|
WHERE prs_afdeling_key = rec.prs_afdeling_key;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
'Kostenplaats kan niet aangepast worden: Code:' || rec.prs_afdeling_naam || ' Omschrijving:' || rec.prs_afdeling_omschrijving,
|
|
'');
|
|
END;
|
|
END LOOP;
|
|
|
|
END pchw_update_organisatie;
|
|
/
|
|
|
|
|
|
-- Importfuncties onroerendgoed vanaf verdieping.
|
|
CREATE OR REPLACE PROCEDURE pchw_import_onrgoed2 (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, CHR (160), ' ')
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
fac_import_onrgoed2 (p_import_key);
|
|
UPDATE fac_imp_onrgoed2 SET alg_srtruimte_omschrijving = TRIM(alg_srtruimte_omschrijving);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_update_onrgoed2 (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_update_onrgoed2 (p_import_key);
|
|
|
|
-- plaats de ruimte type codering in het code veld.
|
|
UPDATE alg_srtruimte
|
|
SET alg_srtruimte_code = SUBSTR (alg_srtruimte_omschrijving, 1, 7)
|
|
WHERE alg_srtruimte_code IS NULL;
|
|
|
|
-- pas de openingstijden van de ruimten aan waar een 24/7 regime geldt. Verder geldt voor
|
|
-- deze ruimten ook dat de sla in het weekend door telt.
|
|
--UPDATE alg_ruimte
|
|
-- SET
|
|
-- (alg_ruimte_beginuur,
|
|
-- alg_ruimte_einduur,
|
|
-- alg_ruimte_werkdagen
|
|
-- ) =
|
|
-- (SELECT DECODE (SUBSTR (alg_onrgoedkenmerk_waarde, 1, 2), '24', 0, NULL),
|
|
-- DECODE (SUBSTR (alg_onrgoedkenmerk_waarde, 1, 2), '24', 24, NULL),
|
|
-- DECODE (SUBSTR (alg_onrgoedkenmerk_waarde, 1, 2), '24', 0, NULL)
|
|
-- FROM alg_onrgoedkenmerk
|
|
-- WHERE alg_kenmerk_key = 1000 AND alg_onrgoed_key = alg_ruimte_key);
|
|
END;
|
|
/
|
|
|
|
-- Importfunctie voor THT waardes bij meldingen
|
|
CREATE OR REPLACE PROCEDURE pchw_import_storing_regime (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c_cursor
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
|
|
v_newline VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000); -- Import line
|
|
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
header_found BOOLEAN;
|
|
v_error NUMBER(1);
|
|
-- De importvelden
|
|
v_dummy VARCHAR2(100);
|
|
v_r_codering VARCHAR2(100);
|
|
v_omschrijving VARCHAR2(100);
|
|
v_ruimten VARCHAR2(100);
|
|
v_storing_os VARCHAR2(100);
|
|
v_stdmelding VARCHAR2(100);
|
|
v_vakgroep VARCHAR2(100);
|
|
v_vakgroeptype VARCHAR2(100);
|
|
v_tht_os VARCHAR2(100);
|
|
v_tht_regime VARCHAR2(100);
|
|
v_tht VARCHAR2(100);
|
|
v_tht_eenheid VARCHAR2(100);
|
|
v_bk VARCHAR2(100);
|
|
v_vk VARCHAR2(100);
|
|
v_srtruimte_key NUMBER;
|
|
v_stdmelding_key NUMBER;
|
|
v_discipline_key NUMBER;
|
|
v_srtdiscipline_key NUMBER;
|
|
|
|
|
|
BEGIN
|
|
-- Verwijder nbsp karakters.
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, CHR (160), ' ')
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
-- Init
|
|
header_found := FALSE;
|
|
v_fielddelimitor := ';';
|
|
|
|
-- Clear my previous imported rows
|
|
DELETE FROM pchw_imp_storing_regime;
|
|
|
|
FOR rec1 IN c_cursor
|
|
LOOP
|
|
BEGIN
|
|
v_newline := REPLACE(rec1.fac_imp_file_line, CHR(160), ' ');
|
|
v_aanduiding := SUBSTR (v_newline, 1, 200);
|
|
v_error := 0;
|
|
|
|
IF SUBSTR (v_newline, 1, 3) = '?'
|
|
THEN
|
|
-- EF BB BF aangetroffen
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
'Byte Order Mark aangetroffen',
|
|
'Bestand heeft onbehandeld UTF-8 formaat.');
|
|
v_newline := SUBSTR (v_newline, 4);
|
|
END IF;
|
|
|
|
v_errormsg := 'Inlezen velden';
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_r_codering);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_ruimten);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_storing_os);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_tht_os);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_tht_regime);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); -- regime eenheid
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_tht);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_tht_eenheid);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_bk);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_vk);
|
|
|
|
-- Skip until a valid header is found
|
|
v_errormsg := 'Controleer de header';
|
|
|
|
IF UPPER (rec1.fac_imp_file_line) LIKE
|
|
'R CODERING;OMSCHRIJVING;RUIMTEN;STORING OS;STANDAARD MELDING;VAKGROEP;VAKGROEPTYPE;THT OS;HERSTELREGIME;REGIME EENHEID;THT;THT EENHEID;BK;VK%'
|
|
THEN
|
|
-- Sla de kopregel over.
|
|
header_found := TRUE;
|
|
ELSIF (header_found AND v_vakgroep IS NOT NULL)
|
|
THEN
|
|
-- Kennen we de ruimtecodering
|
|
v_errormsg := 'Controleer ruimtesoort';
|
|
v_r_codering := REPLACE(v_r_codering, CHR(160));
|
|
|
|
IF v_r_codering IS NOT NULL
|
|
THEN
|
|
v_r_codering := TRIM(v_r_codering);
|
|
BEGIN
|
|
SELECT alg_srtruimte_key
|
|
INTO v_srtruimte_key
|
|
FROM alg_srtruimte sr
|
|
WHERE alg_srtruimte_verwijder IS NULL
|
|
AND UPPER (sr.alg_srtruimte_code) = UPPER (v_r_codering);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Ruimtecodering niet gevonden: ' || v_r_codering,
|
|
v_aanduiding);
|
|
v_srtruimte_key := NULL;
|
|
v_error := 1;
|
|
END;
|
|
ELSE
|
|
v_srtruimte_key := NULL;
|
|
END IF;
|
|
|
|
v_errormsg := 'Controleer vakgroeptype';
|
|
|
|
BEGIN
|
|
v_vakgroeptype := TRIM(v_vakgroeptype);
|
|
SELECT ins_srtdiscipline_key
|
|
INTO v_srtdiscipline_key
|
|
FROM ins_srtdiscipline sd
|
|
WHERE sd.ins_srtdiscipline_module = 'MLD'
|
|
AND sd.ins_srtdiscipline_verwijder IS NULL
|
|
AND UPPER (sd.ins_srtdiscipline_omschrijving) =
|
|
UPPER (v_vakgroeptype);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Vakgroeptype niet gevonden: ' || v_vakgroeptype,
|
|
v_aanduiding);
|
|
v_srtdiscipline_key := NULL;
|
|
v_error := 1;
|
|
END;
|
|
|
|
v_errormsg := 'Controleer vakgroep';
|
|
|
|
BEGIN
|
|
v_vakgroep := TRIM(v_vakgroep);
|
|
SELECT ins_discipline_key
|
|
INTO v_discipline_key
|
|
FROM ins_tab_discipline d
|
|
WHERE d.ins_discipline_module = 'MLD'
|
|
AND d.ins_discipline_verwijder IS NULL
|
|
AND d.ins_srtdiscipline_key = v_srtdiscipline_key
|
|
AND UPPER (d.ins_discipline_omschrijving) =
|
|
UPPER (v_vakgroep);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Vakgroep niet gevonden: ' || v_vakgroep,
|
|
v_aanduiding);
|
|
v_discipline_key := NULL;
|
|
v_error := 1;
|
|
END;
|
|
|
|
v_errormsg := 'Controleer stdmelding';
|
|
|
|
IF v_stdmelding IS NOT NULL
|
|
THEN
|
|
v_stdmelding := SUBSTR(TRIM(v_stdmelding),1,60);
|
|
BEGIN
|
|
SELECT mld_stdmelding_key
|
|
INTO v_stdmelding_key
|
|
FROM mld_stdmelding std
|
|
WHERE std.mld_stdmelding_verwijder IS NULL
|
|
AND std.mld_ins_discipline_key = v_discipline_key
|
|
AND UPPER (std.mld_stdmelding_omschrijving) =
|
|
UPPER (v_stdmelding);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Standaard melding niet gevonden: ' || v_stdmelding,
|
|
v_aanduiding);
|
|
v_stdmelding_key := NULL;
|
|
v_error := 1;
|
|
END;
|
|
ELSE
|
|
v_stdmelding_key := NULL;
|
|
END IF;
|
|
|
|
v_errormsg := 'Controleer THT';
|
|
|
|
IF fac.safe_to_number (v_tht) IS NULL AND v_tht IS NOT NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'THT niet geldig: ' || v_tht,
|
|
v_aanduiding);
|
|
v_error := 1;
|
|
END IF;
|
|
|
|
v_errormsg := 'Controleer THT eenheid';
|
|
|
|
v_tht_eenheid := TRIM(UPPER(v_tht_eenheid));
|
|
IF v_tht_eenheid NOT IN ('UUR', 'MIN', 'DAG') AND v_tht_eenheid IS NOT NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'THT eehheid niet geldig: ' || v_tht_eenheid,
|
|
v_aanduiding);
|
|
v_error := 1;
|
|
END IF;
|
|
|
|
v_errormsg := 'Controleer basiskorting';
|
|
|
|
IF fac.safe_to_number (v_bk) IS NULL AND v_bk IS NOT NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Basiskorting niet geldig: ' || v_bk,
|
|
v_aanduiding);
|
|
v_error := 1;
|
|
END IF;
|
|
|
|
v_errormsg := 'Controleer variabele korting';
|
|
|
|
IF fac.safe_to_number (v_vk) IS NULL AND v_vk IS NOT NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'variabele korting niet geldig: ' || v_vk,
|
|
v_aanduiding);
|
|
v_error := 1;
|
|
END IF;
|
|
|
|
IF v_error = 0
|
|
THEN
|
|
INSERT INTO pchw_imp_storing_regime (r_codering,
|
|
omschrijving,
|
|
ruimten,
|
|
storing_os,
|
|
stdmelding,
|
|
vakgroep,
|
|
vakgroeptype,
|
|
tht_os,
|
|
tht_regime,
|
|
tht,
|
|
tht_eenheid,
|
|
bk,
|
|
vk,
|
|
alg_srtruimte_key,
|
|
mld_stdmelding_key,
|
|
mld_discipline_key,
|
|
ins_srtdiscipline_key)
|
|
VALUES (v_r_codering,
|
|
v_omschrijving,
|
|
v_ruimten,
|
|
v_storing_os,
|
|
v_stdmelding,
|
|
v_vakgroep,
|
|
v_vakgroeptype,
|
|
v_tht_os,
|
|
v_tht_regime,
|
|
v_tht,
|
|
v_tht_eenheid,
|
|
v_bk,
|
|
v_vk,
|
|
v_srtruimte_key,
|
|
v_stdmelding_key,
|
|
v_discipline_key,
|
|
v_srtdiscipline_key);
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END IF;
|
|
END;
|
|
END loop;
|
|
|
|
IF NOT header_found
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Geen geldige header aangetroffen',
|
|
'Bestand is geen geldig melding regime importbestand.');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_aanduiding := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
|
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
|
DELETE FROM pchw_imp_storing_regime;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_update_storing_regime (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT sr.r_codering,
|
|
stdmelding,
|
|
vakgroep,
|
|
vakgroeptype,
|
|
fac.safe_to_number (bk) bk,
|
|
fac.safe_to_number (vk) vk,
|
|
alg_srtruimte_key,
|
|
mld_stdmelding_key,
|
|
mld_discipline_key,
|
|
ins_srtdiscipline_key,
|
|
tht_regime,
|
|
DECODE (tht_eenheid, 'UUR', 'U', 'MIN', 'U', 'DAG', 'D') eenheid,
|
|
DECODE (tht_eenheid,
|
|
'UUR', tht,
|
|
'MIN', ROUND (tht / 60, 5),
|
|
'DAG', tht)
|
|
tijdsduur
|
|
FROM pchw_imp_storing_regime sr;
|
|
|
|
CURSOR c_del
|
|
IS
|
|
SELECT ssr.mld_stdmsrtruimte_key,
|
|
d.ins_discipline_omschrijving,
|
|
std.mld_stdmelding_omschrijving,
|
|
sr.alg_srtruimte_code
|
|
FROM mld_stdmsrtruimte ssr,
|
|
mld_stdmelding std,
|
|
ins_tab_discipline d,
|
|
ins_srtdiscipline sd,
|
|
alg_srtruimte sr
|
|
WHERE NOT EXISTS
|
|
(SELECT mld_stdmelding_key
|
|
FROM pchw_imp_storing_regime sm
|
|
WHERE sm.mld_stdmelding_key = ssr.mld_stdmelding_key
|
|
AND sm.alg_srtruimte_key = ssr.alg_srtruimte_key)
|
|
AND NOT EXISTS
|
|
(SELECT std.mld_stdmelding_key
|
|
FROM pchw_imp_storing_regime sm, mld_stdmelding std
|
|
WHERE sm.mld_discipline_key = std.mld_ins_discipline_key
|
|
AND std.mld_stdmelding_key = ssr.mld_stdmelding_key
|
|
AND sm.alg_srtruimte_key = ssr.alg_srtruimte_key
|
|
AND sm.mld_stdmelding_key IS NULL)
|
|
AND ssr.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_omschrijving IN (SELECT DISTINCT vakgroeptype FROM pchw_imp_storing_regime)
|
|
AND ssr.alg_srtruimte_key = sr.alg_srtruimte_key;
|
|
|
|
CURSOR c_upd_std
|
|
IS
|
|
SELECT DISTINCT
|
|
mld_stdmelding_key,
|
|
sr1.mld_stdmsrtruimte_t_uitvtijd.eenheid eenheid,
|
|
sr1.mld_stdmsrtruimte_t_uitvtijd.tijdsduur tijdsduur
|
|
FROM (SELECT mld_stdmelding_key,
|
|
DECODE (sr.mld_stdmsrtruimte_t_uitvtijd.eenheid, 'U', 0, 'D', 100)
|
|
+ sr.mld_stdmsrtruimte_t_uitvtijd.tijdsduur
|
|
duur,
|
|
sr.mld_stdmsrtruimte_t_uitvtijd
|
|
FROM mld_stdmsrtruimte sr) sr1
|
|
WHERE NOT EXISTS (SELECT *
|
|
FROM (SELECT mld_stdmelding_key,
|
|
DECODE (sr.mld_stdmsrtruimte_t_uitvtijd.eenheid,
|
|
'U', 0,
|
|
'D', 100)
|
|
+ sr.mld_stdmsrtruimte_t_uitvtijd.tijdsduur
|
|
duur
|
|
FROM mld_stdmsrtruimte sr) sr2
|
|
WHERE sr1.mld_stdmelding_key = sr2.mld_stdmelding_key AND sr1.duur < sr2.duur);
|
|
|
|
v_newline VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000); -- Import line
|
|
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
v_tijdsduur NUMBER (10, 5);
|
|
v_eenheid VARCHAR2 (1);
|
|
v_basiskorting NUMBER;
|
|
v_varkorting NUMBER;
|
|
v_stdmsrtruimte_key NUMBER;
|
|
v_stdmelding_omschrijving VARCHAR2 (60);
|
|
v_begin NUMBER;
|
|
v_eind NUMBER;
|
|
v_stdmelding_regime NUMBER;
|
|
BEGIN
|
|
SELECT COUNT ( * ) INTO v_count FROM pchw_imp_storing_regime;
|
|
|
|
IF v_count < 1000 AND 1=0 -- Toch maar even niet testen. De lijst met Kq meldingen bevat maar 17 records
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Aantal ingelezen regels: ' || v_count || ' is te weing.',
|
|
NULL);
|
|
RETURN;
|
|
END IF;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
v_aanduiding :=
|
|
rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| rec.stdmelding
|
|
|| ') '
|
|
|| v_tijdsduur
|
|
|| ' '
|
|
|| v_eenheid
|
|
|| ' '
|
|
|| v_basiskorting
|
|
|| '-'
|
|
|| v_varkorting;
|
|
|
|
IF rec.tht_regime = '13'
|
|
THEN
|
|
v_begin := 7;
|
|
v_eind := 20;
|
|
v_stdmelding_regime := 2; -- openingstijden
|
|
ELSE
|
|
v_begin := 0;
|
|
v_eind := 24;
|
|
v_stdmelding_regime := 3; -- 24/7
|
|
END IF;
|
|
IF rec.mld_stdmelding_key IS NOT NULL
|
|
THEN
|
|
-- de hersteltijden gelden niet voor alle meldingen in de vakgroep.
|
|
IF rec.alg_srtruimte_key IS NULL
|
|
THEN
|
|
-- deze melding is gelijk voor alle ruimtesoorten. We gaan dit dus bij de stdmelding aanpassen.
|
|
v_errormsg := 'Zoeken stdmelding';
|
|
|
|
SELECT std.mld_stdmelding_t_uitvoertijd.tijdsduur tijdsduur,
|
|
std.mld_stdmelding_t_uitvoertijd.eenheid eenheid,
|
|
COALESCE (mld_stdmelding_malusbasis, 0)
|
|
mld_stdmelding_malusbasis,
|
|
COALESCE (mld_stdmelding_malus, 0) mld_stdmelding_malus
|
|
INTO v_tijdsduur,
|
|
v_eenheid,
|
|
v_basiskorting,
|
|
v_varkorting
|
|
FROM mld_stdmelding std
|
|
WHERE std.mld_stdmelding_key = rec.mld_stdmelding_key
|
|
AND std.mld_stdmelding_verwijder IS NULL;
|
|
|
|
IF v_tijdsduur <> rec.tijdsduur
|
|
OR v_eenheid <> rec.eenheid
|
|
OR v_basiskorting <> rec.bk
|
|
OR v_varkorting <> rec.vk
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Gewijzigd stdm1 ('
|
|
|| rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| rec.stdmelding
|
|
|| ')',
|
|
v_tijdsduur
|
|
|| ' '
|
|
|| v_eenheid
|
|
|| ' '
|
|
|| v_basiskorting
|
|
|| '-'
|
|
|| v_varkorting
|
|
|| ' -> '
|
|
|| rec.tijdsduur
|
|
|| ' '
|
|
|| rec.eenheid
|
|
|| ' '
|
|
|| rec.bk
|
|
|| '-'
|
|
|| rec.vk);
|
|
|
|
v_errormsg := 'Aanpassen stdmelding';
|
|
|
|
UPDATE mld_stdmelding
|
|
SET mld_stdmelding_t_uitvoertijd =
|
|
mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid),
|
|
mld_stdmelding_malus = rec.vk,
|
|
mld_stdmelding_malusbasis = rec.bk,
|
|
mld_stdmelding_regime = v_stdmelding_regime
|
|
WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
|
|
|
FOR rec_sr
|
|
IN (SELECT *
|
|
FROM mld_stdmsrtruimte
|
|
WHERE mld_stdmelding_key = rec.mld_stdmelding_key)
|
|
LOOP
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Verwijderd ('
|
|
|| rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| rec.stdmelding
|
|
|| ')',
|
|
NULL);
|
|
|
|
v_errormsg := 'Verwijderen stdmsrtruimte';
|
|
|
|
DELETE mld_stdmsrtruimte
|
|
WHERE mld_stdmsrtruimte_key = rec_sr.mld_stdmsrtruimte_key;
|
|
END LOOP;
|
|
END IF;
|
|
ELSE
|
|
-- Stdmelding en srtruimte zijn ingevuld. Dus een upsert op het mld_stdmsrtruimte record uitvoeren
|
|
BEGIN
|
|
v_errormsg := 'Zoeken stdmsrtruimte';
|
|
|
|
SELECT stdsr.mld_stdmsrtruimte_t_uitvtijd.tijdsduur tijdsduur,
|
|
stdsr.mld_stdmsrtruimte_t_uitvtijd.eenheid eenheid,
|
|
COALESCE (mld_stdmsrtruimte_malusbasis, 0)
|
|
mld_stdmsrtruimte_malusbasis,
|
|
COALESCE (mld_stdmsrtruimte_malus, 0)
|
|
mld_stdmsrtruimte_malus,
|
|
mld_stdmsrtruimte_key
|
|
INTO v_tijdsduur,
|
|
v_eenheid,
|
|
v_basiskorting,
|
|
v_varkorting,
|
|
v_stdmsrtruimte_key
|
|
FROM mld_stdmsrtruimte stdsr
|
|
WHERE stdsr.mld_stdmelding_key = rec.mld_stdmelding_key
|
|
AND stdsr.alg_srtruimte_key = rec.alg_srtruimte_key;
|
|
|
|
IF v_tijdsduur <> rec.tijdsduur
|
|
OR v_eenheid <> rec.eenheid
|
|
OR v_basiskorting <> rec.bk
|
|
OR v_varkorting <> rec.vk
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Gewijzigd stdmsr1 ('
|
|
|| rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| rec.stdmelding
|
|
|| ')',
|
|
v_tijdsduur
|
|
|| ' '
|
|
|| v_eenheid
|
|
|| ' '
|
|
|| v_basiskorting
|
|
|| '-'
|
|
|| v_varkorting
|
|
|| ' -> '
|
|
|| rec.tijdsduur
|
|
|| ' '
|
|
|| rec.eenheid
|
|
|| ' '
|
|
|| rec.bk
|
|
|| '-'
|
|
|| rec.vk);
|
|
|
|
v_errormsg := 'Aanpassen stdmsrtruimte';
|
|
|
|
UPDATE mld_stdmsrtruimte
|
|
SET mld_stdmsrtruimte_t_uitvtijd =
|
|
mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid),
|
|
mld_stdmsrtruimte_malus = rec.vk,
|
|
mld_stdmsrtruimte_malusbasis = rec.bk,
|
|
mld_stdmsrtruimte_beginuur1 = v_begin,
|
|
mld_stdmsrtruimte_einduur1 = v_eind
|
|
WHERE mld_stdmsrtruimte_key = v_stdmsrtruimte_key;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Toegevoegd ('
|
|
|| rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| rec.stdmelding
|
|
|| ')',
|
|
rec.tijdsduur
|
|
|| ' '
|
|
|| rec.eenheid
|
|
|| ' '
|
|
|| rec.bk
|
|
|| '-'
|
|
|| rec.vk);
|
|
|
|
v_errormsg := 'Toevoegen stdmsrtruimte';
|
|
|
|
INSERT INTO mld_stdmsrtruimte (mld_stdmsrtruimte_t_uitvtijd,
|
|
mld_stdmsrtruimte_malus,
|
|
mld_stdmsrtruimte_malusbasis,
|
|
alg_srtruimte_key,
|
|
mld_stdmelding_key,
|
|
mld_stdmsrtruimte_beginuur1,
|
|
mld_stdmsrtruimte_einduur1)
|
|
VALUES (mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid),
|
|
rec.vk,
|
|
rec.bk,
|
|
rec.alg_srtruimte_key,
|
|
rec.mld_stdmelding_key,
|
|
v_begin,
|
|
v_eind);
|
|
END;
|
|
END IF;
|
|
ELSE
|
|
-- de standaardmelding is null. De aanpassingen gelden dus voor alle meldingen die niet in de lijst voorkomen.
|
|
IF rec.alg_srtruimte_key IS NULL
|
|
THEN
|
|
-- deze melding is gelijk voor alle ruimtesoorten. We gaan dit dus bij de stdmelding aanpassen.
|
|
FOR rec_std
|
|
IN (SELECT *
|
|
FROM mld_stdmelding std
|
|
WHERE std.mld_ins_discipline_key = rec.mld_discipline_key
|
|
AND std.mld_stdmelding_verwijder IS NULL
|
|
AND std.mld_stdmelding_key NOT IN
|
|
(SELECT i.mld_stdmelding_key
|
|
FROM pchw_imp_storing_regime i
|
|
WHERE COALESCE (i.mld_stdmelding_key, -1) =
|
|
std.mld_stdmelding_key))
|
|
LOOP
|
|
v_errormsg := 'Zoeken stdmelding';
|
|
|
|
SELECT std.mld_stdmelding_t_uitvoertijd.tijdsduur tijdsduur,
|
|
std.mld_stdmelding_t_uitvoertijd.eenheid eenheid,
|
|
COALESCE (mld_stdmelding_malusbasis, 0)
|
|
mld_stdmelding_malusbasis,
|
|
COALESCE (mld_stdmelding_malus, 0) mld_stdmelding_malus,
|
|
mld_stdmelding_omschrijving
|
|
INTO v_tijdsduur,
|
|
v_eenheid,
|
|
v_basiskorting,
|
|
v_varkorting,
|
|
v_stdmelding_omschrijving
|
|
FROM mld_stdmelding std
|
|
WHERE std.mld_stdmelding_key = rec_std.mld_stdmelding_key;
|
|
|
|
IF v_tijdsduur <> rec.tijdsduur
|
|
OR v_eenheid <> rec.eenheid
|
|
OR v_basiskorting <> rec.bk
|
|
OR v_varkorting <> rec.vk
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Gewijzigd stdm2 ('
|
|
|| rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| v_stdmelding_omschrijving
|
|
|| ')',
|
|
v_tijdsduur
|
|
|| ' '
|
|
|| v_eenheid
|
|
|| ' '
|
|
|| v_basiskorting
|
|
|| '-'
|
|
|| v_varkorting
|
|
|| ' -> '
|
|
|| rec.tijdsduur
|
|
|| ' '
|
|
|| rec.eenheid
|
|
|| ' '
|
|
|| rec.bk
|
|
|| '-'
|
|
|| rec.vk);
|
|
|
|
v_errormsg := 'Aanpassen stdmelding';
|
|
|
|
UPDATE mld_stdmelding
|
|
SET mld_stdmelding_t_uitvoertijd =
|
|
mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid),
|
|
mld_stdmelding_malus = rec.vk,
|
|
mld_stdmelding_malusbasis = rec.bk,
|
|
mld_stdmelding_regime = v_stdmelding_regime
|
|
WHERE mld_stdmelding_key = rec_std.mld_stdmelding_key;
|
|
END IF;
|
|
END LOOP;
|
|
ELSE
|
|
-- Ruimte is gevuld maar standaardmelding niet. We gaan nu voor alle bestaande standaardmeldingen en ruimtesoorten mld_stdmsrtruimte records aanmaken of bijwerken.
|
|
FOR rec_stdsr
|
|
IN (SELECT std.mld_stdmelding_key,
|
|
std.mld_stdmelding_omschrijving,
|
|
stdmsr.mld_stdmsrtruimte_t_uitvtijd.tijdsduur
|
|
tijdsduur,
|
|
stdmsr.mld_stdmsrtruimte_t_uitvtijd.eenheid eenheid,
|
|
COALESCE (mld_stdmsrtruimte_malusbasis, 0)
|
|
mld_stdmsrtruimte_malusbasis,
|
|
COALESCE (mld_stdmsrtruimte_malus, 0)
|
|
mld_stdmsrtruimte_malus,
|
|
mld_stdmsrtruimte_key
|
|
FROM mld_stdmelding std,
|
|
(SELECT *
|
|
FROM mld_stdmsrtruimte
|
|
WHERE alg_srtruimte_key = rec.alg_srtruimte_key)
|
|
stdmsr
|
|
WHERE std.mld_ins_discipline_key = rec.mld_discipline_key
|
|
AND std.mld_stdmelding_verwijder IS NULL
|
|
AND std.mld_stdmelding_key =
|
|
stdmsr.mld_stdmelding_key(+))
|
|
LOOP
|
|
v_tijdsduur := rec_stdsr.tijdsduur;
|
|
v_eenheid := rec_stdsr.eenheid;
|
|
v_basiskorting := rec_stdsr.mld_stdmsrtruimte_malusbasis;
|
|
v_varkorting := rec_stdsr.mld_stdmsrtruimte_malus;
|
|
v_stdmelding_omschrijving :=
|
|
rec_stdsr.mld_stdmelding_omschrijving;
|
|
v_stdmsrtruimte_key := rec_stdsr.mld_stdmsrtruimte_key;
|
|
|
|
IF rec_stdsr.mld_stdmsrtruimte_key IS NOT NULL
|
|
THEN
|
|
-- Update
|
|
IF v_tijdsduur <> rec.tijdsduur
|
|
OR v_eenheid <> rec.eenheid
|
|
OR v_basiskorting <> rec.bk
|
|
OR v_varkorting <> rec.vk
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Gewijzigd stdmsr2(' || v_stdmsrtruimte_key || '*'
|
|
|| rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| v_stdmelding_omschrijving
|
|
|| ')',
|
|
v_tijdsduur
|
|
|| ' '
|
|
|| v_eenheid
|
|
|| ' '
|
|
|| v_basiskorting
|
|
|| '-'
|
|
|| v_varkorting
|
|
|| ' -> '
|
|
|| rec.tijdsduur
|
|
|| ' '
|
|
|| rec.eenheid
|
|
|| ' '
|
|
|| rec.bk
|
|
|| '-'
|
|
|| rec.vk);
|
|
|
|
v_errormsg := 'Aanpassen stdmsrtruimte';
|
|
|
|
UPDATE mld_stdmsrtruimte
|
|
SET mld_stdmsrtruimte_t_uitvtijd =
|
|
mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid),
|
|
mld_stdmsrtruimte_malus = rec.vk,
|
|
mld_stdmsrtruimte_malusbasis = rec.bk,
|
|
mld_stdmsrtruimte_beginuur1 = v_begin,
|
|
mld_stdmsrtruimte_einduur1 = v_eind
|
|
WHERE mld_stdmsrtruimte_key = v_stdmsrtruimte_key;
|
|
END IF;
|
|
ELSE
|
|
-- Insert
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Toegevoegd ('
|
|
|| rec.r_codering
|
|
|| '-'
|
|
|| rec.vakgroep
|
|
|| '/'
|
|
|| v_stdmelding_omschrijving
|
|
|| ')',
|
|
rec.tijdsduur
|
|
|| ' '
|
|
|| rec.eenheid
|
|
|| ' '
|
|
|| rec.bk
|
|
|| '-'
|
|
|| rec.vk);
|
|
|
|
v_errormsg := 'Toevoegen stdmsrtruimte';
|
|
|
|
INSERT INTO mld_stdmsrtruimte (mld_stdmsrtruimte_t_uitvtijd,
|
|
mld_stdmsrtruimte_malus,
|
|
mld_stdmsrtruimte_malusbasis,
|
|
alg_srtruimte_key,
|
|
mld_stdmelding_key,
|
|
mld_stdmsrtruimte_beginuur1,
|
|
mld_stdmsrtruimte_einduur1)
|
|
VALUES (mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid),
|
|
rec.vk,
|
|
rec.bk,
|
|
rec.alg_srtruimte_key,
|
|
rec_stdsr.mld_stdmelding_key,
|
|
v_begin,
|
|
v_eind);
|
|
END IF;
|
|
END LOOP;
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_del
|
|
LOOP
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'I',
|
|
'Verwijderd ('
|
|
|| rec.alg_srtruimte_code
|
|
|| '-'
|
|
|| rec.ins_discipline_omschrijving
|
|
|| '/'
|
|
|| rec.mld_stdmelding_omschrijving
|
|
|| ')',
|
|
NULL);
|
|
|
|
DELETE mld_stdmsrtruimte WHERE mld_stdmsrtruimte_key = rec. mld_stdmsrtruimte_key;
|
|
|
|
END LOOP;
|
|
|
|
-- Als de hersteltijd per ruimtesoort geldt dan moeten we de vlag afhankelijk ook zetten bij de stdmelding.
|
|
UPDATE mld_stdmelding std
|
|
SET mld_stdmelding_afhankelijk =
|
|
(SELECT DECODE (COUNT ( * ), 0, 0, 1)
|
|
FROM mld_stdmsrtruimte sr
|
|
WHERE sr.mld_stdmelding_key = std.mld_stdmelding_key);
|
|
|
|
-- Als er een uitsplitsing is naar ruimtesoort dan moeten we toch de default uitvoertijd bij de stdmelding
|
|
-- invullen. Anders wordt de verkeerde eenheid bij respijt getoond.
|
|
FOR rec IN c_upd_std
|
|
LOOP
|
|
UPDATE mld_stdmelding
|
|
SET mld_stdmelding_t_uitvoertijd = mld_t_uitvoertijd (rec.tijdsduur, rec.eenheid)
|
|
WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_aanduiding := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
SUBSTR (v_errormsg, 1, 1000),
|
|
v_aanduiding);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_import_kenmerken (
|
|
p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c_cursor
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
|
|
v_newline VARCHAR2(1000);
|
|
v_aanduiding VARCHAR2(1000); -- Import line
|
|
v_fielddelimitor VARCHAR2(1); -- Field seperator
|
|
v_errormsg VARCHAR(200);
|
|
v_errorhint VARCHAR(200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2(200);
|
|
header_found BOOLEAN;
|
|
v_error NUMBER(1);
|
|
v_dummy VARCHAR2(100);
|
|
-- De importvelden
|
|
v_stdmelding VARCHAR2(100);
|
|
v_vakgroep VARCHAR2(100);
|
|
v_vakgroeptype VARCHAR2(100);
|
|
v_kenmerk VARCHAR2(100);
|
|
v_usrtab_omschrijving VARCHAR2(30);
|
|
v_stdmelding_key NUMBER;
|
|
v_discipline_key NUMBER;
|
|
v_srtdiscipline_key NUMBER;
|
|
|
|
|
|
BEGIN
|
|
-- Init
|
|
header_found := FALSE;
|
|
v_fielddelimitor := ';';
|
|
|
|
-- Clear my previous imported rows
|
|
DELETE FROM pchw_imp_kenmerken;
|
|
|
|
FOR rec1 IN c_cursor
|
|
LOOP
|
|
BEGIN
|
|
v_newline := REPLACE(rec1.fac_imp_file_line, CHR(160), ' ');
|
|
v_aanduiding := SUBSTR (v_newline, 1, 200);
|
|
v_error := 0;
|
|
|
|
IF SUBSTR (v_newline, 1, 3) = '?'
|
|
THEN
|
|
-- EF BB BF aangetroffen
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
'Byte Order Mark aangetroffen',
|
|
'Bestand heeft onbehandeld UTF-8 formaat.');
|
|
v_newline := SUBSTR (v_newline, 4);
|
|
END IF;
|
|
|
|
v_errormsg := 'Inlezen velden';
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); -- OS code
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_kenmerk);
|
|
-- fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
|
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype);
|
|
|
|
-- Skip until a valid header is found
|
|
v_errormsg := 'Controleer de header';
|
|
|
|
IF UPPER (rec1.fac_imp_file_line) LIKE
|
|
'OS_CODE;VAKGROEP;STANDAARDMELDING;ONDERDEEL;VAKGROEPTYPE%'
|
|
THEN
|
|
-- Sla de kopregel over.
|
|
header_found := TRUE;
|
|
ELSIF (header_found AND v_vakgroep IS NOT NULL)
|
|
THEN
|
|
v_errormsg := 'Controleer vakgroeptype';
|
|
|
|
BEGIN
|
|
v_vakgroeptype := TRIM(v_vakgroeptype);
|
|
SELECT ins_srtdiscipline_key
|
|
INTO v_srtdiscipline_key
|
|
FROM ins_srtdiscipline sd
|
|
WHERE sd.ins_srtdiscipline_module = 'MLD'
|
|
AND sd.ins_srtdiscipline_verwijder IS NULL
|
|
AND UPPER (sd.ins_srtdiscipline_omschrijving) =
|
|
UPPER (v_vakgroeptype);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Vakgroeptype niet gevonden: ' || v_vakgroeptype,
|
|
v_aanduiding);
|
|
v_srtdiscipline_key := NULL;
|
|
v_error := 1;
|
|
END;
|
|
|
|
v_errormsg := 'Controleer vakgroep';
|
|
|
|
BEGIN
|
|
v_vakgroep := TRIM(v_vakgroep);
|
|
SELECT ins_discipline_key
|
|
INTO v_discipline_key
|
|
FROM ins_tab_discipline d
|
|
WHERE d.ins_discipline_module = 'MLD'
|
|
AND d.ins_discipline_verwijder IS NULL
|
|
AND d.ins_srtdiscipline_key = v_srtdiscipline_key
|
|
AND UPPER (d.ins_discipline_omschrijving) =
|
|
UPPER (v_vakgroep);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Vakgroep niet gevonden: ' || v_vakgroep,
|
|
v_aanduiding);
|
|
v_discipline_key := NULL;
|
|
v_error := 1;
|
|
END;
|
|
|
|
v_usrtab_omschrijving := SUBSTR(v_vakgroeptype,1,2) || '/' || SUBSTR(v_vakgroep,1,6) || '/' || SUBSTR(v_stdmelding,1,6);
|
|
v_errormsg := 'Controleer stdmelding';
|
|
|
|
IF v_stdmelding IS NOT NULL
|
|
THEN
|
|
v_stdmelding := SUBSTR(TRIM(v_stdmelding),1,60);
|
|
BEGIN
|
|
SELECT mld_stdmelding_key
|
|
INTO v_stdmelding_key
|
|
FROM mld_stdmelding std
|
|
WHERE std.mld_stdmelding_verwijder IS NULL
|
|
AND std.mld_ins_discipline_key = v_discipline_key
|
|
AND UPPER (std.mld_stdmelding_omschrijving) =
|
|
UPPER (v_stdmelding);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Standaard melding niet gevonden: ' || v_stdmelding,
|
|
v_aanduiding);
|
|
v_stdmelding_key := NULL;
|
|
v_error := 1;
|
|
END;
|
|
ELSE
|
|
v_stdmelding_key := NULL;
|
|
END IF;
|
|
|
|
IF v_error = 0
|
|
THEN
|
|
INSERT INTO pchw_imp_kenmerken (mld_stdmelding_key,
|
|
fac_usrtab_omschrijving,
|
|
fac_usrdata_omschrijving)
|
|
VALUES (v_stdmelding_key,
|
|
v_usrtab_omschrijving,
|
|
SUBSTR(v_kenmerk,1,60));
|
|
END IF;
|
|
|
|
COMMIT;
|
|
END IF;
|
|
END;
|
|
END loop;
|
|
|
|
IF NOT header_found
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Geen geldige header aangetroffen',
|
|
'Bestand is geen geldig kenmerken importbestand.');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_aanduiding := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
|
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
|
DELETE FROM pchw_imp_kenmerken;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_update_kenmerken (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT * FROM pchw_imp_kenmerken;
|
|
|
|
CURSOR c_hint
|
|
IS
|
|
SELECT std.mld_stdmelding_key, kd.fac_usrtab_key
|
|
FROM mld_srtkenmerk sk,
|
|
mld_kenmerk k,
|
|
fac_kenmerkdomein kd,
|
|
mld_stdmelding std
|
|
WHERE mld_srtkenmerk_omschrijving LIKE 'Type %'
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND k.mld_stdmelding_key = std.mld_stdmelding_key;
|
|
|
|
|
|
|
|
v_aanduiding VARCHAR2 (1000); -- Import line
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_usrtab_key fac_usrtab.fac_usrtab_key%TYPE;
|
|
v_usrdata_key fac_usrdata.fac_usrdata_key%TYPE;
|
|
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
|
v_srtkenmerk_key mld_srtkenmerk.mld_srtkenmerk_key%TYPE;
|
|
v_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
|
v_srtkenmerk_omschrijving mld_srtkenmerk.mld_srtkenmerk_omschrijving%TYPE;
|
|
v_hint VARCHAR2 (4000);
|
|
BEGIN
|
|
FOR rec IN c
|
|
LOOP
|
|
v_aanduiding :=
|
|
rec.mld_stdmelding_key
|
|
|| '-'
|
|
|| rec.fac_usrtab_omschrijving
|
|
|| '/'
|
|
|| rec.fac_usrdata_omschrijving;
|
|
|
|
IF rec.mld_stdmelding_key IS NOT NULL
|
|
THEN
|
|
v_errorhint := 'Toevoegen of bepalen fac_usrtab';
|
|
|
|
BEGIN
|
|
SELECT fac_usrtab_key
|
|
INTO v_usrtab_key
|
|
FROM fac_usrtab
|
|
WHERE fac_usrtab_naam = rec.fac_usrtab_omschrijving;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO fac_usrtab (fac_usrtab_naam, fac_usrtab_omschrijving)
|
|
VALUES (rec.fac_usrtab_omschrijving, rec.fac_usrtab_omschrijving)
|
|
RETURNING fac_usrtab_key
|
|
INTO v_usrtab_key;
|
|
END;
|
|
|
|
v_errorhint := 'Toevoegen of bepalen fac_kenmerkdomein';
|
|
|
|
BEGIN
|
|
SELECT fac_kenmerkdomein_key
|
|
INTO v_kenmerkdomein_key
|
|
FROM fac_kenmerkdomein
|
|
WHERE fac_kenmerkdomein_verwijder IS NULL
|
|
AND fac_kenmerkdomein_module = 'MLD'
|
|
AND fac_usrtab_key = v_usrtab_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_omschrijving,
|
|
fac_kenmerkdomein_module,
|
|
fac_kenmerkdomein_kolomnaam,
|
|
fac_kenmerkdomein_kolomtxt,
|
|
fac_kenmerkdomein_objectnaam,
|
|
fac_usrtab_key)
|
|
VALUES (rec.fac_usrtab_omschrijving,
|
|
'MLD',
|
|
'FAC_USRDATA_KEY',
|
|
'FAC_USRDATA_OMSCHR',
|
|
'FAC_USRDATA',
|
|
v_usrtab_key)
|
|
RETURNING fac_kenmerkdomein_key
|
|
INTO v_kenmerkdomein_key;
|
|
END;
|
|
|
|
v_errorhint := 'Toevoegen of bepalen srtkenmerk_omschrijving';
|
|
|
|
SELECT SUBSTR('Type ' || ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving, 1, 50)
|
|
INTO v_srtkenmerk_omschrijving
|
|
FROM mld_discipline d, mld_stdmelding std
|
|
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
|
|
AND std.mld_stdmelding_key = rec.mld_stdmelding_key;
|
|
|
|
v_errorhint := 'Toevoegen of bepalen mld_srtkenmerk';
|
|
|
|
BEGIN
|
|
SELECT mld_srtkenmerk_key
|
|
INTO v_srtkenmerk_key
|
|
FROM mld_srtkenmerk
|
|
WHERE mld_srtkenmerk_verwijder IS NULL
|
|
AND fac_kenmerkdomein_key = v_kenmerkdomein_key
|
|
AND mld_srtkenmerk_omschrijving = v_srtkenmerk_omschrijving;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_omschrijving,
|
|
mld_srtkenmerk_kenmerktype,
|
|
fac_kenmerkdomein_key)
|
|
VALUES (v_srtkenmerk_omschrijving, 'R', v_kenmerkdomein_key)
|
|
RETURNING mld_srtkenmerk_key
|
|
INTO v_srtkenmerk_key;
|
|
END;
|
|
|
|
v_errorhint := 'Toevoegen of bepalen mld_kenmerk';
|
|
|
|
BEGIN
|
|
SELECT mld_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_kenmerk_verwijder IS NULL AND mld_srtkenmerk_key = v_srtkenmerk_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO mld_kenmerk (mld_srtkenmerk_key,
|
|
mld_stdmelding_key,
|
|
mld_kenmerk_niveau,
|
|
mld_kenmerk_volgnummer)
|
|
VALUES (v_srtkenmerk_key,
|
|
rec.mld_stdmelding_key,
|
|
'S',
|
|
400)
|
|
RETURNING mld_kenmerk_key
|
|
INTO v_kenmerk_key;
|
|
END;
|
|
|
|
v_errorhint := 'Toevoegen of bepalen fac_usrdata';
|
|
|
|
BEGIN
|
|
SELECT fac_usrdata_key
|
|
INTO v_usrdata_key
|
|
FROM fac_usrdata
|
|
WHERE fac_usrdata_code = SUBSTR (rec.fac_usrdata_omschrijving, 1, 40);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
|
|
VALUES (v_usrtab_key, SUBSTR (rec.fac_usrdata_omschrijving, 1, 40), rec.fac_usrdata_omschrijving)
|
|
RETURNING fac_usrdata_key
|
|
INTO v_usrdata_key;
|
|
END;
|
|
|
|
END IF;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_hint
|
|
LOOP
|
|
BEGIN
|
|
SELECT listagg (u.fac_usrdata_omschr, ' ') WITHIN GROUP (ORDER BY u.fac_usrdata_omschr)
|
|
AS hint
|
|
INTO v_hint
|
|
FROM fac_usrdata u
|
|
WHERE fac_usrtab_key = rec.fac_usrtab_key;
|
|
|
|
UPDATE mld_stdmelding
|
|
SET mld_stdmelding_hint = v_hint
|
|
WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_aanduiding := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
SUBSTR (v_errormsg, 1, 1000),
|
|
v_aanduiding || ' - ' || v_errorhint);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_import_mld (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
-- Verwijder nbsp karakters.
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, CHR (160), ' ')
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
fac_import_mld (p_import_key);
|
|
|
|
UPDATE fac_imp_mld SET mld_stdmelding_groep = TRIM(mld_stdmelding_groep);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE pchw_update_mld (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT i.*,
|
|
sd.ins_srtdiscipline_key,
|
|
d.ins_discipline_key,
|
|
std.mld_stdmelding_key
|
|
FROM fac_imp_file i,
|
|
ins_tab_discipline d,
|
|
ins_srtdiscipline sd,
|
|
mld_stdmelding std
|
|
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
|
AND d.ins_discipline_key = std.mld_ins_discipline_key
|
|
AND i.fac_imp_file_line LIKE
|
|
ins_srtdiscipline_omschrijving
|
|
|| ';%;'
|
|
|| ins_discipline_omschrijving
|
|
|| ';'
|
|
|| mld_stdmelding_omschrijving
|
|
|| ';%'
|
|
AND mld_stdmelding_verwijder IS NULL
|
|
AND ins_discipline_verwijder IS NULL
|
|
AND sd.ins_srtdiscipline_verwijder IS NULL
|
|
AND fac_import_key = p_import_key;
|
|
|
|
v_aanduiding VARCHAR2 (400);
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_regime VARCHAR2 (40);
|
|
BEGIN
|
|
fac_update_mld (p_import_key);
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
fac.imp_getfield_nr (rec.fac_imp_file_line, ';', 20, v_regime);
|
|
DBMS_OUTPUT.put_line (v_regime);
|
|
IF v_regime LIKE '%24%'
|
|
THEN
|
|
-- 24/7
|
|
UPDATE mld_stdmelding SET mld_stdmelding_regime = 3 WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
|
ELSE
|
|
-- Openingstijden
|
|
UPDATE mld_stdmelding SET mld_stdmelding_regime = 2 WHERE mld_stdmelding_key = rec.mld_stdmelding_key;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
DBMS_OUTPUT.put_line ('Fout bij bepalen regime uit melding: ' || rec.fac_imp_file_line);
|
|
END;
|
|
END LOOP;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_aanduiding := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
SUBSTR (v_errormsg, 1, 1000),
|
|
v_aanduiding);
|
|
END;
|
|
/
|
|
|
|
--Klant specifieke view voor het tonen van het totaal aantal korting per onderwerp over 1 maand
|
|
CREATE OR REPLACE VIEW pchw_v_totaal_korting_ond
|
|
AS
|
|
SELECT ins_discipline_omschrijving,
|
|
DECODE (
|
|
UPPER (ins_discipline_omschrijving),
|
|
'COMFORT', 'FTRC',
|
|
'FUNCTIONALITEIT', 'FTRC',
|
|
'TOEGANKELIJKHEID', 'FTRC',
|
|
'REPRESENTATIVITEIT', 'FTRC',
|
|
'VEILIGHEID ' || CHR (38) || ' GEZONDHEID', 'V' || CHR (38) || 'G',
|
|
'WET ' || CHR (38) || ' REGELGEVING', 'W' || CHR (38) || 'R',
|
|
'Dienst')
|
|
onderwerp, totaal
|
|
FROM pchx_v_monitoring m, mld_discipline d, mld_melding
|
|
where m.discipline_key = d.ins_discipline_key
|
|
AND totaal is not null
|
|
AND mld_melding_datum > ADD_MONTHS (SYSDATE, -1);
|
|
|
|
|
|
--Klant specifieke view voor het tonen van het aantal nieuwe meldingen
|
|
CREATE OR REPLACE VIEW pchw_v_lijst_nieuwe_mld
|
|
AS
|
|
SELECT meldingnummer,
|
|
productgroep,
|
|
melding_ruimte,
|
|
onderwerp,
|
|
melding_status,
|
|
ROUND (
|
|
mld_t_uitvoertijd (
|
|
m.min_t_sla.tijdsduur + m.max_t_respijt.tijdsduur,
|
|
m.min_t_sla.eenheid).tijdsduur,
|
|
2)
|
|
tht
|
|
FROM mld_v_udr_melding mu, pchx_v_startmelding_geg m
|
|
WHERE MELDING_STATUS IN ('Nieuw', 'Te accepteren')
|
|
AND mu.melding_key = m_start
|
|
ORDER BY tht;
|
|
|
|
|
|
--Klant specifieke view voor het tonen van het aantal storingen geaccepteerd binnen SLA
|
|
CREATE OR REPLACE VIEW pchw_v_graph_optijd_sla
|
|
(
|
|
fclt_xas_,
|
|
fclt_yas_
|
|
)
|
|
AS
|
|
SELECT SUM (acceptoptijd) aantal, COUNT (mld_key) totaal
|
|
FROM (SELECT DISTINCT
|
|
m.mld_melding_key
|
|
mld_key,
|
|
CASE SIGN (
|
|
fac.datumtijdplusuitvoertijd (
|
|
fac.gettrackingdate ('MLDNEW',
|
|
m.mld_melding_key),
|
|
std.mld_stdmelding_t_accepttijd.tijdsduur,
|
|
std.mld_stdmelding_t_accepttijd.eenheid)
|
|
- COALESCE (
|
|
fac.gettrackingdate ('MLDREJ',
|
|
m.mld_melding_key),
|
|
COALESCE (
|
|
fac.gettrackingdate ('MLDACP',
|
|
m.mld_melding_key),
|
|
SYSDATE)))
|
|
WHEN -1
|
|
THEN
|
|
0
|
|
ELSE
|
|
1
|
|
END
|
|
acceptoptijd
|
|
FROM mld_melding m,
|
|
mld_discipline md,
|
|
mld_stdmelding std,
|
|
ins_srtdiscipline sd
|
|
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
|
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND md.ins_srtdiscipline_key = sd.INS_SRTDISCIPLINE_KEY
|
|
AND sd.INS_SRTDISCIPLINE_KEY = 102
|
|
AND mld_melding_status NOT IN (1, 5, 6)
|
|
AND mld_melding_datum > SYSDATE - 7
|
|
AND NOT mld_melding_datum > SYSDATE);
|
|
|
|
|
|
|
|
|
|
|
|
------ 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
|
|
|