4372 lines
181 KiB
MySQL
4372 lines
181 KiB
MySQL
--
|
|
-- $$Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
-- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust)
|
|
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
|
|
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
|
|
-- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt.
|
|
-- (dit in tegenstelling tot sample_xxxx.sql)
|
|
|
|
DEFINE thisfile = 'TDNL.SQL'
|
|
DEFINE dbuser = 'TDNL'
|
|
|
|
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 TDNL
|
|
AS
|
|
FUNCTION getemaillist(contract_key IN NUMBER) RETURN varchar2;
|
|
FUNCTION get_flex_value (pmodule IN VARCHAR2,
|
|
p_kenmerk_key IN NUMBER,
|
|
p_ref_key IN NUMBER,
|
|
p_kenmerkdomein_key IN NUMBER,
|
|
p_niveau IN VARCHAR2 DEFAULT NULL)
|
|
RETURN VARCHAR2;
|
|
|
|
FUNCTION getfirststartdate(p_startdatum IN DATE, p_refdatum IN DATE, p_cyclus IN NUMBER)
|
|
RETURN DATE;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY TDNL AS
|
|
|
|
-- functie voor het opahlen van email adressen bi contract die plaats egnodnen zijn
|
|
-- email adressen zijn van de kenmerken concessie diecteir, operationeel manager en locatie manager
|
|
FUNCTION getemaillist(contract_key IN NUMBER) RETURN varchar2
|
|
AS
|
|
v_count NUMBER;
|
|
v_alg_plaats_key cnt_contract_plaats.cnt_alg_plaats_key%TYPE;
|
|
v_alg_plaats_code cnt_contract_plaats.cnt_alg_plaats_code%TYPE;
|
|
v_emails VARCHAR2(2000);
|
|
BEGIN
|
|
SELECT COUNT(*) INTo v_count
|
|
from cnt_contract_plaats
|
|
where cnt_contract_key=contract_key AND cnt_contract_plaats_verwijder IS NULL;
|
|
IF v_count=1 THEN
|
|
-- Ophalen welke locatie/plaats het betreft
|
|
SELECT cnt_alg_plaats_key, cnt_alg_plaats_code
|
|
INTO v_alg_plaats_key, v_alg_plaats_code
|
|
FROM cnt_contract_plaats
|
|
WHERE cnt_contract_key=contract_key;
|
|
-- Gaan we kijken of we een concessie directeur kunnen vinden
|
|
SELECT LISTAGG(email,';') WITHIN GROUP (ORDER BY email)
|
|
INTO v_emails
|
|
FROM (
|
|
SELECT
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key=aok.alg_onrgoedkenmerk_waarde
|
|
AND p.prs_perslid_verwijder IS NULL) email
|
|
FROM alg_onrgoedkenmerk aok,
|
|
alg_kenmerk ak
|
|
WHERE aok.alg_onrgoed_key=v_alg_plaats_key
|
|
AND aok.alg_onrgoed_niveau='D'
|
|
AND UPPER(ak.alg_kenmerk_omschrijving)='CONCESSIE DIRECTEUR'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
UNION
|
|
SELECT
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key=aok.alg_onrgoedkenmerk_waarde
|
|
AND p.prs_perslid_verwijder IS NULL) email
|
|
FROM alg_onrgoedkenmerk aok,
|
|
alg_kenmerk ak
|
|
WHERE aok.alg_onrgoed_key=v_alg_plaats_key
|
|
AND aok.alg_onrgoed_niveau='D'
|
|
AND UPPER(ak.alg_kenmerk_omschrijving)='OPERATIONEEL MANAGER'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
UNION
|
|
SELECT
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key=aok.alg_onrgoedkenmerk_waarde
|
|
AND p.prs_perslid_verwijder IS NULL) email
|
|
FROM alg_onrgoedkenmerk aok,
|
|
alg_kenmerk ak
|
|
WHERE aok.alg_onrgoed_key=v_alg_plaats_key
|
|
AND aok.alg_onrgoed_niveau='L'
|
|
AND UPPER(ak.alg_kenmerk_omschrijving)='LOCATIE MANAGER'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
UNION
|
|
SELECT
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key=aok.alg_onrgoedkenmerk_waarde
|
|
AND p.prs_perslid_verwijder IS NULL) email
|
|
FROM alg_onrgoedkenmerk aok,
|
|
alg_kenmerk ak
|
|
WHERE aok.alg_onrgoed_key=v_alg_plaats_key
|
|
AND aok.alg_onrgoed_niveau='D'
|
|
AND UPPER(ak.alg_kenmerk_omschrijving)='MANAGER FACILITAIR'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
UNION
|
|
SELECT
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key=aok.alg_onrgoedkenmerk_waarde
|
|
AND p.prs_perslid_verwijder IS NULL) email
|
|
FROM alg_onrgoedkenmerk aok,
|
|
alg_kenmerk ak
|
|
WHERE aok.alg_onrgoed_key=v_alg_plaats_key
|
|
AND aok.alg_onrgoed_niveau='D'
|
|
AND UPPER(ak.alg_kenmerk_omschrijving)='MANAGER VASTGOED'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
UNION
|
|
SELECT p.prs_perslid_email
|
|
FROM prs_perslid p,
|
|
cnt_contract c
|
|
WHERE c.cnt_contract_key=contract_key
|
|
AND p.prs_perslid_key = c.prs_perslid_key_beh
|
|
);
|
|
|
|
END IF;
|
|
RETURN v_emails;
|
|
END;
|
|
|
|
|
|
|
|
FUNCTION get_flex_value (
|
|
pmodule IN VARCHAR2,
|
|
p_kenmerk_key IN NUMBER,
|
|
p_ref_key IN NUMBER,
|
|
p_kenmerkdomein_key IN NUMBER,
|
|
p_niveau IN VARCHAR2 DEFAULT NULL)
|
|
RETURN VARCHAR2
|
|
AS
|
|
v_value VARCHAR2 (4000);
|
|
v_kenmerkdomein_key NUMBER (10);
|
|
BEGIN
|
|
v_value :=
|
|
flx.getflex (pmodule,
|
|
p_kenmerk_key,
|
|
p_ref_key,
|
|
p_niveau);
|
|
|
|
IF p_kenmerkdomein_key IS NOT NULL
|
|
THEN
|
|
v_value := flx.getdomeinwaarde (p_kenmerkdomein_key, v_value);
|
|
END IF;
|
|
RETURN v_value;
|
|
END;
|
|
|
|
|
|
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:=tdnl.getfirststartdate(v_startdatum, p_refdatum, p_cyclus);
|
|
END IF;
|
|
ELSE
|
|
v_startdatum:=p_startdatum;
|
|
END IF;
|
|
|
|
RETURN v_startdatum;
|
|
|
|
END;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
-- IMPORTS
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_PERSLID_WP(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_import_perslid(p_import_key);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_PERSLID_WP(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
prs.update_perslid (p_import_key, 'NR', 'G', 1);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
-- Import KPN aan gebouw koppelen
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_GEBOUW_KPN(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_GEBOUW_KPN(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col02 locatie_code,
|
|
fac_imp_csv_col07 KPN_nr
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
|
|
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_count NUMBER;
|
|
v_alg_locatie_key NUMBER;
|
|
v_kostenplaats_key NUMBER;
|
|
|
|
BEGIN
|
|
v_count:=0;
|
|
FOR rec IN C
|
|
LOOP
|
|
IF LOWER(rec.locatie_code) <>'locatiecode'
|
|
AND LOWER(rec.kpn_nr) <> 'kostenplaats'
|
|
|
|
THEN
|
|
|
|
BEGIN
|
|
v_aanduiding:='Locatie met code :'||rec.locatie_code||' niet gevonden of uitbeheer';
|
|
SELECT l.alg_locatie_key
|
|
INTO v_alg_locatie_key
|
|
FROM alg_locatie l
|
|
WHERE l.alg_locatie_code=rec.locatie_code
|
|
AND l.alg_locatie_verwijder IS NULL
|
|
AND (l.alg_locatie_vervaldatum IS NULL
|
|
OR l.alg_locatie_vervaldatum > SYSDATE);
|
|
|
|
v_aanduiding:='Kostenplaats met code :'||rec.KPN_NR||' niet gevonden';
|
|
SELECT k.prs_kostenplaats_key
|
|
INTO v_kostenplaats_key
|
|
FROM prs_kostenplaats k
|
|
WHERE k.prs_kostenplaats_nr=rec.KPN_nr
|
|
AND k.prs_kostenplaats_verwijder IS NULL;
|
|
|
|
UPDATE alg_gebouw g
|
|
SET g.prs_kostenplaats_key=v_kostenplaats_key
|
|
WHERE g.alg_locatie_key=v_alg_locatie_key;
|
|
v_count:=v_count+1;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
END IF;
|
|
END LOOP;
|
|
|
|
DELETE FROM fac_imp_csv
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Succes',
|
|
'Er zijn '||v_count||' locaties voorzien van een kostenplaats');
|
|
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
-- Imports verbruiks objecten met evt niet aanweizge ruimtes
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_VERBRUIKSOBJ (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col01 ins_deel_key_org,
|
|
fac_imp_csv_col02 ins_discipline_omschrijving,
|
|
fac_imp_csv_col03 ins_kostenplaats,
|
|
fac_imp_csv_col04 ins_srtgroep_omschrijving,
|
|
fac_imp_csv_col05 ins_srtdeel_code,
|
|
fac_imp_csv_col06 ins_srtdeel_omschrijving,
|
|
fac_imp_csv_col07 ins_deel_omschrijving,
|
|
fac_imp_csv_col08 ins_deel_opmerking,
|
|
fac_imp_csv_col09 ins_deel_resreveerbaar,
|
|
fac_imp_csv_col10 ins_deel_eenheid,
|
|
fac_imp_csv_col11 prijs,
|
|
fac_imp_csv_col12 alg_locatie_code,
|
|
fac_imp_csv_col13 alg_gebouw_code,
|
|
fac_imp_csv_col14 alg_verdipeing_nr,
|
|
fac_imp_csv_col15 alg_ruimte_nr,
|
|
fac_imp_csv_col22 ins_deel_aanmaak,
|
|
fac_imp_csv_col23 ins_deel_vervaldatum,
|
|
fac_imp_csv_col24 ins_deel_aantal
|
|
from fac_imp_csv
|
|
WHERE fac_import_key = p_import_key;
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_count NUMBER;
|
|
v_alg_locatie_key NUMBER;
|
|
v_alg_gebouw_key NUMBER;
|
|
v_alg_verdieping_key NUMBER;
|
|
v_alg_ruimte_key NUMBER;
|
|
BEGIN
|
|
|
|
FOR rec IN C
|
|
LOOP
|
|
|
|
v_errorhint:='Locatie niet gevonden';
|
|
v_error:=1;
|
|
SELECT l.alg_locatie_key INTO v_alg_locatie_key
|
|
FROM alg_locatie l
|
|
WHERE l.alg_locatie_code =rec.alg_locatie_code
|
|
AND l.alg_locatie_verwijder IS NULL;
|
|
v_errorhint:='Gebouw niet gevonden';
|
|
v_error:=2;
|
|
|
|
SELECT g.alg_gebouw_key INTO v_alg_gebouw_key
|
|
FROM alg_gebouw g
|
|
WHERE g.alg_gebouw_code=rec.alg_locatie_code
|
|
AND g.alg_locatie_key = v_alg_locatie_key
|
|
AND g.alg_gebouw_verwijder IS NULL;
|
|
|
|
|
|
v_errorhint:='Verdieping niet gevonden';
|
|
v_error:=3;
|
|
BEGIN
|
|
SELECT v.alg_verdieping_key INTO v_alg_verdieping_key
|
|
FROM alg_verdieping v
|
|
WHERE v.alg_verdieping_volgnr=0 -- we willen een verdpeing 0 hebben onafhanleijk wat in de csv staat.
|
|
AND v.alg_gebouw_key=v_alg_gebouw_key
|
|
AND v.alg_verdieping_verwijder IS NULL;
|
|
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
INSERT INTO alg_verdieping (alg_gebouw_key,
|
|
alg_verdieping_code,
|
|
alg_verdieping_omschrijving,
|
|
alg_verdieping_volgnr,
|
|
alg_verdieping_aanmaak)
|
|
VALUES (v_alg_gebouw_key,
|
|
'00',
|
|
'Verdieping 0',
|
|
0,
|
|
SYSDATE)
|
|
RETURN alg_verdieping_key INTO v_alg_verdieping_key; -- Gaan we v_error op 4 zetten want als er geen verdieping si moet er ook een ruimte worden aangemaakt.
|
|
|
|
UPDATE fac_imp_csv
|
|
SET fac_imp_csv_col14 = '0'
|
|
WHERE fac_imp_csv_key = rec.fac_imp_csv_key;
|
|
END;
|
|
|
|
v_errorhint:='Ruimte niet gevonden';
|
|
v_error:=4;
|
|
BEGIN
|
|
SELECT r.alg_ruimte_key INTO v_alg_ruimte_key
|
|
FROM alg_ruimte r
|
|
WHERE r.alg_ruimte_nr='0.00'
|
|
AND r.alg_verdieping_key=v_alg_verdieping_key
|
|
AND r.alg_ruimte_verwijder IS NULL;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
v_errorhint:='Fout bij aanmkaken ruimte';
|
|
INSERT INTO alg_ruimte (alg_verdieping_key,
|
|
alg_ruimte_nr,
|
|
alg_ruimte_upper_nr,
|
|
alg_ruimte_omschrijving,
|
|
alg_ruimte_aanmaak)
|
|
VALUES (v_alg_verdieping_key,
|
|
'0.00',
|
|
UPPER ('0.00'),
|
|
'Gehele gebouw',
|
|
SYSDATE);
|
|
|
|
UPDATE fac_imp_csv
|
|
SET fac_imp_csv_col15 = '0.00'
|
|
WHERE fac_imp_csv_key = rec.fac_imp_csv_key; -- Gaan we de imp_+cscv aanpassen zodat dit nieuw aangemaakt ruimteNr gebruikt wordt
|
|
END;
|
|
|
|
|
|
END LOOP;
|
|
-- eerste even opschonen
|
|
DELETE FROM fac_imp_ins;
|
|
-- Gaan we nu de fac_imp_ins vullen
|
|
INSERT INTO fac_imp_ins
|
|
(ins_discipline_omschrijving,
|
|
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_deel_AANMAAK,
|
|
ins_deel_vervaldatum,
|
|
ins_deel_aantal)
|
|
SELECT fac_imp_csv_col02,
|
|
fac_imp_csv_col04,
|
|
fac_imp_csv_col05,
|
|
fac_imp_csv_col06,
|
|
fac_imp_csv_col07,
|
|
fac_imp_csv_col08,
|
|
fac_imp_csv_col12,
|
|
fac_imp_csv_col12,
|
|
'0',
|
|
'0.00',
|
|
TO_DATE(fac_imp_csv_col22,'DD-MM-YYYY'),
|
|
TO_DATE(fac_imp_csv_col23,'DD-MM-YYYY'),
|
|
fac_imp_csv_col24
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key = p_import_key;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_VERBRUIKSOBJ (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_update_ins(p_import_key);
|
|
|
|
-- De csv tabel opruimen
|
|
DELETE
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key = p_import_key;
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_VERBRUIKSWAARDES (p_import_key IN NUMBER)
|
|
AS
|
|
|
|
BEGIN
|
|
|
|
NULL;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_VERBRUIKSWAARDES (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col01 ins_deel_omschrijving,
|
|
fac_imp_csv_col02 kenmerk_waarde,
|
|
fac_imp_csv_col03 kenmerk_aanmaakdatum,
|
|
fac_imp_csv_col04 kenmerk_verwijderdatum,
|
|
fac_imp_csv_col05 ins_srtdeel
|
|
from fac_imp_csv
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_csv_index;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_count NUMBER;
|
|
|
|
v_counter NUMBER;
|
|
v_records NUMBER;
|
|
v_ins_kenmerk_key NUMBER;
|
|
v_ins_deel_key NUMBER;
|
|
v_kenmerk_aanmaakdatum DATE;
|
|
v_kenmerk_verwijderdatum DATE;
|
|
BEGIN
|
|
|
|
|
|
|
|
v_records:=0;
|
|
v_counter:=0;
|
|
|
|
v_aanduiding := 'Kenmerk key voor Meterstand niet gevonden';
|
|
SELECT ins_kenmerk_key INTO v_ins_kenmerk_key
|
|
FROM ins_kenmerk ik
|
|
WHERE ik.ins_kenmerk_code='METERSTAND' AND ik.ins_kenmerk_verwijder IS NULL;
|
|
|
|
IF v_ins_kenmerk_key>0 THEN
|
|
FOR rec IN c
|
|
LOOP
|
|
IF v_counter>0 THEN --- De header lezen we niet in
|
|
|
|
BEGIN -- gaan we eerst het object opzoeken als de ins_deel_omschrijving anders dan de vorige
|
|
v_aanduiding:= 'Object met omschrijving '||rec.ins_deel_omschrijving||' is niet gevonden';
|
|
SELECT i.ins_deel_key INTO v_ins_deel_key
|
|
FROM ins_deel i
|
|
WHERE i.ins_deel_omschrijving=rec.ins_deel_omschrijving
|
|
AND i.ins_deel_verwijder IS NULL;
|
|
--AND sd.INS_SRTDEEL_KEY=i.INS_SRTDEEL_KEY
|
|
--AND UPPER(sd.INS_SRTDEEL_OMSCHRIJVING) = UPPER(rec.ins_srtdeel);
|
|
|
|
v_kenmerk_aanmaakdatum:= fac.safe_to_date(rec.kenmerk_aanmaakdatum,'DD-MM-YYYY HH24:MI:SS');
|
|
v_kenmerk_verwijderdatum:=fac.safe_to_date(rec.kenmerk_verwijderdatum,'DD-MM-YYYY HH24:MI:SS');
|
|
|
|
|
|
v_aanduiding:= '1-Fout bij wegschrijven van Meterstand voor object '||rec.ins_deel_omschrijving||'-'||v_ins_deel_key||' met waarde '||rec.kenmerk_waarde;
|
|
-- KIJKEN OF ER AL EEN KENMERK IS op de deel_key, kenmerk-key en aanmaak datum en verwijder datum
|
|
SELECT COUNT(*) INTO v_count
|
|
FROM ins_kenmerkdeel
|
|
WHERE ins_deel_key=v_ins_deel_key
|
|
AND ins_kenmerk_key=v_ins_kenmerk_key
|
|
AND ins_kenmerkdeel_aanmaak = v_kenmerk_aanmaakdatum
|
|
-- AND ins_kenmerkdeel_verwijder=v_kenmerk_verwijderdatum
|
|
AND ins_kenmerkdeel_waarde=rec.kenmerk_waarde;
|
|
|
|
IF v_count=0 AND v_ins_deel_key >0 THEN
|
|
|
|
INSERT INTO ins_kenmerkdeel (ins_deel_key,
|
|
ins_kenmerk_key,
|
|
ins_kenmerkdeel_aanmaak,
|
|
ins_kenmerkdeel_verwijder,
|
|
ins_kenmerkdeel_waarde)
|
|
VALUES (v_ins_deel_key,
|
|
v_ins_kenmerk_key,
|
|
v_kenmerk_aanmaakdatum,
|
|
v_kenmerk_verwijderdatum,
|
|
rec.kenmerk_waarde);
|
|
v_records:=v_records+1;
|
|
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
'Reeds aanwezig',
|
|
v_aanduiding);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
'Niet gevonden',
|
|
v_aanduiding);
|
|
WHEN TOO_MANY_ROWS THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
'Vaker gevonden',
|
|
v_aanduiding);
|
|
END;
|
|
|
|
ELSE
|
|
v_counter:=v_counter+1;
|
|
|
|
END IF;
|
|
|
|
END LOOP;
|
|
END IF;
|
|
fac.imp_writelog (p_import_key,
|
|
'S',
|
|
'Er zijn '||v_records||' regels aan ins_Kenmerkdeel toegeovegd',
|
|
'');
|
|
|
|
-- Nu de csv data weer verwijderen
|
|
DELETE FROM fac_imp_csv
|
|
WHERE fac_import_key = p_import_key;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
|
|
-- Import meldingen uit CONN omgeveing
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_MELDINGEN(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_MELDINGEN(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR sel
|
|
IS
|
|
SELECT fac_imp_csv_col01 mld_org_melding_key,
|
|
fac_imp_csv_col02 alg_onrgoed_niveau,
|
|
fac_imp_csv_col03 alg_locatie_code,
|
|
fac_imp_csv_col03 alg_gebouw_code, -- DIT DIEN WE EXTRA OMDAT DE locatie_code in de oude omgeviung voor oude gebouw en niet goed is.
|
|
fac_imp_csv_col05 alg_verdieping_code,
|
|
fac_imp_csv_col06 alg_ruimte_nr,
|
|
fac_imp_csv_col07 mld_stdmelding_key,
|
|
fac_imp_csv_col08 mld_melding_datum,
|
|
fac_imp_csv_col09 mld_melding_afmelddatum,
|
|
fac_imp_csv_col10 mld_melding_onderwerp,
|
|
fac_imp_csv_col11 mld_melding_status,
|
|
COALESCE(fac_imp_csv_col12,'migratie@transdev.nl') prs_aanvrager_oslogin,
|
|
fac_imp_csv_col13 prs_aanvrager_naam,
|
|
COALESCE(fac_imp_csv_col14,'migratie@transdev.nl') prs_behandelaar_oslogin,
|
|
fac_imp_csv_col15 prs_behandelaar_naam,
|
|
fac_imp_csv_col16 prs_kostenplaats_code,
|
|
fac_imp_csv_col17 mld_melding_kenmerken,
|
|
fac_imp_csv_col19 mld_melding_omschrijving
|
|
FROm fac_imp_csv
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_count NUMBER;
|
|
|
|
v_alg_onrgoed_niveau VARCHAR2(10);
|
|
|
|
v_alg_locatie_key NUMBER;
|
|
v_alg_gebouw_key NUMBER;
|
|
v_alg_ruimte_key NUMBER;
|
|
v_alg_onrgoed_key NUMBER;
|
|
v_prs_aanvrager_key NUMBER;
|
|
v_naam_aanvrager VARCHAR2(100);
|
|
v_naam_behandelaar VARCHAR2(100);
|
|
v_prs_behandelaar_key NUMBER;
|
|
v_stdmelding_key NUMBER;
|
|
v_kostenplaats_key NUMBER;
|
|
v_mld_meldbron_key NUMBER;
|
|
v_mldkey NUMBER;
|
|
v_aantal NUMBER;
|
|
v_migratie NUMBER;
|
|
v_aanvrager VARCHAR2(100);
|
|
v_behandelaar VARCHAR2(100);
|
|
v_kenmerk_key NUMBER;
|
|
BEGIN
|
|
v_stdmelding_key := 1; -- standaard worden alle migratie meldingen op de stdmelding overig gezet
|
|
v_mld_meldbron_key :=5;
|
|
|
|
v_aanduiding :='Ophalen melding kenmerk key met code=CONN_MLD_KEY is muslukt';
|
|
SELECT mld_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_kenmerk_code='CONN_MLD_KEY';
|
|
|
|
|
|
|
|
FOR rec IN sel
|
|
LOOP
|
|
v_error:=0;
|
|
v_migratie :=0;
|
|
v_count:=0;
|
|
|
|
v_aanduiding :='De melding met nr : '||rec.mld_org_melding_key||' is reeds bekend';
|
|
SELECT COUNT(*)
|
|
INTO v_count
|
|
FROM mld_melding
|
|
WHERE mld_melding_externnr=rec.mld_org_melding_key;
|
|
|
|
IF v_count=0
|
|
THEN
|
|
BEGIN
|
|
v_aanduiding:='Ophalen std melding gaat fout :'|| rec.mld_stdmelding_key;
|
|
SELECT alg_onrgoed_niveau, mld_stdmelding_key
|
|
INTO v_alg_onrgoed_niveau, v_stdmelding_key
|
|
FROM mld_stdmelding ms
|
|
WHERE ms.mld_stdmelding_key=rec.mld_stdmelding_key;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
SELECT alg_onrgoed_niveau, mld_stdmelding_key
|
|
INTO v_alg_onrgoed_niveau, v_stdmelding_key
|
|
FROM mld_stdmelding ms
|
|
WHERE ms.mld_stdmelding_code='MIGRATIE';
|
|
END;
|
|
|
|
BEGIN
|
|
v_aanduiding:='Ophalen locatie gaat fout :'|| rec.alg_locatie_code;
|
|
SELECT l.alg_locatie_key, g.alg_gebouw_key
|
|
INTO v_alg_locatie_key, v_alg_gebouw_key
|
|
FROM alg_gebouw g, alg_locatie l
|
|
WHERE g.alg_gebouw_code=rec.alg_gebouw_code
|
|
AND (g.ALG_GEBOUW_VERWIJDER IS NULL OR g.ALG_GEBOUW_VERVALDATUM> SYSDATE)
|
|
AND l.ALG_LOCATIE_KEY = g.ALG_LOCATIE_KEY
|
|
AND l.alg_locatie_code=rec.alg_locatie_code
|
|
AND (l.ALG_locatie_VERWIJDER IS NULL OR l.ALG_locatie_VERVALDATUM> SYSDATE);
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
SELECT l.alg_locatie_key, g.alg_gebouw_key
|
|
INTO v_alg_locatie_key, v_alg_gebouw_key
|
|
FROM alg_gebouw g, alg_locatie l
|
|
WHERE g.alg_gebouw_code='0000'
|
|
AND l.ALG_LOCATIE_KEY = g.ALG_LOCATIE_KEY
|
|
AND l.alg_locatie_code='0000';
|
|
v_migratie:=1;
|
|
END;
|
|
|
|
|
|
|
|
|
|
IF v_alg_onrgoed_niveau='G'
|
|
THEN
|
|
v_alg_onrgoed_key:=v_alg_gebouw_key;
|
|
ELSE
|
|
v_alg_onrgoed_key:=v_alg_locatie_key;
|
|
END IF;
|
|
|
|
-- Ophalen aanvrager
|
|
|
|
v_aanduiding:='Ophalen aanvrager op oslogin gaat fout :'|| rec.prs_aanvrager_oslogin;
|
|
v_error:=0;
|
|
SELECT COUNT(*), MAX(prs_perslid_key)
|
|
INTO v_aantal, v_prs_aanvrager_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER(prs_perslid_oslogin)=UPPER(rec.prs_aanvrager_oslogin);
|
|
v_error:=0;
|
|
IF v_aantal=0
|
|
THEN
|
|
BEGIN
|
|
v_aanduiding:='Ophalen aanvrager op naam gaat fout :'|| rec.prs_aanvrager_oslogin;
|
|
IF INSTR(rec.prs_aanvrager_oslogin,'@') >0 THEN
|
|
v_aanvrager:=UPPER(SUBSTR(rec.prs_aanvrager_oslogin,0,INSTR(rec.prs_aanvrager_oslogin,'@')-1));
|
|
ELSE
|
|
v_aanvrager:=UPPER(rec.prs_aanvrager_oslogin);
|
|
END IF;
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_aanvrager_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER(prs_perslid_oslogin) LIKE v_aanvrager||'%';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_aanvrager_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER(prs_perslid_oslogin)= '_MIGRATIE';
|
|
END;
|
|
END IF;
|
|
|
|
v_aanduiding:='Ophalen behandelaar op oslogin gaat fout :'|| rec.prs_behandelaar_oslogin;
|
|
v_naam_behandelaar := SUBSTR(rec.prs_behandelaar_oslogin,0, INSTR(rec.prs_behandelaar_oslogin,'@')-1);
|
|
SELECT COUNT(*), MAX(prs_perslid_key)
|
|
INTO v_aantal, v_prs_behandelaar_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER(prs_perslid_oslogin)=UPPER(rec.prs_behandelaar_oslogin);
|
|
IF v_aantal =0
|
|
THEN
|
|
BEGIN
|
|
v_aanduiding:='Ophalen behandelaar op naam gaat fout :'|| rec.prs_behandelaar_oslogin;
|
|
IF INSTR(rec.prs_behandelaar_oslogin,'@') >0 THEN
|
|
v_behandelaar:=UPPER(SUBSTR(rec.prs_behandelaar_oslogin,0,INSTR(rec.prs_behandelaar_oslogin,'@')-1));
|
|
ELSE
|
|
v_behandelaar:=UPPER(rec.prs_behandelaar_oslogin);
|
|
END IF;
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_aanvrager_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER(prs_perslid_email) LIKE v_behandelaar||'%';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
-- v_prs_behandelaar_key:=3; -- Nader te bepalen nu even facilitor
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_behandelaar_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER(prs_perslid_oslogin)= '_MIGRATIE_BEHANDELAAR';
|
|
|
|
END;
|
|
END IF;
|
|
|
|
|
|
|
|
-- Ophalen kostenplaats
|
|
|
|
BEGIN
|
|
v_aanduiding:='Ophalen kostenplaats gaat fout :'|| rec.prs_kostenplaats_code;
|
|
SELECT prs_kostenplaats_key
|
|
INTO v_kostenplaats_key
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_nr = rec.prs_kostenplaats_code
|
|
AND prs_kostenplaats_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
|
|
v_kostenplaats_key:=NULL;
|
|
END;
|
|
|
|
|
|
-- gaan we nu verwerken
|
|
|
|
IF v_error=0
|
|
THEN
|
|
-- fac.imp_writelog (p_import_key,'I','stdmelding_key',v_stdmelding_key);
|
|
-- fac.imp_writelog (p_import_key,'I','Locatie_key',v_alg_locatie_key);
|
|
-- fac.imp_writelog (p_import_key,'I','Onrgd_key',v_alg_onrgoed_key);
|
|
-- fac.imp_writelog (p_import_key,'I','behandelaar_key',v_prs_behandelaar_key);
|
|
-- fac.imp_writelog (p_import_key,'I','aanvrager_key',v_prs_aanvrager_key);
|
|
-- fac.imp_writelog (p_import_key,'I','meld datum',rec.mld_melding_datum);
|
|
v_aanduiding:='Toevoegen melding gaat fout :'|| rec.mld_org_melding_key;
|
|
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_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,
|
|
mld_melding_status,
|
|
mld_melding_spoed,
|
|
MLD_MELDING_EXTERNNR)
|
|
VALUES ('MLD',
|
|
v_mld_meldbron_key,
|
|
v_alg_locatie_key,
|
|
v_alg_onrgoed_key,
|
|
fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS'),
|
|
rec.mld_melding_onderwerp,
|
|
rec.mld_melding_omschrijving,
|
|
v_prs_behandelaar_key, -- mld_melding_behandelaar_key
|
|
TO_NUMBER(NULL), -- mld_melding_behandelaar2_key
|
|
TO_NUMBER(NULL),
|
|
v_stdmelding_key,
|
|
NULL,
|
|
fac.safe_to_date(rec.mld_melding_afmelddatum,'DD-MM-YYYY HH24:MI.SS'),
|
|
v_prs_aanvrager_key,
|
|
v_prs_aanvrager_key,
|
|
rec.mld_melding_status,
|
|
3,
|
|
rec.mld_org_melding_key
|
|
)
|
|
RETURNING mld_melding_key
|
|
INTO v_mldkey;
|
|
|
|
v_aanduiding:='Aanmaken kenmerk CONN meldingsNr is mislukt.';
|
|
flx.setflex('MLD',v_kenmerk_key,v_mldkey,rec.mld_org_melding_key);
|
|
|
|
|
|
v_aanduiding := 'Toevoegen notities bij melding '||rec.mld_org_melding_key|| 'gaat fout';
|
|
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_mldkey,
|
|
fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS'),
|
|
SYSDATE,
|
|
3, -- Facilitor
|
|
'Migratie melding CONN melding: ' || rec.mld_org_melding_key||CHR(10)||'Aanvrager: '|| rec.prs_aanvrager_naam,
|
|
0);
|
|
|
|
IF rec.mld_melding_kenmerken IS NOT NULL
|
|
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_mldkey,
|
|
fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS'),
|
|
SYSDATE,
|
|
3, -- Facilitor
|
|
'Kenmerken :' ||CHR(10)|| REPLACE(rec.mld_melding_kenmerken,';',CHR(10)),
|
|
0);
|
|
END IF;
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Melding toegevoegd',
|
|
'melding '|| v_mldkey||' aangemaakt voor migratie melding :'||rec.mld_org_melding_key);
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Niet gevonden',
|
|
v_aanduiding);
|
|
END IF;
|
|
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Reeds aanwezig',
|
|
v_aanduiding);
|
|
END IF;
|
|
END LOOP;
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
-- EINDE meldingen import
|
|
|
|
-- Import opdrachten
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_OPDRACHTEN(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_OPDRACHTEN(p_import_key IN NUMBER)
|
|
AS
|
|
|
|
CURSOR sel
|
|
IS
|
|
SELECT fac_imp_csv.FAC_IMP_CSV_INDEX regel,
|
|
fac_imp_csv_col01 mld_org_melding_key,
|
|
fac_imp_csv_col02 mld_opdr_volgnr,
|
|
fac_imp_csv_col03 mld_statusopdr_key,
|
|
fac_imp_csv_col04 mld_opdrtype,
|
|
fac_imp_csv_col05 mld_opdr_discipline_key,
|
|
fac_imp_csv_col06 prs_leverancier_nr,
|
|
fac_imp_csv_col07 mld_opdr_omschrijving,
|
|
fac_imp_csv_col08 mld_opdr_begindatum,
|
|
fac_imp_csv_col09 mld_opdr_einddatum,
|
|
fac_imp_csv_col10 prs_kostenplaats_nr,
|
|
fac_imp_csv_col11 mld_opdr_kosten,
|
|
fac_imp_csv_col12 prs_perslid_oslogin,
|
|
fac_imp_csv_col13 prs_leverancier_naam,
|
|
fac_imp_csv_col14 mld_org_opdr_key,
|
|
fac_imp_csv_col15 ken_coupa_onderwerp,
|
|
fac_imp_csv_col16 ken_coupa_id,
|
|
fac_imp_csv_col17 ken_coupa_inkoopnr
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_count NUMBER;
|
|
v_regel NUMBER;
|
|
|
|
v_melding_key NUMBER;
|
|
v_mld_opdr_key NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_mld_ins_discipline_key NUMBER;
|
|
v_mld_typeopdr_key NUMBER;
|
|
v_prs_perslid_key NUMBER;
|
|
v_uitvoerende_key NUMBER;
|
|
v_coupa_onderwerp_key NUMBER;
|
|
v_coupa_id_key NUMBER;
|
|
v_coupa_inkoopnr_key NUMBER;
|
|
v_opdr_status_key NUMBER;
|
|
v_mld_status_key NUMBER;
|
|
v_conn_opdr_nr NUMBER;
|
|
v_mld_datum DATE;
|
|
BEGIN
|
|
v_error:=0;
|
|
FOR rec in sel
|
|
LOOP
|
|
v_regel:=rec.regel;
|
|
v_error:=0;
|
|
v_count:=0;
|
|
v_aanduiding:='Ophalen kenmerk COUPA ONDERWERP is mislukt';
|
|
BEGIN
|
|
SELECT mld_kenmerk_key
|
|
INTO v_coupa_onderwerp_key
|
|
FROM mld_kenmerk k
|
|
WHERE UPPER(k.MLD_KENMERK_OMSCHRIJVING)='COUPA ONDERWERP'
|
|
AND k.MLD_KENMERK_NIVEAU='O';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
|
|
v_aanduiding:='Ophalen kenmerk AANVRAAGNR is mislukt';
|
|
BEGIN
|
|
SELECT mld_kenmerk_key
|
|
INTO v_coupa_id_key
|
|
FROM mld_kenmerk k
|
|
WHERE UPPER(k.MLD_KENMERK_OMSCHRIJVING)='AANVRAAGNR'
|
|
AND k.MLD_KENMERK_NIVEAU='O';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
|
|
v_aanduiding:='Ophalen kenmerk INKOOPNR is mislukt';
|
|
BEGIN
|
|
SELECT mld_kenmerk_key
|
|
INTO v_coupa_inkoopnr_key
|
|
FROM mld_kenmerk k
|
|
WHERE UPPER(k.MLD_KENMERK_OMSCHRIJVING)='INKOOPNR'
|
|
AND k.MLD_KENMERK_NIVEAU='O';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
|
|
v_aanduiding:='Ophalen kenmerk CONN OPDRACHTNR is mislukt';
|
|
BEGIN
|
|
SELECT mld_kenmerk_key
|
|
INTO v_conn_opdr_nr
|
|
FROM mld_kenmerk k
|
|
WHERE UPPER(k.MLD_KENMERK_OMSCHRIJVING)='CONN OPDRACHTNR'
|
|
AND k.MLD_KENMERK_NIVEAU='O';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
|
|
|
|
-- Wat is het m,elding_key van dze opdracht,
|
|
-- Wat is d eins_discipine van deze melding , nodig bij opdarcht insert
|
|
-- Welke relatie is het verstuurd, haal die op en anders fall back leverancier
|
|
--
|
|
v_aanduiding:='Ophalen van meldning met nr:'||rec.mld_org_melding_key||' is mislukt';
|
|
BEGIN
|
|
SELECT m.mld_melding_key , msm.mld_ins_discipline_key, mld_melding_status, mld_melding_datum
|
|
INTO v_melding_key, v_mld_ins_discipline_key, v_mld_status_key, v_mld_datum
|
|
FROM mld_melding m, mld_stdmelding msm
|
|
WHERE m.mld_melding_externnr=rec.mld_org_melding_key
|
|
AND msm.mld_stdmelding_key = m.mld_stdmelding_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
|
|
IF v_melding_key>0 AND v_error=0 AND rec.mld_opdr_volgnr=1
|
|
THEN
|
|
IF v_mld_status_key=5 OR v_mld_status_key=6
|
|
THEN
|
|
fac.trackaction('#MLDTRK',v_melding_key,NULL, v_mld_datum,'Migratie melding aangemaakt');
|
|
ELSE
|
|
fac.trackaction('#MLDNEW',v_melding_key,NULL, v_mld_datum,'Migratie melding aangemaakt');
|
|
END IF;
|
|
END IF;
|
|
|
|
IF v_error=0 THEN
|
|
v_aanduiding:='Opdracht is al bekend :'||v_melding_key||'/'||rec.mld_opdr_volgnr ||'(regel: '||v_regel||')';
|
|
SELECT COUNT(*)
|
|
INTO v_count
|
|
FROM mld_opdr o
|
|
WHERE o.mld_melding_key=v_melding_key
|
|
AND o.mld_opdr_bedrijfopdr_volgnr=rec.mld_opdr_volgnr;
|
|
|
|
IF v_count>0 THEN
|
|
v_error:=1;
|
|
END IF;
|
|
END IF;
|
|
|
|
|
|
IF v_error=0 THEN
|
|
BEGIN
|
|
v_aanduiding:='Ophalen van kostenplaats nr :'||rec.prs_kostenplaats_nr||' is mislukt.';
|
|
SELECT p.prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM prs_kostenplaats p
|
|
WHERE p.prs_kostenplaats_nr=rec.prs_kostenplaats_nr
|
|
AND p.prs_kostenplaats_verwijder IS NULL;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
SELECT p.prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM prs_kostenplaats p
|
|
WHERE p.prs_kostenplaats_nr='1000'
|
|
AND p.prs_kostenplaats_verwijder IS NULL;
|
|
END;
|
|
|
|
BEGIN
|
|
v_aanduiding:='Ophalen van opdracht type is mislukt.';
|
|
SELECT mld_typeopdr_key
|
|
INTO v_mld_typeopdr_key
|
|
FROM mld_typeopdr o
|
|
WHERE UPPER(o.mld_typeopdr_omschrijving)='UITVOERINGSOPDRACHT';
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
END IF;
|
|
IF v_error=0 THEN
|
|
v_aanduiding:='Ophalen van perslid.';
|
|
BEGIN
|
|
SELECT p.prs_perslid_key
|
|
INTO v_prs_perslid_key
|
|
from prs_perslid p
|
|
WHERE UPPER(p.prs_perslid_oslogin)=UPPER(rec.prs_perslid_oslogin);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
-- v_prs_behandelaar_key:=3; -- Nader te bepalen nu even facilitor
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER(prs_perslid_oslogin)= '_MIGRATIE_BEHANDELAAR';
|
|
END;
|
|
END IF;
|
|
IF v_error=0 THEN
|
|
v_aanduiding:='Ophalen van leverenacier '||rec.prs_leverancier_nr||' is mislukt.';
|
|
BEGIN
|
|
SElECT prs_bedrijf_key
|
|
INTO v_uitvoerende_key
|
|
FROM prs_bedrijf p
|
|
WHERE UPPER(p.prs_leverancier_nr)=UPPER(rec.prs_leverancier_nr)
|
|
AND p.prs_bedrijf_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_aanduiding:='Ophalen van Fall Back leverenacier '||rec.prs_leverancier_nr||' is mislukt.';
|
|
SElECT prs_bedrijf_key
|
|
INTO v_uitvoerende_key
|
|
FROM prs_bedrijf p
|
|
WHERE p.prs_leverancier_nr='999999'
|
|
AND p.prs_bedrijf_verwijder IS NULL;
|
|
END;
|
|
|
|
|
|
|
|
|
|
END IF;
|
|
|
|
IF v_error=0 AND v_count=0
|
|
THEN
|
|
|
|
|
|
IF v_mld_status_key=5 OR v_mld_status_key=6 THEN
|
|
v_opdr_status_key:=6;
|
|
ELSE
|
|
v_opdr_status_key:=rec.mld_statusopdr_key;
|
|
END IF;
|
|
|
|
v_aanduiding:='Aanmaken opdarcht is mislukt.';
|
|
INSERT INTO mld_opdr (mld_melding_key,
|
|
prs_kostenplaats_key,
|
|
mld_statusopdr_key,
|
|
mld_typeopdr_key,
|
|
prs_perslid_key,
|
|
mld_uitvoerende_keys,
|
|
mld_opdr_discipline_key,
|
|
mld_opdr_datumbegin,
|
|
mld_opdr_einddatum,
|
|
mld_opdr_module,
|
|
mld_opdr_omschrijving,
|
|
mld_opdr_kosten,
|
|
mld_opdr_bedrijfopdr_volgnr,
|
|
mld_opdr_externnr)
|
|
VALUES( v_melding_key,
|
|
v_prs_kostenplaats_key,
|
|
v_opdr_status_key,
|
|
v_mld_typeopdr_key,
|
|
v_prs_perslid_key,
|
|
v_uitvoerende_key,
|
|
v_mld_ins_discipline_key,
|
|
fac.safe_to_date(rec.mld_opdr_begindatum,'DD-MM-YYYY HH24:MI.SS'),
|
|
fac.safe_to_date(rec.mld_opdr_einddatum,'DD-MM-YYYY HH24:MI.SS'),
|
|
'MLD',
|
|
rec.mld_opdr_omschrijving,
|
|
fac.safe_to_number(rec.mld_opdr_kosten),
|
|
rec.mld_opdr_volgnr,
|
|
rec.mld_org_opdr_key)
|
|
RETURNING mld_opdr_key
|
|
INTO v_mld_opdr_key;
|
|
|
|
IF v_opdr_status_key = 6 THEN
|
|
fac.trackaction('#ORDTRK',v_mld_opdr_key,NULL, NULL,'Migratie opdracht aangemaakt');
|
|
ELSE
|
|
fac.trackaction('#ORDNEW',v_mld_opdr_key,NULL, SYSDATE,'Migratie opdracht aangemaakt');
|
|
END IF;
|
|
|
|
INSERT INTO mld_opdr_note (mld_opdr_key,
|
|
mld_opdr_note_aanmaak,
|
|
mld_opdr_note_wijzigdatum,
|
|
prs_perslid_key,
|
|
mld_opdr_note_omschrijving,
|
|
mld_opdr_note_flag)
|
|
VALUES (v_mld_opdr_key,
|
|
fac.safe_to_date(rec.mld_opdr_begindatum,'DD-MM-YYYY HH24:MI.SS'),
|
|
SYSDATE,
|
|
3, -- Facilitor
|
|
'Migratie opdracht CONN melding: ' || rec.mld_org_melding_key||CHR(10)||' leverancier :'|| rec.prs_leverancier_naam,
|
|
0);
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Opdacht aangemaakt',
|
|
'Opdracht '||v_melding_key||'/'||rec.mld_opdr_volgnr||'('||v_mld_opdr_key||') is aangemaakt.');
|
|
|
|
|
|
v_aanduiding:='Aanmaken kenmerk CONN OPdr Nr is mislukt.';
|
|
flx.setflex('OPD',v_conn_opdr_nr,v_mld_opdr_key,rec.mld_org_melding_key||'/'||rec.mld_opdr_volgnr);
|
|
|
|
|
|
IF LENGTH(rec.ken_coupa_onderwerp)>0
|
|
THEN
|
|
v_aanduiding:='Aanmaken kenmerk coupa onderwerp is mislukt.';
|
|
flx.setflex('OPD',v_coupa_onderwerp_key,v_mld_opdr_key,rec.ken_coupa_onderwerp);
|
|
END IF;
|
|
|
|
IF LENGTH(rec.ken_coupa_id)>0
|
|
THEN
|
|
v_aanduiding:='Aanmaken coupa ID is mislukt.';
|
|
flx.setflex('OPD',v_coupa_id_key,v_mld_opdr_key,rec.ken_coupa_id);
|
|
END IF;
|
|
IF LENGTH(rec.ken_coupa_inkoopnr)>0
|
|
THEN
|
|
v_aanduiding:='Aanmaken inkoopnr is mislukt.';
|
|
flx.setflex('OPD',v_coupa_inkoopnr_key,v_mld_opdr_key,rec.ken_coupa_inkoopnr);
|
|
END IF;
|
|
|
|
|
|
ELSE
|
|
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Niet gevonden',
|
|
v_aanduiding);
|
|
|
|
END IF;
|
|
END LOOP;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding||'('||v_regel||')';
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
-- Einden import opdrachten
|
|
|
|
|
|
|
|
-- Import tracking
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_TRACKING(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_TRACKING(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT fac_imp_csv_col01 module,
|
|
fac_imp_csv_col02 entity_id,
|
|
fac_imp_csv_col03 fac_tracking_oms,
|
|
fac_imp_csv_col04 fac_srtnotificatie_key,
|
|
fac_imp_csv_col05 fac_tracking_datum,
|
|
fac_imp_csv_col06 prs_perslid_email,
|
|
fac_imp_csv_col07 prs_perslid_oslogin
|
|
from fac_imp_csv
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_count NUMBER;
|
|
v_entity_key NUMBER;
|
|
v_prs_perslid_key NUMBER;
|
|
BEGIN
|
|
|
|
FOR rec in c
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg:='Ophalen van '||rec.module||' met key '||rec.entity_id||' is mislukt';
|
|
IF rec.module='CNT'
|
|
THEN
|
|
SElect cnt_contract_key into v_entity_key
|
|
FROM cnt_contract c
|
|
where c.cnt_contract_nummer=rec.entity_id
|
|
AND c.cnt_contract_verwijder IS NULL;
|
|
ELSIF rec.module='INS'
|
|
THEN
|
|
SELECT ins_deel_key
|
|
INTO v_entity_key
|
|
FROM ins_deel i
|
|
WHERE i.ins_deel_omschrijving=rec.entity_id
|
|
AND i.ins_deel_verwijder IS NULL;
|
|
END IF;
|
|
|
|
v_errormsg:='Ophalen van '||rec.prs_perslid_email||'/'||rec.prs_perslid_oslogin||' is mislukt';
|
|
|
|
SELECT prs_perslid_key
|
|
into v_prs_perslid_key
|
|
FROM prs_perslid p
|
|
where p.prs_perslid_email=rec.prs_perslid_email
|
|
OR p.prs_perslid_oslogin=rec.prs_perslid_oslogin;
|
|
|
|
INSERT INTO fac_tracking( fac_tracking_refkey,
|
|
fac_tracking_oms,
|
|
fac_srtnotificatie_key,
|
|
fac_tracking_datum,
|
|
prs_perslid_key)
|
|
VALUES( v_entity_key,
|
|
rec.fac_tracking_oms,
|
|
rec.fac_srtnotificatie_key,
|
|
rec.fac_tracking_datum,
|
|
v_prs_perslid_key);
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_error:=1;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
|
|
|
|
END;
|
|
/
|
|
-- EINDE IMPORT MELDINGEN
|
|
|
|
-- IMPORT Notities
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_NOTITIES(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_NOTITIES(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT fac_imp_csv.FAC_IMP_CSV_INDEX regel,
|
|
fac_imp_csv_col01 module_key,
|
|
fac_imp_csv_col02 module,
|
|
fac_imp_csv_col03 deel,
|
|
fac_imp_csv_col04 prs_perslid_oslogin,
|
|
fac_imp_csv_col05 notitie,
|
|
fac_imp_csv_col06 notitie_datum,
|
|
fac_imp_csv_col07 volgnr
|
|
from fac_imp_csv
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_count NUMBER;
|
|
v_entity_key NUMBER;
|
|
v_prs_perslid_key NUMBER;
|
|
v_mld_counter NUMBER;
|
|
v_opdr_counter NUMBER;
|
|
v_cnt_counter NUMBER;
|
|
v_melding_key NUMBER;
|
|
v_opdr_key NUMBER;
|
|
v_regel NUMBER;
|
|
v_module_key NUMBER;
|
|
v_note_key NUMBER;
|
|
BEGIN
|
|
v_mld_counter:=0;
|
|
v_opdr_counter:=0;
|
|
v_cnt_counter:=0;
|
|
v_count:=0;
|
|
|
|
FOR rec IN C
|
|
LOOP
|
|
v_regel:=rec.regel;
|
|
v_count:=v_count+1;
|
|
v_error:=0;
|
|
BEGIN
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_oslogin=COALESCE(rec.prs_perslid_oslogin,'_MIGRATIE');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_prs_perslid_key:=3;
|
|
END;
|
|
|
|
IF rec.module='MLD'
|
|
THEN
|
|
v_aanduiding:='Melding met nr '||rec.module_key||' is niet gevonden, regel wordt overgeslagen';
|
|
BEGIN
|
|
SELECT mld_melding_key
|
|
INTO v_module_key
|
|
FROM mld_melding
|
|
WHERE mld_melding_externnr=rec.module_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
ELSIF rec.module='OPD'
|
|
THEN
|
|
v_aanduiding:='Opdracht met nr '||rec.module_key||'/'||rec.volgnr||' is niet gevonden, regel wordt overgeslagen';
|
|
BEGIN
|
|
|
|
SELECT o.mld_opdr_key
|
|
INTO v_module_key
|
|
FROM mld_opdr o, mld_kenmerkopdr mko, mld_kenmerk mk
|
|
WHERE mko.mld_kenmerkopdr_waarde=(rec.module_key||'/'||rec.volgnr)
|
|
AND mk.mld_kenmerk_key = mko.mld_kenmerk_key
|
|
AND UPPER(mk.mld_kenmerk_omschrijving)='CONN OPDRACHTNR'
|
|
AND mk.mld_kenmerk_niveau='O'
|
|
AND o.mld_opdr_key = mko.mld_opdr_key;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
ELSIF rec.module='CNT'
|
|
THEN
|
|
v_aanduiding:='contract met nr '||rec.module_key||' is niet gevonden, regel wordt overgeslagen';
|
|
BEGIN
|
|
|
|
SELECT cnt_contract_key
|
|
INTO v_module_key
|
|
FROM cnt_contract
|
|
where cnt_contract_nummer_intern=rec.module_key
|
|
AND cnt_contract_verwijder IS NULL;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
END;
|
|
END IF;
|
|
|
|
IF v_error=0 THEN
|
|
IF rec.module='MLD' THEN
|
|
BEGIN
|
|
SELECT mld_melding_note_key INTO v_note_key
|
|
FROM mld_melding_note
|
|
WHERE mld_melding_key = v_module_key
|
|
AND mld_melding_note_aanmaak=fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS')
|
|
AND prs_perslid_key=v_prs_perslid_key
|
|
AND mld_melding_note_omschrijving = rec.notitie
|
|
AND mld_melding_note_flag=0;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
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_module_key,
|
|
fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS'),
|
|
SYSDATE,
|
|
v_prs_perslid_key,
|
|
rec.notitie,
|
|
0);
|
|
v_mld_counter:=v_mld_counter+1;
|
|
END;
|
|
ELSIF rec.module='OPD' THEN
|
|
BEGIN
|
|
SELECT mld_opdr_note_key INTO v_note_key
|
|
FROM mld_opdr_note
|
|
WHERE mld_opdr_key = v_module_key
|
|
AND mld_opdr_note_aanmaak=fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS')
|
|
AND prs_perslid_key=v_prs_perslid_key
|
|
AND mld_opdr_note_omschrijving = rec.notitie
|
|
AND mld_opdr_note_flag=0;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO mld_opdr_note (mld_opdr_key,
|
|
mld_opdr_note_aanmaak,
|
|
mld_opdr_note_wijzigdatum,
|
|
prs_perslid_key,
|
|
mld_opdr_note_omschrijving,
|
|
mld_opdr_note_flag)
|
|
VALUES (v_module_key,
|
|
fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS'),
|
|
SYSDATE,
|
|
v_prs_perslid_key,
|
|
rec.notitie,
|
|
0);
|
|
v_opdr_counter:=v_opdr_counter+1;
|
|
END;
|
|
ELSIF rec.module='CNT' THEN
|
|
BEGIN
|
|
SELECT cnt_contract_note_key
|
|
INTO v_note_key
|
|
FROM cnt_contract_note
|
|
WHERE cnt_contract_key = v_module_key
|
|
AND cnt_contract_note_aanmaak=fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS')
|
|
AND prs_perslid_key=v_prs_perslid_key
|
|
AND cnt_contract_note_omschrijving = rec.notitie;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO cnt_contract_note (cnt_contract_key,
|
|
cnt_contract_note_aanmaak,
|
|
prs_perslid_key,
|
|
cnt_contract_note_omschrijving)
|
|
VALUES (v_module_key,
|
|
fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS'),
|
|
v_prs_perslid_key,
|
|
rec.notitie);
|
|
v_cnt_counter:=v_cnt_counter+1;
|
|
END;
|
|
END IF;
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Niet gevonden',
|
|
v_aanduiding);
|
|
END If;
|
|
|
|
|
|
END LOOP;
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Melding Notie',
|
|
v_mld_counter||'/'||v_count||' Melding notities aangemaakt.');
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Opdracht Notie',
|
|
v_opdr_counter||'/'||v_count||' Opdracht notities aangemaakt.');
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Contract Notie',
|
|
v_cnt_counter||'/'||v_count||' Contract notities aangemaakt.');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding||'('||v_regel||')';
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_KENMERK_BIJLAGES(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
NULL;
|
|
-- Lezen standaard CSV in bestaat uit.
|
|
-- module;key;kenmerk_key; path old;filenaam; digest; size
|
|
--
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_KENMERK_BIJLAGES(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR sel
|
|
IS
|
|
SELECT f.fac_imp_csv_key fac_imp_csv_key,
|
|
f.fac_imp_csv_col01 module,
|
|
f.fac_imp_csv_col02 master_key,
|
|
f.fac_imp_csv_col03 master_volgnr,
|
|
f.fac_imp_csv_col04 kenmerk_key,
|
|
f.fac_imp_csv_col05 path_old,
|
|
f.fac_imp_csv_col06 filenaam,
|
|
f.fac_imp_csv_col07 digest,
|
|
f.fac_imp_csv_col08 file_size
|
|
FROM fac_imp_csv f
|
|
WHERE f.fac_import_key = p_import_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_regel NUMBER;
|
|
v_count NUMBER;
|
|
|
|
v_ref_key NUMBER;
|
|
v_kenmerk_key NUMBER;
|
|
v_fac_bijlagen_key NUMBER;
|
|
v_path VARCHAR2(1000);
|
|
v_copy VARCHAR2(1000);
|
|
|
|
BEGIN
|
|
v_regel:=0;
|
|
FOR rec in sel
|
|
LOOP
|
|
v_regel:=v_regel+1;
|
|
-- eerst de master key ophalen
|
|
BEGIN
|
|
|
|
IF rec.module = 'CNT'
|
|
THEN
|
|
v_aanduiding := 'Ophalen van het contract gaat fout ('||rec.master_key||')' ;
|
|
SELECT cnt_contract_key
|
|
INTO v_ref_key
|
|
FROM cnt_contract
|
|
WHERE cnt_contract_nummer_intern=rec.master_key;
|
|
|
|
v_aanduiding:='Ophalen van het contractkenmerk gaat fout';
|
|
SELECT cnt_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM cnt_kenmerk
|
|
WHERE cnt_kenmerk_key=rec.kenmerk_key
|
|
AND cnt_kenmerk_verwijder IS NULL;
|
|
|
|
v_path:=rec.module||'/'||SUBSTR(rec.module,1,1)||RPAD(LPAD(SUBSTR(v_ref_key,1,2),4,0),7,'_')||'/'||SUBSTR(rec.module,1,1)||v_ref_key||'/'|| v_kenmerk_key;
|
|
|
|
ELSIF rec.module='MLD'
|
|
THEN
|
|
IF rec.path_old LIKE 'MLD/M%'
|
|
THEN
|
|
v_aanduiding := 'Ophalen van het melding gaat fout ('||rec.master_key||')' ;
|
|
SELECT mld_melding_key
|
|
INTO v_ref_key
|
|
FROM mld_melding
|
|
WHERE mld_melding_externnr=rec.master_key;
|
|
|
|
v_aanduiding:='Ophalen van het meldingkenmerk '||rec.kenmerk_key||' gaat fout';
|
|
SELECT mld_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_kenmerk_key=rec.kenmerk_key
|
|
AND mld_kenmerk_verwijder IS NULL;
|
|
|
|
v_path:=rec.module||'/'||SUBSTR(rec.module,1,1)||RPAD(LPAD(SUBSTR(v_ref_key,1,2),4,0),7,'_')||'/'||SUBSTR(rec.module,1,1)||v_ref_key||'/'|| v_kenmerk_key;
|
|
ELSE
|
|
v_aanduiding := 'Ophalen van het opdracht gaat fout ('||rec.master_key||'/'||rec.master_volgnr||')' ;
|
|
|
|
SELECT mld_opdr_key
|
|
INTO v_ref_key
|
|
FROM mld_opdr
|
|
WHERE mld_opdr_externnr=rec.master_key||'/'||rec.master_volgnr;
|
|
|
|
v_aanduiding:='Ophalen van het opdracht kenmerk '||rec.kenmerk_key||' gaat fout';
|
|
SELECT mld_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_kenmerk_key=rec.kenmerk_key
|
|
AND mld_kenmerk_verwijder IS NULL;
|
|
|
|
v_path:=rec.module||'/'||SUBSTR(rec.module,1,1)||RPAD(LPAD(SUBSTR(v_ref_key,1,2),4,0),7,'_')||'/'||SUBSTR('O',1,1)||v_ref_key||'/'|| v_kenmerk_key;
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
v_aanduiding := 'Bijlage '||rec.filenaam||' is al ingelezen bij '||rec.module||' '||v_ref_key||'('||rec.master_key||')';
|
|
SELECT COUNT(*)
|
|
INTO v_count
|
|
from fac_bijlagen
|
|
where fac_bijlagen_module=rec.module
|
|
AND fac_bijlagen_refkey=v_ref_key
|
|
AND fac_bijlagen_kenmerk_key=v_kenmerk_key
|
|
AND fac_bijlagen_disk_directory=v_path
|
|
AND fac_bijlagen_filename=rec.filenaam;
|
|
|
|
IF v_count=0 AND v_ref_key >0 AND v_kenmerk_key>0
|
|
THEN
|
|
-- Gaanw we nu de key ophalen voor de nieuwe bijlage
|
|
SELECT fac_s_fac_bijlagen_key.nextval
|
|
INTO v_fac_bijlagen_key
|
|
FROM DUAL;
|
|
|
|
INSERT INTO fac_bijlagen( fac_bijlagen_key,
|
|
fac_bijlagen_module,
|
|
fac_bijlagen_refkey,
|
|
fac_bijlagen_kenmerk_key,
|
|
fac_bijlagen_disk_directory,
|
|
fac_bijlagen_filename,
|
|
fac_bijlagen_digest,
|
|
fac_bijlagen_file_size,
|
|
fac_bijlagen_root_key)
|
|
VALUES( v_fac_bijlagen_key,
|
|
rec.module,
|
|
v_ref_key,
|
|
v_kenmerk_key,
|
|
v_path,
|
|
rec.filenaam,
|
|
rec.digest,
|
|
rec.file_size,
|
|
v_fac_bijlagen_key);
|
|
|
|
v_copy:= 'xcopy /I "'||REPLACE(rec.path_old,CHR(47),CHR(92))||CHR(92)||rec.filenaam||'" e:'||CHR(92)||'temp'||CHR(92)||REPLACE(v_path, chr(47), chr(92))||CHR(92);
|
|
|
|
fac.imp_writelog(p_import_key, 'I', 'COPY',v_copy);
|
|
ELSE
|
|
fac.imp_writelog(p_import_key, 'W', 'al bekend',v_aanduiding);
|
|
END IF;
|
|
UPDATE fac_imp_csv
|
|
set fac_imp_csv_col10=v_path, fac_imp_csv_col11=v_copy, fac_imp_csv_col12=v_fac_bijlagen_key
|
|
WHERE fac_imp_csv_key = rec.fac_imp_csv_key;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
|
|
v_error:=1;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_aanduiding);
|
|
|
|
END;
|
|
|
|
END LOOP;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding||'('||v_regel||')';
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_WPRESERVERING(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_WPRESERVERING(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR sel
|
|
IS
|
|
SELECT f.fac_imp_csv_key fac_imp_csv_key,
|
|
f.fac_imp_csv_col01 reservering_key,
|
|
f.fac_imp_csv_col02 res_van,
|
|
f.fac_imp_csv_col03 res_tot,
|
|
f.fac_imp_csv_col04 res_aanmaak,
|
|
f.fac_imp_csv_col05 kostenplaats_nr,
|
|
f.fac_imp_csv_col06 contact_login,
|
|
f.fac_imp_csv_col07 contact_email,
|
|
f.fac_imp_csv_col08 CVAB_mode,
|
|
f.fac_imp_csv_col09 alg_ruimte_nr,
|
|
f.fac_imp_csv_col10 alg_gebouw_code,
|
|
f.fac_imp_csv_col11 activiteit,
|
|
f.fac_imp_csv_col12 werkplek,
|
|
f.fac_imp_csv_col13 res_volgnr
|
|
FROM fac_imp_csv f
|
|
WHERE f.fac_import_key = p_import_key
|
|
ORDER BY f.fac_import_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_regel NUMBER;
|
|
v_count NUMBER;
|
|
v_reservering_key NUMBER;
|
|
v_rsv_ruimte_key NUMBER;
|
|
v_res_activiteit_key NUMBER;
|
|
v_kenmerk_key NUMBER;
|
|
v_prs_perslid_key NUMBER;
|
|
v_res_deel_key NUMBER;
|
|
v_alg_ruimte_key NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_status_fo NUMBER;
|
|
v_status_bo NUMBER;
|
|
v_no_show NUMBER;
|
|
v_datumaanmaak DATE;
|
|
v_datum_van DATE;
|
|
v_datum_tot DATE;
|
|
BEGIN
|
|
|
|
v_regel:=0;
|
|
|
|
|
|
v_aanduiding:='Ophalen kenmerk key voor kenmerk CONN_RESNR is mislukt';
|
|
|
|
SELECT res_kenmerk_key
|
|
INTO v_kenmerk_key
|
|
FROM res_kenmerk
|
|
WHERE res_kenmerk_code='CONN_RESNR';
|
|
|
|
|
|
FOR rec IN sel
|
|
LOOP
|
|
v_error:=0;
|
|
v_count:=0;
|
|
SELECT count(*)
|
|
INTO v_count
|
|
FROM res_rsv_ruimte r, res_kenmerkwaarde rk
|
|
where rk.res_kenmerkreservering_waarde= rec.reservering_key||'/'|| rec.res_volgnr
|
|
AND rk.RES_KENMERK_KEY=v_kenmerk_key
|
|
AND r.res_rsv_ruimte_key = rk.res_rsv_ruimte_key
|
|
AND r.res_rsv_ruimte_verwijder IS NULL;
|
|
|
|
IF v_count=0
|
|
THEN
|
|
|
|
-- haal de werkplek op , biij niet gevionden skip record,
|
|
BEGIN
|
|
v_aanduiding:='Ophalen werkplek '||rec.werkplek||' is mislukt.';
|
|
SELECT res_deel_key
|
|
INTO v_res_deel_key
|
|
FROM res_deel r
|
|
WHERE UPPER(r.res_deel_omschrijving)=UPPER(rec.werkplek)
|
|
AND r.res_deel_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'W', 'WP niet gevonden'|| rec.werkplek,'');
|
|
v_error :=1 ;
|
|
END;
|
|
|
|
|
|
-- haal alg_ruimte key op op bais van alg_ruimte nr en gebouw_code,
|
|
BEGIN
|
|
v_aanduiding:='Ophalen ruimte'||rec.alg_ruimte_nr||'-'||rec.alg_gebouw_code||' is mislukt.';
|
|
SELECT alg_ruimte_key
|
|
INTO v_alg_ruimte_key
|
|
FROM alg_v_allonrgoed_gegevens a
|
|
WHERE UPPER(a.alg_ruimte_nr)=UPPER(rec.alg_ruimte_nr)
|
|
AND UPPER(a.alg_gebouw_code) = UPPER(rec.alg_gebouw_code);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error :=1 ;
|
|
fac.imp_writelog (p_import_key, 'W', 'ALG RUIMTE niet gevonden'|| rec.alg_ruimte_nr||'-'||rec.alg_gebouw_code,'');
|
|
|
|
END;
|
|
|
|
BEGIN
|
|
v_aanduiding:='Ophalen activiteit '||rec.activiteit||' is mislukt.';
|
|
SELECT res_activiteit_key
|
|
INTO v_res_activiteit_key
|
|
FROM res_activiteit
|
|
WHERE UPPER(res_activiteit_omschrijving)=UPPER(rec.activiteit)
|
|
AND res_activiteit_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
fac.imp_writelog (p_import_key, 'W', 'Activiteit niet gevonden'|| rec.activiteit,'');
|
|
END;
|
|
|
|
v_aanduiding:='Ophalen persoon '||rec.contact_login||'op bais van oslogin is mislukt.';
|
|
BEGIN
|
|
SELECT p.prs_perslid_key
|
|
INTO v_prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_oslogin=rec.contact_login
|
|
AND p.prs_perslid_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_error:=1;
|
|
fac.imp_writelog (p_import_key, 'W', 'Persoon niet gevonden : '|| rec.contact_login,'');
|
|
END;
|
|
|
|
IF v_error=0
|
|
THEN
|
|
|
|
-- haal kostenplaats op als deze er is,
|
|
BEGIN
|
|
v_aanduiding:='Ophalen kostenplaats '||rec.kostenplaats_nr||' is mislukt.';
|
|
SELECT prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM prs_kostenplaats
|
|
WHERE UPPER(prs_kostenplaats_nr)=UPPER(rec.kostenplaats_nr)
|
|
AND prs_kostenplaats_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_prs_kostenplaats_key:=NULL;
|
|
END;
|
|
|
|
-- haal kostenplaats op als deze er is,
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
v_datumaanmaak:= fac.safe_to_date(rec.res_aanmaak,'DD-MM-YYYY HH24:MI:SS');
|
|
v_datum_van:= fac.safe_to_date(rec.res_van,'DD-MM-YYYY HH24:MI:SS');
|
|
v_datum_tot:= fac.safe_to_date(rec.res_tot,'DD-MM-YYYY HH24:MI:SS');
|
|
|
|
|
|
SELECT count(*) INTO v_count
|
|
FROM res_rsv_ruimte rrr,
|
|
res_rsv_deel rd
|
|
WHERE rrr.res_rsv_ruimte_van =v_datum_van
|
|
AND rrr.res_rsv_ruimte_tot = v_datum_tot
|
|
AND rd.res_rsv_ruimte_key= rrr.res_rsv_ruimte_key
|
|
AND rd.res_deel_key=v_res_deel_key
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL;
|
|
|
|
IF v_count=0
|
|
THEN
|
|
v_regel:=v_regel+1;
|
|
v_errormsg := 'Fout toevoegen res_reservering';
|
|
INSERT INTO res_reservering (res_reservering_verwijder)
|
|
VALUES (NULL)
|
|
RETURNING res_reservering_key
|
|
INTO v_reservering_key;
|
|
|
|
v_errormsg := 'Fout toevoegen res_rsv_ruimte.';
|
|
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,
|
|
1,
|
|
NULL,
|
|
NULL,
|
|
TO_NUMBER (NULL),
|
|
v_prs_perslid_key,
|
|
v_prs_perslid_key,
|
|
v_alg_ruimte_key,
|
|
2, -- CVAB-mode op Afhalen!
|
|
v_res_activiteit_key,
|
|
v_datum_van,
|
|
v_datum_tot,
|
|
TO_NUMBER (NULL),
|
|
v_no_show,
|
|
TO_NUMBER (NULL),
|
|
v_status_fo,
|
|
v_no_show,
|
|
NULL) -- Externnr moet uniek zijn en TD-nr is dat niet!
|
|
RETURNING res_rsv_ruimte_key
|
|
INTO v_rsv_ruimte_key;
|
|
|
|
v_errormsg := 'Fout toevoegen res_rsv_deel.';
|
|
INSERT INTO res_rsv_deel (res_deel_key,
|
|
res_rsv_deel_aantal,
|
|
res_status_bo_key,
|
|
res_rsv_ruimte_key,
|
|
res_rsv_deel_van,
|
|
res_rsv_deel_tot)
|
|
VALUES (v_res_deel_key,
|
|
1,
|
|
v_status_bo,
|
|
v_rsv_ruimte_key,
|
|
v_datum_van,
|
|
v_datum_tot);
|
|
|
|
-- Toevoegen Reserveringsnummer TOPdesk
|
|
v_errormsg := 'Fout toevoegen Reserveringsnummer TOPdesk';
|
|
flx.setflex('RES',v_kenmerk_key,v_rsv_ruimte_key,rec.reservering_key||'/1');
|
|
|
|
|
|
fac.trackaction ('RESNEW', v_rsv_ruimte_key, NULL, SYSDATE, 'Gemigreerd vanuit CONN');
|
|
ELSE
|
|
fac.imp_writelog (p_import_key, 'W', ' WP '|| rec.werkplek||' is al bezet op '||TO_CHAR(v_datum_van,'DD-MM-YYYY HH24:MI:SS')||'.','');
|
|
END IF;
|
|
|
|
ELSE
|
|
fac.imp_writelog (p_import_key, 'W', ' WP reserveringen '|| rec.reservering_key||' niet verwerkt','');
|
|
END IF;
|
|
ELSE
|
|
fac.imp_writelog (p_import_key, 'W', ' WP reserveringen '|| rec.reservering_key||'/'||rec.res_volgnr||' is al bekend.','');
|
|
|
|
END IF;
|
|
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (p_import_key, 'S', v_regel||' WP reserveringen toegevoegd: ' || TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS'), '');
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding||'('||v_regel||')';
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_LAADINFRA(p_import_key in NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_import_ins(p_import_key);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_LAADINFRA(p_import_key in NUMBER)
|
|
AS
|
|
CURSOR sel
|
|
IS
|
|
SELECT ins_srtdeel_code,
|
|
ins_deel_omschrijving,
|
|
INS_KENMERKWAARDE19 ins_srtdeel_parent,
|
|
INS_KENMERKWAARDE20 ins_deel_parent,
|
|
INS_KENMERKWAARDE16 ins_deel_breedte,
|
|
INS_KENMERKWAARDE17 ins_deel_lengte
|
|
FROM fac_imp_ins
|
|
WHERE INS_KENMERKWAARDE19 IS NOT NULL
|
|
AND INS_KENMERKWAARDE20 IS NOT NULL;
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
v_regel NUMBER;
|
|
v_ins_deel_key NUMBER;
|
|
v_ins_deel_parent_key NUMBER;
|
|
v_ins_deelkoppeling_count NUMBER;
|
|
|
|
BEGIN
|
|
fac_update_ins(p_import_key);
|
|
commit;
|
|
|
|
FOR rec in sel
|
|
LOOP
|
|
v_ins_deel_key:=0;
|
|
v_ins_deel_parent_key:=0;
|
|
BEGIN
|
|
v_errormsg := 'Object '||rec.ins_deel_omschrijving||' niet gevonden, regel wordt overgeslagen.';
|
|
SELECT ins_deel_key
|
|
INTO v_ins_deel_key
|
|
FROM ins_v_aanwezigdeel i , ins_srtdeel id
|
|
WHERE UPPER(i.ins_deel_omschrijving)=UPPER(rec.ins_deel_omschrijving)
|
|
AND id.ins_srtdeel_code=UPPER(rec.ins_srtdeel_code)
|
|
AND i.ins_srtdeel_key=id.ins_srtdeel_key;
|
|
|
|
v_errormsg := 'Parent Object '||rec.ins_deel_parent||' ('||rec.ins_srtdeel_parent||') niet gevonden, regel wordt overgeslagen.-'||v_ins_deel_key;
|
|
SELECT ins_deel_key
|
|
INTO v_ins_deel_parent_key
|
|
FROM ins_v_aanwezigdeel i, ins_srtdeel id
|
|
WHERE UPPER(i.ins_deel_omschrijving)=UPPER(rec.ins_deel_parent)
|
|
AND id.ins_srtdeel_upper=UPPER(rec.ins_srtdeel_parent)
|
|
AND i.ins_srtdeel_key=id.ins_srtdeel_key
|
|
AND id.ins_srtdeel_verwijder IS NULL
|
|
AND id.ins_srtdeel_module = 'INS';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog(p_import_key, 'E',v_errormsg,'Fout ophalen object');
|
|
END;
|
|
|
|
|
|
v_errormsg := 'Object '||v_ins_deel_key||' updaten gaat fout met '||rec.ins_deel_breedte|| '-'||rec.ins_deel_lengte;
|
|
IF v_ins_deel_key> 0 AND LENGTH(rec.ins_deel_breedte)>1 AND LENGTH(rec.ins_deel_lengte)>1
|
|
THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_x=fac.safe_to_number(rec.ins_deel_breedte), ins_deel_y=fac.safe_to_number(rec.ins_deel_lengte)
|
|
WHERE ins_deel_key=v_ins_deel_key;
|
|
END IF;
|
|
|
|
IF v_ins_deel_key>0 AND v_ins_deel_parent_key>0
|
|
THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_ins_deelkoppeling_count
|
|
from ins_deelkoppeling
|
|
where ins_deelkoppeling_van_key=v_ins_deel_parent_key
|
|
AND ins_deelkoppeling_naar_key=v_ins_deel_key
|
|
AND ins_deelkoppeling_verwijder IS NULL;
|
|
IF v_ins_deelkoppeling_count =0
|
|
THEN
|
|
INSERT INTO ins_deelkoppeling(ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key, ins_deelkoppeling_aanmaak)
|
|
VALUES(v_ins_deel_parent_key, v_ins_deel_key,SYSDATE);
|
|
fac.imp_writelog(p_import_key,'I','Objecten '||rec.ins_deel_omschrijving||' is gekoppeld aan '||rec.ins_deel_parent,'GEKOPPELD');
|
|
COMMIT;
|
|
END IF;
|
|
|
|
|
|
END IF;
|
|
END LOOP;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding||'('||v_regel||')';
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE tdnl_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) 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 tdnl_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 tdnl_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 tdnl_import_mjobtaken;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE tdnl_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 := tdnl.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 VIEW tdnl_v_gebouw_xy
|
|
(
|
|
id,
|
|
coordx,
|
|
coordy,
|
|
waarde,
|
|
title,
|
|
regio,
|
|
consessie,
|
|
color
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_key id,
|
|
l.alg_locatie_x coordx,
|
|
l.alg_locatie_y coordy,
|
|
l.alg_locatie_code waarde,
|
|
l.ALG_LOCATIE_OMSCHRIJVING title,
|
|
rg.alg_regio_omschrijving regio,
|
|
d.alg_district_omschrijving concessie,
|
|
COALESCE((SELECT fud.fac_usrdata_omschr
|
|
FROM fac_usrtab fut,
|
|
fac_usrdata fud
|
|
WHERE UPPER(fut.fac_usrtab_naam)=UPPER('ProdLijnKleur')
|
|
AND fud.fac_usrtab_key = fut.fac_usrtab_key
|
|
AND UPPER(fud.fac_usrdata_code)=UPPER(SUBSTR(rg.alg_regio_upper,1,2))),'#A3CAB8') color
|
|
FROM alg_v_aanweziglocatie l,
|
|
alg_v_aanwezigdistrict d,
|
|
alg_v_aanwezigregio rg
|
|
WHERE l.alg_locatie_x IS NOT NULL
|
|
AND l.alg_locatie_y IS NOT NULL
|
|
AND d.alg_district_key = l.alg_district_key
|
|
AND rg.alg_regio_key = d.alg_regio_key;
|
|
|
|
CREATE OR REPLACE VIEW tdnl_v_gebouw_rap
|
|
(
|
|
alg_productlijn,
|
|
alg_regio,
|
|
alg_locatie_code,
|
|
alg_locatie,
|
|
alg_locatie_x,
|
|
alg_locatie_y,
|
|
alg_gebouw_code,
|
|
alg_gebouw,
|
|
alg_gebouw_x,
|
|
alg_gebouw_y,
|
|
kenmerk,
|
|
kenmerkwaarde
|
|
)
|
|
AS
|
|
SELECT r.alg_regio_omschrijving,
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
l.alg_locatie_x,
|
|
l.alg_locatie_y,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_omschrijving,
|
|
g.alg_gebouw_x,
|
|
g.alg_gebouw_y,
|
|
ak.alg_kenmerk_omschrijving kenmerk,
|
|
tdnl.get_flex_value ('ALG',
|
|
ak.alg_kenmerk_key,
|
|
g.alg_gebouw_key,
|
|
fkd.fac_kenmerkdomein_key,
|
|
'G')
|
|
kenmerkwaarde
|
|
FROM alg_regio r,
|
|
alg_district d,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_kenmerk ak,
|
|
alg_onrgoedkenmerk ao,
|
|
fac_kenmerkdomein fkd
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
and d.alg_district_key = l.alg_district_key
|
|
and r.alg_regio_key = d.alg_regio_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND ao.alg_onrgoed_key = g.alg_gebouw_key
|
|
AND fkd.fac_kenmerkdomein_key(+) = ak.fac_kenmerkdomein_key
|
|
AND ao.alg_onrgoed_niveau = 'G';
|
|
|
|
CREATE OR REPLACE VIEW tdnl_v_concessie_locatie_matrix
|
|
(
|
|
concessie_key,
|
|
Concessie,
|
|
locatie_key,
|
|
locatie,
|
|
concessie_directeur_key,
|
|
concessie_directeur,
|
|
operationeel_manager_key,
|
|
operationeel_manager,
|
|
locatie_manager_key,
|
|
locatie_manager
|
|
)
|
|
AS
|
|
SELECT c.alg_district_key concessie_key,
|
|
c .alg_district_omschrijving Concessie,
|
|
l.alg_locatie_key locatie_key,
|
|
l.alg_locatie_omschrijving locatie,
|
|
(SELECT p.prs_perslid_key
|
|
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames p
|
|
WHERE ok.alg_onrgoed_key = c.alg_district_key
|
|
AND ok.alg_kenmerk_key = 1001
|
|
AND ok.alg_onrgoed_niveau = 'D'
|
|
AND p.prs_perslid_key =
|
|
FAC.SAFE_TO_NUMBER (ok.alg_onrgoedkenmerk_waarde))
|
|
concessie_directeur_key,
|
|
(SELECT p.prs_perslid_naam_full
|
|
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames p
|
|
WHERE ok.alg_onrgoed_key = c.alg_district_key
|
|
AND ok.alg_kenmerk_key = 1001
|
|
AND ok.alg_onrgoed_niveau = 'D'
|
|
AND p.prs_perslid_key =
|
|
FAC.SAFE_TO_NUMBER (ok.alg_onrgoedkenmerk_waarde))
|
|
concessie_directeur,
|
|
(SELECT p.prs_perslid_key
|
|
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames p
|
|
WHERE ok.alg_onrgoed_key = c.alg_district_key
|
|
AND ok.alg_kenmerk_key = 1002
|
|
AND ok.alg_onrgoed_niveau = 'D'
|
|
AND p.prs_perslid_key =
|
|
FAC.SAFE_TO_NUMBER (ok.alg_onrgoedkenmerk_waarde))
|
|
operationeel_manager_key,
|
|
(SELECT p.prs_perslid_naam_full
|
|
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames p
|
|
WHERE ok.alg_onrgoed_key = c.alg_district_key
|
|
AND ok.alg_kenmerk_key = 1002
|
|
AND ok.alg_onrgoed_niveau = 'D'
|
|
AND p.prs_perslid_key =
|
|
FAC.SAFE_TO_NUMBER (ok.alg_onrgoedkenmerk_waarde))
|
|
operationeel_manager,
|
|
(SELECT p.prs_perslid_key
|
|
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames p
|
|
WHERE ok.alg_onrgoed_key = c.alg_district_key
|
|
AND ok.alg_kenmerk_key = 1003
|
|
AND ok.alg_onrgoed_niveau = 'L'
|
|
AND p.prs_perslid_key =
|
|
FAC.SAFE_TO_NUMBER (ok.alg_onrgoedkenmerk_waarde))
|
|
locatie_manager_key,
|
|
(SELECT p.prs_perslid_naam_full
|
|
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames p
|
|
WHERE ok.alg_onrgoed_key = c.alg_district_key
|
|
AND ok.alg_kenmerk_key = 1003
|
|
AND ok.alg_onrgoed_niveau = 'L'
|
|
AND p.prs_perslid_key =
|
|
FAC.SAFE_TO_NUMBER (ok.alg_onrgoedkenmerk_waarde))
|
|
locatie_manager
|
|
FROM alg_district c,
|
|
alg_locatie l
|
|
WHERE l.alg_district_key = c.alg_district_key;
|
|
|
|
CREATE OR REPLACE VIEW TDN_V_MLD_LAADPALEN
|
|
(
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
mld_status,
|
|
aantal
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
mstat.mld_statuses_omschrijving,
|
|
COUNT (*)
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_statuses mstat,
|
|
alg_locatie l
|
|
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_stdmelding_code = 'LAADPAALSTORING'
|
|
AND l.alg_locatie_key = m.mld_alg_locatie_key
|
|
AND m.mld_melding_status = mstat.mld_statuses_key
|
|
AND mstat.mld_statuses_omschrijving IN
|
|
('Nieuw', 'Te accepteren', 'Uitgegeven',' In behandeling','Afgemeld')
|
|
GROUP BY l.alg_locatie_code, l.alg_locatie_omschrijving,mstat.mld_statuses_omschrijving;
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_CONCESSIEDIRECTEUREN
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_friendly
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kenmerk pk,
|
|
prs_kenmerklink pkl
|
|
WHERE UPPER (pk.prs_kenmerk_omschrijving) = 'IS CONCESSIE DIRECTEUR'
|
|
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
|
|
AND pkl.prs_kenmerklink_waarde = '1'
|
|
AND p.prs_perslid_key = pkl.prs_link_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND pf.prs_perslid_key = p.prs_perslid_key;
|
|
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_OPERATMANAGER
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_friendly
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kenmerk pk,
|
|
prs_kenmerklink pkl
|
|
WHERE UPPER (pk.prs_kenmerk_omschrijving) = 'IS OPERATIONAAL MANAGER'
|
|
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
|
|
AND pkl.prs_kenmerklink_waarde = '1'
|
|
AND p.prs_perslid_key = pkl.prs_link_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND pf.prs_perslid_key = p.prs_perslid_key;
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_LOCATIEMANAGER
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_friendly
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kenmerk pk,
|
|
prs_kenmerklink pkl
|
|
WHERE UPPER (pk.prs_kenmerk_omschrijving) = 'IS LOCATIE MANAGER'
|
|
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
|
|
AND pkl.prs_kenmerklink_waarde = '1'
|
|
AND p.prs_perslid_key = pkl.prs_link_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND pf.prs_perslid_key = p.prs_perslid_key;
|
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_FACILITAIRMANAGER
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_friendly
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kenmerk pk,
|
|
prs_kenmerklink pkl
|
|
WHERE UPPER (pk.prs_kenmerk_omschrijving) = 'IS MANAGER FACILITAIR'
|
|
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
|
|
AND pkl.prs_kenmerklink_waarde = '1'
|
|
AND p.prs_perslid_key = pkl.prs_link_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND pf.prs_perslid_key = p.prs_perslid_key;
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_FACILITAIRAANSP
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_friendly
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kenmerk pk,
|
|
prs_kenmerklink pkl
|
|
WHERE UPPER (pk.prs_kenmerk_omschrijving) = 'IS FACILITAIR AANSPREEKPUNT'
|
|
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
|
|
AND pkl.prs_kenmerklink_waarde = '1'
|
|
AND p.prs_perslid_key = pkl.prs_link_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND pf.prs_perslid_key = p.prs_perslid_key;
|
|
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_VASTGOEDMANAGER
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_friendly
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kenmerk pk,
|
|
prs_kenmerklink pkl
|
|
WHERE UPPER (pk.prs_kenmerk_omschrijving) = 'IS MANAGER VASTGOED'
|
|
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
|
|
AND pkl.prs_kenmerklink_waarde = '1'
|
|
AND p.prs_perslid_key = pkl.prs_link_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND pf.prs_perslid_key = p.prs_perslid_key;
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_WERKPLAATSMANAGER
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM
|
|
)
|
|
AS
|
|
SELECT pf.prs_perslid_key,
|
|
pf.prs_perslid_naam_friendly
|
|
FROM prs_perslid p,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_kenmerk pk,
|
|
prs_kenmerklink pkl
|
|
WHERE UPPER (pk.prs_kenmerk_omschrijving) = 'IS MANAGER WERKPLAATS'
|
|
AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key
|
|
AND pkl.prs_kenmerklink_waarde = '1'
|
|
AND p.prs_perslid_key = pkl.prs_link_key
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
AND pf.prs_perslid_key = p.prs_perslid_key;
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_SChOONMAAKRONDES
|
|
(
|
|
melding_key,
|
|
melding_datum,
|
|
melding_status,
|
|
melding_melder,
|
|
locatie_code,
|
|
locatie_omschrijving,
|
|
damestoilet,
|
|
damestoiet_opm,
|
|
herentoilet,
|
|
herentoilet_opm,
|
|
middelen,
|
|
middelen_opm,
|
|
vloer,
|
|
vloer_opm,
|
|
gang,
|
|
gang_opm,
|
|
bureau,
|
|
bureau_opm,
|
|
werkkast,
|
|
werkkast_opm,
|
|
trap,
|
|
trap_opm,
|
|
glasbewassing,
|
|
glasbewassing_opm
|
|
)
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
TRUNC (m.MLD_MELDING_DATUM)
|
|
melding_datum,
|
|
stat.mld_statuses_omschrijving status,
|
|
p.prs_perslid_naam_friendly melder,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'DAMESTOILET'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
damestoilet,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'DAMESTOILET_OPM')
|
|
damestoilet_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'HERENTOILET'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
herentoilet,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'HERENTOILET_OPM')
|
|
herentoilet_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'MIDDELEN'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
middelen,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'MIDDELEN_OPM')
|
|
middelen_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'VLOER'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
vloer,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'VLOER_OPM')
|
|
vloer_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'GANG'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
gang,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'GANG_OPM')
|
|
gang_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'BUREAU'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
bureau,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'BUREAU_OPM')
|
|
bureau_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'WERKKAST'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
werkkast,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'WERKKAST_OPM')
|
|
werkkast_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'TRAP'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
trap,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'TRAP_OPM')
|
|
trap_opm,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm, fac_usrdata fud
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'GLASBEWAS'
|
|
AND fud.fac_usrdata_key = mkm.mld_kenmerkmelding_waarde)
|
|
glasbewassing,
|
|
(SELECT mkm.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerk k, mld_kenmerkmelding mkm
|
|
WHERE mkm.mld_melding_key = m.mld_melding_key
|
|
AND k.mld_kenmerk_key = mkm.mld_kenmerk_key
|
|
AND k.mld_kenmerk_code = 'GLASBEWAS_OPM')
|
|
glasbewassing_opm
|
|
FROM mld_melding m,
|
|
prs_v_perslid_fullnames_all p,
|
|
mld_statuses stat,
|
|
alg_v_aanweziglocatie l
|
|
WHERE m.mld_stdmelding_key = 33
|
|
AND stat.mld_statuses_key = m.mld_melding_status
|
|
AND p.prs_perslid_key = m.prs_perslid_key
|
|
AND l.alg_locatie_key = m.mld_alg_locatie_key;
|
|
|
|
CREATE OR REPLACE VIEW tdnl_v_coupa_exp_error
|
|
( opdr_key,
|
|
melding,
|
|
melder,
|
|
omschrijving,
|
|
track_datum,
|
|
opdr_datum)
|
|
AS
|
|
SELECT DISTINCT o.mld_opdr_key,
|
|
o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr,
|
|
(SELECT p.prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames p
|
|
WHERE p.prs_perslid_key=o.prs_perslid_key) aanvrager,
|
|
ft.fac_tracking_oms,
|
|
ft.fac_tracking_datum,
|
|
o.mld_opdr_datumbegin
|
|
FROM mld_opdr o, fac_tracking ft, fac_srtnotificatie fs
|
|
WHERE ft.fac_tracking_refkey=o.mld_opdr_key
|
|
AND fs.fac_srtnotificatie_code='ORDSNX'
|
|
AND ft.fac_srtnotificatie_key=fs.fac_srtnotificatie_key
|
|
AND (upper(ft.fac_tracking_oms) like 'COUPA_FAIL%' OR upper(ft.fac_tracking_oms) like '%COUPA ERROR%');
|
|
|
|
|
|
-- View die voor die opdrachten die gereed gezet zijn voor export naar coupa
|
|
-- met aanvraagnr en InkoopNr.
|
|
CREATE OR REPLACE VIEW tdnl_v_coupa_rapport
|
|
AS
|
|
SELECT o.mld_melding_key opdrachtnr,
|
|
o.mld_opdr_bedrijfopdr_volgnr volgnr,
|
|
o.mld_opdr_key opdr_key,
|
|
(SELECT p.prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames p
|
|
WHERE p.prs_perslid_key=o.prs_perslid_key) aanvrager,
|
|
(SELECT ko2.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko2
|
|
WHERE ko2.mld_opdr_key = o.mld_opdr_key
|
|
AND ko2.mld_kenmerk_key=84) aanvraagnr,
|
|
(SELECT ko1.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko1
|
|
WHERE ko1.mld_opdr_key = o.mld_opdr_key
|
|
AND ko1.mld_kenmerk_key=85) inkoopnr,
|
|
o.mld_opdr_datumbegin opd_datumbegin,
|
|
(SELECT ft.fac_tracking_datum
|
|
FROM fac_tracking ft
|
|
WHERE ft.fac_srtnotificatie_key=92 -- ORDSNT
|
|
AND lower(ft.fac_tracking_oms)='opdracht in bestand klaargezet'
|
|
AND ft.fac_tracking_refkey=o.mld_opdr_key) datum_verstuurd
|
|
FROM mld_opdr o, mld_kenmerkopdr ko
|
|
WHERE o.mld_statusopdr_key=5
|
|
AND ko.mld_opdr_key = o.mld_opdr_key
|
|
AND ko.mld_kenmerk_key=84
|
|
AND ko.mld_kenmerkopdr_waarde IS NOT NULL;
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_OVERZICHTTAKEN
|
|
AS
|
|
SELECT x.*,
|
|
CASE
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=30 THEN
|
|
'Volgende maand'
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=14 AND TRUNC(x.taak_datum)-TRUNC(SYSDATE)<30 THEN
|
|
'Deze maand'
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=7 AND TRUNC(x.taak_datum)-TRUNC(SYSDATE)<14 THEN
|
|
'Komende week'
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=0 AND TRUNC(x.taak_datum)-TRUNC(SYSDATE)<7 THEN
|
|
'Deze week'
|
|
ELSE
|
|
'Te laat'
|
|
END taak_status,
|
|
TRUNC(taak_datum)-TRUNC(SYSDATE) dagen_tot
|
|
FROM (
|
|
SELECT i.ins_deel_key,
|
|
i.ins_deel_omschrijving,
|
|
id.ins_discipline_omschrijving,
|
|
isg.ins_srtgroep_omschrijving,
|
|
isd.ins_srtdeel_omschrijving,
|
|
l.alg_locatie_code,
|
|
l.ALG_LOCATIE_OMSCHRIJVING,
|
|
r.alg_regio_omschrijving,
|
|
d.alg_district_omschrijving,
|
|
isc.ins_srtcontrole_omschrijving,
|
|
INS.NEXTCYCLUSDATE(
|
|
i.ins_deel_key,
|
|
isc.ins_srtcontrole_key,
|
|
1,
|
|
0
|
|
) taak_datum,
|
|
(SELECT MAX(idsc.ins_deelsrtcontrole_datum)
|
|
FROM ins_deelsrtcontrole idsc
|
|
WHERE idsc.ins_deel_key=i.ins_deel_key
|
|
AND idsc.ins_srtcontrole_key=isc.ins_srtcontrole_key) laatste_taakdatum,
|
|
(SELECT MAX(idsc.ins_deelsrtcontrole_plandatum)
|
|
from ins_deelsrtcontrole idsc
|
|
WHERE idsc.ins_deel_key=i.ins_deel_key
|
|
AND idsc.ins_srtcontrole_key=isc.ins_srtcontrole_key
|
|
AND idsc.ins_deelsrtcontrole_status=0 ) plan_taakdatum
|
|
FROM ins_deel i,
|
|
ins_srtdeel isd,
|
|
ins_discipline id,
|
|
ins_srtgroep isg,
|
|
ins_srtcontrole isc,
|
|
alg_v_allonrgoed_gegevens a,
|
|
alg_district d,
|
|
alg_regio r,
|
|
alg_locatie l
|
|
WHERE 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 isc.ins_srtinstallatie_key = isd.ins_srtdeel_key
|
|
AND i.ins_alg_ruimte_key = a.alg_ruimte_key
|
|
AND a.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND ( TRUNC(l.alg_locatie_vervaldatum) > TRUNC(sysdate)
|
|
OR l.alg_locatie_vervaldatum IS NULL )
|
|
AND d.alg_regio_key = r.alg_regio_key) x;
|
|
--AND i.ins_deel_omschrijving='BR_Blsr0034') x;
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_OVERZICHTTAKEN_2
|
|
AS
|
|
SELECT x.*,
|
|
CASE
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=30 THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END volgende_maand,
|
|
CASE
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=14 AND TRUNC(x.taak_datum)-TRUNC(SYSDATE)<30 THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END Deze_maand,
|
|
CASE
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=7 AND TRUNC(x.taak_datum)-TRUNC(SYSDATE)<14 THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END komende_week,
|
|
CASE
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)>=0 AND TRUNC(x.taak_datum)-TRUNC(SYSDATE)<7 THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END Deze_week,
|
|
CASE
|
|
WHEN TRUNC(x.taak_datum)-TRUNC(SYSDATE)<0 THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END Te_laat,
|
|
TRUNC(taak_datum)-TRUNC(SYSDATE) dagen_tot
|
|
FROM (
|
|
SELECT i.ins_deel_key,
|
|
i.ins_deel_omschrijving,
|
|
id.ins_discipline_omschrijving,
|
|
isg.ins_srtgroep_omschrijving,
|
|
isd.ins_srtdeel_omschrijving,
|
|
l.alg_locatie_code,
|
|
l.ALG_LOCATIE_OMSCHRIJVING,
|
|
l.alg_locatie_key,
|
|
r.alg_regio_omschrijving,
|
|
d.alg_district_omschrijving,
|
|
d.ALG_DISTRICT_KEY,
|
|
isc.ins_srtcontrole_omschrijving,
|
|
INS.NEXTCYCLUSDATE(
|
|
i.ins_deel_key,
|
|
isc.ins_srtcontrole_key,
|
|
1,
|
|
0
|
|
) taak_datum,
|
|
(SELECT MAX(idsc.ins_deelsrtcontrole_datum)
|
|
FROM ins_deelsrtcontrole idsc
|
|
WHERE idsc.ins_deel_key=i.ins_deel_key
|
|
AND idsc.ins_srtcontrole_key=isc.ins_srtcontrole_key) laatste_taakdatum,
|
|
(SELECT MAX(idsc.ins_deelsrtcontrole_plandatum)
|
|
from ins_deelsrtcontrole idsc
|
|
WHERE idsc.ins_deel_key=i.ins_deel_key
|
|
AND idsc.ins_srtcontrole_key=isc.ins_srtcontrole_key
|
|
AND idsc.ins_deelsrtcontrole_status=0 ) plan_taakdatum
|
|
FROM ins_deel i,
|
|
ins_srtdeel isd,
|
|
ins_discipline id,
|
|
ins_srtgroep isg,
|
|
ins_srtcontrole isc,
|
|
alg_v_allonrgoed_gegevens a,
|
|
alg_district d,
|
|
alg_regio r,
|
|
alg_locatie l
|
|
WHERE 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 isc.ins_srtinstallatie_key = isd.ins_srtdeel_key
|
|
AND i.ins_alg_ruimte_key = a.alg_ruimte_key
|
|
AND a.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND ( TRUNC(l.alg_locatie_vervaldatum) > TRUNC(sysdate)
|
|
OR l.alg_locatie_vervaldatum IS NULL )
|
|
AND d.alg_regio_key = r.alg_regio_key) x;
|
|
|
|
CREATE OR REPLACE VIEW TDNL_V_MLD_ACCEPTATIE_UREN
|
|
AS
|
|
SELECT vakgroeptype,
|
|
mld_melding_key,
|
|
CASE
|
|
WHEN ROUND ((accept_datum - gevalideerde_datum) * 24, 2) < 0
|
|
THEN
|
|
0
|
|
ELSE
|
|
ROUND ((accept_datum - gevalideerde_datum) * 24, 2)
|
|
END
|
|
AS accept_uren,
|
|
accept_datum,
|
|
gevalideerde_datum,
|
|
mld_melding_datum,
|
|
mld_melding_behandelaar_key
|
|
FROM (SELECT m.mld_melding_key,
|
|
id.ins_srtdiscipline_omschrijving
|
|
vakgroeptype,
|
|
md.ins_discipline_omschrijving
|
|
vakgroep,
|
|
sm.mld_stdmelding_omschrijving
|
|
stdmelding,
|
|
m.mld_melding_datum,
|
|
fac.gettrackingdate ('MLDACP', m.mld_melding_key)
|
|
accept_datum,
|
|
CASE
|
|
WHEN TO_CHAR (m.mld_melding_datum, 'HH24:MI') < '08:00'
|
|
THEN
|
|
TO_DATE (
|
|
TO_CHAR (m.mld_melding_datum, 'YYYY-MM-DD')
|
|
|| ' 08:00',
|
|
'YYYY-MM-DD HH24:MI')
|
|
WHEN TO_CHAR (m.mld_melding_datum, 'HH24:MI') > '17:00'
|
|
THEN
|
|
TO_DATE (
|
|
TO_CHAR (m.mld_melding_datum + 1, 'YYYY-MM-DD')
|
|
|| ' 08:00',
|
|
'YYYY-MM-DD HH24:MI')
|
|
ELSE
|
|
m.mld_melding_datum
|
|
END
|
|
AS gevalideerde_datum,
|
|
m.mld_melding_behandelaar_key
|
|
FROM mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline id
|
|
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
|
AND id.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
|
AND TO_CHAR (m.mld_melding_datum, 'YYYY') = '2025')
|
|
WHERE accept_datum IS NOT NULL;
|
|
|
|
-- EINDE VIEWS
|
|
|
|
-- COUPA EXPORT VIEWS/PROCEDURES
|
|
|
|
-- Bijlage view tbv export naar coupa
|
|
CREATE OR REPLACE VIEW tdnl_v_coupa_bijlages
|
|
AS
|
|
SELECT o.mld_opdr_key,
|
|
o.mld_opdr_externsyncdate extern_syncdate,
|
|
(SELECT ko.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND ko.mld_kenmerk_key=84 -- A=62 P=204
|
|
AND ko.mld_kenmerkopdr_waarde IS NOT NULL) coupa_id,
|
|
fb.fac_bijlagen_filename bestand,
|
|
fb.fac_bijlagen_disk_directory path,
|
|
fb.fac_bijlagen_aanmaak bijlage_aanmaak
|
|
FROM mld_opdr o, fac_v_bijlagen fb
|
|
WHERE fb.fac_bijlagen_refkey=o.mld_opdr_key
|
|
AND o.mld_statusopdr_key IN (4,5)
|
|
AND fb.fac_bijlagen_kenmerk_key=83 -- A=64 P=97
|
|
AND fb.fac_bijlagen_module='MLD';
|
|
|
|
|
|
-- NOTIFICATIE JOBS
|
|
|
|
-- Notificatie tbv rappeltermijn conrtracten
|
|
CREATE OR REPLACE VIEW TDNL_V_NOTI_CNTRAPPEL
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
par1,
|
|
par2,
|
|
xkey,
|
|
xemail,
|
|
xmobile,
|
|
fac_srtnotificatie_key,
|
|
attachments,
|
|
xsender,
|
|
prs_bedrijfadres_key
|
|
)
|
|
AS
|
|
SELECT 'CUST01',
|
|
'',
|
|
c.prs_perslid_key_beh,
|
|
'Rappel: Contract '
|
|
|| c.cnt_contract_nummer_intern||DECODE(cnt_contract_versie, NULL, '', '.'||cnt_contract_versie)
|
|
|| ' ('
|
|
|| c.cnt_contract_omschrijving
|
|
|| ' '
|
|
|| b.prs_bedrijf_naam
|
|
|| ')'
|
|
|| ' moet uiterlijk per '
|
|
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY')
|
|
|| ' worden verlengd of opgezegd.',
|
|
c.cnt_contract_key,
|
|
c.cnt_contract_nummer_intern,
|
|
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
|
NULL,
|
|
TDNL.getemaillist(c.cnt_contract_key) xemail,
|
|
NULL xmobile,
|
|
NULL fac_srtnotificatie_key,
|
|
NULL attachments,
|
|
NULL xsender,
|
|
NULL prs_bedrijfadres_key
|
|
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
|
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
|
AND cnt_contract_verwijder IS NULL
|
|
AND cnt_contract_status = 0 /* actief */
|
|
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
|
|
AND cnt.getnieuwsteversiekey(c.cnt_contract_key) = c.cnt_contract_key;
|
|
|
|
-- Notificatie naar bezoekers op de dag van het bezoek
|
|
CREATE OR REPLACE VIEW tdnl_v_noti_bezoeker
|
|
(
|
|
sender,
|
|
receiver,
|
|
text,
|
|
code,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile,
|
|
par1
|
|
)
|
|
AS
|
|
SELECT NULL sender,
|
|
NULL receiver,
|
|
'Uw bezoek aan Transdev op '
|
|
|| TO_CHAR (bez_afspraak_datum, 'DD-MM-YYYY')
|
|
|| ' , '
|
|
|| TO_CHAR (bez_afspraak_datum, 'HH24:MI') text,
|
|
'CUST03' code,
|
|
a.bez_afspraak_key key,
|
|
bez_bezoekers_key xkey,
|
|
bez_bezoekers_email xemail,
|
|
NULL xmobile,
|
|
a.bez_afspraak_datum
|
|
FROM bez_afspraak a, bez_bezoekers b
|
|
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
|
AND TRUNC(a.bez_afspraak_datum) = TRUNC(SYSDATE)
|
|
AND b.bez_bezoekers_email IS NOT NULL
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_tracking t
|
|
WHERE t.fac_srtnotificatie_key =209
|
|
AND t.fac_tracking_refkey = a.bez_afspraak_key
|
|
AND t.fac_tracking_oms LIKE '%CUST03%');
|
|
|
|
-- Notificatie op dag van aanmaak van de afspraak
|
|
CREATE OR REPLACE VIEW TDNL_V_NOTI_BEZ_AANMAAK
|
|
(
|
|
sender,
|
|
receiver,
|
|
text,
|
|
code,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile,
|
|
par1
|
|
)
|
|
AS
|
|
SELECT NULL sender,
|
|
NULL receiver,
|
|
'Uw bezoek aan Transdev op '
|
|
|| TO_CHAR (bez_afspraak_datum, 'DD-MM-YYYY')
|
|
|| ' , '
|
|
|| TO_CHAR (bez_afspraak_datum, 'HH24:MI') text,
|
|
'CUST02' code,
|
|
a.bez_afspraak_key key,
|
|
bez_bezoekers_key xkey,
|
|
bez_bezoekers_email xemail,
|
|
NULL xmobile,
|
|
a.bez_afspraak_datum
|
|
FROM bez_afspraak a, bez_bezoekers b, fac_notificatie_job f
|
|
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
|
AND f.fac_notificatie_job_view='TDNL_V_NOTI_BEZ_AANMAAK'
|
|
AND a.bez_afspraak_aanmaak BETWEEN f.fac_notificatie_job_lastrun AND f.fac_notificatie_job_nextrun
|
|
AND b.bez_bezoekers_email IS NOT NULL
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_tracking t
|
|
WHERE t.fac_srtnotificatie_key = 209
|
|
AND t.fac_tracking_refkey = a.bez_afspraak_key
|
|
AND t.fac_tracking_oms LIKE '%CUST02%');
|
|
|
|
-- EIND NOTIFICATIE JOBS
|
|
|
|
------ 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
|