4916 lines
222 KiB
SQL
4916 lines
222 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database.
|
||
|
||
DEFINE thisfile = 'FZKH.SQL'
|
||
DEFINE dbuser = '^FZKH'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE PACKAGE FZKH
|
||
AS
|
||
|
||
FUNCTION getfirststartdate(p_startdatum IN DATE, p_refdatum IN DATE, p_cyclus IN NUMBER)
|
||
RETURN DATE;
|
||
|
||
PROCEDURE update_prs2kpnvgr;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY FZKH
|
||
AS
|
||
FUNCTION getfirststartdate (p_startdatum IN DATE, p_refdatum IN DATE, p_cyclus IN NUMBER)
|
||
RETURN DATE
|
||
AS
|
||
v_startdatum DATE;
|
||
BEGIN
|
||
IF (p_startdatum < p_refdatum AND p_cyclus > 0)
|
||
THEN
|
||
v_startdatum := ADD_MONTHS (p_startdatum, p_cyclus * 12);
|
||
|
||
IF (v_startdatum < p_refdatum)
|
||
THEN
|
||
v_startdatum := fzkh.getfirststartdate (v_startdatum, p_refdatum, p_cyclus);
|
||
END IF;
|
||
ELSE
|
||
v_startdatum := p_startdatum;
|
||
END IF;
|
||
|
||
RETURN v_startdatum;
|
||
END;
|
||
|
||
-- Bijwerken vervangersgroepen (vgr) met FZKH-personen (prs) uit afdelingen
|
||
-- met dezelfde kostenplaats (kpn)!
|
||
PROCEDURE update_prs2kpnvgr
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
|
||
-- Toevoegen vervangersgroepen voor nieuwe kostenplaatsen (waarvoor
|
||
-- nog geen vervangersgroep bestaat).
|
||
CURSOR c1 IS
|
||
SELECT '[' || TO_CHAR (kp.prs_kostenplaats_key) || '|' || kp.prs_kostenplaats_nr || '] ' aanduiding,
|
||
kp.prs_kostenplaats_key,
|
||
kp.prs_kostenplaats_nr || '_' || SUBSTR (kp.prs_kostenplaats_omschrijving, 1, 29 - LENGTH (kp.prs_kostenplaats_nr)) vervangersgroep
|
||
FROM prs_v_aanwezigkostenplaats kp
|
||
WHERE EXISTS -- SCIM-kostenplaats (in principe)
|
||
(SELECT 1
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_bedrijf_key = 2 -- Flevoziekenhuis
|
||
AND prs_kostenplaats_key = kp.prs_kostenplaats_key)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_groep
|
||
WHERE fac_groep_collega = 1
|
||
AND fac_groep_omschrijving LIKE kp.prs_kostenplaats_nr || '_%')
|
||
ORDER BY 2;
|
||
|
||
-- Toekennen vervangersgroep aan personen (= met externid) volgens
|
||
-- (afdelings)kostenplaats.
|
||
CURSOR c2 IS
|
||
SELECT '[' || TO_CHAR (g.fac_groep_key) || '|' || TO_CHAR (p.prs_perslid_key) || '] ' aanduiding,
|
||
g.fac_groep_key,
|
||
p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_afdeling a,
|
||
prs_v_aanwezigkostenplaats kp,
|
||
(SELECT * FROM fac_groep WHERE fac_groep_collega = 1) g
|
||
WHERE p.prs_perslid_externid IS NOT NULL -- FZKH-persoon
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_bedrijf_key = 2 -- Flevoziekenhuis
|
||
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND kp.prs_kostenplaats_nr || '_' = SUBSTR (g.fac_groep_omschrijving, 1, INSTR (g.fac_groep_omschrijving, '_'))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = g.fac_groep_key
|
||
AND prs_perslid_key = p.prs_perslid_key)
|
||
ORDER BY 2, 3;
|
||
|
||
-- Afnemen vervangersgroep van personen (= met externid) niet volgens
|
||
-- (afdelings)kostenplaats.
|
||
CURSOR c3 IS
|
||
SELECT '[' || TO_CHAR (gg.fac_groep_key) || '|' || TO_CHAR (gg.prs_perslid_key) || '] ' aanduiding,
|
||
gg.fac_gebruikersgroep_key
|
||
FROM fac_gebruikersgroep gg,
|
||
prs_v_aanwezigperslid p,
|
||
prs_afdeling a,
|
||
prs_v_aanwezigkostenplaats pkp
|
||
WHERE gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_externid IS NOT NULL -- FZKH-persoon
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_bedrijf_key = 2 -- Flevoziekenhuis
|
||
AND a.prs_kostenplaats_key = pkp.prs_kostenplaats_key
|
||
AND EXISTS -- Alleen vervangersgroepen beginnend met prs_kostenplaats_nr afnemen!
|
||
(SELECT 1
|
||
FROM fac_groep g, prs_v_aanwezigkostenplaats gkp
|
||
WHERE g.fac_groep_collega = 1
|
||
AND g.fac_groep_omschrijving LIKE gkp.prs_kostenplaats_nr || '_%'
|
||
AND g.fac_groep_key = gg.fac_groep_key)
|
||
AND NOT EXISTS -- Vervangersgroep niet volgens (afdelings)kostenplaats!
|
||
(SELECT 1
|
||
FROM fac_groep g
|
||
WHERE g.fac_groep_collega = 1
|
||
AND g.fac_groep_omschrijving LIKE pkp.prs_kostenplaats_nr || '_%'
|
||
AND g.fac_groep_key = gg.fac_groep_key)
|
||
ORDER BY 2;
|
||
BEGIN
|
||
-- Toevoegen vervangersgroepen voor nieuwe kostenplaatsen (waarvoor
|
||
-- nog geen vervangersgroep bestaat).
|
||
v_count := 0;
|
||
v_errormsg := 'Fout toevoegen vervangersgroep';
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_collega)
|
||
VALUES (rec.vervangersgroep, 1);
|
||
v_count := v_count + 1;
|
||
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 ('PRS2KPNVGR', 'W', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
fac.writelog ('PRS2KPNVGR', 'S', 'Vervangersgroep/#toegevoegd: ' || TO_CHAR (v_count), '');
|
||
|
||
-- Toekennen vervangersgroep aan personen (= met externid) volgens
|
||
-- (afdelings)kostenplaats.
|
||
v_count := 0;
|
||
v_errormsg := 'Fout toewijzen vervangersgroep';
|
||
FOR rec IN c2
|
||
LOOP
|
||
BEGIN
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
VALUES (rec.fac_groep_key, rec.prs_perslid_key);
|
||
v_count := v_count + 1;
|
||
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 ('PRS2KPNVGR', 'W', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
fac.writelog ('PRS2KPNVGR', 'S', 'Vervangersgroep/#toegekend: ' || TO_CHAR (v_count), '');
|
||
|
||
-- Afnemen vervangersgroep van personen (= met externid) niet volgens
|
||
-- (afdelings)kostenplaats.
|
||
v_count := 0;
|
||
v_errormsg := 'Fout afnemen vervangersgroep';
|
||
FOR rec IN c3
|
||
LOOP
|
||
BEGIN
|
||
DELETE FROM fac_gebruikersgroep
|
||
WHERE fac_gebruikersgroep_key = rec.fac_gebruikersgroep_key;
|
||
v_count := v_count + 1;
|
||
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 ('PRS2KPNVGR', 'W', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
fac.writelog ('PRS2KPNVGR', 'S', 'Vervangersgroep/#afgenomen: ' || TO_CHAR (v_count), '');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('PRS2KPNVGR', 'E', v_errormsg, '');
|
||
END update_prs2kpnvgr;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_import_mjobelementen (p_import_key IN NUMBER)
|
||
IS
|
||
c_delim VARCHAR2 (2) := fac.import_delimiter(p_import_key);
|
||
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR (400);
|
||
v_dummy VARCHAR (255);
|
||
v_ins_kenmerk_key1 VARCHAR2 (255);
|
||
v_ins_kenmerk_key2 VARCHAR2 (255);
|
||
v_ins_kenmerk_key3 VARCHAR2 (255);
|
||
v_ins_kenmerk_key4 VARCHAR2 (255);
|
||
v_ins_kenmerk_key5 VARCHAR2 (255);
|
||
v_ins_kenmerk_key6 VARCHAR2 (255);
|
||
v_ins_kenmerk_key7 VARCHAR2 (255);
|
||
v_ins_kenmerk_key8 VARCHAR2 (255);
|
||
v_ins_kenmerk_key9 VARCHAR2 (255);
|
||
v_ins_kenmerk_key10 VARCHAR2 (255);
|
||
v_ins_kenmerk_key11 VARCHAR2 (255);
|
||
v_ins_kenmerk_key12 VARCHAR2 (255);
|
||
v_ins_kenmerk_key13 VARCHAR2 (255);
|
||
v_ins_kenmerk_key14 VARCHAR2 (255);
|
||
v_ins_kenmerk_key15 VARCHAR2 (255);
|
||
v_ins_kenmerk_key16 VARCHAR2 (255);
|
||
v_ins_kenmerk_key17 VARCHAR2 (255);
|
||
v_ins_kenmerk_key18 VARCHAR2 (255);
|
||
v_ins_kenmerk_key19 VARCHAR2 (255);
|
||
v_ins_kenmerk_key20 VARCHAR2 (255);
|
||
-- De importvelden
|
||
v_ins_discipline_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_discipline_kostensoort VARCHAR2 (255); --C60
|
||
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_srtdeel_code VARCHAR2 (255); -- C10
|
||
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
|
||
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_deel_opmerking VARCHAR2 (1000); -- C320
|
||
v_ins_deel_externnr VARCHAR2 (255); -- C60
|
||
v_alg_locatie_code VARCHAR2 (255); -- C10
|
||
v_alg_gebouw_code VARCHAR2 (255); -- C12
|
||
v_oprognose_gebouw_code VARCHAR2 (255);
|
||
v_alg_verdieping_volgnr VARCHAR2 (255); -- N3
|
||
v_alg_ruimte_nr VARCHAR2 (255); -- C20
|
||
|
||
v_ins_kenmerkwaarde1 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde2 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde3 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde4 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde5 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde6 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde7 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde8 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde9 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde10 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde11 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde12 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde13 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde14 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde15 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde16 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde17 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde18 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde19 VARCHAR2 (4053);
|
||
v_ins_kenmerkwaarde20 VARCHAR2 (4053);
|
||
v_ins_deel_aanmaak VARCHAR2 (255); -- DATE
|
||
v_ins_deel_aanmaak_d DATE;
|
||
v_ins_deel_vervaldatum VARCHAR2 (255); -- DATE
|
||
v_ins_deel_vervaldatum_d DATE;
|
||
v_ins_deel_aantal VARCHAR2 (255); -- N8,2
|
||
v_ins_deel_aantal_n NUMBER(8, 2);
|
||
v_file_index NUMBER;
|
||
|
||
v_alg_gebouw_key NUMBER;
|
||
v_alg_verdieping_key NUMBER;
|
||
v_alg_ruimte_key NUMBER;
|
||
v_ins_deel_key NUMBER;
|
||
v_ins_srtdeel_key NUMBER;
|
||
v_ins_srtgroep_key NUMBER;
|
||
v_ins_discipline_key NUMBER;
|
||
v_ins_deel_volgnr NUMBER;
|
||
-- Overige velden:
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
CURSOR c IS
|
||
SELECT *
|
||
FROM fac_imp_ins
|
||
ORDER BY alg_gebouw_code, ins_deel_omschrijving;
|
||
|
||
-- Controleer tijdens import-fase alleen op het bestaan van een kenmerk met de meegegeven omschrijving of kenmerk key.
|
||
-- De omschrijving (header van kolom) kan de omschrijving zijn van het kenmerksoort of het kenmerk.
|
||
-- De omschrijving van het kenmerksoort kan namelijk overruled worden door de omschrijving van het kenmerk.
|
||
-- Daarnaast kan hetzelfde kenmerk vaker voorkomen voor verschillende groepen.
|
||
-- Of het kenmerksoort/kenmerk wel is gedefinieerd voor de betreffende
|
||
-- object-discipline/groep/soort, volgt pas tijdens de update-fase)!
|
||
--
|
||
-- p_kw is bijvoorbeeld 'Parkeercode', 'Parkeercode|3', 234 of 234|3 waarbij de tweede en laatste in groep 3 zitten
|
||
-- het resultaat is NULL (als niet gevonden) of Parkeercode|3 of 234|3 voor kenmer_key 234 in groep 3
|
||
-- Als geen groep is meegegeven dan wordt 'Parkeercode|0' opgeleverd (de default groep)
|
||
FUNCTION bepaal_kenmerk (p_kw IN VARCHAR)
|
||
RETURN VARCHAR
|
||
IS
|
||
v_kenmerk_key NUMBER;
|
||
v_kenmerk_groep NUMBER;
|
||
v_kw VARCHAR(250);
|
||
BEGIN
|
||
v_kenmerk_groep := 0;
|
||
v_kw := p_kw;
|
||
IF INSTR (v_kw, '|') > 1
|
||
THEN
|
||
v_kenmerk_groep := SUBSTR (v_kw, INSTR (v_kw, '|') + 1);
|
||
v_kw := SUBSTR (v_kw, 1, INSTR (v_kw, '|') - 1);
|
||
END IF;
|
||
|
||
IF fac.safe_to_number (v_kw) IS NULL
|
||
THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)!
|
||
SELECT MIN(k.ins_kenmerk_key)
|
||
INTO v_kenmerk_key
|
||
FROM ins_v_aanwezigkenmerk k,
|
||
ins_v_aanwezigsrtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_groep = v_kenmerk_groep
|
||
AND COALESCE(UPPER(k.ins_kenmerk_omschrijving), sk.ins_srtkenmerk_upper) = UPPER(v_kw)
|
||
AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
ELSE -- kenmerkwaarde is numeriek (dus key)!
|
||
SELECT k.ins_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM ins_v_aanwezigkenmerk k,
|
||
ins_v_aanwezigsrtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_groep = v_kenmerk_groep
|
||
AND k.ins_kenmerk_key = fac.safe_to_number (v_kw)
|
||
AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
END IF;
|
||
|
||
IF v_kenmerk_key IS NULL
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
-- Er is een kenmerksoort of kenmerk aanwezig met de omschrijving/kenmerk_key (v_kw)
|
||
RETURN v_kw || '|' || TO_CHAR(v_kenmerk_groep);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
IF p_kw IS NULL OR UPPER (p_kw) LIKE 'KENMERK%'
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Fout bij bepalen kenmerk [' || p_kw || ']',
|
||
'Bestaat niet of type ongeldig');
|
||
COMMIT;
|
||
RETURN NULL;
|
||
END IF;
|
||
END;
|
||
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM fac_imp_ins;
|
||
|
||
COMMIT;
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_file_index := rec1.fac_imp_file_index;
|
||
v_errormsg := 'Fout bij opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_oprognose_gebouw_code); -- Objectcode
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code); -- Componentcode
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_externnr); -- Element-ID
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking); -- Component omschrijving
|
||
-- fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde1); -- Opmerkingen//
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde2); -- Fabrikant
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde3); -- Kenmerken
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde4); -- Type
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde5); -- Cap
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde6); -- Eenheid Cap
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_aantal); -- Aantal
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde7); -- Eenheid aantal
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde8); -- Bouwjaar
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde9); -- Foto
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde10);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde11);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde12);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde13);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde14);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde15);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde16);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde17);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde18);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde19);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde20);
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_alg_gebouw_code
|
||
|| '|'
|
||
|| v_ins_deel_externnr
|
||
|| '|'
|
||
|| v_ins_srtdeel_code
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_oprognose_gebouw_code) = 'GEBOUW_CODE'
|
||
AND UPPER (v_ins_srtdeel_code) = 'SRTDEEL_CODE'
|
||
AND UPPER (v_ins_deel_externnr) = 'DEEL_EXTERNNR'
|
||
AND UPPER (v_ins_deel_opmerking) = 'DEEL_OPMERKING'
|
||
AND UPPER (v_ins_kenmerkwaarde2) = 'FABRIKANT'
|
||
AND UPPER (v_ins_kenmerkwaarde3) = 'OPMERKINGEN'
|
||
AND UPPER (v_ins_kenmerkwaarde4) = 'TYPE'
|
||
AND UPPER (v_ins_kenmerkwaarde5) = 'CAP'
|
||
AND UPPER (v_ins_kenmerkwaarde6) = 'EENHEID CAP'
|
||
AND UPPER (v_ins_deel_aantal) = 'DEEL_AANTAL'
|
||
AND UPPER (v_ins_kenmerkwaarde7) = 'EENHEID AANTAL'
|
||
AND UPPER (v_ins_kenmerkwaarde8) = 'BOUWJAAR'
|
||
AND UPPER (v_ins_kenmerkwaarde9) = 'FOTO'
|
||
THEN
|
||
v_ins_kenmerk_key1 := bepaal_kenmerk (v_ins_kenmerkwaarde1);
|
||
v_ins_kenmerk_key2 := bepaal_kenmerk (v_ins_kenmerkwaarde2);
|
||
v_ins_kenmerk_key3 := bepaal_kenmerk (v_ins_kenmerkwaarde3);
|
||
v_ins_kenmerk_key4 := bepaal_kenmerk (v_ins_kenmerkwaarde4);
|
||
v_ins_kenmerk_key5 := bepaal_kenmerk (v_ins_kenmerkwaarde5);
|
||
v_ins_kenmerk_key6 := bepaal_kenmerk (v_ins_kenmerkwaarde6);
|
||
v_ins_kenmerk_key7 := bepaal_kenmerk (v_ins_kenmerkwaarde7);
|
||
v_ins_kenmerk_key8 := bepaal_kenmerk (v_ins_kenmerkwaarde8);
|
||
v_ins_kenmerk_key9 := bepaal_kenmerk (v_ins_kenmerkwaarde9);
|
||
v_ins_kenmerk_key10 := bepaal_kenmerk (v_ins_kenmerkwaarde10);
|
||
v_ins_kenmerk_key11 := bepaal_kenmerk (v_ins_kenmerkwaarde11);
|
||
v_ins_kenmerk_key12 := bepaal_kenmerk (v_ins_kenmerkwaarde12);
|
||
v_ins_kenmerk_key13 := bepaal_kenmerk (v_ins_kenmerkwaarde13);
|
||
v_ins_kenmerk_key14 := bepaal_kenmerk (v_ins_kenmerkwaarde14);
|
||
v_ins_kenmerk_key15 := bepaal_kenmerk (v_ins_kenmerkwaarde15);
|
||
v_ins_kenmerk_key16 := bepaal_kenmerk (v_ins_kenmerkwaarde16);
|
||
v_ins_kenmerk_key17 := bepaal_kenmerk (v_ins_kenmerkwaarde17);
|
||
v_ins_kenmerk_key18 := bepaal_kenmerk (v_ins_kenmerkwaarde18);
|
||
v_ins_kenmerk_key19 := bepaal_kenmerk (v_ins_kenmerkwaarde19);
|
||
v_ins_kenmerk_key20 := bepaal_kenmerk (v_ins_kenmerkwaarde20);
|
||
|
||
header_is_valid := 1;
|
||
ELSE
|
||
IF rec1.fac_imp_file_index = 1
|
||
THEN
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldige header aangetroffen:',
|
||
'GEBOUW_CODE: ' || UPPER (v_oprognose_gebouw_code) || CHR(10) ||
|
||
'SRTDEEL_CODE: ' || UPPER (v_ins_srtdeel_code) || CHR(10) ||
|
||
'DEEL_EXTERNNR: ' || UPPER (v_ins_deel_externnr) || CHR(10) ||
|
||
'DEEL_OPMERKING: ' || UPPER (v_ins_deel_opmerking) || CHR(10) ||
|
||
'FABRIKANT: ' || UPPER (v_ins_kenmerkwaarde2) || CHR(10) ||
|
||
'OPMERKINGEN: ' || UPPER (v_ins_kenmerkwaarde3) || CHR(10) ||
|
||
'TYPE: ' || UPPER (v_ins_kenmerkwaarde4) || CHR(10) ||
|
||
'CAP: ' || UPPER (v_ins_kenmerkwaarde5) || CHR(10) ||
|
||
'EENHEID CAP: ' || UPPER (v_ins_kenmerkwaarde6) || CHR(10) ||
|
||
'DEEL_AANTAL: ' || UPPER (v_ins_deel_aantal) || CHR(10) ||
|
||
'EENHEID AANTAL: ' || UPPER (v_ins_kenmerkwaarde7) || CHR(10) ||
|
||
'BOUWJAAR: ' || UPPER (v_ins_kenmerkwaarde8) || CHR(10) ||
|
||
'FOTO: ' || UPPER (v_ins_kenmerkwaarde9));
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
|
||
v_errormsg := 'Gebouwcode kan niet gevonden worden';
|
||
v_oprognose_gebouw_code := TRIM (v_oprognose_gebouw_code);
|
||
|
||
SELECT alg_gebouw_key, alg_gebouw_code, alg_locatie_code
|
||
INTO v_alg_gebouw_key, v_alg_gebouw_code, v_alg_locatie_code
|
||
FROM alg_gebouw g, alg_locatie l, alg_onrgoedkenmerk aok, alg_kenmerk ak
|
||
WHERE g.alg_locatie_key = l.alg_locatie_key
|
||
AND alg_gebouw_verwijder IS NULL
|
||
AND aok.alg_onrgoed_key = g.alg_gebouw_key
|
||
AND aok.alg_onrgoed_niveau='G'
|
||
AND ak.alg_kenmerk_key = aok.alg_kenmerk_key
|
||
AND ak.alg_kenmerk_code='OPROGNOSE_CODE'
|
||
AND UPPER(aok.alg_onrgoedkenmerk_waarde) = UPPER(v_oprognose_gebouw_code);
|
||
|
||
v_alg_verdieping_volgnr := 0;
|
||
BEGIN
|
||
SELECT alg_verdieping_key
|
||
INTO v_alg_verdieping_key
|
||
FROM alg_verdieping
|
||
WHERE alg_verdieping_verwijder IS NULL
|
||
AND alg_gebouw_key = v_alg_gebouw_key
|
||
AND alg_verdieping_volgnr = 0;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_verdieping (alg_gebouw_key, alg_verdieping_volgnr, alg_verdieping_omschrijving, alg_verdieping_code)
|
||
VALUES (v_alg_gebouw_key, 0, 'Begane grond', '0')
|
||
RETURNING alg_verdieping_key INTO v_alg_verdieping_key;
|
||
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Verdieping aangemaakt');
|
||
END;
|
||
|
||
v_alg_ruimte_nr := '_';
|
||
BEGIN
|
||
SELECT alg_ruimte_key
|
||
INTO v_alg_ruimte_key
|
||
FROM alg_ruimte
|
||
WHERE alg_ruimte_verwijder IS NULL
|
||
AND alg_verdieping_key = v_alg_verdieping_key
|
||
AND alg_ruimte_nr = '_';
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO alg_ruimte (alg_verdieping_key, alg_ruimte_nr, alg_ruimte_omschrijving)
|
||
VALUES (v_alg_verdieping_key, '_', 'MJOP ruimte')
|
||
RETURNING alg_ruimte_key INTO v_alg_ruimte_key;
|
||
fac.imp_writelog (p_import_key, 'I', v_aanduiding, 'Ruimte aangemaakt');
|
||
END;
|
||
--
|
||
|
||
v_errormsg := 'Bepaal objectsoort';
|
||
|
||
BEGIN
|
||
v_ins_srtdeel_code := TRIM(v_ins_srtdeel_code);
|
||
SELECT ins_srtdeel_omschrijving, ins_srtdeel_key, ins_srtgroep_key
|
||
INTO v_ins_srtdeel_omschrijving, v_ins_srtdeel_key, v_ins_srtgroep_key
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_verwijder IS NULL
|
||
AND ins_srtdeel_code = SUBSTR(v_ins_srtdeel_code,1,4);
|
||
|
||
v_errormsg := 'Bepaal objectgroep';
|
||
SELECT ins_srtgroep_omschrijving, ins_discipline_key
|
||
INTO v_ins_srtgroep_omschrijving, v_ins_discipline_key
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_key = v_ins_srtgroep_key;
|
||
|
||
v_errormsg := 'Bepaal discipline';
|
||
SELECT ins_discipline_omschrijving
|
||
INTO v_ins_discipline_omschrijving
|
||
FROM ins_discipline
|
||
WHERE ins_discipline_key = v_ins_discipline_key;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errormsg := 'Nieuwe NL/SfB code';
|
||
v_ins_discipline_omschrijving := 'MJOB';
|
||
v_ins_srtdeel_omschrijving := SUBSTR(v_ins_srtdeel_code,1,4) || '-Onbekend';
|
||
BEGIN
|
||
SELECT ins_srtgroep_omschrijving
|
||
INTO v_ins_srtgroep_omschrijving
|
||
FROM ins_v_srtgroep_gegevens
|
||
WHERE ins_discipline_omschrijving = 'MJOB'
|
||
AND SUBSTR(v_ins_srtdeel_code, 1, 2) = SUBSTR(ins_srtgroep_omschrijving, 1,2);
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_ins_srtgroep_omschrijving := SUBSTR(v_ins_srtdeel_code, 1, 2) || '-Onbekend';
|
||
END;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Bepaal object id - Kijk of het externnr bestaat';
|
||
SELECT d.ins_deel_omschrijving
|
||
INTO v_ins_deel_omschrijving
|
||
FROM ins_v_deel_gegevens dg, ins_deel d
|
||
WHERE dg.ins_deel_key = d.ins_deel_key
|
||
AND dg.alg_gebouw_upper = v_alg_gebouw_code
|
||
AND d.ins_deel_externnr = v_ins_deel_externnr;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_ins_deel_omschrijving := NULL;
|
||
END;
|
||
|
||
IF v_ins_deel_omschrijving IS NULL
|
||
THEN
|
||
v_errormsg := 'Bepaal object id - maak een nieuw nummer aan';
|
||
SELECT MAX(FAC.safe_to_number(SUBSTR(ins_deel_omschrijving, INSTR(ins_deel_omschrijving, '-')+1, 100)))
|
||
INTO v_ins_deel_volgnr
|
||
FROM ins_v_deel_gegevens
|
||
WHERE ins_discipline_omschrijving = 'MJOB'
|
||
AND ins_deel_omschrijving LIKE v_ins_srtdeel_code || '%';
|
||
|
||
IF v_ins_deel_volgnr IS NULL
|
||
THEN
|
||
v_ins_deel_volgnr := 0;
|
||
END IF;
|
||
|
||
-- v_ins_deel_omschrijving := v_ins_srtdeel_code || LPAD(v_ins_deel_volgnr + 1, 3, '0');
|
||
v_ins_deel_omschrijving := v_ins_srtdeel_code||'-'||v_ins_deel_externnr;
|
||
END IF;
|
||
|
||
v_errormsg := 'Objectopmerking ongeldig';
|
||
v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking);
|
||
|
||
IF LENGTH (v_ins_deel_opmerking) > 320
|
||
THEN
|
||
v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 320);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Objectopmerking wordt afgebroken tot ['
|
||
|| v_ins_deel_opmerking
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Aantal ongeldig; maximale grootte 999999.99';
|
||
v_ins_deel_aantal := TRIM (v_ins_deel_aantal);
|
||
v_ins_deel_aantal := REPLACE (v_ins_deel_aantal, ',', '.');
|
||
v_ins_deel_aantal_n := NULL;
|
||
|
||
IF (v_ins_deel_aantal IS NOT NULL AND fac.getSetting('ins_explode_objects') = 0)
|
||
THEN
|
||
IF (fac.safe_to_number (v_ins_deel_aantal) = 0)
|
||
THEN
|
||
v_ins_deel_aantal_n:=999;
|
||
ELSIF (fac.safe_to_number (v_ins_deel_aantal) IS NULL)
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen!');
|
||
ELSE
|
||
v_ins_deel_aantal_n := fac.safe_to_number (v_ins_deel_aantal);
|
||
END IF;
|
||
ELSE
|
||
v_ins_deel_aantal_n := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint := 'Bepaling registratiedatum';
|
||
v_ins_kenmerkwaarde8 := TRIM(v_ins_kenmerkwaarde8);
|
||
IF v_ins_kenmerkwaarde8 IS NOT NULL AND LENGTH(v_ins_kenmerkwaarde8) = 4
|
||
THEN
|
||
v_ins_deel_aanmaak := '01-01-' || TRIM(v_ins_kenmerkwaarde8);
|
||
v_ins_deel_aanmaak_d := TO_DATE(v_ins_deel_aanmaak, 'dd-mm-yyyy');
|
||
END IF;
|
||
|
||
-- De rest alleen ff trimmen.
|
||
v_ins_kenmerkwaarde1 := TRIM (v_ins_kenmerkwaarde1);
|
||
v_ins_kenmerkwaarde2 := TRIM (v_ins_kenmerkwaarde2);
|
||
v_ins_kenmerkwaarde3 := TRIM (v_ins_kenmerkwaarde3);
|
||
v_ins_kenmerkwaarde4 := TRIM (v_ins_kenmerkwaarde4);
|
||
v_ins_kenmerkwaarde5 := TRIM (v_ins_kenmerkwaarde5);
|
||
v_ins_kenmerkwaarde6 := TRIM (v_ins_kenmerkwaarde6);
|
||
v_ins_kenmerkwaarde7 := TRIM (v_ins_kenmerkwaarde7);
|
||
v_ins_kenmerkwaarde8 := TRIM (v_ins_kenmerkwaarde8);
|
||
v_ins_kenmerkwaarde9 := TRIM (v_ins_kenmerkwaarde9);
|
||
v_ins_kenmerkwaarde10 := TRIM (v_ins_kenmerkwaarde10);
|
||
v_ins_kenmerkwaarde11 := TRIM (v_ins_kenmerkwaarde11);
|
||
v_ins_kenmerkwaarde12 := TRIM (v_ins_kenmerkwaarde12);
|
||
v_ins_kenmerkwaarde13 := TRIM (v_ins_kenmerkwaarde13);
|
||
v_ins_kenmerkwaarde14 := TRIM (v_ins_kenmerkwaarde14);
|
||
v_ins_kenmerkwaarde15 := TRIM (v_ins_kenmerkwaarde15);
|
||
v_ins_kenmerkwaarde16 := TRIM (v_ins_kenmerkwaarde16);
|
||
v_ins_kenmerkwaarde17 := TRIM (v_ins_kenmerkwaarde17);
|
||
v_ins_kenmerkwaarde18 := TRIM (v_ins_kenmerkwaarde18);
|
||
v_ins_kenmerkwaarde19 := TRIM (v_ins_kenmerkwaarde19);
|
||
v_ins_kenmerkwaarde20 := TRIM (v_ins_kenmerkwaarde20);
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout bij wegschrijven importregel';
|
||
|
||
-- Als uit kenmerkheader een geldige kenmerksoort-key volgt,
|
||
-- dan is kenmerkwaarde<n> gevuld met <key>=<waarde>; zoniet,
|
||
-- dan is kenmerkwaarde<n> gevuld met <waarde>!
|
||
-- NB. Een NULL-waarde resulteert NIET in het wissen van een
|
||
-- kenmerkveld (bijwerken kan wel, maar wissen dus niet)!
|
||
INSERT INTO fac_imp_ins (
|
||
ins_discipline_omschrijving,
|
||
ins_discipline_kostensoort,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11,
|
||
ins_kenmerkwaarde12,
|
||
ins_kenmerkwaarde13,
|
||
ins_kenmerkwaarde14,
|
||
ins_kenmerkwaarde15,
|
||
ins_kenmerkwaarde16,
|
||
ins_kenmerkwaarde17,
|
||
ins_kenmerkwaarde18,
|
||
ins_kenmerkwaarde19,
|
||
ins_kenmerkwaarde20,
|
||
ins_deel_aanmaak,
|
||
ins_deel_aantal,
|
||
ins_deel_externnr
|
||
)
|
||
VALUES (
|
||
v_ins_discipline_omschrijving,
|
||
v_ins_discipline_kostensoort,
|
||
v_ins_srtgroep_omschrijving,
|
||
SUBSTR(v_ins_srtdeel_code,1,4),
|
||
v_ins_srtdeel_omschrijving,
|
||
v_ins_deel_omschrijving,
|
||
v_ins_deel_opmerking,
|
||
v_alg_locatie_code,
|
||
v_alg_gebouw_code,
|
||
v_alg_verdieping_volgnr,
|
||
v_alg_ruimte_nr,
|
||
DECODE (v_ins_kenmerk_key1, NULL, v_ins_kenmerkwaarde1, DECODE(v_ins_kenmerk_key1, NULL, NULL, TO_CHAR (v_ins_kenmerk_key1) || '=' || SUBSTR (v_ins_kenmerkwaarde1, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key2, NULL, v_ins_kenmerkwaarde2, DECODE(v_ins_kenmerk_key2, NULL, NULL, TO_CHAR (v_ins_kenmerk_key2) || '=' || SUBSTR (v_ins_kenmerkwaarde2, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key3, NULL, v_ins_kenmerkwaarde3, DECODE(v_ins_kenmerk_key3, NULL, NULL, TO_CHAR (v_ins_kenmerk_key3) || '=' || SUBSTR (v_ins_kenmerkwaarde3, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key4, NULL, v_ins_kenmerkwaarde4, DECODE(v_ins_kenmerk_key4, NULL, NULL, TO_CHAR (v_ins_kenmerk_key4) || '=' || SUBSTR (v_ins_kenmerkwaarde4, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key5, NULL, v_ins_kenmerkwaarde5, DECODE(v_ins_kenmerk_key5, NULL, NULL, TO_CHAR (v_ins_kenmerk_key5) || '=' || SUBSTR (v_ins_kenmerkwaarde5, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key6, NULL, v_ins_kenmerkwaarde6, DECODE(v_ins_kenmerk_key6, NULL, NULL, TO_CHAR (v_ins_kenmerk_key6) || '=' || SUBSTR (v_ins_kenmerkwaarde6, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key7, NULL, v_ins_kenmerkwaarde7, DECODE(v_ins_kenmerk_key7, NULL, NULL, TO_CHAR (v_ins_kenmerk_key7) || '=' || SUBSTR (v_ins_kenmerkwaarde7, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key8, NULL, v_ins_kenmerkwaarde8, DECODE(v_ins_kenmerk_key8, NULL, NULL, TO_CHAR (v_ins_kenmerk_key8) || '=' || SUBSTR (v_ins_kenmerkwaarde8, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key9, NULL, v_ins_kenmerkwaarde9, DECODE(v_ins_kenmerk_key9, NULL, NULL, TO_CHAR (v_ins_kenmerk_key9) || '=' || SUBSTR (v_ins_kenmerkwaarde9, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key10, NULL, v_ins_kenmerkwaarde10, DECODE(v_ins_kenmerk_key10, NULL, NULL, TO_CHAR (v_ins_kenmerk_key10) || '=' || SUBSTR (v_ins_kenmerkwaarde10, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key11, NULL, v_ins_kenmerkwaarde11, DECODE(v_ins_kenmerk_key11, NULL, NULL, TO_CHAR (v_ins_kenmerk_key11) || '=' || SUBSTR (v_ins_kenmerkwaarde11, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key12, NULL, v_ins_kenmerkwaarde12, DECODE(v_ins_kenmerk_key12, NULL, NULL, TO_CHAR (v_ins_kenmerk_key12) || '=' || SUBSTR (v_ins_kenmerkwaarde12, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key13, NULL, v_ins_kenmerkwaarde13, DECODE(v_ins_kenmerk_key13, NULL, NULL, TO_CHAR (v_ins_kenmerk_key13) || '=' || SUBSTR (v_ins_kenmerkwaarde13, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key14, NULL, v_ins_kenmerkwaarde14, DECODE(v_ins_kenmerk_key14, NULL, NULL, TO_CHAR (v_ins_kenmerk_key14) || '=' || SUBSTR (v_ins_kenmerkwaarde14, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key15, NULL, v_ins_kenmerkwaarde15, DECODE(v_ins_kenmerk_key15, NULL, NULL, TO_CHAR (v_ins_kenmerk_key15) || '=' || SUBSTR (v_ins_kenmerkwaarde15, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key16, NULL, v_ins_kenmerkwaarde16, DECODE(v_ins_kenmerk_key16, NULL, NULL, TO_CHAR (v_ins_kenmerk_key16) || '=' || SUBSTR (v_ins_kenmerkwaarde16, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key17, NULL, v_ins_kenmerkwaarde17, DECODE(v_ins_kenmerk_key17, NULL, NULL, TO_CHAR (v_ins_kenmerk_key17) || '=' || SUBSTR (v_ins_kenmerkwaarde17, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key18, NULL, v_ins_kenmerkwaarde18, DECODE(v_ins_kenmerk_key18, NULL, NULL, TO_CHAR (v_ins_kenmerk_key18) || '=' || SUBSTR (v_ins_kenmerkwaarde18, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key19, NULL, v_ins_kenmerkwaarde19, DECODE(v_ins_kenmerk_key19, NULL, NULL, TO_CHAR (v_ins_kenmerk_key19) || '=' || SUBSTR (v_ins_kenmerkwaarde19, 1, 3900))),
|
||
DECODE (v_ins_kenmerk_key20, NULL, v_ins_kenmerkwaarde20, DECODE(v_ins_kenmerk_key20, NULL, NULL, TO_CHAR (v_ins_kenmerk_key20) || '=' || SUBSTR (v_ins_kenmerkwaarde20, 1, 3900))),
|
||
v_ins_deel_aanmaak_d,
|
||
v_ins_deel_aantal_n,
|
||
v_ins_deel_externnr
|
||
);
|
||
|
||
COMMIT;
|
||
v_count_import := v_count_import + 1;
|
||
END;
|
||
|
||
END IF;
|
||
END IF;
|
||
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.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
|
||
IF (header_is_valid = 1)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Objecten/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Objecten/aantal ongeldige niet ingelezen importregels: '
|
||
|| TO_CHAR (v_count_tot - v_count_import),
|
||
''
|
||
);
|
||
END IF;
|
||
|
||
COMMIT;
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Inleesproces objecten afgebroken! regel:' || v_file_index);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE fzkh_update_mjobelementen (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
v_aanduiding VARCHAR (400);
|
||
v_kenmerk_foto NUMBER;
|
||
BEGIN
|
||
fac_update_ins (p_import_key);
|
||
BEGIN
|
||
v_aanduiding:='Ophalen oprognose kenmerk key is mislukt';
|
||
SELECT i.ins_kenmerk_key
|
||
INTO v_kenmerk_foto
|
||
FROM ins_kenmerk i
|
||
where i.ins_kenmerk_code='OPROGNOSE_FOTO'
|
||
AND i.ins_kenmerk_verwijder IS NULL;
|
||
|
||
UPDATE ins_deel i
|
||
SET i.ins_deel_image = (SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel
|
||
WHERE ins_deel_key=i.ins_deel_key
|
||
AND ins_kenmerk_key=v_kenmerk_foto)
|
||
WHERE i.ins_deel_key IN (SELECT ins_deel_key
|
||
FROM ins_kenmerkdeel
|
||
WHERE ins_kenmerk_key=v_kenmerk_foto);
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
'Afbeelding objecten updaten !');
|
||
END;
|
||
|
||
END;
|
||
/
|
||
-- EINE MJOB Elementen Import
|
||
CREATE OR REPLACE PROCEDURE fzkh_import_mjobtaken (p_import_key IN NUMBER)
|
||
IS
|
||
c_delim VARCHAR2 (2) := fac.import_delimiter(p_import_key);
|
||
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR (400);
|
||
v_dummy VARCHAR (255);
|
||
v_oprognose_gebouw_code VARCHAR2 (255);
|
||
v_alg_gebouw_code VARCHAR2 (255); --VARCHAR2(12),
|
||
v_alg_locatie_code VARCHAR2 (255); --VARCHAR2(12),
|
||
v_ins_deel_externnr VARCHAR2 (255); --VARCHAR2(256),
|
||
v_ins_deel_omschrijving VARCHAR2 (255); --VARCHAR2(60),
|
||
v_ins_srtcontrole_omschrijving VARCHAR2 (255); --VARCHAR2(60),
|
||
v_ins_srtcontrole_level VARCHAR2 (255); --NUMBER(3),
|
||
v_ins_srtcontroledl_xcp_materia VARCHAR2 (255); --NUMBER(9,2),
|
||
v_ins_srtcontroledl_xcp_aantal VARCHAR2 (255); --NUMBER(8,2),
|
||
v_ins_srtcontroledl_xcp_startdat VARCHAR2 (255); --DATE,
|
||
v_ins_srtcontroledl_xcp_periode VARCHAR2 (255); --NUMBER(6,2)
|
||
v_ins_srtcontroledl_xcp_perc VARCHAR2 (255); --NUMBER(3)
|
||
v_ins_srtcontroledl_xcp_eenh VARCHAR2 (255);
|
||
|
||
v_file_index NUMBER;
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_file_index := rec1.fac_imp_file_index;
|
||
v_errormsg := 'Fout bij opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
|
||
fac.imp_getfield (v_newline, c_delim, v_oprognose_gebouw_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_externnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_materia);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_aantal);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_level);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_startdat);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_periode);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_perc);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontroledl_xcp_eenh);
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_alg_gebouw_code
|
||
|| '|'
|
||
|| v_ins_deel_externnr
|
||
|| '|'
|
||
|| v_ins_deel_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtcontrole_omschrijving
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_oprognose_gebouw_code) = 'GEBOUW_CODE'
|
||
AND UPPER (v_ins_deel_externnr) = 'DEEL_EXTERNNR'
|
||
AND UPPER (v_ins_deel_omschrijving) = 'DEEL_OMSCHRIJVING'
|
||
AND UPPER (v_ins_srtcontrole_omschrijving) = 'SRTCONTROLE_OMSCHRIJVING'
|
||
AND UPPER (v_ins_srtcontroledl_xcp_materia) = 'SRTCONTROLEDL_XCP_MATERIA'
|
||
AND UPPER (v_ins_srtcontroledl_xcp_aantal) = 'SRTCONTROLEDL_XCP_AANTAL'
|
||
AND UPPER (v_ins_srtcontrole_level) = 'SRTCONTROLE_LEVEL'
|
||
AND UPPER (v_ins_srtcontroledl_xcp_startdat) = 'SRTCONTROLE_STARTJAAR'
|
||
AND UPPER (v_ins_srtcontroledl_xcp_periode) = 'SRTCONTROLE_PERIODE'
|
||
AND UPPER (v_ins_srtcontroledl_xcp_perc) = 'SRTCONTROLE_PERCENTAGE'
|
||
THEN
|
||
header_is_valid := 1;
|
||
ELSE
|
||
IF rec1.fac_imp_file_index = 1
|
||
THEN
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldige header aangetroffen:',
|
||
'GEBOUW_CODE: ' || UPPER (v_oprognose_gebouw_code) || CHR(10) ||
|
||
'DEEL_EXTERNNR: ' || UPPER (v_ins_deel_externnr) || CHR(10) ||
|
||
'DEEL_OMSCHRIJVING: ' || UPPER (v_ins_deel_omschrijving) || CHR(10) ||
|
||
'SRTCONTROLE_OMSCHRIJVING: ' || UPPER (v_ins_srtcontrole_omschrijving) || CHR(10) ||
|
||
'SRTCONTROLEDL_XCP_MATERIA: ' || UPPER (v_ins_srtcontroledl_xcp_materia) || CHR(10) ||
|
||
'SRTCONTROLEDL_XCP_AANTAL: ' || UPPER (v_ins_srtcontroledl_xcp_aantal) || CHR(10) ||
|
||
'SRTCONTROLE_LEVEL: ' || UPPER (v_ins_srtcontrole_level) || CHR(10) ||
|
||
'SRTCONTROLE_STARTJAAR: ' || UPPER (v_ins_srtcontroledl_xcp_startdat) || CHR(10) ||
|
||
'SRTCONTROLE_PERIODE: ' || UPPER (v_ins_srtcontroledl_xcp_periode) || CHR(10) ||
|
||
'SRTCONTROLE_PERCENTAGE: ' || UPPER (v_ins_srtcontroledl_xcp_perc));
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
|
||
v_errormsg := 'Gebouwcode kan niet gevonden worden';
|
||
v_oprognose_gebouw_code := TRIM (v_oprognose_gebouw_code);
|
||
|
||
BEGIN
|
||
SELECT g.alg_gebouw_code, l.alg_locatie_code
|
||
INTO v_alg_gebouw_code, v_alg_locatie_code
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk aok, alg_kenmerk ak, alg_locatie l
|
||
WHERE g.alg_gebouw_verwijder IS NULL
|
||
AND aok.alg_onrgoed_key = g.alg_gebouw_key
|
||
AND aok.alg_onrgoed_niveau='G'
|
||
AND ak.alg_kenmerk_key = aok.alg_kenmerk_key
|
||
AND ak.alg_kenmerk_code='OPROGNOSE_CODE'
|
||
AND UPPER(aok.alg_onrgoedkenmerk_waarde) = UPPER(v_oprognose_gebouw_code)
|
||
AND l.alg_locatie_key=g.alg_locatie_key;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Gebouw is niet gevonden'
|
||
);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
|
||
v_errormsg := 'Object externnr kan niet gevonden worden';
|
||
v_ins_deel_externnr := TRIM (v_ins_deel_externnr);
|
||
IF v_ins_deel_externnr IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT 1
|
||
INTO v_dummy
|
||
FROM ins_v_deel_gegevens dg, ins_deel d
|
||
WHERE dg.ins_deel_key = d.ins_deel_key
|
||
AND UPPER(d.ins_deel_externnr) = UPPER(v_ins_deel_externnr)
|
||
AND dg.alg_gebouw_upper = UPPER(v_alg_gebouw_code);
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Object is niet gevonden op extern id '
|
||
);
|
||
v_ongeldig := 1;
|
||
END;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controle op kosten';
|
||
IF FAC.safe_to_number(v_ins_srtcontroledl_xcp_materia) IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,''
|
||
);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controle op aantal';
|
||
IF v_ins_srtcontroledl_xcp_aantal IS NOT NULL AND FAC.safe_to_number(v_ins_srtcontroledl_xcp_aantal) IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,''
|
||
);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controle op startjaar';
|
||
IF v_ins_srtcontroledl_xcp_startdat IS NOT NULL AND FAC.safe_to_date('01-01-' || v_ins_srtcontroledl_xcp_startdat, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,''
|
||
);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controle op periode';
|
||
IF v_ins_srtcontroledl_xcp_periode IS NOT NULL AND FAC.safe_to_number(v_ins_srtcontroledl_xcp_periode) IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,''
|
||
);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controle op percentage';
|
||
IF v_ins_srtcontroledl_xcp_perc IS NOT NULL AND FAC.safe_to_number(v_ins_srtcontroledl_xcp_perc) IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,''
|
||
);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout bij wegschrijven importregel';
|
||
|
||
-- Als uit kenmerkheader een geldige kenmerksoort-key volgt,
|
||
-- dan is kenmerkwaarde<n> gevuld met <key>=<waarde>; zoniet,
|
||
-- dan is kenmerkwaarde<n> gevuld met <waarde>!
|
||
-- NB. Een NULL-waarde resulteert NIET in het wissen van een
|
||
-- kenmerkveld (bijwerken kan wel, maar wissen dus niet)!
|
||
|
||
|
||
INSERT INTO fac_imp_csv (FAC_IMPORT_KEY,
|
||
fac_imp_csv_index,
|
||
fac_imp_csv_col01,
|
||
fac_imp_csv_col02,
|
||
fac_imp_csv_col03,
|
||
fac_imp_csv_col04,
|
||
fac_imp_csv_col05,
|
||
fac_imp_csv_col06,
|
||
fac_imp_csv_col07,
|
||
fac_imp_csv_col08,
|
||
fac_imp_csv_col09,
|
||
fac_imp_csv_col10,
|
||
fac_imp_csv_col11,
|
||
fac_imp_csv_col12)
|
||
VALUES ( p_import_key,
|
||
v_file_index,
|
||
SUBSTR(v_alg_gebouw_code,1,12),
|
||
SUBSTR(v_ins_deel_externnr,1,256),
|
||
SUBSTR(v_ins_deel_omschrijving,1,60),
|
||
SUBSTR(v_ins_srtcontrole_omschrijving,1,60),
|
||
FAC.safe_to_number(v_ins_srtcontrole_level),
|
||
FAC.safe_to_number(v_ins_srtcontroledl_xcp_materia), -- de prijs m,oet per stuk zijn.
|
||
FAC.safe_to_number(v_ins_srtcontroledl_xcp_aantal),
|
||
'01-01-' || v_ins_srtcontroledl_xcp_startdat,
|
||
v_ins_srtcontroledl_xcp_periode,
|
||
FAC.safe_to_number(v_ins_srtcontroledl_xcp_perc),
|
||
v_ins_srtcontroledl_xcp_eenh,
|
||
SUBSTR(v_alg_locatie_code,1,12));
|
||
|
||
COMMIT;
|
||
v_count_import := v_count_import + 1;
|
||
END;
|
||
|
||
END IF;
|
||
END IF;
|
||
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.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 1)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Taken/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Taken/aantal ongeldige niet ingelezen importregels: '
|
||
|| TO_CHAR (v_count_tot - v_count_import),
|
||
''
|
||
);
|
||
END IF;
|
||
|
||
COMMIT;
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Inleesproces taken afgebroken! regel:' || v_file_index);
|
||
END fzkh_import_mjobtaken;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE fzkh_update_mjobtaken (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
|
||
CURSOR c IS
|
||
SELECT fac_imp_csv_col01 alg_gebouw_code,
|
||
fac_imp_csv_col02 ins_deel_externnr,
|
||
fac_imp_csv_col03 ins_deel_omschrijving,
|
||
fac_imp_csv_col04 ins_srtcontrole_omschrijving,
|
||
fac_imp_csv_col05 ins_srtcontrole_level,
|
||
fac_imp_csv_col06 ins_srtcontroledl_xcp_materia,
|
||
fac_imp_csv_col07 ins_srtcontroledl_xcp_aantal,
|
||
fac_imp_csv_col08 ins_srtcontroledl_xcp_startdat,
|
||
fac_imp_csv_col09 ins_srtcontroledl_xcp_periode,
|
||
fac_imp_csv_col10 ins_srtcontroledl_xcp_perc,
|
||
fac_imp_csv_col11 ins_srtcontroledl_xcp_eenh,
|
||
fac_imp_csv_col12 alg_locatie_code
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR (400);
|
||
v_ins_deel_key NUMBER;
|
||
v_ins_deel_aantal NUMBER;
|
||
v_ins_srtdeel_key NUMBER;
|
||
v_ins_srtcontrole_key NUMBER;
|
||
v_ins_srtcontroledl_xcp_key NUMBER;
|
||
v_ctr_discipline_key NUMBER;
|
||
v_alg_gebouw_key NUMBER;
|
||
v_ins_srtdeel_code INS_SRTDEEL.INS_SRTDEEL_CODE%TYPE;
|
||
v_ins_deel_eenheid VARCHAR2(30);
|
||
v_ins_srtcontroledl_xcp_startdat DATE;
|
||
v_ins_srtcontroledl_xcp_aantal NUMBER;
|
||
v_ins_srtcontroledl_xcp_perc NUMBER;
|
||
v_refdate DATE;
|
||
|
||
BEGIN
|
||
SELECT MIN(ctr_ins_discipline_key)
|
||
INTO v_ctr_discipline_key
|
||
FROM ctr_disc_params
|
||
WHERE ctr_disc_params_ismjob = 1;
|
||
|
||
-- controleer op verwijderde records
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_ins_deel_key := NULL;
|
||
v_aanduiding := rec.alg_gebouw_code || '|' || rec.ins_deel_omschrijving || '|' || rec.ins_deel_externnr || '|' || rec.ins_srtcontrole_omschrijving;
|
||
v_errormsg := 'Gebouwcode kan niet gevonden worden';
|
||
|
||
BEGIN
|
||
SELECT g.alg_gebouw_key
|
||
INTO v_alg_gebouw_key
|
||
FROM alg_gebouw g, alg_locatie l
|
||
WHERE alg_gebouw_verwijder IS NULL
|
||
AND UPPER(alg_gebouw_code) = rec.alg_gebouw_code
|
||
AND l.alg_locatie_key=g.alg_locatie_key
|
||
AND l.alg_locatie_code=rec.alg_locatie_code;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Gebouw is niet gevonden'
|
||
);
|
||
END;
|
||
|
||
v_errormsg := 'Objectid kan niet gevonden worden';
|
||
IF rec.ins_deel_omschrijving IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT dg.ins_deel_key,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_code,
|
||
dg.ins_deel_aantal,
|
||
ken.ins_kenmerkdeel_waarde
|
||
INTO v_ins_deel_key, v_ins_srtdeel_key, v_ins_srtdeel_code, v_ins_deel_aantal, v_ins_deel_eenheid
|
||
FROM ins_v_deel_gegevens dg,
|
||
ins_srtdeel sd,
|
||
(SELECT ikd.ins_deel_key, ikd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel ikd, ins_kenmerk ik
|
||
WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key
|
||
AND ik.ins_kenmerk_code = 'MJOB_EENHEID_AANTAL'
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL) ken
|
||
WHERE dg.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND UPPER(dg.ins_deel_omschrijving) = UPPER(rec.ins_deel_omschrijving)
|
||
AND ken.ins_deel_key(+) = dg.ins_deel_key
|
||
AND dg.alg_gebouw_key = v_alg_gebouw_key;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Object is niet gevonden op id '
|
||
);
|
||
v_ongeldig := 1;
|
||
END;
|
||
END IF;
|
||
|
||
v_errormsg := 'Object externnr kan niet gevonden worden';
|
||
IF rec.ins_deel_externnr IS NOT NULL AND v_ins_deel_key IS NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT d.ins_deel_key, sd.ins_srtdeel_key, sd.ins_srtdeel_code, d.ins_deel_aantal
|
||
INTO v_ins_deel_key, v_ins_srtdeel_key, v_ins_srtdeel_code, v_ins_deel_aantal
|
||
FROM ins_v_deel_gegevens dg, ins_deel d, ins_srtdeel sd
|
||
WHERE dg.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND UPPER(d.ins_deel_externnr) = UPPER(rec.ins_deel_externnr)
|
||
AND dg.alg_gebouw_key = v_alg_gebouw_key;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Object is niet gevonden op extern id '
|
||
);
|
||
v_ongeldig := 1;
|
||
END;
|
||
END IF;
|
||
|
||
-- kijk of de srtcontrole al bestaat
|
||
v_errormsg := 'Kijk of de taak al bestaat';
|
||
BEGIN
|
||
SELECT ins_srtcontrole_key
|
||
INTO v_ins_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtinstallatie_key = v_ins_srtdeel_key
|
||
AND ins_srtcontrole_niveau = 'S'
|
||
AND ins_srtcontrole_omschrijving = SUBSTR(v_ins_srtdeel_code || ' - ' || rec.ins_srtcontrole_omschrijving, 1, 60)
|
||
AND ctr_discipline_key = v_ctr_discipline_key;
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_level = rec.ins_srtcontrole_level
|
||
WHERE ins_srtcontrole_key = v_ins_srtcontrole_key;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errormsg := 'Aanmaken nieuwe taak';
|
||
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_level,
|
||
ins_srtcontrole_materiaal,
|
||
ins_srtcontrole_percentage)
|
||
VALUES (v_ins_srtdeel_key,
|
||
'S',
|
||
SUBSTR(v_ins_srtdeel_code || ' - ' || rec.ins_srtcontrole_omschrijving, 1, 60),
|
||
v_ctr_discipline_key,
|
||
0, -- periode wordt in het xcp record opgegeven
|
||
4, -- standaard jaar voor MJOB
|
||
rec.ins_srtcontrole_level,
|
||
0, -- kosten worden in het xcp record vermeld.
|
||
100)
|
||
RETURNING ins_srtcontrole_key INTO v_ins_srtcontrole_key;
|
||
END;
|
||
|
||
v_ins_srtcontroledl_xcp_perc:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_perc)*100;
|
||
|
||
IF v_ins_srtcontroledl_xcp_perc>100 THEN
|
||
v_ins_srtcontroledl_xcp_perc:=100;
|
||
END IF;
|
||
|
||
IF v_ins_srtcontroledl_xcp_perc < 100 THEN
|
||
v_ins_srtcontroledl_xcp_aantal:=NULL;
|
||
ELSE
|
||
IF rec.ins_srtcontroledl_xcp_aantal <> v_ins_deel_aantal THEN
|
||
v_ins_srtcontroledl_xcp_aantal:=FAC.safe_to_number(rec.ins_srtcontroledl_xcp_aantal);
|
||
ELSE
|
||
v_ins_srtcontroledl_xcp_aantal:=NULL;
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
|
||
-- wat is het aantal op de taak (in de oprognose staat een hvh_reken die we hier gebruiken ipv de ins_deel_aantal)
|
||
-- v_ins_srtcontroledl_xcp_aantal := FAC.safe_to_number(rec.ins_srtcontroledl_xcp_aantal);
|
||
-- IF (v_ins_srtcontroledl_xcp_aantal=1 AND v_ins_deel_aantal>1)
|
||
-- THEN
|
||
-- v_ins_srtcontroledl_xcp_aantal:= v_ins_deel_aantal;
|
||
-- END IF;
|
||
|
||
|
||
|
||
-- Ophalen freeze jaar en eerst stardatum
|
||
v_ins_srtcontroledl_xcp_startdat:=FAC.safe_to_date(rec.ins_srtcontroledl_xcp_startdat, 'dd-mm-yyyy');
|
||
v_refdate := FAC.safe_to_date('01-01-'||fac.getsetting('mjb_start_year'),'DD-MM-YYYY');
|
||
|
||
IF (v_ins_srtcontroledl_xcp_startdat<=v_refdate)
|
||
THEN
|
||
v_ins_srtcontroledl_xcp_startdat := fzkh.getfirststartdate(v_ins_srtcontroledl_xcp_startdat, v_refdate,rec.ins_srtcontroledl_xcp_periode);
|
||
END IF;
|
||
|
||
|
||
|
||
-- kijk of de taak uitzondering al bestaat
|
||
|
||
v_errormsg := 'Kijk of de XCP taak al bestaat';
|
||
BEGIN
|
||
|
||
|
||
SELECT ins_srtcontroledl_xcp_key
|
||
INTO v_ins_srtcontroledl_xcp_key
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_deel_key = v_ins_deel_key
|
||
AND ins_srtcontrole_key = v_ins_srtcontrole_key;
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_periode = FAC.safe_to_number(rec.ins_srtcontroledl_xcp_periode),
|
||
ins_srtcontroledl_xcp_aantal = v_ins_srtcontroledl_xcp_aantal,
|
||
ins_srtcontroledl_xcp_materia = FAC.safe_to_number(rec.ins_srtcontroledl_xcp_materia),
|
||
ins_srtcontroledl_xcp_perc = v_ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_startdat = v_ins_srtcontroledl_xcp_startdat
|
||
WHERE ins_srtcontroledl_xcp_key = v_ins_srtcontroledl_xcp_key;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errormsg := 'Aanmaken nieuwe taak uitzondering ';
|
||
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_aantal,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_startdat,
|
||
ins_srtcontroledl_xcp_aanteh)
|
||
VALUES (v_ins_deel_key,
|
||
v_ins_srtcontrole_key,
|
||
FAC.safe_to_number(rec.ins_srtcontroledl_xcp_periode),
|
||
v_ins_srtcontroledl_xcp_aantal,
|
||
FAC.safe_to_number(rec.ins_srtcontroledl_xcp_materia),
|
||
v_ins_srtcontroledl_xcp_perc,
|
||
v_ins_srtcontroledl_xcp_startdat,
|
||
rec.ins_srtcontroledl_xcp_eenh)
|
||
RETURNING ins_srtcontroledl_xcp_key INTO v_ins_srtcontroledl_xcp_key;
|
||
END;
|
||
|
||
-- Moeten we nu kijken welke XCP taken er zijn aangemaakt en of deze al afgerond hadden moeten zijn zodat ze niet worden doorgeschoven naar het volgene jaar ?
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
fac.imp_writelog (p_import_key, 'I', v_aanduiding || 'Taak is aangemaakt: ' || v_aanduiding, '');
|
||
COMMIT;
|
||
|
||
-- TODO moeten we ook taken gaan verwijderen?
|
||
|
||
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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
-- EIND MJOB Taken
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_INSPECTIES(p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
--fac_import_inspectie(p_import_key);
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_INSPECTIES(p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_error NUMBER (10);
|
||
v_count NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
|
||
v_ins_srtinstallatie_key NUMBER (10);
|
||
v_ins_srtcontrole_niveau VARCHAR (1);
|
||
|
||
v_week_bits NUMBER (10);
|
||
v_maand_bits NUMBER (10);
|
||
|
||
v_ctr_ins_discipline_key NUMBER;
|
||
|
||
CURSOR c_inspecties
|
||
IS
|
||
|
||
SELECT fac_imp_csv_col01 INS_DISCIPLINE_OMSCHRIJVING,
|
||
fac_imp_csv_col02 INS_SRTGROEP_OMSCHRIJVING,
|
||
fac_imp_csv_col03 INS_SRTDEEL_CODE,
|
||
fac_imp_csv_col04 INS_SRTCONTROLE_OMSCHRIJVING,
|
||
fac_imp_csv_col05 INS_SRTCONTROLE_INFO,
|
||
fac_imp_csv_col06 INS_SRTCONTROLE_PERIODE,
|
||
fac_imp_csv_col07 INS_SRTCONTROLE_MODE,
|
||
fac_imp_csv_col08 INS_SRTCONTROLE_EENHEID,
|
||
fac_imp_csv_col09 INS_SRTCONTROLE_BITS,
|
||
fac_imp_csv_col10 INS_SRTCONTROLE_OPMERKING
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key;
|
||
-- MAIN
|
||
BEGIN
|
||
FOR rec_ins IN c_inspecties
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding :=
|
||
rec_ins.ins_discipline_omschrijving
|
||
|| ' - '
|
||
|| rec_ins.ins_srtgroep_omschrijving
|
||
|| '-'
|
||
|| rec_ins.ins_srtdeel_code;
|
||
v_errorhint := 'Fout bij bepalen discipline';
|
||
|
||
IF rec_ins.ins_discipline_omschrijving IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding,
|
||
'Discipline mag niet leeg zijn: inspectie wordt niet toegevoegd.');
|
||
ELSE
|
||
SELECT ins_discipline_key, 'D'
|
||
INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
|
||
FROM ins_tab_discipline
|
||
WHERE UPPER (ins_discipline_omschrijving) =
|
||
UPPER (rec_ins.ins_discipline_omschrijving)
|
||
AND ins_discipline_module = 'INS'
|
||
AND ins_discipline_verwijder IS NULL;
|
||
|
||
IF rec_ins.ins_srtgroep_omschrijving IS NOT NULL
|
||
THEN
|
||
SELECT ins_srtgroep_key, 'G'
|
||
INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
|
||
FROM ins_srtgroep
|
||
WHERE UPPER (ins_srtgroep_omschrijving) =
|
||
UPPER (rec_ins.ins_srtgroep_omschrijving)
|
||
AND ins_srtgroep_module = 'INS'
|
||
AND ins_srtgroep_verwijder IS NULL
|
||
AND ins_discipline_key = v_ins_srtinstallatie_key;
|
||
|
||
IF rec_ins.ins_srtdeel_code IS NOT NULL
|
||
THEN
|
||
SELECT ins_srtdeel_key, 'S'
|
||
INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
|
||
FROM ins_srtdeel
|
||
WHERE UPPER (ins_srtdeel_code) = UPPER (rec_ins.ins_srtdeel_code)
|
||
AND ins_srtdeel_module = 'INS'
|
||
AND ins_srtdeel_verwijder IS NULL
|
||
AND ins_srtgroep_key = v_ins_srtinstallatie_key;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Alleen de gezette bits van de dagen van de week.
|
||
SELECT COALESCE(BITAND(rec_ins.ins_srtcontrole_bits, 127), 0)
|
||
INTO v_week_bits
|
||
FROM DUAL;
|
||
-- Alleen de gezette bits van de y-ste xxxdag van de maand.
|
||
SELECT COALESCE(BITAND(rec_ins.ins_srtcontrole_bits, 256 + 512 + 1024) / 256, 0)
|
||
INTO v_maand_bits
|
||
FROM DUAL;
|
||
|
||
v_aanduiding:='Taak categorie '||rec_ins.ins_srtcontrole_info||' niet gevonden';
|
||
SELECT ctr_ins_discipline_key
|
||
INTO v_ctr_ins_discipline_key
|
||
FROM ctr_disc_params csp,
|
||
ctr_discipline i
|
||
WHERE i.ins_discipline_omschrijving=rec_ins.ins_srtcontrole_info
|
||
AND i.ins_discipline_verwijder IS NULL
|
||
AND csp.ctr_ins_discipline_key = i.ins_discipline_key
|
||
AND csp.ctr_disc_params_controle_type=1 ;
|
||
|
||
IF rec_ins.ins_srtcontrole_omschrijving IS NOT NULL AND
|
||
rec_ins.ins_srtcontrole_periode IS NOT NULL AND
|
||
((rec_ins.ins_srtcontrole_eenheid = 0)
|
||
OR (rec_ins.ins_srtcontrole_eenheid > 0 AND MOD(rec_ins.ins_srtcontrole_periode, 1) = 0)) AND
|
||
rec_ins.ins_srtcontrole_eenheid IS NOT NULL AND
|
||
rec_ins.ins_srtcontrole_mode IS NOT NULL AND
|
||
(rec_ins.ins_srtcontrole_mode = 1 OR (1=1))
|
||
THEN
|
||
|
||
|
||
|
||
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ins_srtcontrole_info,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid, -- 0=uurlijks, 1=dagelijks, 2=wekelijk, 3=maandelijk, 4=jaarlijks, null=niet
|
||
ins_srtcontrole_mode, -- 0=moment-modus of 1=interval-modus
|
||
ins_srtcontrole_bits, -- 1=Jan, 2=Feb, 4=mart, 8=april enz
|
||
ctr_discipline_key,
|
||
ins_srtcontrole_opmerking
|
||
)
|
||
VALUES (v_ins_srtinstallatie_key,
|
||
v_ins_srtcontrole_niveau,
|
||
rec_ins.ins_srtcontrole_omschrijving,
|
||
rec_ins.ins_srtcontrole_info,
|
||
rec_ins.ins_srtcontrole_periode,
|
||
rec_ins.ins_srtcontrole_eenheid,
|
||
rec_ins.ins_srtcontrole_mode,
|
||
rec_ins.ins_srtcontrole_bits,
|
||
v_ctr_ins_discipline_key,
|
||
rec_ins.ins_srtcontrole_opmerking
|
||
);
|
||
ELSE
|
||
IF rec_ins.ins_srtcontrole_mode = 0 AND (v_week_bits = 0 OR v_maand_bits = 0)
|
||
THEN v_errorhint := 'Het verplichte veld "Moment" is niet (goed) ingevuld: inspectie wordt niet toegevoegd.';
|
||
ELSIF rec_ins.ins_srtcontrole_eenheid > 0 AND MOD(rec_ins.ins_srtcontrole_periode, 1) > 0
|
||
THEN v_errorhint := 'Periode moet een geheel getal zijn voor dagelijkse, wekelijkse, maandelijkse en jaarlijkse taken: inspectie wordt niet toegevoegd.';
|
||
ELSE v_errorhint := '<EFBFBD><EFBFBD>n of meerdere van de verplichte velden "Omschrijving", "Period", "Eenheid" of "Mode" zijn niet ingevuld: inspectie wordt niet toegevoegd.';
|
||
END IF;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding,
|
||
v_errorhint);
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg :=
|
||
v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Importproces inspecties afgebroken!',
|
||
v_errormsg);
|
||
END FZKH_UPDATE_INSPECTIES;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_SLEUTELS (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_ins;
|
||
|
||
v_count NUMBER;
|
||
v_vervaldatum DATE;
|
||
BEGIN
|
||
|
||
fac_import_ins(p_import_key);
|
||
|
||
FOR rec in c1
|
||
LOOP
|
||
|
||
IF rec.prs_perslid_matchcode='4'
|
||
THEN
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_nr = rec.prs_perslid_matchwaarde
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND ( p.prs_perslid_inactief IS NULL
|
||
OR p.prs_perslid_inactief > SYSDATE);
|
||
ELSIF rec.prs_perslid_matchcode='3'
|
||
THEN
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM prs_v_perslid_fullnames p
|
||
WHERE p.prs_perslid_naam_full = rec.prs_perslid_matchwaarde;
|
||
ELSE
|
||
v_count:=0;
|
||
END IF;
|
||
|
||
v_vervaldatum := NULL;
|
||
IF UPPER(rec.ins_kenmerkwaarde1) = 'VERMIST'
|
||
THEN
|
||
v_vervaldatum := fac.safe_to_date(rec.ins_kenmerkwaarde2,'DD-MM-YYYY');
|
||
END IF;
|
||
IF v_count=0
|
||
THEN
|
||
UPDATE fac_imp_ins
|
||
SET alg_locatie_code = 'FZKH',
|
||
alg_gebouw_code = 'FZKH',
|
||
alg_verdieping_volgnr = '2',
|
||
alg_ruimte_nr = 'F201',
|
||
prs_perslid_matchcode = NULL,
|
||
prs_perslid_matchwaarde = NULL,
|
||
ins_deel_vervaldatum = v_vervaldatum
|
||
WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving
|
||
AND ins_kenmerkwaarde3=rec.ins_kenmerkwaarde3;
|
||
|
||
END IF;
|
||
|
||
|
||
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_SLEUTELS (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
BEGIN
|
||
fac_update_ins (p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_MT_KENMERKEN (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_MT_KENMERKEN (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_col01 ins_deel_omschrijving,
|
||
fac_imp_csv_col03 ins_kenmerk_label,
|
||
fac_imp_csv_col08 ins_kenmerk_waarde
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
v_ins_deel_key NUMBER;
|
||
v_ins_deel_omschrijving VARCHAR2(50);
|
||
v_ins_kenmerk_key NUMBER;
|
||
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
BEGIN
|
||
FOR rec IN sel
|
||
LOOP
|
||
IF rec.ins_kenmerk_label<>'ftrdescr'
|
||
THEN
|
||
BEGIN
|
||
|
||
v_ins_deel_omschrijving:=rec.ins_deel_omschrijving;
|
||
IF LENGTH(v_ins_deel_omschrijving)<6
|
||
THEN
|
||
v_ins_deel_omschrijving:=LPAD(rec.ins_deel_omschrijving,6, '0');
|
||
END IF;
|
||
v_aanduiding := 'Object '||v_ins_deel_omschrijving||' is niet gevonden en wordt overgeslagen';
|
||
SELECT ins_deel_key
|
||
INTO v_ins_deel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving=v_ins_deel_omschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
|
||
IF v_ins_deel_key >0
|
||
THEN
|
||
v_aanduiding:='kenmerk : ' || TO_CHAR (rec.ins_kenmerk_label)||' voor object '||rec.ins_deel_omschrijving||' is niet gevonden en wordt overgeslagen';
|
||
SELECT ins_kenmerk_key
|
||
INTO v_ins_kenmerk_key
|
||
FROM ins_kenmerk ik, ins_v_aanwezigdiscipline i
|
||
WHERE UPPER(ik.ins_kenmerk_omschrijving) = UPPER(rec.ins_kenmerk_label)
|
||
AND UPPER(i.ins_discipline_omschrijving)=UPPER('Medische techniek')
|
||
AND ik.ins_srtinstallatie_key=i.ins_discipline_key
|
||
AND ik.ins_kenmerk_niveau='D'
|
||
AND ik.ins_kenmerk_verwijder IS NULL;
|
||
IF v_ins_kenmerk_key>0 AND rec.ins_kenmerk_waarde <>'NULL'
|
||
THEN
|
||
IF LENGTH(rec.ins_kenmerk_waarde)>50 AND rec.ins_kenmerk_label<>'Configuratie'
|
||
THEN
|
||
flx.setflex('INS',v_ins_kenmerk_key,v_ins_deel_key,SUBSTR(rec.ins_kenmerk_waarde,0,49));
|
||
ELSE
|
||
flx.setflex('INS',v_ins_kenmerk_key,v_ins_deel_key,rec.ins_kenmerk_waarde);
|
||
END IF;
|
||
v_aanduiding:='Kenmerk : ' || TO_CHAR (rec.ins_kenmerk_label)||'='||rec.ins_kenmerk_waarde||' voor object '||rec.ins_deel_omschrijving||' is toegevoegd.';
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_aanduiding,
|
||
'');
|
||
END IF;
|
||
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
'');
|
||
END;
|
||
END IF;
|
||
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg :=
|
||
v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Importproces MT Kenmerken afgebroken!',
|
||
v_errormsg);
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_RESERVERINGEN (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_RESERVERINGEN (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_key csv_key,
|
||
fac_imp_csv_col02 ultimo_code,
|
||
fac_imp_csv_col01 ultimo_code_volgnr,
|
||
fac_imp_csv_col13 res_ruimte_nr,
|
||
fac_imp_csv_col04 res_startdatum,
|
||
fac_imp_csv_col05 res_einddatum,
|
||
fac_imp_csv_col10 res_aanvrager,
|
||
fac_imp_csv_col06 res_omschrijving
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
AND fac_imp_csv_col15='FLEVO'
|
||
AND UPPER(fac_imp_csv_col02) <> UPPER('Reserveringen')
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
v_res_startdatum DATE;
|
||
v_res_einddatum DATE;
|
||
v_prs_perslid_key NUMBER;
|
||
v_prs_perslid_key_nu NUMBER;
|
||
v_res_ruimte_opstel_key NUMBER;
|
||
v_res_activiteit_key NUMBER;
|
||
v_rsv_ruimte_key NUMBER;
|
||
v_reservering_key NUMBER;
|
||
|
||
v_res_kenmerk_key NUMBER;
|
||
v_status_bo NUMBER;
|
||
v_status_fo NUMBER;
|
||
v_volgnr NUMBER;
|
||
v_no_show NUMBER;
|
||
v_count NUMBER;
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
|
||
BEGIN
|
||
v_res_kenmerk_key:=-1;
|
||
v_errormsg :='Kenmerk tbv tultimo code is niet gevonde';
|
||
SELECT res_kenmerk_key
|
||
INTO v_res_kenmerk_key
|
||
FROm res_kenmerk rk
|
||
WHERE rk.res_kenmerk_code='ULTIMO_CODE'
|
||
AND rk.res_kenmerk_verwijder IS NULL
|
||
AND rk.res_activiteit_key=10;
|
||
|
||
IF v_res_kenmerk_key>0
|
||
THEN
|
||
FOR rec IN sel
|
||
LOOP
|
||
IF rec.ultimo_code <>'Reserveringen'
|
||
THEN
|
||
|
||
-- Heb ik de reserverig al
|
||
v_volgnr:=fac.safe_to_number(rec.ultimo_code_volgnr);
|
||
v_reservering_key:=0;
|
||
|
||
BEGIN
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE UPPER(p.prs_perslid_email) = UPPER(rec.res_aanvrager);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_prs_perslid_key:=3;
|
||
END;
|
||
|
||
BEGIN
|
||
SELECT r.res_reservering_key , rrr.res_rsv_ruimte_key, rrr.res_rsv_ruimte_contact_key
|
||
INTO v_reservering_key, v_rsv_ruimte_key, v_prs_perslid_key_nu
|
||
FROM res_reservering r, res_rsv_ruimte rrr
|
||
WHERE r.res_reservering_externnr=rec.ultimo_code
|
||
AND rrr.res_reservering_key=r.res_reservering_key
|
||
AND rrr.res_rsv_ruimte_volgnr = v_volgnr
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL;
|
||
|
||
IF v_prs_perslid_key<> v_prs_perslid_key_nu
|
||
THEN
|
||
UPDATE res_rsv_ruimte
|
||
SET res_rsv_ruimte_contact_key=v_prs_perslid_key,
|
||
res_rsv_ruimte_host_key=v_prs_perslid_key
|
||
WHERE res_rsv_ruimte_key=v_rsv_ruimte_key;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_reservering_key:=-1;
|
||
END;
|
||
|
||
|
||
v_res_startdatum := fac.safe_to_date(SUBSTR(rec.res_startdatum,1,16),'YYYY-MM-DD HH24:MI');
|
||
v_res_einddatum := fac.safe_to_date(SUBSTR(rec.res_einddatum,1,16),'YYYY-MM-DD HH24:MI');
|
||
|
||
IF v_reservering_key < 0 -- alleen aanmaken als we hem nog niet hebben
|
||
THEN
|
||
|
||
|
||
v_aanduiding := 'Reservering '||rec.ultimo_code||' voor ruimte met ruimte Nr :'||rec.res_ruimte_nr||' is niet gevonden';
|
||
SELECT MIN(rro.res_ruimte_opstel_key)
|
||
INTO v_res_ruimte_opstel_key
|
||
from res_ruimte rr, res_ruimte_opstelling rro
|
||
WHERE rr.res_ruimte_verwijder IS NULL
|
||
AND rr.res_ruimte_nr LIKE rec.res_ruimte_nr||'%'
|
||
AND rro.res_ruimte_key=rr.res_ruimte_key;
|
||
|
||
BEGIN
|
||
SELECT ra.res_activiteit_key
|
||
INTO v_res_activiteit_key
|
||
FROM res_activiteit ra
|
||
where ra.res_activiteit_omschrijving='Vergadering';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_res_activiteit_key:=10;
|
||
|
||
END;
|
||
|
||
|
||
v_status_bo := 2; -- Alles op Geregistreerd (want alleen lopende reserveringen)
|
||
v_status_fo := 2; -- Alles op Definitief (want alleen lopende reserveringen)
|
||
v_no_show := TO_NUMBER (NULL);
|
||
|
||
|
||
IF v_prs_perslid_key>0 AND v_res_ruimte_opstel_key >0
|
||
THEN
|
||
IF v_reservering_key=-1
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen res_reservering ('||rec.csv_key||').';
|
||
INSERT INTO res_reservering (res_reservering_verwijder, res_reservering_externnr)
|
||
VALUES (NULL, rec.ultimo_code)
|
||
RETURNING res_reservering_key
|
||
INTO v_reservering_key;
|
||
END IF;
|
||
v_errormsg := 'Fout toevoegen res_rsv_ruimte ('||rec.csv_key||').';
|
||
INSERT INTO res_rsv_ruimte (res_reservering_key,
|
||
res_rsv_ruimte_volgnr,
|
||
res_rsv_ruimte_opmerking,
|
||
res_rsv_ruimte_omschrijving,
|
||
prs_kostenplaats_key,
|
||
res_rsv_ruimte_contact_key,
|
||
res_rsv_ruimte_host_key,
|
||
--alg_ruimte_key,
|
||
res_ruimte_opstel_key,
|
||
res_rsv_ruimte_cvab_mode,
|
||
res_activiteit_key,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_rsv_ruimte_bezoekers,
|
||
res_rsv_ruimte_bezoekers_shown,
|
||
res_status_bo_key,
|
||
res_status_fo_key,
|
||
res_rsv_ruimte_noshow,
|
||
res_rsv_ruimte_externnr)
|
||
VALUES (v_reservering_key,
|
||
v_volgnr,
|
||
NULL,
|
||
SUBSTR(rec.res_omschrijving,1,60),
|
||
TO_NUMBER (NULL),
|
||
v_prs_perslid_key,
|
||
v_prs_perslid_key,
|
||
v_res_ruimte_opstel_key,
|
||
NULL, -- CVAB-mode op Afhalen!
|
||
v_res_activiteit_key,
|
||
v_res_startdatum,
|
||
v_res_einddatum,
|
||
TO_NUMBER (NULL),
|
||
v_no_show,
|
||
v_status_bo,
|
||
v_status_fo,
|
||
v_no_show,
|
||
NULL)
|
||
RETURNING res_rsv_ruimte_key
|
||
INTO v_rsv_ruimte_key;
|
||
flx.setflex('RES',v_res_kenmerk_key,v_rsv_ruimte_key,rec.ultimo_code||'/'||v_volgnr);
|
||
fac.trackaction ('#RESNEW', v_rsv_ruimte_key, NULL, SYSDATE, 'Gemigreerd vanuit Ultimo');
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Reservering '||v_reservering_key||' aangemaakt voor ultimo reservering '|| rec.ultimo_code,
|
||
'');
|
||
END IF;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Reservering voor ultimo reservering '|| rec.ultimo_code||' reeds aangemaakt.',
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
|
||
END LOOP;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg :=
|
||
v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Importproces Ultimo reserveringen afgebroken!',
|
||
v_errormsg);
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_CATERING (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_CATERING (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR catres IS
|
||
WITH
|
||
rr_set
|
||
AS
|
||
(SELECT rr.res_reservering_externnr,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_key,
|
||
/* voeg hier de kolommen toe die je nodig hebt uit rr/rrr */
|
||
ROW_NUMBER ()
|
||
OVER (
|
||
PARTITION BY rr.res_reservering_externnr,
|
||
rrr.res_rsv_ruimte_volgnr
|
||
ORDER BY rr.res_reservering_key DESC -- kies je eigen logica
|
||
) rn
|
||
FROM res_reservering rr
|
||
JOIN res_rsv_ruimte rrr
|
||
ON rrr.res_reservering_key =
|
||
rr.res_reservering_key)
|
||
SELECT fac_imp_csv_col02 AS ultimo_code,
|
||
fac_imp_csv_col01 AS ultimo_code_volgnr,
|
||
fac_imp_csv_col13 AS ultimo_art_nr,
|
||
fac_imp_csv_col14 AS ultimo_art_omschrijving,
|
||
art.RES_ARTIKEL_key AS artikel_key,
|
||
fac_imp_csv_col12 AS aantal,
|
||
fac.safe_to_date (
|
||
TO_CHAR (
|
||
CAST (
|
||
TO_TIMESTAMP_TZ (
|
||
fac_imp_csv_col04,
|
||
'YYYY-MM-DD HH24:MI:SS.FF7 TZH:TZM')
|
||
AT LOCAL
|
||
AS DATE),
|
||
'DD/MM/YYYY HH24:MI:SS'),
|
||
'DD/MM/YYYY HH24:MI:SS') AS van,
|
||
rs.res_rsv_ruimte_key AS res_rsv_ruimte_key,
|
||
rs.res_reservering_key AS reservering_key,
|
||
rs.res_rsv_ruimte_volgnr AS res_rsv_ruimte_volgnr
|
||
FROM fac_imp_csv fac
|
||
LEFT JOIN res_artikel art
|
||
ON fac.safe_to_number (fac.fac_imp_csv_col13) =
|
||
fac.safe_to_number (art.res_artikel_nr)
|
||
LEFT JOIN rr_set rs
|
||
ON rs.res_reservering_externnr=fac.fac_imp_csv_col02
|
||
AND fac.safe_to_number(res_rsv_ruimte_volgnr)=fac.safe_to_number(fac_imp_csv_col01)
|
||
AND rs.rn = 1
|
||
WHERE fac_import_key = p_import_key
|
||
AND fac_imp_csv_col02 <> 'Reservering'
|
||
AND fac_imp_csv_col15 = 'NULL'
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
-- v_res_startdatum DATE;
|
||
-- v_res_einddatum DATE;
|
||
-- v_prs_perslid_key NUMBER;
|
||
-- v_res_ruimte_opstel_key NUMBER;
|
||
-- v_res_activiteit_key NUMBER;
|
||
-- v_rsv_ruimte_key NUMBER;
|
||
-- v_reservering_key NUMBER;
|
||
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500);
|
||
v_reservering_key NUMBER;
|
||
v_res_rsv_ruimte_key NUMBER;
|
||
v_res_rsv_artikel_key NUMBER;
|
||
v_ruimte_opstel_key NUMBER;
|
||
v_soort VARCHAR2 (200);
|
||
-- v_count NUMBER;
|
||
-- v_res_kenmerk_key NUMBER;
|
||
-- v_status_bo NUMBER;
|
||
-- v_status_fo NUMBER;
|
||
-- v_volgnr NUMBER;
|
||
-- v_no_show NUMBER;
|
||
|
||
BEGIN
|
||
FOR rec IN catres
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
rec.ultimo_code || '-' || rec.ultimo_art_nr || '/1';
|
||
v_errormsg := 'Fout toevoegen rsv_artikel';
|
||
|
||
IF rec.artikel_key IS NOT NULL
|
||
THEN
|
||
INSERT INTO res_rsv_artikel (res_artikel_key,
|
||
res_rsv_artikel_aantal,
|
||
res_rsv_artikel_levering,
|
||
res_status_bo_key,
|
||
res_rsv_ruimte_key)
|
||
VALUES (rec.artikel_key,
|
||
rec.aantal,
|
||
rec.van,
|
||
2,
|
||
rec.res_rsv_ruimte_key)
|
||
RETURNING res_rsv_artikel_key
|
||
INTO v_res_rsv_artikel_key;
|
||
|
||
FAC.trackaction (
|
||
'#RESUPD',
|
||
rec.res_rsv_ruimte_key,
|
||
3,
|
||
SYSDATE,
|
||
'Reservering '
|
||
|| rec.reservering_key
|
||
|| '/'
|
||
|| rec.res_rsv_ruimte_volgnr
|
||
|| ' gewijzigd'
|
||
|| CHR (13)
|
||
|| 'Artikel '
|
||
|| rec.ultimo_art_omschrijving
|
||
|| ' toegevoegd');
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Catering '
|
||
|| rec.reservering_key
|
||
|| ' bijgevoegd bij Ultimo reservering '
|
||
|| rec.ultimo_code,
|
||
'');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Catering '
|
||
|| rec.reservering_key
|
||
|| ' NIET bijgevoegd bij Ultimo reservering '
|
||
|| rec.ultimo_code,
|
||
'Error: Artikel_key is NULL, geen insert uitgevoerd.');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Catering '
|
||
|| rec.reservering_key
|
||
|| ' NIET bijgevoegd bij Ultimo reservering '
|
||
|| rec.ultimo_code,
|
||
'Error: ' || SQLERRM);
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_ULTIMO_MLD(p_import IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_ULTIMO_MLD(p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_col01 ultimo_nr,
|
||
fac_imp_csv_col02 mld_onderwerp,
|
||
fac_imp_csv_col03 prs_perslid_behandelaar,
|
||
fac_imp_csv_col04 mld_melding_plandatum,
|
||
fac_imp_csv_col05 mld_melding_datum,
|
||
fac_imp_csv_col05 prs_afdeling,
|
||
fac_imp_csv_col07 mld_note,
|
||
fac_imp_csv_col08 ins_deel_omschrijving,
|
||
fac_imp_csv_col12 mld_stdmelding,
|
||
fac_imp_csv_col13 mld_status,
|
||
fac_imp_csv_col14 mld_substatus,
|
||
fac_imp_csv_col15 mld_melding_gereeddatum,
|
||
fac_imp_csv_col17 prs_perslid_melder,
|
||
fac_imp_csv_col19 prs_kostenplaats_nr,
|
||
fac_imp_csv_key
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
|
||
v_counter NUMBER;
|
||
v_count_deel_ok NUMBER;
|
||
v_count_deel NUMBER;
|
||
v_stdmelding_key NUMBER;
|
||
v_alg_onrgoed_niveau VARCHAR2(1);
|
||
v_prs_perslid_melder NUMBER;
|
||
v_mld_meldbron_key NUMBER;
|
||
v_kenmerk_key NUMBER;
|
||
v_ins_deel_key NUMBER;
|
||
v_prs_perslid_behandelaar NUMBER;
|
||
v_meldingsdatum DATE;
|
||
v_melding_gereeddatum DATE;
|
||
v_mld_key NUMBER;
|
||
v_status_key NUMBER;
|
||
V_prs_kostenplaats_key NUMBER;
|
||
v_fac_imp_key NUMBER;
|
||
BEGIN
|
||
v_stdmelding_key := 1; -- standaard worden alle migratie meldingen op de stdmelding overig gezet
|
||
v_mld_meldbron_key :=5;
|
||
v_counter:=0;
|
||
|
||
v_aanduiding :='Ophalen melding kenmerk key met code=ULTIMO_NR is muslukt';
|
||
SELECT mld_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_code='ULTIMO_NR';
|
||
|
||
FOR rec IN sel
|
||
LOOP
|
||
v_fac_imp_key:= rec.fac_imp_csv_key;
|
||
IF rec.ultimo_nr<>'Code'
|
||
THEN
|
||
BEGIN
|
||
SELECT mld_melding_key
|
||
INTO v_mld_key
|
||
FROM mld_melding
|
||
where mld_melding_externnr=rec.ultimo_nr;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_mld_key:=-1;
|
||
END;
|
||
|
||
|
||
IF v_mld_key=-1
|
||
THEN
|
||
|
||
BEGIN
|
||
v_aanduiding:='Ophalen std melding gaat fout :('||rec.fac_imp_csv_key||')'|| rec.mld_stdmelding;
|
||
SELECT ms.mld_stdmelding_key, ms.alg_onrgoed_niveau
|
||
INTO v_stdmelding_key, v_alg_onrgoed_niveau
|
||
FROM mld_stdmelding ms , ins_srtdiscipline vgt, MLD_DISCIPLINE vg
|
||
WHERE UPPER(vgt.ins_srtdiscipline_omschrijving)=UPPER('Medische Techniek')
|
||
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
|
||
AND vg.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND ms.mld_stdmelding_omschrijving=rec.mld_stdmelding
|
||
AND ms.MLD_STDMELDING_VERWIJDER IS NULL;
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
SELECT ms.mld_stdmelding_key, ms.alg_onrgoed_niveau
|
||
INTO v_stdmelding_key, v_alg_onrgoed_niveau
|
||
FROM mld_stdmelding ms , ins_srtdiscipline vgt, MLD_DISCIPLINE vg
|
||
WHERE UPPER(vgt.ins_srtdiscipline_omschrijving)=UPPER('Medische Techniek')
|
||
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
|
||
AND vg.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND UPPER(ms.mld_stdmelding_omschrijving)='MIGRATIE'
|
||
AND ms.MLD_STDMELDING_VERWIJDER IS NULL;
|
||
END;
|
||
|
||
v_aanduiding:= 'Ophalen van het asset '||rec.ins_deel_omschrijving || ' is mislukt. ('||rec.fac_imp_csv_key||')';
|
||
BEGIN
|
||
SELECT ins_deel_key
|
||
INTO v_ins_deel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
v_count_deel_ok:=v_count_deel_ok+1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_ins_deel_key:=NULL;
|
||
v_count_deel:=v_count_deel+1;
|
||
END;
|
||
|
||
-- Opahlen aanvrger
|
||
v_aanduiding:= 'Ophalen van de aanvrager '||rec.prs_perslid_melder || ' is mislukt.('||rec.fac_imp_csv_key||')';
|
||
BEGIN
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_melder
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_naam=rec.prs_perslid_melder;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_melder
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_naam='MT Migratie gebruiker';
|
||
-- v_prs_perslid_melder:=3;
|
||
END;
|
||
v_aanduiding:= 'Ophalen van de behandelaar '||rec.prs_perslid_behandelaar || ' is mislukt. ('||rec.fac_imp_csv_key||')';
|
||
BEGIN
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_behandelaar
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_naam=rec.prs_perslid_behandelaar;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_prs_perslid_behandelaar:=NULL;
|
||
END;
|
||
|
||
v_aanduiding:= 'Ophalen van de kostenplaats '||rec.prs_kostenplaats_nr || ' is mislukt.('||rec.fac_imp_csv_key||')';
|
||
BEGIN
|
||
SELECT prs_kostenplaats_key
|
||
INTO v_prs_kostenplaats_key
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr=rec.prs_kostenplaats_nr
|
||
AND k.prs_kostenplaats_verwijder IS NULL;
|
||
ExCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_prs_kostenplaats_key:=NULL;
|
||
|
||
END;
|
||
|
||
|
||
|
||
-- Status
|
||
SELECT DECODE(rec.mld_status,'Gesloten',6,'Nieuw',2,'Goedgekeurd',2,'Geregistreerd',2,'In behandeling',4,'Afgemeld',5,6)
|
||
INTO v_status_key
|
||
FROM DUAL; -- Historie \(6) is default
|
||
|
||
IF rec.mld_melding_datum IS NOT null
|
||
THEN
|
||
|
||
v_meldingsdatum:= fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS');
|
||
v_aanduiding:= 'meldingsdatum is Ultimo meldings datum :'||TO_CHAR(v_meldingsdatum,'DD-MM-YYYY HH24:MI:SS');
|
||
ELSIF rec.mld_melding_plandatum IS NOT NULL
|
||
THEN
|
||
-- Ik heb geen melddatum in de epxort zitten dan maar de plandatum die altijd gevuld is.
|
||
v_meldingsdatum:= fac.safe_to_date(rec.mld_melding_plandatum,'DD-MM-YYYY HH24:MI.SS');
|
||
v_aanduiding:= 'meldingsdatum is Ultimo meldings plan datum :'||TO_CHAR(v_meldingsdatum,'DD-MM-YYYY HH24:MI:SS');
|
||
ELSIF rec.mld_melding_gereeddatum IS NOT null
|
||
THEN
|
||
-- Ik heb geen mld_melding_plandatum in de epxort zitten dan maar de mld_melding_gereeddatum die altijd gevuld is.
|
||
v_meldingsdatum:= fac.safe_to_date(rec.mld_melding_gereeddatum,'DD-MM-YYYY HH24:MI.SS');
|
||
v_aanduiding:= 'meldingsdatum is Ultimo meldings gereed datum :'||TO_CHAR(v_meldingsdatum,'DD-MM-YYYY HH24:MI:SS');
|
||
ELSE
|
||
v_meldingsdatum:=SYSDATE;
|
||
v_aanduiding:= 'meldingsdatum is Ultimo meldings SYSDATE datum :'||TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS');
|
||
END IF;
|
||
IF rec.mld_melding_gereeddatum IS NOT NULL
|
||
THEN
|
||
v_melding_gereeddatum := fac.safe_to_date(rec.mld_melding_gereeddatum,'DD-MM-YYYY HH24:MI.SS');
|
||
ELSE
|
||
v_melding_gereeddatum:=NULL;
|
||
END IF;
|
||
|
||
|
||
|
||
|
||
IF v_stdmelding_key>-1
|
||
THEN
|
||
v_counter:=v_counter+1;
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_opmerking,
|
||
mld_melding_behandelaar_key,
|
||
mld_melding_behandelaar2_key,
|
||
mld_ins_discipline_key,
|
||
mld_stdmelding_key,
|
||
mld_melding_t_uitvoertijd,
|
||
mld_melding_einddatum,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
MLD_MELDING_EXTERNNR)
|
||
VALUES ('MLD',
|
||
v_mld_meldbron_key,
|
||
NULL,
|
||
NULL,
|
||
v_meldingsdatum,
|
||
rec.mld_onderwerp,
|
||
rec.mld_onderwerp,
|
||
rec.mld_note,
|
||
v_prs_perslid_behandelaar, -- mld_melding_behandelaar_key
|
||
TO_NUMBER(NULL), -- mld_melding_behandelaar2_key
|
||
TO_NUMBER(NULL),
|
||
v_stdmelding_key,
|
||
NULL,
|
||
v_melding_gereeddatum,
|
||
v_prs_perslid_melder,
|
||
v_prs_perslid_melder,
|
||
v_prs_kostenplaats_key,
|
||
v_status_key,
|
||
3,
|
||
rec.ultimo_nr
|
||
)
|
||
RETURNING mld_melding_key
|
||
INTO v_mld_key;
|
||
|
||
|
||
|
||
flx.setflex('MLD',v_kenmerk_key,v_mld_key,rec.ultimo_nr);
|
||
IF v_status_key = 2
|
||
THEN
|
||
fac.trackaction ('#MLDNEW', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' aangemaakt');
|
||
ELSIF v_status_key = 4
|
||
THEN
|
||
fac.trackaction ('#MLDNEW', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' aangemaakt.');
|
||
fac.trackaction ('#MLDACP', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' geaccepteerd.');
|
||
ELSIF v_status_key = 6
|
||
THEN
|
||
fac.trackaction ('#MLDNEW', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' aangemaakt.');
|
||
fac.trackaction ('#MLDACP', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' geaccepteerd.');
|
||
fac.trackaction ('#MLDAFM', v_mld_key, NULL, v_melding_gereeddatum, 'Ultimo melding '||rec.ultimo_nr||' afgemeld');
|
||
ELSE
|
||
fac.trackaction ('#MLDTRK', v_mld_key, NULL, NULL, 'Ultimo melding '||rec.ultimo_nr||' gemigreerd.');
|
||
END IF;
|
||
|
||
IF v_mld_key>1 AND LENGTH(rec.mld_note)>0
|
||
THEN
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_aanmaak,
|
||
mld_melding_note_wijzigdatum,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving,
|
||
mld_melding_note_flag)
|
||
VALUES (v_mld_key,
|
||
v_meldingsdatum,
|
||
SYSDATE,
|
||
3, -- Facilitor
|
||
'Migratie melding Ultimo melding: ' || rec.ultimo_nr||CHR(10)||'Aanvrager: '|| rec.prs_perslid_melder,
|
||
0);
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_aanmaak,
|
||
mld_melding_note_wijzigdatum,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving,
|
||
mld_melding_note_flag)
|
||
VALUES (v_mld_key,
|
||
v_meldingsdatum,
|
||
SYSDATE,
|
||
3, -- Facilitor
|
||
SUBSTR(rec.mld_note,1,3999),
|
||
0);
|
||
|
||
END IF;
|
||
|
||
IF v_ins_deel_key > 0
|
||
THEN
|
||
INSERT INTO mld_melding_object(ins_deel_key,
|
||
mld_melding_key,
|
||
mld_melding_object_aanmaak)
|
||
VALUES(v_ins_deel_key,
|
||
v_mld_key,
|
||
v_meldingsdatum);
|
||
END IF;
|
||
|
||
|
||
|
||
|
||
END IF;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Ultimo melding '||rec.ultimo_nr||' is al bekend onder melding :'||v_mld_key,
|
||
'Ultimo meldingen aanmaak');
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- haal het object op
|
||
-- haal de melder op
|
||
-- haal de evt hebandelar op
|
||
-- haal de stdmelding op,
|
||
-- haal de status op,
|
||
|
||
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Er zijn in totaal '||v_counter||' meldingen aangemaakt.',
|
||
'Ultimo meldingen aanmaak');
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Daar zijn intotaal '||v_count_deel_ok||' objecten aangekoppeld.',
|
||
'Ultimo meldingen aanmaak');
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'In totaal zijn '||v_count_deel||' objecten niet gevonden.',
|
||
'Ultimo meldingen aanmaak');
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg :=
|
||
v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Importproces Ultimo meldingen afgebroken! ('||v_fac_imp_key||')'||v_aanduiding,
|
||
v_errormsg);
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_AOC_CODES(p_import IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
-- AOC structuur "ID";"Descr";"ValidFromDate";"LastMutationDate";"MainGroupAocId";"GroupAocId";"Level"
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_AOC_CODES(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_col01 id,
|
||
fac_imp_csv_col02 Omschrijving,
|
||
fac_imp_csv_col03 ValidFrom,
|
||
fac_imp_csv_col04 MutationDate,
|
||
fac_imp_csv_col05 aoc_disciplne_code,
|
||
fac_imp_csv_col06 aoc_groep_code,
|
||
fac_imp_csv_col07 aoc_level,
|
||
fac_imp_csv_key csv_key
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
AND fac_imp_csv_col01<>'ID'
|
||
ORDER by fac_imp_csv_key;
|
||
|
||
v_ins_discipline_key NUMBER;
|
||
v_srtgroep_key NUMBER;
|
||
v_srtdeel_key NUMBER;
|
||
v_groep_count NUMBER;
|
||
v_srtdeel_count NUMBER;
|
||
v_groep_totalcount NUMBER;
|
||
v_srtdeel_totalcount NUMBER;
|
||
v_csv_key NUMBER;
|
||
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
BEGIN
|
||
v_srtdeel_count:=0;
|
||
v_groep_count:=0;
|
||
|
||
v_aanduiding:='Ophalen discipline Medische Techniek is mislukt. Import wordt afgebroken';
|
||
SELECT ins_discipline_key
|
||
INTO v_ins_discipline_key
|
||
FROM ins_discipline
|
||
WHERE UPPER(ins_discipline_omschrijving)=UPPER('Medische Techniek')
|
||
AND ins_discipline_module='INS'
|
||
AND ins_discipline_verwijder IS NULL;
|
||
|
||
|
||
FOR rec in sel
|
||
LOOP
|
||
v_csv_key:=rec.csv_key;
|
||
|
||
IF rec.aoc_level='2'
|
||
THEN
|
||
BEGIN
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
from ins_srtgroep
|
||
WHERE UPPER(ins_srtgroep_omschrijving)=UPPER(SUBSTR(rec.aoc_groep_code||' '||rec.omschrijving,1,60))
|
||
AND ins_discipline_key=v_ins_discipline_key
|
||
AND ins_srtgroep_module='INS'
|
||
AND ins_srtgroep_verwijder IS NULL;
|
||
v_groep_totalcount:=v_groep_totalcount+1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
|
||
INSERT INTO ins_srtgroep (ins_discipline_key,
|
||
ins_srtgroep_module,
|
||
ins_srtgroep_omschrijving
|
||
)
|
||
VALUES (v_ins_discipline_key,
|
||
'INS',
|
||
SUBSTR (TRIM (rec.aoc_groep_code||' '||rec.omschrijving), 1, 60)
|
||
)
|
||
RETURNING ins_srtgroep_key
|
||
INTO v_srtgroep_key;
|
||
v_groep_count:=v_groep_count+1;
|
||
END;
|
||
END IF;
|
||
IF rec.aoc_level=3
|
||
THEN
|
||
BEGIN
|
||
v_aanduiding:='Objectgroep niet gevonden :'||rec.aoc_groep_code;
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE SUBSTR(ins_srtgroep_omschrijving,1,5)=rec.aoc_groep_code
|
||
AND ins_srtgroep_verwijder IS NULL;
|
||
v_aanduiding:='Objectsoort niet gevonden :'||rec.aoc_groep_code;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_srtgroep_key:=-1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Objectgroep niet gevonden :'||rec.aoc_groep_code,'');
|
||
END;
|
||
|
||
IF v_srtgroep_key>0
|
||
THEN
|
||
BEGIN
|
||
SELECT ins_srtdeel_key
|
||
INTO v_srtdeel_key
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_code=rec.Id
|
||
AND ins_srtgroep_key=v_srtgroep_key
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
v_srtdeel_totalcount:=v_srtdeel_totalcount+1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
INSERT INTO ins_srtdeel (ins_srtgroep_key,
|
||
ins_srtdeel_module,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_binding)
|
||
VALUES (v_srtgroep_key,
|
||
'INS',
|
||
rec.id,
|
||
rec.omschrijving,
|
||
9); -- aan ruimte en organisatie
|
||
v_srtdeel_count:=v_srtdeel_count+1;
|
||
END;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Objectsrtdeel '||rec.id||' '||rec.omschrijving||'niet aangemaakt om bovenliggende groep niet is gevonden','');
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
END LOOP;
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Objectgroepen/aantal toegevoegd: ' || TO_CHAR (v_groep_count)||'/'||TO_CHAR (v_groep_totalcount),
|
||
'');
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Objectsoorten/aantal toegevoegd: ' || TO_CHAR (v_srtdeel_count)||'/'||TO_CHAR (v_srtdeel_totalcount),
|
||
'');
|
||
COMMIT;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ') ('||v_csv_key||')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'Importproces AOC codering afgebroken!');
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
-- Import rotine tbv de L:answeeper koppeling
|
||
-- Data wordt direct naar fac_imp_csv verwerkt
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_LANSWEEPER(p_import IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
|
||
-- fac_imp-ins wordt gevuld en verwerkt
|
||
-- URL en key woirden iund e kenmerken wegegschreven,
|
||
-- srtdeel
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_LANSWEEPER(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_col01 asset_key,
|
||
fac_imp_csv_col02 asset_name,
|
||
fac_imp_csv_col03 asset_type,
|
||
fac_imp_csv_col04 asset_url
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count NUMBER:=0;
|
||
|
||
v_discipline VARCHAR2(50);
|
||
v_srtdeel_code VARCHAR2(10);
|
||
v_srtdeel_omschrijving VARCHAR2(100);
|
||
--v_srtgroup_omschrijving VARCHAR2(100);
|
||
BEGIN
|
||
|
||
v_aanduiding := 'Ophalen disipline met key 421 is mislukt';
|
||
SELECT ins_discipline_omschrijving
|
||
INTO v_discipline
|
||
FROM ins_discipline where ins_discipline_key=421;
|
||
|
||
-- v_discipline := 'CMDB';
|
||
|
||
v_aanduiding:='Fout bij inlezen van de Lansweeper assets';
|
||
|
||
-- zorgen dat er geen andere data in de wegzit.
|
||
DELETE FROM fac_imp_ins;
|
||
COMMIT;
|
||
|
||
FOR rec in sel
|
||
LOOP
|
||
-- v_srtgroup_omschrijving:=DECODE(UPPER(SUBSTR(rec.asset_name,1,3)),'FZS','Server','FZT','Terminal','FZW','Workstation','FZL','Laptop','FZK','Kiosk','Overig');
|
||
|
||
--key",
|
||
-- "name",
|
||
-- "type",
|
||
-- "url",
|
||
|
||
|
||
IF UPPER(rec.asset_type)<>'KEY'
|
||
AND UPPER(rec.asset_type)<>'NAME'
|
||
AND UPPER(rec.asset_type)<>'TYPE'
|
||
AND UPPER(rec.asset_type)<>'URL'
|
||
THEN
|
||
IF rec.asset_type=NULL
|
||
THEN
|
||
v_srtdeel_omschrijving:='NB';
|
||
v_srtdeel_code:='NB';
|
||
END IF;
|
||
|
||
v_count:=v_count+1;
|
||
INSERT INTO fac_imp_ins(ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_aantal,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_deel_externnr,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2)
|
||
VALUES( v_discipline,
|
||
DECODE(UPPER(SUBSTR(rec.asset_name,1,3)),'FZS','Server','FZT','Terminal','FZW','Workstation','FZL','Laptop','FZK','Kiosk','Overig'),
|
||
COALESCE(SUBSTR(rec.asset_type,1,4),v_srtdeel_code),
|
||
COALESCE(rec.asset_type,v_srtdeel_omschrijving),
|
||
rec.asset_name,
|
||
'1',
|
||
'FZKH',
|
||
'FZKH',
|
||
'0',
|
||
'_CMDB',
|
||
rec.asset_key,
|
||
'Lansweeper Key|0='||rec.asset_key,
|
||
'Lansweeper URL|0='||rec.asset_url);
|
||
|
||
END IF;
|
||
|
||
END LOOP;
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Er zijn '||v_count||' '||v_discipline||'-assets toegevoegd voor verwerking','');
|
||
fac_update_ins(p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_TD_ASSETS(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_col01 ins_deel_omschrijving,
|
||
fac_imp_csv_col02 ins_kenm_intern,
|
||
fac_imp_csv_col03 ins_deel_opmerking,
|
||
TRIM(SUBSTR(TRIM(fac_imp_csv_col04),6)) ins_srtdeel_omschrijving,
|
||
TRIM(SUBSTR(TRIM(fac_imp_csv_col04),1,5)) ins_srtdeel_code,
|
||
fac_imp_csv_col05 ins_kenm_locatiecode,
|
||
fac_imp_csv_col06 ins_kenm_locatienaam,
|
||
fac_imp_csv_col07 ins_kenm_ruimtenr,
|
||
fac_imp_csv_col08 ins_kenm_eigncode,
|
||
fac_imp_csv_col09 ins_kenm_eignnaam,
|
||
TRIM(fac_imp_csv_col11) ins_groep,
|
||
-- fac_imp_csv_col1 ins_verval_datum,
|
||
fac_imp_csv_col12 ins_kenm_status,
|
||
fac_imp_csv_col16 ins_kenm_fabrikant,
|
||
fac_imp_csv_col17 ins_kenm_ruimtenaam,
|
||
fac_imp_csv_col18 ins_kenm_leverancier,
|
||
fac_imp_csv_col19 ins_kenm_bouwjaar,
|
||
fac_imp_csv_col20 ins_kenm_type,
|
||
fac_imp_csv_col21 ins_kenm_model,
|
||
fac_imp_csv_col22 ins_kenm_serienr,
|
||
fac_imp_csv_col23 ins_kenm_garantie,
|
||
fac_imp_csv_col24 ins_kenm_instaldatum,
|
||
fac_imp_csv_col25 ins_kenm_mdd_clas,
|
||
fac_imp_csv_col26 ins_onderhoud_datum,
|
||
fac_imp_csv_col27 ins_onderhoud_datum_laatst,
|
||
fac_imp_csv_col32 ins_srtgroep_fb,
|
||
fac_imp_csv_col33 ins_kenm_aanschafprijs
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
|
||
v_count NUMBER;
|
||
v_ins_groep VARCHAR2(60);
|
||
v_locatie_code VARCHAR2(10);
|
||
v_gebouw_code VARCHAR2(10);
|
||
v_verdieping_nr VARCHAR2(10);
|
||
v_ruimte_nr VARCHAR2(25);
|
||
v_huidige_locatie VARCHAR2(100);
|
||
v_huidige_fys_locatie VARCHAR2(100);
|
||
v_installdatum DATE;
|
||
v_vervaldatum DATE;
|
||
v_klantstatus VARCHAR2(100);
|
||
BEGIN
|
||
|
||
fac_import_file2csv(p_import_key);
|
||
|
||
|
||
|
||
DELETE FROM fac_imp_ins;
|
||
COMMIT;
|
||
|
||
FOR rec in sel
|
||
LOOP
|
||
IF UPPER(rec.ins_deel_omschrijving) <>'ULTIMONR'
|
||
THEN
|
||
v_huidige_locatie:='';
|
||
IF rec.ins_kenm_locatiecode IS NOT NULL
|
||
THEN
|
||
v_huidige_locatie:=rec.ins_kenm_locatiecode||'-'||rec.ins_kenm_locatienaam;
|
||
ELSE
|
||
v_huidige_locatie:='';
|
||
END IF;
|
||
IF rec.ins_kenm_ruimtenr IS NOT NULL
|
||
THEN
|
||
v_huidige_fys_locatie:=rec.ins_kenm_ruimtenr||'-'||rec.ins_kenm_ruimtenaam;
|
||
ELSE
|
||
v_huidige_fys_locatie:='';
|
||
END IF;
|
||
|
||
IF LENGTH(rec.ins_kenm_instaldatum)>1
|
||
THEN
|
||
v_installdatum := fac.safe_to_date(rec.ins_kenm_instaldatum,'DD-MM-YYYY');
|
||
ELSE
|
||
v_installdatum:=TRUNC(SYSDATE);
|
||
END IF;
|
||
|
||
IF LENGTH(rec.ins_groep)=0
|
||
THEN
|
||
IF LENGTH(rec.ins_srtgroep_fb)=0
|
||
THEN
|
||
v_ins_groep:='ONBEKEND';
|
||
ELSE
|
||
v_ins_groep:=rec.ins_srtgroep_fb;
|
||
END IF;
|
||
ELSE
|
||
v_ins_groep:=rec.ins_groep;
|
||
END IF;
|
||
|
||
|
||
IF LENGTH(rec.ins_kenm_ruimtenr)>0
|
||
THEN
|
||
BEGIN
|
||
SELECT 'FZKH', 'FZKH',alg_verdieping_code,alg_ruimte_nr
|
||
INTO v_locatie_code,v_gebouw_code,v_verdieping_nr,v_ruimte_nr
|
||
FROM alg_v_ruimte_gegevens a
|
||
WHERE a.alg_ruimte_nr=rec.ins_kenm_ruimtenr;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_locatie_code:='FZKH';
|
||
v_gebouw_code:='FZKH';
|
||
v_verdieping_nr:='0';
|
||
v_ruimte_nr := '_TD_MIGRATIE';
|
||
END;
|
||
ELSE
|
||
v_locatie_code:='FZKH';
|
||
v_gebouw_code:='FZKH';
|
||
v_verdieping_nr:='0';
|
||
v_ruimte_nr := '_TD_MIGRATIE';
|
||
END IF;
|
||
|
||
|
||
-- hebben we hem al
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
|
||
|
||
|
||
IF v_count=0 THEN
|
||
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_deel_aantal,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11,
|
||
ins_kenmerkwaarde12,
|
||
ins_kenmerkwaarde13,
|
||
ins_kenmerkwaarde14,
|
||
ins_kenmerkwaarde15
|
||
)
|
||
VALUES ('Technische Dienst',
|
||
v_ins_groep,
|
||
SUBSTR(rec.ins_srtdeel_code,1,8),
|
||
rec.ins_srtdeel_omschrijving,
|
||
rec.ins_deel_omschrijving,
|
||
rec.ins_deel_opmerking,
|
||
v_installdatum,
|
||
v_vervaldatum,
|
||
v_locatie_code,
|
||
v_gebouw_code,
|
||
v_verdieping_nr,
|
||
v_ruimte_nr,
|
||
1,
|
||
'Locatie|0='||v_huidige_locatie,
|
||
'Model|0='||rec.ins_kenm_model,
|
||
'TypeNr|0='||rec.ins_kenm_type,
|
||
'Serienummer|0='||rec.ins_kenm_serienr,
|
||
'Bouwjaar|0='||rec.ins_kenm_bouwjaar,
|
||
'Leverancier|0='||rec.ins_kenm_leverancier,
|
||
'Fabrikant|0='||rec.ins_kenm_fabrikant,
|
||
'MDD-Classificatie|0='||TRIM(rec.ins_kenm_mdd_clas),
|
||
'Einde Garantie|0='||rec.ins_kenm_garantie,
|
||
'Status|0='||rec.ins_kenm_status,
|
||
'Installatie datum|0='||rec.ins_kenm_instaldatum,
|
||
'Onderhouddatum|0='||rec.ins_onderhoud_datum,
|
||
'Fysieke Locatie|0='||v_huidige_fys_locatie,
|
||
'InternNr|0='||rec.ins_kenm_intern,
|
||
'Aanschafprijs|0='||rec.ins_kenm_aanschafprijs
|
||
);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Object : '||rec.ins_deel_omschrijving || ' is al bekend en wordt dus overgeslagen','');
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_TD_ASSETS(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel
|
||
IS
|
||
SELECT csv.fac_imp_csv_key regel_key,
|
||
csv.fac_imp_csv_col01 ins_deel_omschrijving,
|
||
csv.fac_imp_csv_col08 prs_afdeling_code
|
||
FROM fac_imp_csv csv , fac_imp_ins i
|
||
WHERE csv.fac_import_key=p_import_key
|
||
AND UPPER(csv.fac_imp_csv_col01) <> 'ULTIMONR'
|
||
AND fac_imp_csv_col01=i.ins_deel_omschrijving
|
||
AND i.alg_ruimte_nr='_TD_MIGRATIE'
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
CURSOR sel_ctr
|
||
IS
|
||
SELECT fac_imp_csv_key regel_key,
|
||
fac_imp_csv_col01 ins_deel_omschrijving,
|
||
TRIM(SUBSTR(TRIM(fac_imp_csv_col04),6)) ins_srtdeel_omschrijving,
|
||
TRIM(SUBSTR(TRIM(fac_imp_csv_col04),1,5)) ins_srtdeel_code,
|
||
fac_imp_csv_col11 ins_groep,
|
||
fac_imp_csv_col08 prs_afdeling_code,
|
||
fac_imp_csv_col26 ctr_datum_next,
|
||
fac_imp_csv_col27 ctr_datum_last
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
AND UPPER(fac_imp_csv_col01) <> 'ULTIMONR'
|
||
AND ( fac_imp_csv_col26 IS NOT NULL
|
||
OR fac_imp_csv_col27 IS NOT NULL)
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
|
||
v_error NUMBER;
|
||
v_ins_deel_key NUMBER;
|
||
v_prs_afdeling_key NUMBER;
|
||
v_ins_srtdeel_key NUMBER;
|
||
v_ins_disciplne_key NUMBER;
|
||
v_ins_srtgroep_key NUMBER;
|
||
|
||
v_srtcontrole_key NUMBER;
|
||
v_count NUMBER;
|
||
v_counter NUMBER;
|
||
v_counter_update NUMBER;
|
||
v_ins_deelsrtcontrole_key NUMBER;
|
||
|
||
v_ctr_groep VARCHAR2(20);
|
||
v_ctr_omschrijving VARCHAR2(20);
|
||
v_ctr_periode NUMBER;
|
||
v_ctr_eenheid NUMBER;
|
||
v_ctr_mode NUMBER;
|
||
v_ctr_onderhoud_datum DATE;
|
||
v_ctr_discipline_key NUMBER;
|
||
v_jaren NUMBER;
|
||
|
||
BEGIN
|
||
|
||
v_counter:=0;
|
||
v_counter_update :=0;
|
||
|
||
-- Objecten verwerken
|
||
fac_update_ins(p_import_key);
|
||
|
||
-- Nu alle objectsoorten updaten naar dat ze een ruimte of afdeling ondersteunen.
|
||
UPDATE ins_srtdeel
|
||
SET ins_srtdeel_binding=9
|
||
WHERE ins_srtdeel_key IN (select ins_srtdeel_key
|
||
from ins_srtdeel isd, ins_srtgroep isg
|
||
where isg.ins_discipline_key=641 -- Technische Dienst
|
||
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key);
|
||
|
||
|
||
-- Objcten aan de juite afdeling koppelen
|
||
FOR rec IN sel
|
||
LOOP
|
||
v_aanduiding :='UPDATE AFDELING: Verwerken fout in fac_imp_csv_key '||rec.regel_key;
|
||
BEGIN
|
||
SELECT ins_deel_key
|
||
INTO v_ins_deel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_ins_deel_key:=-1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
'Objecten niet gevonden :'||rec.ins_deel_omschrijving,'');
|
||
END;
|
||
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM prs_afdeling a, prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr = rec.prs_afdeling_code
|
||
and a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
|
||
IF v_count=1
|
||
THEN
|
||
SELECT prs_afdeling_key
|
||
INTO v_prs_afdeling_key
|
||
FROM prs_afdeling a,
|
||
prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr = rec.prs_afdeling_code
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
ELSIF v_count>1
|
||
THEN
|
||
SELECT MIN(prs_afdeling_key)
|
||
INTO v_prs_afdeling_key
|
||
FROM prs_afdeling a,
|
||
prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr = rec.prs_afdeling_code
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND UPPER(a.prs_afdeling_omschrijving) NOT LIKE 'T-%' -- Pakken we de teamleiders afdeling
|
||
AND UPPER(a.prs_afdeling_omschrijving) NOT LIKE 'STAGIARE%' -- Pakken we de teamleiders afdeling
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
ELSE
|
||
|
||
v_prs_afdeling_key:=-1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Afdeling niet gevonden :'||rec.prs_afdeling_code||' voor object :'||rec.ins_deel_omschrijving,'');
|
||
END IF;
|
||
|
||
|
||
IF v_ins_deel_key>0 AND v_prs_afdeling_key>0
|
||
THEN
|
||
UPDATE ins_deel
|
||
SET ins_alg_ruimte_key=v_prs_afdeling_key,
|
||
ins_alg_ruimte_type='A'
|
||
WHERE ins_deel_key=v_ins_deel_key;
|
||
END IF;
|
||
|
||
|
||
END LOOP;
|
||
|
||
|
||
-- Taken aanmaken voor assets
|
||
v_error:=0;
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO v_ctr_discipline_key
|
||
FROM ctr_discipline
|
||
WHERE ins_discipline_omschrijving='TD-Onderhoud';
|
||
|
||
ExCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_error:=1;
|
||
END;
|
||
|
||
IF v_error=0 THEN
|
||
v_ctr_omschrijving :='Onderhoud';
|
||
v_ctr_periode:=1;
|
||
v_ctr_eenheid:=4;
|
||
v_ctr_mode:=1;
|
||
|
||
FOR rec_ctr IN sel_ctr
|
||
LOOP
|
||
v_aanduiding :='AANMAKEN TAKEN: Verwerken fouut in fac_imp_csv_key '||rec_ctr.regel_key;
|
||
BEGIN
|
||
v_error:=0;
|
||
SELECT ins_srtdeel_key, ins_deel_key
|
||
INTo v_ins_srtdeel_key, v_ins_deel_key
|
||
FROm ins_v_deel_gegevens
|
||
where ins_srtdeel_upper=UPPER(rec_ctr.ins_srtdeel_omschrijving)
|
||
AND UPPER(ins_discipline_omschrijving)=UPPER('Technische Dienst')
|
||
AND ins_deel_omschrijving=rec_ctr.ins_deel_omschrijving;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_error:=1;
|
||
END;
|
||
|
||
IF v_error=0
|
||
THEN
|
||
BEGIN
|
||
SELECT MIN(ins_srtcontrole_key)
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtinstallatie_key=v_ins_srtdeel_key
|
||
AND ins_srtcontrole_niveau='S'
|
||
AND UPPER(ins_srtcontrole_omschrijving) like UPPER('Onderhoud')
|
||
GROUP BY ins_srtcontrole_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtcontrole (INS_SRTINSTALLATIE_KEY,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_srtcontrole_info,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_bits,
|
||
ins_srtcontrole_mode,
|
||
ins_srtcontrole_level)
|
||
VALUES (v_ins_srtdeel_key,
|
||
'S',
|
||
'Onderhoud',
|
||
v_ctr_discipline_key,
|
||
'TD Onderhoud',
|
||
1,
|
||
4,
|
||
NULL,
|
||
1,
|
||
10)
|
||
RETURN ins_srtcontrole_key
|
||
INTO v_srtcontrole_key;
|
||
|
||
END ;
|
||
|
||
-- gaan we nu de geplande dtum bepalen
|
||
--
|
||
IF rec_ctr.ctr_datum_next IS NULL
|
||
THEN
|
||
v_ctr_onderhoud_datum := TO_DATE(rec_ctr.ctr_datum_last,'DD-MM-YYYY');
|
||
ELSE
|
||
v_ctr_onderhoud_datum := TO_DATE(rec_ctr.ctr_datum_next,'DD-MM-YYYY');
|
||
END IF;
|
||
|
||
IF v_ctr_onderhoud_datum < TO_DATE('10-2025','MM-YYYY')
|
||
THEN
|
||
|
||
IF TO_CHAR(v_ctr_onderhoud_datum,'MM')='11' OR TO_CHAR(v_ctr_onderhoud_datum,'MM')='12'
|
||
THEN
|
||
v_jaren := 2025-fac.safe_to_number(TO_CHAR(v_ctr_onderhoud_datum,'YYYY'));
|
||
ELSE
|
||
v_jaren := 2025-fac.safe_to_number(TO_CHAR(v_ctr_onderhoud_datum,'YYYY'))+1;
|
||
END IF;
|
||
|
||
|
||
IF v_jaren>0 THEN
|
||
v_ctr_onderhoud_datum := ADD_MONTHS(v_ctr_onderhoud_datum,12*v_jaren);
|
||
END IF;
|
||
|
||
ELSIF v_ctr_onderhoud_datum = TO_DATE('10-2025','MM-YYYY')
|
||
THEN
|
||
v_ctr_onderhoud_datum := ADD_MONTHS(v_ctr_onderhoud_datum,1);
|
||
END IF;
|
||
|
||
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deel_key=v_ins_deel_key
|
||
AND ins_srtcontrole_key = v_srtcontrole_key
|
||
-- AND ins_deelsrtcontrole_plandatum = fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY')
|
||
AND ins_scenario_key=1;
|
||
|
||
IF v_count=0
|
||
THEN
|
||
INSERT INTO ins_deelsrtcontrole( ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_deelsrtcontrole_plandatum,
|
||
ins_deelsrtcontrole_status,
|
||
ins_scenario_key,
|
||
prs_perslid_key)
|
||
VALUES(v_ins_deel_key,
|
||
v_srtcontrole_key,
|
||
v_ctr_onderhoud_datum,
|
||
0, --status ingepland
|
||
1, -- sceario
|
||
3); -- Facilitor
|
||
v_counter:=v_counter+1;
|
||
|
||
ELSIF v_count=1
|
||
THEN
|
||
UPDATE ins_deelsrtcontrole
|
||
SET ins_deelsrtcontrole_plandatum= v_ctr_onderhoud_datum
|
||
WHERE ins_deel_key =v_ins_deel_key
|
||
AND ins_srtcontrole_key=v_srtcontrole_key;
|
||
v_counter_update:=v_counter_update+1;
|
||
END IF;
|
||
|
||
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,'W',
|
||
'Asset '||rec_ctr.ins_srtdeel_omschrijving||' niet kunnen achterhalen, taak aanmaken op datum '||TO_CHAR(v_ctr_onderhoud_datum,'DD-MM-YYYY')||' wordt overgeslagen',
|
||
'Taak overgeslagen');
|
||
END IF;
|
||
END LOOP;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Taak groep : TD-Onderhoud is niet bekend en aanmaken taken wordt dus overgeslagen','');
|
||
END IF;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Taak aanmaak : Er zijn '||v_counter||' taken aangemaakt','');
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Taak update : Er zijn '||v_counter_update ||' taken geupdate','');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg :=
|
||
v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Importproces TD assets afgebroken! ('||v_aanduiding||')',
|
||
v_errormsg);
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_IMPORT_MT_ASSETS(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_col01 ins_discipline,
|
||
COALESCE(fac_imp_csv_col04,'MIGRATIE') ins_groep,
|
||
COALESCE(fac_imp_csv_col05,'MIGRATIE') ins_srtdeel_code,
|
||
COALESCE(fac_imp_csv_col06,'MIGRATIE') ins_srtdeel_omschrijving,
|
||
fac_imp_csv_col07 ins_deel_opmerking,
|
||
fac_imp_csv_col08 ins_deel_omschrijving,
|
||
fac_imp_csv_col12 ins_kenm_aanschafprijs,
|
||
fac_imp_csv_col17 ins_kenm_ruimtenr,
|
||
fac_imp_csv_col18 ins_kenm_ruimtenaam,
|
||
fac_imp_csv_col24 ins_kenm_eigenaar,
|
||
fac_imp_csv_col25 ins_kenm_locatiecode,
|
||
fac_imp_csv_col26 ins_kenm_locatienaam,
|
||
fac_imp_csv_col27 ins_kenm_instaldatum,
|
||
fac_imp_csv_col28 ins_verval_datum,
|
||
fac_imp_csv_col33 ins_kenm_model,
|
||
fac_imp_csv_col34 ins_kenm_type,
|
||
fac_imp_csv_col35 ins_kenm_serienr,
|
||
fac_imp_csv_col36 ins_kenm_bouwjaar,
|
||
fac_imp_csv_col38 ins_kenm_leverancier,
|
||
fac_imp_csv_col40 ins_kenm_service_leverancier,
|
||
fac_imp_csv_col42 ins_kenm_fabrikant,
|
||
fac_imp_csv_col43 ins_kenm_mdd_clas,
|
||
fac_imp_csv_col44 ins_kenm_udi,
|
||
fac_imp_csv_col46 ins_kenm_garantie,
|
||
fac_imp_csv_col48 ins_onderhoud_datum,
|
||
fac_imp_csv_col50 ins_kenm_status,
|
||
fac_imp_csv_col57 ins_kenm_ordernummer
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
|
||
v_count NUMBER;
|
||
v_locatie_code VARCHAR2(10);
|
||
v_gebouw_code VARCHAR2(10);
|
||
v_verdieping_nr VARCHAR2(10);
|
||
v_ruimte_nr VARCHAR2(25);
|
||
v_huidige_locatie VARCHAR2(100);
|
||
v_huidige_fys_locatie VARCHAR2(100);
|
||
v_installdatum DATE;
|
||
v_vervaldatum DATE;
|
||
v_klantstatus VARCHAR2(100);
|
||
BEGIN
|
||
|
||
fac_import_file2csv(p_import_key);
|
||
|
||
v_locatie_code:='FZKH';
|
||
v_gebouw_code:='FZKH';
|
||
v_verdieping_nr:='0';
|
||
v_ruimte_nr := '_MT_MIGRATIE';
|
||
|
||
DELETE FROM fac_imp_ins;
|
||
COMMIT;
|
||
|
||
FOR rec in sel
|
||
LOOP
|
||
IF UPPER(rec.ins_discipline) <>'VAKGROEP'
|
||
THEN
|
||
v_huidige_locatie:='';
|
||
IF rec.ins_kenm_locatiecode IS NOT NULL
|
||
THEN
|
||
v_huidige_locatie:=rec.ins_kenm_locatiecode||'-'||rec.ins_kenm_locatienaam;
|
||
ELSE
|
||
v_huidige_locatie:='';
|
||
END IF;
|
||
IF rec.ins_kenm_ruimtenr IS NOT NULL
|
||
THEN
|
||
v_huidige_fys_locatie:=rec.ins_kenm_ruimtenr||'-'||rec.ins_kenm_ruimtenaam;
|
||
ELSE
|
||
v_huidige_fys_locatie:='';
|
||
END IF;
|
||
|
||
IF LENGTH(rec.ins_kenm_instaldatum)>1
|
||
THEN
|
||
v_installdatum := fac.safe_to_date(rec.ins_kenm_instaldatum,'DD-MM-YYYY');
|
||
ELSE
|
||
v_installdatum:=TRUNC(SYSDATE);
|
||
END IF;
|
||
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
|
||
IF UPPER(rec.ins_kenm_status)='AF TE VOEREN'
|
||
THEN
|
||
IF INSTR(rec.ins_verval_datum,' ')>0
|
||
THEN
|
||
v_vervaldatum:= fac.safe_to_date(SUBSTR(rec.ins_verval_datum,1,INSTR(rec.ins_verval_datum,' ')),'DD-MM-YYYY');
|
||
ELSE
|
||
v_vervaldatum:= fac.safe_to_date(rec.ins_verval_datum,'DD-MM-YYYY');
|
||
END IF;
|
||
ELSE
|
||
v_vervaldatum:=NULL;
|
||
END IF;
|
||
|
||
SELECT DECODE (rec.ins_kenm_status,'Actief','Actief','Vermist','Vermist','')
|
||
INTO v_klantstatus
|
||
FROM dual;
|
||
|
||
|
||
IF v_count=0 THEN
|
||
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_deel_aantal,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11,
|
||
ins_kenmerkwaarde12,
|
||
ins_kenmerkwaarde13,
|
||
ins_kenmerkwaarde14,
|
||
ins_kenmerkwaarde15,
|
||
ins_kenmerkwaarde16,
|
||
ins_kenmerkwaarde17,
|
||
ins_kenmerkwaarde18,
|
||
ins_kenmerkwaarde19
|
||
)
|
||
VALUES (rec.ins_discipline,
|
||
rec.ins_groep,
|
||
SUBSTR(rec.ins_srtdeel_code,1,8),
|
||
rec.ins_srtdeel_omschrijving,
|
||
rec.ins_deel_omschrijving,
|
||
rec.ins_deel_opmerking,
|
||
v_installdatum,
|
||
v_vervaldatum,
|
||
v_locatie_code,
|
||
v_gebouw_code,
|
||
v_verdieping_nr,
|
||
v_ruimte_nr,
|
||
1,
|
||
'Locatie|0='||v_huidige_locatie,
|
||
'Model|0='||rec.ins_kenm_model,
|
||
'TypeNr|0='||rec.ins_kenm_type,
|
||
'Serienummer|0='||rec.ins_kenm_serienr,
|
||
'Bouwjaar|0='||rec.ins_kenm_bouwjaar,
|
||
'Leverancier|0='||rec.ins_kenm_leverancier,
|
||
'ServiceLeverancier|0='||rec.ins_kenm_service_leverancier,
|
||
'Fabrikant|0='||rec.ins_kenm_fabrikant,
|
||
'MDD-Classificatie|0='||TRIM(rec.ins_kenm_mdd_clas),
|
||
'Einde Garantie|0='||rec.ins_kenm_garantie,
|
||
'Status|0='||rec.ins_kenm_status,
|
||
'Aanschafprijs|0='||TRIM(rec.ins_kenm_aanschafprijs),
|
||
'Installatie datum|0='||rec.ins_kenm_instaldatum,
|
||
'Onderhouddatum|0='||rec.ins_onderhoud_datum,
|
||
'Klantstatus|0='||v_klantstatus,
|
||
'Afvoer datum|0='||v_vervaldatum,
|
||
'Fysieke Locatie|0='||v_huidige_fys_locatie,
|
||
'UDI|0='||rec.ins_kenm_udi,
|
||
'Ordernummer|0='||rec.ins_kenm_ordernummer
|
||
);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Object : '||rec.ins_deel_omschrijving || ' is al bekend en wordt dus overgeslagen','');
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_MT_ASSETS(p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR sel
|
||
IS
|
||
SELECT fac_imp_csv_col08 ins_deel_omschrijving,
|
||
fac_imp_csv_col24 prs_afdeling_code
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
|
||
|
||
|
||
CURSOR sel_controle
|
||
IS
|
||
SELECT fac_imp_csv_col08 ins_deel_omschrijving,
|
||
fac_imp_csv_col48 ctr_onderhoud_datum
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
AND fac_imp_csv_col45='ONWAAR'
|
||
AND fac_imp_csv_col48 IS NOT NULL
|
||
AND fac_imp_csv_col50='Actief'
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
CURSOR sel_controle_skip(p_ins_srtdeel_key IN NUMBER, p_ins_srtcontrole_key IN NUMBER)
|
||
IS
|
||
SELECT ins_srtcontrole_key
|
||
from ins_srtcontrole isc
|
||
WHERE isc.ins_srtinstallatie_key=p_ins_srtdeel_key
|
||
AND isc.ins_srtcontrole_key <> p_ins_srtcontrole_key;
|
||
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
|
||
v_ins_deel_key NUMBER;
|
||
v_prs_afdeling_key NUMBER;
|
||
v_ins_srtdeel_key NUMBER;
|
||
v_srtcontrole_key NUMBER;
|
||
v_count NUMBER;
|
||
v_counter NUMBER;
|
||
v_ins_deelsrtcontrole_key NUMBER;
|
||
|
||
v_maand VARChar2(15);
|
||
|
||
BEGIN
|
||
fac_update_ins(p_import_key);
|
||
|
||
-- Gaan we nu die MT objecten die een verval datum hebben (status : Af te voeren') op inactief zetten ins_deel_actief=0
|
||
-- FIP sheet ondersteund geen ins_deel_inactief
|
||
UPDATE ins_deel i
|
||
SET i.ins_deel_actief = 0
|
||
WHERE ins_deel_key IN
|
||
(SELECT i.ins_deel_key
|
||
from INS_V_DEEL_GEGEVENS i, ins_deel id, ins_kenmerkdeel ikd
|
||
WHERE UPPER (i.INS_DISCIPLINE_OMSCHRIJVING) =
|
||
UPPER ('Medische Techniek')
|
||
AND id.INS_DEEL_KEY = i.INS_DEEL_KEY
|
||
AND id.ins_deel_vervaldatum IS NOT NULL
|
||
AND id.ins_deel_vervaldatum < TRUNC(SYSDATE)
|
||
AND id.ins_deel_actief=1
|
||
AND ikd.INS_DEEL_KEY = i.INS_DEEL_KEY
|
||
AND fac.safe_to_number(ikd.INS_KENMERKDEEL_WAARDE)=191); -- Af te voeren
|
||
|
||
|
||
|
||
|
||
v_counter:=0;
|
||
-- Gaan we nu de objecten aan de juiste afdeling koppelen
|
||
FOR rec IN sel
|
||
LOOP
|
||
BEGIN
|
||
SELECT ins_deel_key
|
||
INTO v_ins_deel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_ins_deel_key:=-1;
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
'Objecten niet gevonden :'||rec.ins_deel_omschrijving,'');
|
||
END;
|
||
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM prs_afdeling a, prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr = rec.prs_afdeling_code
|
||
and a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
|
||
IF v_count=1
|
||
THEN
|
||
SELECT prs_afdeling_key
|
||
INTO v_prs_afdeling_key
|
||
FROM prs_afdeling a,
|
||
prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr = rec.prs_afdeling_code
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
ELSIF v_count>1
|
||
THEN
|
||
SELECT MIN(prs_afdeling_key)
|
||
INTO v_prs_afdeling_key
|
||
FROM prs_afdeling a,
|
||
prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr = rec.prs_afdeling_code
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND UPPER(a.prs_afdeling_omschrijving) NOT LIKE 'T-%' -- Pakken we de teamleiders afdeling
|
||
AND UPPER(a.prs_afdeling_omschrijving) NOT LIKE 'STAGIARE%' -- Pakken we de teamleiders afdeling
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
ELSE
|
||
|
||
v_prs_afdeling_key:=-1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Afdeling niet gevonden :'||rec.prs_afdeling_code||' voor object :'||rec.ins_deel_omschrijving,'');
|
||
END IF;
|
||
|
||
|
||
IF v_ins_deel_key>0 AND v_prs_afdeling_key>0
|
||
THEN
|
||
UPDATE ins_deel
|
||
SET ins_alg_ruimte_key=v_prs_afdeling_key,
|
||
ins_alg_ruimte_type='A'
|
||
WHERE ins_deel_key=v_ins_deel_key;
|
||
END IF;
|
||
|
||
|
||
END LOOP;
|
||
|
||
-- gaan we nu de periodiek taken maken en aan de xcp records met de juiste taak start datum
|
||
v_counter:=0;
|
||
FOR c IN sel_controle
|
||
LOOP
|
||
v_counter:=v_counter+1;
|
||
-- Welk maand met het onderhoud plaats vinden
|
||
SELECT CASE TO_CHAR(TO_DATE(c.ctr_onderhoud_datum,'DD-MM-YYYY'),'MM')
|
||
WHEN '01' THEN 'Januari'
|
||
WHEN '02' THEN 'Februari'
|
||
WHEN '03' THEN 'Maart'
|
||
WHEN '04' THEN 'April'
|
||
WHEN '05' THEN 'Mei'
|
||
WHEN '06' THEN 'Juni'
|
||
WHEN '07' THEN 'Juli'
|
||
WHEN '08' THEN 'Augustus'
|
||
WHEN '09' THEN 'September'
|
||
WHEN '10' THEN 'Oktober'
|
||
WHEN '11' THEN 'November'
|
||
WHEN '12' THEN 'December'
|
||
ELSE 'ONBEKEND'
|
||
END
|
||
INTO v_maand
|
||
FROM DUAL;
|
||
|
||
BEGIN
|
||
v_aanduiding := 'Ophalen van srtcontrole voor object '|| c.ins_deel_omschrijving||' in '||v_maand||' gaat fout. - '||v_counter;
|
||
SELECT MIN(isc.ins_srtcontrole_key),
|
||
i.ins_deel_key,
|
||
i.ins_srtdeel_key
|
||
INTO v_srtcontrole_key,
|
||
v_ins_deel_key,
|
||
v_ins_srtdeel_key
|
||
FROM ins_srtcontrole isc,
|
||
ins_deel i,
|
||
ins_srtdeel isd,
|
||
ins_srtgroep isg,
|
||
ins_discipline id
|
||
WHERE i.ins_deel_omschrijving=c.ins_deel_omschrijving
|
||
AND isd.ins_srtdeel_key=i.INS_SRTDEEL_KEY
|
||
AND isg.ins_srtgroep_key = isd.ins_srtgroep_key
|
||
AND id.ins_discipline_key=isg.ins_discipline_key
|
||
AND UPPER(id.ins_discipline_omschrijving)=UPPER('Medische Techniek')
|
||
AND isc.ins_srtinstallatie_key=i.ins_srtdeel_key
|
||
AND UPPER(isc.ins_srtcontrole_omschrijving) like UPPER('Onderhoud %'||v_maand||'%')
|
||
GROUP BY i.ins_deel_key,i.ins_srtdeel_key;
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
v_aanduiding := 'Ophalen van srtcontrole voor object '|| c.ins_deel_omschrijving||' gaat fout. - '||v_counter;
|
||
SELECT MIN(isc.ins_srtcontrole_key),
|
||
i.ins_deel_key,
|
||
i.ins_srtdeel_key
|
||
INTO v_srtcontrole_key,
|
||
v_ins_deel_key,
|
||
v_ins_srtdeel_key
|
||
from ins_srtcontrole isc,
|
||
ins_deel i,
|
||
ins_srtdeel isd,
|
||
ins_srtgroep isg,
|
||
ins_discipline id
|
||
WHERE i.ins_deel_omschrijving=c.ins_deel_omschrijving
|
||
AND isd.ins_srtdeel_key=i.INS_SRTDEEL_KEY
|
||
AND isg.ins_srtgroep_key = isd.ins_srtgroep_key
|
||
AND id.ins_discipline_key=isg.ins_discipline_key
|
||
AND UPPER(id.ins_discipline_omschrijving)=UPPER('Medische Techniek')
|
||
AND isc.ins_srtinstallatie_key=i.ins_srtdeel_key
|
||
AND UPPER(isc.ins_srtcontrole_omschrijving) like UPPER('Onderhoud %')
|
||
GROUP BY i.ins_deel_key,i.ins_srtdeel_key;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_srtcontrole_key:=-1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
'Taak niet toegevoegd');
|
||
END;
|
||
END;
|
||
v_aanduiding:='Uitzonderingstaak niet gevonden';
|
||
v_count:=0;
|
||
SELECT count(*)
|
||
INTO v_count
|
||
from ins_srtcontroledl_xcp isx
|
||
WHERE isx.ins_srtcontrole_key=v_srtcontrole_key
|
||
AND ins_deel_key=v_ins_deel_key;
|
||
|
||
IF v_count=0
|
||
THEN
|
||
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_startdat)
|
||
VALUES (v_ins_deel_key,
|
||
v_srtcontrole_key,
|
||
fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY'));
|
||
END IF;
|
||
|
||
|
||
-- Gaan we nu de srtcontrole die niet gelden voor dit asset een xcp record aanmaken met einddatum
|
||
FOR c2 IN sel_controle_skip(v_ins_srtdeel_key, v_srtcontrole_key)
|
||
LOOP
|
||
SELECT count(*)
|
||
INTO v_count
|
||
from ins_srtcontroledl_xcp isx
|
||
WHERE isx.ins_srtcontrole_key=c2.ins_srtcontrole_key
|
||
AND ins_deel_key=v_ins_deel_key;
|
||
|
||
IF v_count=0
|
||
THEN
|
||
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eind)
|
||
VALUES (v_ins_deel_key,
|
||
c2.ins_srtcontrole_key,
|
||
0,
|
||
fac.safe_to_date('31-12-2024','DD-MM-YYYY'));
|
||
END IF;
|
||
END LOOP;
|
||
|
||
|
||
|
||
-- gaan we hem ook gelijk inplannen
|
||
IF v_ins_deel_key>0 AND v_srtcontrole_key>0
|
||
THEN
|
||
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deel_key=v_ins_deel_key
|
||
AND ins_srtcontrole_key = v_srtcontrole_key
|
||
AND ins_deelsrtcontrole_plandatum = fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY')
|
||
AND ins_scenario_key=1;
|
||
|
||
IF v_count=0
|
||
THEN
|
||
INSERT INTO ins_deelsrtcontrole( ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_deelsrtcontrole_plandatum,
|
||
ins_deelsrtcontrole_status,
|
||
ins_scenario_key,
|
||
prs_perslid_key)
|
||
VALUES(v_ins_deel_key,
|
||
v_srtcontrole_key,
|
||
fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY'),
|
||
0, --status ingepland
|
||
1, -- sceario
|
||
3); -- Facilitor
|
||
ELSIF v_count=1
|
||
THEN
|
||
UPDATE ins_deelsrtcontrole
|
||
SET ins_deelsrtcontrole_plandatum= fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY')
|
||
WHERE ins_deel_key =v_ins_deel_key
|
||
AND ins_srtcontrole_key=v_srtcontrole_key;
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
|
||
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg :=
|
||
v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Importproces MT assets afgebroken! ('||v_counter||')',
|
||
v_errormsg);
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_INSERT_ULTIMO_ASSETPIC(p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_ULTIMO_ASSETPIC(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT fac_imp_csv_key csv_key,
|
||
fac_imp_csv_col01 ultimoNr,
|
||
fac_imp_csv_col02 ultimo_omschrijving,
|
||
fac_imp_csv_col03 file_path1,
|
||
fac_imp_csv_col04 file_path2,
|
||
fac_imp_csv_col05 file_path3,
|
||
fac_imp_csv_col06 file_path4
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
AND UPPER(fac_imp_csv_col01) <> UPPER('instrumentnummer')
|
||
AND fac_imp_csv_col03 <>'NULL';
|
||
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
|
||
v_code VARCHAR2(10);
|
||
v_image VARCHAR(255);
|
||
v_ultimonr VARCHAR2(10);
|
||
v_count NUMBER:=0;
|
||
V_total_count NUMBER:=0;
|
||
BEGIN
|
||
|
||
|
||
SELECT COUNT(*)
|
||
INTO V_total_count
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
AND UPPER(fac_imp_csv_col01) <> UPPER('instrumentnummer')
|
||
AND fac_imp_csv_col03 <>'NULL';
|
||
|
||
FOR rec in c1
|
||
LOOP
|
||
IF LENGTH(rec.ultimonr)<>6
|
||
THEN
|
||
v_ultimoNr:=LPAD(rec.ultimonr,'0');
|
||
ELSE
|
||
v_ultimonr:=rec.ultimonr;
|
||
END IF;
|
||
v_image := SUBSTR(rec.file_path1, INSTR(rec.file_path1,'\',1,3)+1);
|
||
UPDATE ins_deel i
|
||
SET i.ins_deel_image = v_image
|
||
WHERE ins_deel_omschrijving=v_ultimonr;
|
||
v_count:=v_count+1;
|
||
END LOOP;
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Afbeeldingen ingelezen :'||v_total_count||' waarvan er '||v_count||' zijn verwerkt.',
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_INSERT_ULTIMO_BIJLAGES(p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_UPDATE_ULTIMO_BIJLAGES(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT fac_imp_csv_key csv_key,
|
||
fac_imp_csv_col03 classificatie
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key
|
||
AND fac_imp_csv_col01<>'instrumentnummer';
|
||
|
||
|
||
v_code VARCHAR2(10);
|
||
BEGIN
|
||
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
|
||
SELECT MIN(f.FAC_USRDATA_OMSCHR) code
|
||
INTO v_code
|
||
FROM FAC_USRDATA f, FAC_USRTAB fut
|
||
WHERE fut.FAC_USRTAB_NAAM= 'BIJLAGE_MIGRATIE'
|
||
AND f.FAC_USRTAB_KEY = fut.FAC_USRTAB_KEY
|
||
AND LOWER(rec.classificatie) LIKE '%'||LOWER(f.FAC_USRDATA_code)||'%';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_code:='OVER';
|
||
END;
|
||
UPDATE fac_imp_csv SET fac_imp_csv_col06=v_code WHERE fac_imp_csv_key=rec.csv_key;
|
||
|
||
END LOOP;
|
||
COMMIT;
|
||
END;
|
||
/
|
||
-- RAPORTAGE VIEWS
|
||
|
||
-- MT : RAPPORT TBV PROEFPLAATSINGEN
|
||
|
||
|
||
|
||
|
||
|
||
-- EINDE RAPPORTAGE VIEWS
|
||
|
||
-- Domeinveld MT assets
|
||
CREATE OR REPLACE VIEW FZKH_V_MT_ASSETS
|
||
(
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_srtdeel,
|
||
ins_deel_status
|
||
)
|
||
AS
|
||
SELECT i.ins_deel_key, iv.ins_deel_omschrijving, iv.ins_srtdeel_omschrijving, i.ins_deel_actief
|
||
FROM ins_v_deel_gegevens iv , ins_deel i, ins_kenmerkdeel ikd, ins_kenmerk ik
|
||
WHERE UPPER(iv.ins_discipline_omschrijving)=UPPER('Medische Techniek')
|
||
AND i.ins_deel_key = iv.ins_deel_key
|
||
AND ( i.ins_deel_vervaldatum IS NULL
|
||
OR i.ins_deel_vervaldatum > SYSDATE)
|
||
AND ikd.ins_deel_key = i.ins_deel_key
|
||
AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
|
||
AND ik.ins_kenmerk_code='ASSET_CUSTSTATUS'
|
||
AND ikd.ins_kenmerkdeel_waarde=882; -- IN ONDERHOUD
|
||
|
||
-- Domeinveld MT ruimktes
|
||
CREATE OR REPLACE VIEW FZKH_V_MT_RUIMTES
|
||
(
|
||
alg_ruimte_key,
|
||
alg_ruimte_tekst
|
||
)
|
||
AS
|
||
SELECT alg_ruimte_key,
|
||
CONCAT(CONCAT(alg_ruimte_nr,' - '),alg_ruimte_omschrijving) alg_ruimte_tekst
|
||
FROM alg_v_ruimte_gegevens;
|
||
|
||
|
||
-- Domeinveld Alle MT-Teamleiders
|
||
CREATE OR REPLACE VIEW FZKH_V_MT_TEAMLEIDERS
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, pf.prs_perslid_verwijder
|
||
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE gg.fac_groep_key = 661 -- Alle MT-Teamleiders A=661 P=601
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL -- Personen behouden als ooit gebruikt!
|
||
SELECT DISTINCT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, TRUNC (SYSDATE, 'yyyy')
|
||
FROM fac_kenmerkdomein kd, mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km, prs_v_perslid_fullnames_all pf
|
||
WHERE UPPER (kd.fac_kenmerkdomein_objectnaam) = 'FZKH_V_MT_TEAMLEIDERS'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 661 -- Alle MT-Teamleiders A=661 P=601
|
||
AND prs_perslid_key = pf.prs_perslid_key);
|
||
|
||
-- Domeinveld Alle Teamleiders in FZKH
|
||
CREATE OR REPLACE VIEW FZKH_V_TEAMLEIDERS_ALL
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_afdeling_naam,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full, a.prs_afdeling_omschrijving, pf.prs_perslid_verwijder
|
||
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a
|
||
WHERE gg.fac_groep_key = 701 -- Alle MT-Teamleiders A=701 P=
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
UNION ALL -- Personen behouden als ooit gebruikt!
|
||
SELECT DISTINCT pf.prs_perslid_key, pf.prs_perslid_naam_full, a.prs_afdeling_omschrijving , TRUNC (SYSDATE, 'yyyy')
|
||
FROM fac_kenmerkdomein kd, mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km, prs_v_perslid_fullnames_all pf, prs_perslid p,prs_afdeling a
|
||
WHERE UPPER (kd.fac_kenmerkdomein_objectnaam) = 'FZKH_V_TEAMLEIDERS_ALL'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
AND pf.prs_perslid_key=p.prs_perslid_key
|
||
AND P.prs_afdeling_key = a.prs_afdeling_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 701 -- Alle MT-Teamleiders A=661 P=601
|
||
AND prs_perslid_key = pf.prs_perslid_key);
|
||
|
||
|
||
-- Domeinveld Medewerkers
|
||
CREATE OR REPLACE VIEW FZKH_V_MEDEWERKERS
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, pf.prs_perslid_verwijder
|
||
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL -- Via SCIM
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- Domeinveld Hoofden (ICT)
|
||
CREATE OR REPLACE VIEW FZKH_V_HOOFDEN_ICT
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, pf.prs_perslid_verwijder
|
||
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE gg.fac_groep_key = 101 -- Hoofden (ICT)
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL -- Personen behouden als ooit gebruikt!
|
||
SELECT DISTINCT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, TRUNC (SYSDATE, 'yyyy')
|
||
FROM fac_kenmerkdomein kd, mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km, prs_v_perslid_fullnames_all pf
|
||
WHERE UPPER (kd.fac_kenmerkdomein_objectnaam) = 'FZKH_V_HOOFDEN_ICT'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 101 -- Hoofden (ICT)
|
||
AND prs_perslid_key = pf.prs_perslid_key);
|
||
|
||
-- Domeinveld Architecten (ICT)
|
||
CREATE OR REPLACE VIEW FZKH_V_ARCHITECTEN_ICT
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, pf.prs_perslid_verwijder
|
||
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE gg.fac_groep_key = 102 -- Architecten (ICT)
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL -- Personen behouden als ooit gebruikt!
|
||
SELECT DISTINCT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, TRUNC (SYSDATE, 'yyyy')
|
||
FROM fac_kenmerkdomein kd, mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km, prs_v_perslid_fullnames_all pf
|
||
WHERE UPPER (kd.fac_kenmerkdomein_objectnaam) = 'FZKH_V_ARCHITECTEN_ICT'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 102 -- Architecten (ICT)
|
||
AND prs_perslid_key = pf.prs_perslid_key);
|
||
|
||
-- Domeinveld Teamleiders (ICT)
|
||
CREATE OR REPLACE VIEW FZKH_V_TEAMLEIDERS_ICT
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, pf.prs_perslid_verwijder
|
||
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE gg.fac_groep_key = 103 -- Teamleiders (ICT)
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL -- Personen behouden als ooit gebruikt!
|
||
SELECT DISTINCT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, TRUNC (SYSDATE, 'yyyy')
|
||
FROM fac_kenmerkdomein kd, mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km, prs_v_perslid_fullnames_all pf
|
||
WHERE UPPER (kd.fac_kenmerkdomein_objectnaam) = 'FZKH_V_TEAMLEIDERS_ICT'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 103 -- Teamleiders (ICT)
|
||
AND prs_perslid_key = pf.prs_perslid_key);
|
||
|
||
-- Domeinveld Alle ICT-ers
|
||
CREATE OR REPLACE VIEW FZKH_V_ICT_ALL
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, pf.prs_perslid_verwijder
|
||
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE gg.fac_groep_key = 104 -- Alle ICT-ers
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_apikey IS NULL
|
||
AND p.prs_perslid_externid IS NOT NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL -- Personen behouden als ooit gebruikt!
|
||
SELECT DISTINCT pf.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, TRUNC (SYSDATE, 'yyyy')
|
||
FROM fac_kenmerkdomein kd, mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km, prs_v_perslid_fullnames_all pf
|
||
WHERE UPPER (kd.fac_kenmerkdomein_objectnaam) = 'FZKH_V_ICT_ALL'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 104 -- Alle ICT-ers
|
||
AND prs_perslid_key = pf.prs_perslid_key);
|
||
|
||
-- ICT-notificaties (CUST01 t/m CUST08) op basis van kenmerkvelden!
|
||
--481 Wijziging Business Analisten Request for analyse 4 uren 2 dagen Algemeen
|
||
--482 Wijziging Architecten Request for change 4 uren 2 dagen Algemeen
|
||
--483 Wijziging Standaard wijziging Standaard wijziging 4 uren 2 dagen Standaard wijziging
|
||
--484 Wijziging Repeating change Repeating change 4 uren 2 dagen Repeating change
|
||
--485 Wijziging Emergency change Emergency change 4 uren 2 dagen Emergency change
|
||
--486 Wijziging Configuratie change Configuratie change (algemeen) 4 uren 2 dagen Configuratie change
|
||
--487 Wijziging Configuratie change Configuratie change HiX 4 uren 2 dagen Configuratie change
|
||
--462 Project Project Aanhaken bestaand project 4 uren 2 dagen Project
|
||
--461 Project Project Project 4 uren 2 dagen Project
|
||
--101 Service Request HiX Autorisaties 4 uren 2 dagen HiX
|
||
--105 Service Request HiX Tijdelijke rechten HiX 4 uren 2 dagen HiX
|
||
CREATE OR REPLACE VIEW FZKH_V_NOTI_ICT_APPR
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
fac_srtnotificatie_key,
|
||
attachments,
|
||
xsender,
|
||
prs_bedrijfadres_key
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (483, 484, 485) -- Standaard wijziging/Repeating change/Emergency change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (391, 511, 611) -- Goedkeuring intake (hoofd of teamleider)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
ud.fac_usrdata_omschr2 xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
fac_v_aanwezigusrdata ud,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (483, 485) -- Standaard wijziging/Emergency change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (444, 664) -- Goedkeuring analyse (architecten)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key = 484 -- Repeating change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (564) -- Goedkeuring analyse (teamleider)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (483, 484, 485) -- Standaard wijziging/Repeating change/Emergency change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (452, 570, 672) -- Goedkeuring (teamleider)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST03'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (483, 484, 485) -- Standaard wijziging/Repeating change/Emergency change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (464, 582, 684) -- Buddy check door (Alle ICT-ers)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST04'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (486, 487) -- Configuratie change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (707, 727) -- Teamleider akkoord
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST05'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
ud.fac_usrdata_omschr2 xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
fac_v_aanwezigusrdata ud,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (486, 487) -- Configuratie change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key = 729 -- Autorisatiecommissie akkoord benodigd
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST06'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
ud.fac_usrdata_omschr2 xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
fac_v_aanwezigusrdata ud,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (461, 462) -- Project/Aanhaken bestaand project
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (329, 354) -- Goedkeuring (architecten)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST07'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
--mld_v_aanwezigkenmerk k,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key IN (101, 105, 481, 482) -- Request for analyse/Request for change/HiX-Autorisaties/HiX-Tijdelijke rechten
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key IN (164, 170, 744, 754) -- Akkoord leidinggevende
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST08'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_ICT_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
;
|
||
|
||
-- Notificaties MT
|
||
-- CUST09 naar teameldier afdeling bij afmelding acceptatie
|
||
-- CUST11 naar MT Teamleider die NOn-Conform moet goedkeuren,
|
||
-- CUST12 naar Teamledier die Non-Conform moet goedkeuren
|
||
|
||
CREATE OR REPLACE VIEW FZKH_V_NOTI_MT
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
fac_srtnotificatie_key,
|
||
attachments,
|
||
xsender,
|
||
prs_bedrijfadres_key
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code code,
|
||
NULL sender,
|
||
NULL receiver,
|
||
'Asset '||iv.ins_deel_omschrijving||' ('||iv.ins_deel_opmerking||') is vrijgegeven' text,
|
||
m.mld_melding_key key,
|
||
NULL par1,
|
||
NULL par2,
|
||
iv.ins_deel_key xkey,
|
||
(SELECT (MAX(p.prs_perslid_email)||';medischetechniek@flevoziekenhuis.nl')
|
||
FROM prs_perslid p, prs_afdeling pa
|
||
WHERE UPPER(pa.prs_afdeling_omschrijving) = UPPER('T-' || COALESCE (iv.prs_afdeling_omschrijving, iv.alg_ruimte_nr))
|
||
AND p.prs_afdeling_key = pa.prs_afdeling_key
|
||
AND pa.prs_afdeling_verwijder IS NULL
|
||
AND p.prs_perslid_verwijder IS NULL) xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
fac_tracking ft,
|
||
mld_melding_object mmo,
|
||
ins_v_deel_gegevens iv,
|
||
fac_srtnotificatie sn,
|
||
FAC_NOTIFICATIE_JOB fnj
|
||
WHERE m.mld_stdmelding_key=501 --- A=501
|
||
AND m.mld_melding_status=5
|
||
AND mmo.mld_melding_key=m.mld_melding_key
|
||
AND iv.ins_deel_key = mmo.ins_deel_key
|
||
AND ft.fac_tracking_refkey=m.mld_melding_key
|
||
AND ft.fac_srtnotificatie_key=47
|
||
AND sn.fac_srtnotificatie_code = 'CUST09'
|
||
AND fnj.FAC_NOTIFICATIE_JOB_VIEW='FZKH_V_NOTI_MT'
|
||
AND ft.FAC_TRACKING_DATUM> COALESCE (fnj.fac_notificatie_job_lastrun, TRUNC (SYSDATE));
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code code,
|
||
NULL sender,
|
||
NULL receiver,
|
||
'Graag uw goedkeuring op Non-Conform aanvraag.' text,
|
||
m.mld_melding_key key,
|
||
NULL par1,
|
||
NULL par2,
|
||
NULL xkey,
|
||
p.prs_perslid_email||';medischetechniek@flevoziekenhuis.nl' xemail,
|
||
NULL xmobile,
|
||
NULL fac_srtnotificatie_key,
|
||
NULL attachments,
|
||
NULL xsender,
|
||
NULL prs_bedrijfadres_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
mld_v_aanwezigkenmerkmelding km2,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_stdmelding_key = 503 -- Non_conform
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
--AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key IN (-1)
|
||
AND km.mld_kenmerk_key = 901 -- Akkoord ophalen kenmerk
|
||
AND fac.safe_to_number(km.mld_kenmerkmelding_waarde)=61
|
||
AND m.mld_melding_key = km2.mld_melding_key
|
||
AND km2.mld_kenmerk_key=921 -- MT Teamleider
|
||
AND fac.safe_to_number(km2.mld_kenmerkmelding_waarde)=p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST11'
|
||
AND nj.fac_notificatie_job_view = 'FZKH_V_NOTI_MT'
|
||
AND km.mld_kenmerkmelding_aanmaak > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE));
|
||
|
||
|
||
-- Object overzicjt per afdefling
|
||
-- Alleen actieve en niet vervallen objecten.
|
||
CREATE OR REPLACE VIEW FZKH_V_MT_OBJECT_AFDELING
|
||
(
|
||
fclt_3d_afdeling_key,
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_serienummer,
|
||
ins_deel_opmerking,
|
||
prs_afdeling_omschrijving,
|
||
ins_srt_controle,
|
||
volgende_datum_onderhoud,
|
||
installatie_datum,
|
||
ins_deel_image
|
||
)
|
||
AS
|
||
SELECT pa.prs_afdeling_key,
|
||
iv.ins_deel_key,
|
||
iv.ins_deel_omschrijving,
|
||
(SELECT ikd.ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel ikd, ins_kenmerk ik
|
||
WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key
|
||
AND ikd.ins_deel_key=iv.ins_deel_key
|
||
AND ik.ins_kenmerk_verwijder IS NULL
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND ik.ins_kenmerk_code='SERIENUMMER') serienummer,
|
||
iv.ins_deel_opmerking,
|
||
pa.prs_afdeling_omschrijving,
|
||
isc.ins_srtcontrole_omschrijving,
|
||
CASE WHEN ids.ins_deelsrtcontrole_plandatum=NULL
|
||
THEN
|
||
TO_CHAR(ins.nextcyclusdate(iv.ins_deel_key,isc.INS_SRTCONTROLE_key,1),'DD-MM-YYYY')
|
||
ELSE
|
||
TO_CHAR( ids.INS_DEELSRTCONTROLE_PLANDATUM,'DD-MM-YYYY')
|
||
END
|
||
volgende_datum_onderhoud,
|
||
(SELECT ikd.ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel ikd, ins_kenmerk ik
|
||
WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key
|
||
AND ikd.ins_deel_key=iv.ins_deel_key
|
||
AND ik.ins_kenmerk_verwijder IS NULL
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND ik.ins_kenmerk_code='INSTAL_DATUM') installate_datum,
|
||
i.ins_deel_image
|
||
FROM ins_v_deel_gegevens iv, ins_deel i, ins_deelsrtcontrole ids, ins_srtcontrole isc, prs_afdeling pa
|
||
WHERE UPPER (iv.ins_discipline_omschrijving) =
|
||
UPPER ('Medische Techniek')
|
||
AND iv.ins_deel_key=i.ins_deel_key
|
||
AND i.ins_deel_actief=1
|
||
AND (i.ins_deel_vervaldatum IS NULL OR i.ins_deel_vervaldatum>SYSDATE)
|
||
AND iv.ins_deel_key = ids.ins_deel_key(+)
|
||
AND isc.ins_srtcontrole_key(+) = ids.ins_srtcontrole_key
|
||
AND iv.prs_afdeling_key=pa.prs_afdeling_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW FZKH_V_MT_NEXT_OBJECTNR
|
||
(
|
||
ins_deel_omschrijving
|
||
)
|
||
AS
|
||
SELECT MAX(i.ins_deel_omschrijving)+1
|
||
FROM ins_v_deel_gegevens i
|
||
WHERE fac.safe_to_number(i.ins_deel_omschrijving) IS NOT NULL
|
||
AND SUBSTR(I.ins_deel_omschrijving,1,2)=TO_CHAR(SYSDATE,'YY')
|
||
AND i.ins_discipline_key IN (281, 641);
|
||
|
||
|
||
|
||
-- MT Manadleijks onderhgoud notificatie view initiele oppzet
|
||
CREATE OR REPLACE VIEW FZKH_V_MT_TAKEN_MAAND
|
||
(
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
eigenaar_soort,
|
||
extra_key,
|
||
locatie,
|
||
ins_srtcontrole,
|
||
status,
|
||
plandatum,
|
||
kleur,
|
||
serienummer,
|
||
email
|
||
)
|
||
AS
|
||
SELECT sel.*,
|
||
(SELECT ikd.INS_KENMERKDEEL_WAARDE
|
||
from INS_KENMERKDEEL ikd
|
||
where ikd.ins_deel_key=sel.ins_deel_key
|
||
AND ikd.ins_kenmerk_key=106
|
||
AND ikd.INS_KENMERKDEEL_VERWIJDER IS NULL) serienummer,
|
||
(SELECT COALESCE(MAX(p.prs_perslid_email),'medischetechniek@flevoziekenhuis.nl') email
|
||
FROM prs_perslid p, prs_afdeling pa
|
||
WHERE UPPER(pa.PRS_AFDELING_omschrijving) = UPPER('T-' || sel.locatie)
|
||
AND p.PRS_AFDELING_KEY = pa.PRS_AFDELING_KEY
|
||
AND pa.PRS_AFDELING_VERWIJDER IS NULL
|
||
AND p.PRS_PERSLID_VERWIJDER IS NULL) email
|
||
FROM (
|
||
-- lopende taken
|
||
SELECT iv.ins_deel_key,
|
||
iv.INS_DEEL_OMSCHRIJVING,
|
||
iv.INS_DEEL_OPMERKING,
|
||
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
|
||
eigenaar_soort,
|
||
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
|
||
eigenaar_key,
|
||
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
|
||
locatie,
|
||
isc.INS_SRTCONTROLE_OMSCHRIJVING,
|
||
'Verwacht'
|
||
status,
|
||
TO_CHAR(TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM),'DD-MM-YYYY')
|
||
plandatum,
|
||
'#000000' kleur
|
||
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
|
||
WHERE UPPER (iv.INS_DISCIPLINE_OMSCHRIJVING) =
|
||
UPPER ('Medische Techniek')
|
||
AND ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
|
||
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
|
||
AND TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) BETWEEN TRUNC(ADD_MONTHS(SYSDATE,1),'MM') AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,3)))
|
||
-- toekomsige taken zonder ins_deelsrtcontrole
|
||
UNION
|
||
SELECT iv.ins_deel_key,
|
||
iv.INS_DEEL_OMSCHRIJVING,
|
||
iv.INS_DEEL_OPMERKING,
|
||
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
|
||
eigenaar_soort,
|
||
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
|
||
eigenaar_key,
|
||
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
|
||
locatie,
|
||
isc.INS_SRTCONTROLE_OMSCHRIJVING,
|
||
'Verwacht'
|
||
status,
|
||
TO_CHAR(TRUNC(ins.nextcyclusdate(iv.ins_deel_key, isc.ins_srtcontrole_key, 1, 1), 'dd'),'DD-MM-YYYY')
|
||
plandatum,
|
||
'#000000' kleur
|
||
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
|
||
WHERE UPPER (iv.INS_DISCIPLINE_OMSCHRIJVING) =
|
||
UPPER ('Medische Techniek')
|
||
AND ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
|
||
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
|
||
AND TRUNC(ins.nextcyclusdate(iv.ins_deel_key, isc.ins_srtcontrole_key, 1, 1), 'dd') <= TRUNC(ADD_MONTHS(SYSDATE,3), 'dd')
|
||
AND (SELECT MAX(ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole idsc2
|
||
WHERE idsc2.ins_deel_key = iv.ins_deel_key
|
||
AND idsc2.ins_srtcontrole_key = ids.ins_srtcontrole_key
|
||
AND idsc2.ins_scenario_key = ids.ins_scenario_key
|
||
AND idsc2.ins_deelsrtcontrole_status != 6) IS NULL
|
||
-- ALl taken die al gestart en inbehandeling zijn
|
||
UNION
|
||
SELECT iv.ins_deel_key,
|
||
iv.INS_DEEL_OMSCHRIJVING,
|
||
iv.INS_DEEL_OPMERKING,
|
||
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
|
||
eigenaar_soort,
|
||
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
|
||
eigenaar_key,
|
||
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
|
||
locatie,
|
||
isc.INS_SRTCONTROLE_OMSCHRIJVING,
|
||
'In behandeling'
|
||
status,
|
||
TO_CHAR(TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM),'DD-MM-YYYY')
|
||
plandatum,
|
||
CASE WHEN TRUNC(SYSDATE)-TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM)>30
|
||
THEN
|
||
'#FF0000'
|
||
ELSE
|
||
'#000000'
|
||
END kleur
|
||
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
|
||
WHERE ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
|
||
AND TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) <= TRUNC (SYSDATE - 1)
|
||
AND ids.INS_DEELSRTCONTROLE_STATUS IN (0,1,2) -- Ingepland, gestart of ter uitvoering
|
||
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
|
||
AND (TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) BETWEEN TO_DATE('30-01-2024','DD-MM-YYYY') AND TRUNC(SYSDATE- 1))
|
||
) sel
|
||
WHERE sel.eigenaar_soort = 'Afdeling'
|
||
ORDER BY 5,9;
|
||
|
||
CREATE OR REPLACE VIEW FZKH_V_NOTI_MTTAKEN
|
||
(
|
||
xkey,
|
||
code,
|
||
sender,
|
||
receiver,
|
||
xemail,
|
||
xsender,
|
||
text,
|
||
key,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT distinct f.extra_key extra_key,
|
||
'CUST10',
|
||
NULL,
|
||
NULL,
|
||
-- f.email||';medischetechniek@flevoziekenhuis.nl' xemail, -- f.email
|
||
'medischetechniek@flevoziekenhuis.nl' xemail,
|
||
NULL xsender,
|
||
'Lijst met taken maand '||TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE,'MM'),1),'DD-MM-YYYY')||' voor afdeling '||f.locatie,
|
||
r.fac_usrrap_key,
|
||
NULL
|
||
FROM fzkh_v_MT_taken_maand f, fac_usrrap r
|
||
WHERE r.fac_usrrap_code='MT_TAKEN_RAPPORT';
|
||
|
||
CREATE OR REPLACE VIEW FZKH_V_MT_ACCEPTATIEOBJECT
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
key,
|
||
text,
|
||
xemail,
|
||
xsender,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT
|
||
'CUST09' code,
|
||
NULL sender,
|
||
NULL receiver,
|
||
m.mld_melding_key key,
|
||
'Acceptatie object melding' text,
|
||
'norbert@ipdesign.nl' xemail,
|
||
'medischetechniek@flevoziekenhuis.nl' xsender,
|
||
NULL xmobile
|
||
FROM mld_melding m ,
|
||
mld_stdmelding sm,
|
||
fac_tracking ft ,
|
||
fac_notificatie_job fj
|
||
WHERE m.mld_stdmelding_key=sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_code='MT_ACCEPTATIE_OBJECT'
|
||
AND m.mld_melding_status=5
|
||
AND ft.fac_srtnotificatie_key=47
|
||
AND ft.fac_tracking_refkey=m.mld_melding_key
|
||
AND fj.fac_notificatie_job_view='FZKH_V_MT_ACCEPTATIEOBJECT'
|
||
AND ft.fac_tracking_datum>COALESCE(fj.fac_notificatie_job_lastrun,SYSDATE);
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE FZKH_DAILY
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- Bijwerken vervangersgroepen (vgr) met FZKH-personen (prs) uit afdelingen
|
||
-- met dezelfde kostenplaats (kpn)!
|
||
fzkh.update_prs2kpnvgr;
|
||
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 ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
|
||
END FZKH_DAILY;
|
||
/
|
||
|
||
------ 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
|