TDNL#80795 -- Migratie CONN omgeving naar TDNL omgeving

svn path=/Customer/trunk/; revision=63622
This commit is contained in:
Norbert Wassink
2024-02-16 12:58:30 +00:00
parent 731469fbec
commit db6799b9ca

View File

@@ -31,7 +31,12 @@ SET DEFINE OFF
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;
END;
/
@@ -129,12 +134,334 @@ CREATE OR REPLACE PACKAGE BODY TDNL AS
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;
END;
/
-- IMPORTS
-- 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
DELETE
FROM fac_imp_csv
WHERE fac_import_key = (SELECT MAX(fac_import_key)
FROM fac_import_app fa,
fac_import fi
WHERE fa.fac_import_app_code='VERBRUIKSOBJ'
AND fi.fac_import_app_key=fa.fac_import_app_key);
fac_import_genericcsv(p_import_key);
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);
END;
/
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_VERBRUIKSWAARDES (p_import_key IN NUMBER)
AS
BEGIN
DELETE
FROM fac_imp_csv;
fac_import_genericcsv(p_import_key);
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
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
-- 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
;
v_kenmerk_aanmaakdatum:= TO_DATE(rec.kenmerk_aanmaakdatum,'DD-MM-YYYY HH24:MI:SS');
v_kenmerk_verwijderdatum:=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;
END IF;
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',
'');
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
@@ -1493,7 +1820,7 @@ END;
-- VIEWS
-- View met alle NL SFB groepen tbv van OPrognose assets import
CREATE OR REPLACE VIEW TDNL_V_SELECT_NLSFB_GRPSOORT
CREATE OR REPLACE FORCE VIEW TDNL_V_SELECT_NLSFB_GRPSOORT
(
code,
omsch)
@@ -2177,40 +2504,86 @@ AS
SELECT '0052','bedrijfsorganisatie, winstregelingen' FROM DUAL;
CREATE OR REPLACE VIEW tdnl_v_gebouw_xy
(
alg_gebouw_key,
alg_gebouw_naam,
waarde,
tilte,
regio,
concessie,
color
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 alg_gebouw_key,
alg_gebouw_naam,
l.alg_locatie_code waarde,
--DECODE(SUBSTR(rg.ALG_REGIO_UPPER,1,2),'TA',5, 'AM',15, 'OP', 25, 35) waarde, -- TAxi : rood, Ambulance(witte lkruis) : oranje, Openbaarvervoer (OP) : Groen, Overige geen kleur
bv.alg_gebouw_code,
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_aanweziggebouw bv,
alg_v_aanwezigdistrict d,
alg_v_aanweziglocatie l,
alg_v_aanwezigregio rg
WHERE l.alg_locatie_key = bv.alg_locatie_key
AND d.alg_district_key = l.alg_district_key
AND rg.alg_regio_key=d.alg_regio_key
AND bv.alg_gebouw_x IS NOT NULL;
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
(