1668 lines
63 KiB
SQL
1668 lines
63 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for FMHW.
|
||
DEFINE thisfile = 'FMHW.SQL'
|
||
DEFINE dbuser = '^FMHW'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
-- Aangepaste import voor ruimten i.v.m. beperkingen export Stabicad
|
||
/*
|
||
CREATE OR REPLACE PROCEDURE fmhw_import_ruimten (p_import_key IN NUMBER
|
||
)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
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 NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_alg_kenmerk_key1 VARCHAR2 (255);
|
||
v_alg_kenmerk_key2 VARCHAR2 (255);
|
||
v_alg_kenmerk_key3 VARCHAR2 (255);
|
||
v_alg_kenmerk_key4 VARCHAR2 (255);
|
||
v_alg_kenmerk_key5 VARCHAR2 (255);
|
||
-- De importvelden:
|
||
v_locatie_code VARCHAR2 (255); -- 10
|
||
v_gebouw_code VARCHAR2 (255); -- 12
|
||
v_verdieping_volgnr VARCHAR2 (255); -- 3,0
|
||
v_verdieping_volgnr_n NUMBER (3, 0); -- 3,0
|
||
v_srtruimte_omschrijving VARCHAR2 (255); -- 30
|
||
v_ruimte_nr VARCHAR2 (255); -- 10
|
||
v_ruimte_omschrijving VARCHAR2 (255); -- 30
|
||
v_ruimte_bruto_vloeropp VARCHAR2 (255); -- 8,2
|
||
v_ruimte_bruto_vloeropp_n NUMBER (8, 2); -- 8,2
|
||
v_afdeling_naam VARCHAR2 (255); -- 10
|
||
v_ruimte_afdeling_bezetting VARCHAR2 (255); -- 8,5
|
||
v_ruimte_afdeling_bezetting_n VARCHAR2 (255); -- 8,5
|
||
v_reserveerbaar VARCHAR2 (255); -- 1
|
||
v_res_discipline_omschrijving VARCHAR2 (255); -- 60
|
||
v_res_discipline_expire_dagen VARCHAR2 (255); -- 3
|
||
v_res_disc_expire_dagen_n NUMBER (3, 0); -- 3
|
||
v_res_ruimte_prijs VARCHAR2 (255); -- 7,2
|
||
v_res_ruimte_prijs_n NUMBER (7, 2); -- 7,2
|
||
v_res_opstelling_omschrijving VARCHAR2 (255); -- 30
|
||
v_res_ruimte_opstel_bezoekers VARCHAR2 (255); -- 5,0
|
||
v_res_ruimte_opstel_bez_n NUMBER (5, 0); -- 5,0
|
||
v_res_ruimte_nr VARCHAR2 (255); -- 40
|
||
v_res_ruimte_omschrijving VARCHAR2 (255); -- 255
|
||
v_alg_kenmerkwaarde1 VARCHAR2 (255);
|
||
v_alg_kenmerkwaarde2 VARCHAR2 (255);
|
||
v_alg_kenmerkwaarde3 VARCHAR2 (255);
|
||
v_alg_kenmerkwaarde4 VARCHAR2 (255);
|
||
v_alg_kenmerkwaarde5 VARCHAR2 (255);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
-- Controleer tijdens import-fase op bestaan van kenmerk
|
||
FUNCTION bepaal_kenmerk_key (kw IN VARCHAR)
|
||
RETURN NUMBER
|
||
IS
|
||
v_kenmerk_key NUMBER;
|
||
BEGIN
|
||
IF fac.safe_to_number (kw) IS NULL
|
||
THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)!
|
||
SELECT alg_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_upper = UPPER (kw)
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_niveau = 'R'
|
||
AND alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
ELSE -- kenmerkwaarde is numeriek (dus key)!
|
||
SELECT alg_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_key = fac.safe_to_number (kw)
|
||
AND alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_niveau = 'R'
|
||
AND alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
END IF;
|
||
|
||
RETURN v_kenmerk_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
IF kw IS NULL OR UPPER (kw) LIKE 'KENMERK%'
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Fout bij bepalen kenmerk [' || kw || ']',
|
||
'Bestaat niet of type ongeldig');
|
||
COMMIT;
|
||
RETURN NULL;
|
||
END IF;
|
||
END;
|
||
BEGIN
|
||
DELETE FROM fac_imp_onrgoed2;
|
||
|
||
header_is_valid := 0;
|
||
v_count := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
v_errorhint := '';
|
||
v_ongeldig := 0;
|
||
|
||
-- Lees alle veldwaarden, aangepast op export uit Stabicad
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_nr);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_omschrijving);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_bruto_vloeropp);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_srtruimte_omschrijving);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_gebouw_code);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_verdieping_volgnr);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_code);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_afdeling_naam);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_ruimte_afdeling_bezetting);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_reserveerbaar);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_discipline_omschrijving);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_discipline_expire_dagen);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_prijs);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_opstelling_omschrijving);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_opstel_bezoekers);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_nr);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_res_ruimte_omschrijving);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde1);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde2);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde3);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde4);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_kenmerkwaarde5);
|
||
|
||
v_aanduiding :=
|
||
v_locatie_code || '|' || v_gebouw_code || '|' || v_verdieping_volgnr || '|' || v_ruimte_nr || '| ';
|
||
|
||
v_alg_kenmerkwaarde1 := 'Volledig Ruimtenummer'; -- Vast kenmerk dat nodig is voor de CAD sync view
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_locatie_code) = 'LOCATIECODE'
|
||
AND UPPER (v_ruimte_nr) = 'RUIMTENUMMER'
|
||
AND UPPER (v_res_ruimte_omschrijving) = 'OMSCHRIJVING'
|
||
THEN
|
||
v_alg_kenmerk_key1 := bepaal_kenmerk_key (v_alg_kenmerkwaarde1);
|
||
v_alg_kenmerk_key2 := bepaal_kenmerk_key (v_alg_kenmerkwaarde2);
|
||
v_alg_kenmerk_key3 := bepaal_kenmerk_key (v_alg_kenmerkwaarde3);
|
||
v_alg_kenmerk_key4 := bepaal_kenmerk_key (v_alg_kenmerkwaarde4);
|
||
v_alg_kenmerk_key5 := bepaal_kenmerk_key (v_alg_kenmerkwaarde5);
|
||
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count := v_count + 1;
|
||
v_errormsg := 'Fout inlezen locatie [' || v_locatie_code || ']';
|
||
|
||
v_locatie_code := TRIM(v_locatie_code);
|
||
IF LENGTH (v_locatie_code) > 10
|
||
THEN
|
||
v_locatie_code := SUBSTR (v_locatie_code, 1, 10);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Locatie-aanduiding is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_locatie_code || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen gebouw [' || v_gebouw_code || ']';
|
||
|
||
v_gebouw_code := TRIM(v_gebouw_code);
|
||
IF LENGTH (v_gebouw_code) > 12
|
||
THEN
|
||
v_gebouw_code := SUBSTR (v_gebouw_code, 1, 12);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Gebouwcode-aanduiding is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_gebouw_code || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := '1 Fout inlezen verdiepingvolgnr [' || v_verdieping_volgnr || ']';
|
||
v_errorhint := 'Geef een geheel getal niet groter dan 3 posities';
|
||
|
||
IF (NVL (LENGTH (ROUND (fac.safe_to_number (v_verdieping_volgnr))), 10)) > 3
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'xyz Ongeldig verdiepingvolgnummer [' || v_verdieping_volgnr || ']',
|
||
v_errorhint
|
||
);
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
v_verdieping_volgnr_n := ROUND (fac.safe_to_number (v_verdieping_volgnr));
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen ruimtefunctie [' || v_srtruimte_omschrijving || ']';
|
||
|
||
v_srtruimte_omschrijving := TRIM(v_srtruimte_omschrijving);
|
||
IF LENGTH (v_srtruimte_omschrijving) > 50
|
||
THEN
|
||
v_srtruimte_omschrijving := SUBSTR (v_srtruimte_omschrijving, 1, 50);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Ruimtefunctie-aanduiding is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_srtruimte_omschrijving || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen ruimtenummer [' || v_ruimte_nr || ']';
|
||
|
||
v_ruimte_nr := TRIM(v_ruimte_nr);
|
||
IF LENGTH (v_ruimte_nr) > 10
|
||
THEN
|
||
v_ruimte_nr := SUBSTR (v_ruimte_nr, 1, 10);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Ruimtenr-aanduiding is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_ruimte_nr || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen ruimte [' || v_ruimte_omschrijving || ']';
|
||
|
||
v_ruimte_omschrijving := TRIM(v_ruimte_omschrijving);
|
||
IF LENGTH (v_ruimte_omschrijving) > 30
|
||
THEN
|
||
v_ruimte_omschrijving := SUBSTR (v_ruimte_omschrijving, 1, 30);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Ruimte-aanduiding is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_ruimte_omschrijving || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen ruimte oppervlakte [' || v_ruimte_bruto_vloeropp || ']';
|
||
v_errorhint := 'Maximaal grootte getal is 99999.99';
|
||
|
||
IF TRIM (v_ruimte_bruto_vloeropp) IS NULL
|
||
THEN
|
||
v_ruimte_bruto_vloeropp_n := TO_NUMBER (NULL);
|
||
ELSE
|
||
-- nls_numeric_characters wordt verondersteld
|
||
v_ruimte_bruto_vloeropp_n := TO_NUMBER (TRIM (REPLACE (v_ruimte_bruto_vloeropp, ',', '.')), '999999D99');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen afdelingscode [' || v_afdeling_naam || ']';
|
||
|
||
v_afdeling_naam := TRIM(v_afdeling_naam);
|
||
IF LENGTH (v_afdeling_naam) > 15
|
||
THEN
|
||
v_afdeling_naam := SUBSTR (v_afdeling_naam, 1, 15);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Afdelingscode is te lang',
|
||
'Afdelingscode wordt afgebroken tot <' || v_afdeling_naam || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen ruimtebezetting [' || v_ruimte_afdeling_bezetting || ']';
|
||
v_errorhint := 'Maximaal grootte getal is 999.99999';
|
||
|
||
IF TRIM (v_ruimte_afdeling_bezetting) IS NULL
|
||
THEN
|
||
v_ruimte_afdeling_bezetting_n := TO_NUMBER (NULL);
|
||
ELSE
|
||
-- nls_numeric_characters wordt verondersteld
|
||
v_ruimte_afdeling_bezetting_n := TO_NUMBER (TRIM (REPLACE (v_ruimte_afdeling_bezetting, ',', '.')), '999D99999');
|
||
END IF;
|
||
|
||
--
|
||
v_reserveerbaar := SUBSTR (TRIM (v_reserveerbaar), 1, 1);
|
||
--
|
||
v_errormsg := 'Fout inlezen catalogus [' || v_res_discipline_omschrijving || ']';
|
||
|
||
v_res_discipline_omschrijving := TRIM(v_res_discipline_omschrijving);
|
||
IF LENGTH (v_res_discipline_omschrijving) > 60
|
||
THEN
|
||
v_res_discipline_omschrijving := SUBSTR (v_res_discipline_omschrijving, 1, 60);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Categorie-aanduiding ruimte is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_res_discipline_omschrijving || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen expire dagen [' || v_res_discipline_expire_dagen || ']';
|
||
v_errorhint := 'Geef geheel getal niet groter dan 3 posities';
|
||
|
||
IF TRIM (v_res_discipline_expire_dagen) IS NULL
|
||
THEN
|
||
v_res_disc_expire_dagen_n := 0;
|
||
ELSE
|
||
v_res_disc_expire_dagen_n := TO_NUMBER (v_res_discipline_expire_dagen);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen prijs reserveerbare ruimte [' || v_res_ruimte_prijs || ']';
|
||
v_errorhint := 'Maximaal grootte getal is 99999.99 ';
|
||
|
||
IF (TRIM (v_res_ruimte_prijs) IS NULL)
|
||
THEN
|
||
v_res_ruimte_prijs_n := TO_NUMBER (NULL);
|
||
ELSE
|
||
-- nls_numeric_characters wordt verondersteld
|
||
v_res_ruimte_prijs_n := TO_NUMBER (TRIM (REPLACE (v_res_ruimte_prijs, ',', '.')), '999999D99');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen opstelling [' || v_res_opstelling_omschrijving || ']';
|
||
|
||
v_res_opstelling_omschrijving := TRIM(v_res_opstelling_omschrijving);
|
||
IF LENGTH (v_res_opstelling_omschrijving) > 30
|
||
THEN
|
||
v_res_opstelling_omschrijving := SUBSTR (v_res_opstelling_omschrijving, 1, 30);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Ruimteopstelling-aanduiding is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_res_opstelling_omschrijving || '>'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen aantal bezoekers [' || v_res_ruimte_opstel_bezoekers || ']';
|
||
v_errorhint := 'Geef geheel getal niet groter dan 5 posities';
|
||
|
||
IF TRIM (v_res_ruimte_opstel_bezoekers) IS NULL
|
||
THEN
|
||
v_res_ruimte_opstel_bez_n := TO_NUMBER (NULL);
|
||
ELSE
|
||
v_res_ruimte_opstel_bez_n := TO_NUMBER (v_res_ruimte_opstel_bezoekers);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
|
||
|
||
v_res_ruimte_nr := TRIM(v_res_ruimte_nr);
|
||
IF LENGTH (v_res_ruimte_nr) > 40
|
||
THEN
|
||
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
|
||
v_res_ruimte_nr := SUBSTR (v_res_ruimte_nr, 1, 40);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Ruimtenr-aanduiding reserveerbare ruimte is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_res_ruimte_nr || '>'
|
||
);
|
||
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout inlezen ruimte nummer reserveerbare ruimte omschrijving [' || v_res_ruimte_nr || ']';
|
||
--
|
||
v_errormsg := 'Fout inlezen reserveerbare ruimte [' || v_res_ruimte_omschrijving || ']';
|
||
|
||
v_res_ruimte_omschrijving := TRIM(v_res_ruimte_omschrijving);
|
||
IF LENGTH (v_res_ruimte_omschrijving) > 255
|
||
THEN
|
||
v_res_ruimte_omschrijving := SUBSTR (v_res_ruimte_omschrijving, 1, 255);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Ruimte-aanduiding reserveerbare ruimte is te lang',
|
||
'Aanduiding wordt afgebroken tot <' || v_res_ruimte_omschrijving || '>'
|
||
);
|
||
END IF;
|
||
|
||
v_alg_kenmerkwaarde1 := TRIM (v_alg_kenmerkwaarde1);
|
||
v_alg_kenmerkwaarde2 := TRIM (v_alg_kenmerkwaarde2);
|
||
v_alg_kenmerkwaarde3 := TRIM (v_alg_kenmerkwaarde3);
|
||
v_alg_kenmerkwaarde4 := TRIM (v_alg_kenmerkwaarde4);
|
||
v_alg_kenmerkwaarde5 := TRIM (v_alg_kenmerkwaarde5);
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Fout bij toevoegen te impoteren ruimte [' || v_res_ruimte_omschrijving || ']';
|
||
|
||
INSERT INTO fac_imp_onrgoed2 (
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_srtruimte_omschrijving,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_ruimte_bruto_vloeropp,
|
||
prs_afdeling_naam,
|
||
prs_ruimteafdeling_bezetting,
|
||
reserveerbaar,
|
||
res_discipline_omschrijving,
|
||
res_discipline_expire_dagen,
|
||
res_ruimte_prijs,
|
||
res_opstelling_omschrijving,
|
||
res_ruimte_opstel_bezoekers,
|
||
res_ruimte_nr,
|
||
res_ruimte_omschrijving,
|
||
alg_kenmerkwaarde1,
|
||
alg_kenmerkwaarde2,
|
||
alg_kenmerkwaarde3,
|
||
alg_kenmerkwaarde4,
|
||
alg_kenmerkwaarde5
|
||
)
|
||
VALUES (
|
||
v_locatie_code,
|
||
v_gebouw_code,
|
||
v_verdieping_volgnr_n,
|
||
v_srtruimte_omschrijving,
|
||
v_ruimte_nr,
|
||
v_ruimte_omschrijving,
|
||
v_ruimte_bruto_vloeropp_n,
|
||
v_afdeling_naam,
|
||
v_ruimte_afdeling_bezetting_n,
|
||
v_reserveerbaar,
|
||
v_res_discipline_omschrijving,
|
||
v_res_disc_expire_dagen_n,
|
||
v_res_ruimte_prijs_n,
|
||
v_res_opstelling_omschrijving,
|
||
v_res_ruimte_opstel_bez_n,
|
||
v_res_ruimte_nr,
|
||
v_res_ruimte_omschrijving,
|
||
DECODE (v_alg_kenmerk_key1,
|
||
NULL, v_alg_kenmerkwaarde1,
|
||
TO_CHAR (v_alg_kenmerk_key1)
|
||
|| '='
|
||
|| SUBSTR (v_alg_kenmerkwaarde1, 1, 200)
|
||
),
|
||
DECODE (v_alg_kenmerk_key2,
|
||
NULL, v_alg_kenmerkwaarde2,
|
||
TO_CHAR (v_alg_kenmerk_key2)
|
||
|| '='
|
||
|| SUBSTR (v_alg_kenmerkwaarde2, 1, 200)
|
||
),
|
||
DECODE (v_alg_kenmerk_key3,
|
||
NULL, v_alg_kenmerkwaarde3,
|
||
TO_CHAR (v_alg_kenmerk_key3)
|
||
|| '='
|
||
|| SUBSTR (v_alg_kenmerkwaarde3, 1, 200)
|
||
),
|
||
DECODE (v_alg_kenmerk_key4,
|
||
NULL, v_alg_kenmerkwaarde4,
|
||
TO_CHAR (v_alg_kenmerk_key4)
|
||
|| '='
|
||
|| SUBSTR (v_alg_kenmerkwaarde4, 1, 200)
|
||
),
|
||
DECODE (v_alg_kenmerk_key5,
|
||
NULL, v_alg_kenmerkwaarde5,
|
||
TO_CHAR (v_alg_kenmerk_key5)
|
||
|| '='
|
||
|| SUBSTR (v_alg_kenmerkwaarde5, 1, 200)
|
||
)
|
||
);
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Ongeldig importbestand',
|
||
'Geen geldige headerregel aanwezig'
|
||
);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S', 'Ruimte: aantal ingelezen regels: ' || TO_CHAR (v_count), '');
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'Eventeel resterende regels worden niet meer ingelezen!'
|
||
);
|
||
END fmhw_import_ruimten;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE fmhw_update_ruimten (
|
||
p_import_key IN NUMBER
|
||
) IS
|
||
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
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);
|
||
v_aanduiding VARCHAR2 (200);
|
||
|
||
v_count NUMBER(10);
|
||
v_count_update NUMBER(10);
|
||
v_count_tot NUMBER(10);
|
||
|
||
-- De importvelden:
|
||
v_regio_omschrijving VARCHAR2(255); -- 30
|
||
v_district_omschrijving VARCHAR2(255); -- 30
|
||
v_locatie_code VARCHAR2(255); -- 10
|
||
v_locatie_omschrijving VARCHAR2(255); -- 60
|
||
v_gebouw_code VARCHAR2(255); -- 12
|
||
v_gebouw_naam VARCHAR2(255); -- 30
|
||
v_srtgebouw_omschrijving VARCHAR2(255); -- 30
|
||
v_locatie_verantw VARCHAR2(255); -- 30
|
||
v_locatie_verantw_tel VARCHAR2(255); -- 15
|
||
v_locatie_adres VARCHAR2(255); -- 50
|
||
v_locatie_postcode VARCHAR2(255); -- 12
|
||
v_locatie_plaats VARCHAR2(255); -- 30
|
||
v_locatie_land VARCHAR2(255); -- 30
|
||
v_locatie_post_adres VARCHAR2(255); -- 50
|
||
v_locatie_post_postcode VARCHAR2(255); -- 12
|
||
v_locatie_post_plaats VARCHAR2(255); -- 30
|
||
v_locatie_post_land VARCHAR2(255); -- 30
|
||
|
||
v_regio_key NUMBER(10);
|
||
v_district_key NUMBER(10);
|
||
v_locatie_key NUMBER(10);
|
||
v_srtgebouw_key NUMBER(10);
|
||
v_gebouw_key NUMBER(10);
|
||
v_verdieping_key NUMBER(10);
|
||
v_verdieping_volgnr NUMBER(3);
|
||
v_srtruimte_key NUMBER(10);
|
||
v_ruimte_key NUMBER(10);
|
||
v_res_ruimte_key NUMBER(10);
|
||
v_ruimte_omschrijving res_ruimte.res_ruimte_nr%TYPE; -- 40
|
||
|
||
v_discipline_key NUMBER(10);
|
||
v_opstelling_key NUMBER(10);
|
||
v_ruimteafdeling_key NUMBER(10);
|
||
|
||
|
||
CURSOR cVerdieping
|
||
IS
|
||
SELECT min(alg_locatie_code) alg_locatie_code
|
||
,min(alg_gebouw_code) alg_gebouw_code
|
||
,alg_verdieping_volgnr alg_verdieping_volgnr
|
||
FROM fac_imp_onrgoed2
|
||
GROUP BY upper(alg_locatie_code), upper(alg_gebouw_code), alg_verdieping_volgnr;
|
||
|
||
|
||
recVerdieping cVerdieping%ROWTYPE;
|
||
|
||
CURSOR cSrtRuimte
|
||
IS
|
||
SELECT min(alg_srtruimte_omschrijving) alg_srtruimte_omschrijving
|
||
FROM fac_imp_onrgoed2
|
||
GROUP BY alg_srtruimte_omschrijving;
|
||
|
||
recSrtRuimte cSrtRuimte%ROWTYPE;
|
||
|
||
CURSOR cRuimte
|
||
IS
|
||
SELECT alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_srtruimte_omschrijving,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_ruimte_bruto_vloeropp,
|
||
reserveerbaar,
|
||
res_discipline_omschrijving,
|
||
res_ruimte_prijs,
|
||
res_opstelling_omschrijving,
|
||
res_ruimte_opstel_bezoekers,
|
||
res_ruimte_nr,
|
||
res_ruimte_omschrijving,
|
||
i.prs_afdeling_naam,
|
||
prs_afdeling_key,
|
||
prs_ruimteafdeling_bezetting,
|
||
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde1, 1, INSTR (alg_kenmerkwaarde1, '=') - 1))
|
||
kenmerk_key1,
|
||
SUBSTR (alg_kenmerkwaarde1, INSTR (alg_kenmerkwaarde1, '=') + 1) waarde1,
|
||
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde2, 1, INSTR (alg_kenmerkwaarde2, '=') - 1))
|
||
kenmerk_key2,
|
||
SUBSTR (alg_kenmerkwaarde2, INSTR (alg_kenmerkwaarde2, '=') + 1) waarde2,
|
||
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde3, 1, INSTR (alg_kenmerkwaarde3, '=') - 1))
|
||
kenmerk_key3,
|
||
SUBSTR (alg_kenmerkwaarde3, INSTR (alg_kenmerkwaarde3, '=') + 1) waarde3,
|
||
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde4, 1, INSTR (alg_kenmerkwaarde4, '=') - 1))
|
||
kenmerk_key4,
|
||
SUBSTR (alg_kenmerkwaarde4, INSTR (alg_kenmerkwaarde4, '=') + 1) waarde4,
|
||
fac.safe_to_number (SUBSTR (alg_kenmerkwaarde5, 1, INSTR (alg_kenmerkwaarde5, '=') - 1))
|
||
kenmerk_key5,
|
||
SUBSTR (alg_kenmerkwaarde5, INSTR (alg_kenmerkwaarde5, '=') + 1) waarde5
|
||
FROM fac_imp_onrgoed2 i,
|
||
prs_afdeling a
|
||
WHERE a.prs_afdeling_verwijder IS NULL
|
||
AND UPPER(i.prs_afdeling_naam) = a.prs_afdeling_upper(+);
|
||
|
||
recRuimte cRuimte%ROWTYPE;
|
||
|
||
CURSOR cOpstelling
|
||
IS
|
||
SELECT min(res_opstelling_omschrijving) res_opstelling_omschrijving
|
||
,UPPER(res_opstelling_omschrijving) res_opstelling_upper
|
||
FROM FAC_IMP_ONRGOED2
|
||
WHERE res_opstelling_omschrijving IS NOT NULL
|
||
GROUP BY UPPER(res_opstelling_omschrijving);
|
||
|
||
recOpstelling cOpstelling%ROWTYPE;
|
||
|
||
CURSOR cCategorie
|
||
IS
|
||
SELECT min(res_discipline_omschrijving) res_discipline_omschrijving
|
||
,upper(res_discipline_omschrijving) res_discipline_upper
|
||
,NVL(res_discipline_expire_dagen,0) res_discipline_expire_dagen
|
||
FROM FAC_IMP_ONRGOED2
|
||
WHERE reserveerbaar in ('Y','y','J','j')
|
||
GROUP BY upper(res_discipline_omschrijving)
|
||
, res_discipline_expire_dagen;
|
||
|
||
recCategorie cCategorie%ROWTYPE;
|
||
|
||
CURSOR cResRuimte
|
||
IS
|
||
SELECT *
|
||
FROM FAC_IMP_ONRGOED2
|
||
WHERE RESERVEERBAAR in ('J','j','Y','y');
|
||
|
||
recResRuimte cResRuimte%ROWTYPE;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE upsert_algkenmerk (p_ruimte_key IN NUMBER,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_waarde IN VARCHAR2)
|
||
AS
|
||
v_kenmerk_type VARCHAR2 (1);
|
||
ccount NUMBER;
|
||
v_waarde VARCHAR2 (255);
|
||
v_objectnaam VARCHAR2 (30);
|
||
v_kolomnaam VARCHAR2 (30);
|
||
v_kolomtxt VARCHAR2 (30);
|
||
sql_stmt VARCHAR2 (1000);
|
||
l_cursor_1 INTEGER;
|
||
l_rowsprocessed NUMBER DEFAULT 0;
|
||
BEGIN
|
||
IF (p_kenmerk_key IS NOT NULL AND p_waarde IS NOT NULL)
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen kenmerktype';
|
||
SELECT alg_kenmerk_kenmerktype
|
||
INTO v_kenmerk_type
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_verwijder IS NULL
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_kenmerk_niveau = 'R';
|
||
|
||
IF v_kenmerk_type IN ('R', 'S')
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen eigen tabel';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM alg_kenmerk k, fac_kenmerkdomein d
|
||
WHERE k.alg_kenmerk_key = p_kenmerk_key
|
||
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NOT NULL;
|
||
|
||
v_errormsg := 'Fout bij bepalen nieuwe waarde [' || p_waarde || ']';
|
||
|
||
IF ccount = 1
|
||
THEN -- Eigen tabel
|
||
SELECT TO_CHAR (ud.fac_usrdata_key)
|
||
INTO v_waarde
|
||
FROM alg_kenmerk k, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud
|
||
WHERE k.alg_kenmerk_key = p_kenmerk_key
|
||
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND UPPER (TRIM (ud.fac_usrdata_omschr)) = UPPER (p_waarde);
|
||
ELSE -- FACILITOR view/tabel
|
||
SELECT d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt
|
||
INTO v_objectnaam, v_kolomnaam, v_kolomtxt
|
||
FROM alg_kenmerk k, fac_kenmerkdomein d
|
||
WHERE k.alg_kenmerk_key = p_kenmerk_key
|
||
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NULL;
|
||
|
||
sql_stmt := 'SELECT MAX ('
|
||
|| v_kolomnaam
|
||
|| ') FROM '
|
||
|| v_objectnaam
|
||
|| ' WHERE UPPER (TRIM ('
|
||
|| v_kolomtxt
|
||
|| ')) = UPPER (:pwaarde)';
|
||
l_cursor_1 := DBMS_SQL.open_cursor;
|
||
DBMS_SQL.parse (l_cursor_1, sql_stmt, DBMS_SQL.native);
|
||
DBMS_SQL.BIND_VARIABLE(l_cursor_1,':pwaarde', p_waarde);
|
||
DBMS_SQL.define_column(l_cursor_1, 1, v_waarde, 255);
|
||
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_1);
|
||
DBMS_SQL.column_value (l_cursor_1, 1, v_waarde);
|
||
DBMS_SQL.close_cursor(l_cursor_1);
|
||
END IF;
|
||
ELSE -- C(Karakter)/D(Datum)/N(Numeriek)/X(Bestandsnaam)
|
||
v_waarde := p_waarde;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen/bijwerken kenmerk';
|
||
alg.upsertkenmerk (p_kenmerk_key,
|
||
p_ruimte_key,
|
||
v_waarde);
|
||
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,
|
||
'upsert_algkenmerk');
|
||
END;
|
||
|
||
BEGIN
|
||
-- ****************
|
||
-- ***VERDIEPING***
|
||
-- ****************
|
||
OPEN cVerdieping;
|
||
v_count_update := 0;
|
||
v_count_tot := 0;
|
||
IF cVerdieping%ISOPEN THEN
|
||
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := '';
|
||
v_errorhint := '';
|
||
v_aanduiding := '';
|
||
|
||
FETCH cVerdieping INTO recVerdieping;
|
||
EXIT WHEN cVerdieping%NOTFOUND;
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := recVerdieping.ALG_LOCATIE_CODE||'|'||recVerdieping.ALG_GEBOUW_CODE||'|'||recVerdieping.ALG_VERDIEPING_VOLGNR||'| ';
|
||
|
||
v_errorhint := ' Fout bij bepalen locatie ['||recVerdieping.ALG_LOCATIE_CODE||']';
|
||
|
||
SELECT ALG_LOCATIE_KEY
|
||
INTO v_locatie_key
|
||
FROM ALG_LOCATIE
|
||
WHERE UPPER(ALG_LOCATIE_CODE) = UPPER(recVerdieping.ALG_LOCATIE_CODE)
|
||
AND ALG_LOCATIE_VERWIJDER IS NULL;
|
||
|
||
v_errorhint := ' Fout bij bepalen gebouw ['||recVerdieping.ALG_GEBOUW_CODE||']';
|
||
|
||
SELECT ALG_GEBOUW_KEY
|
||
INTO v_gebouw_key
|
||
FROM ALG_GEBOUW
|
||
WHERE UPPER(ALG_GEBOUW_CODE) = UPPER(recVerdieping.ALG_GEBOUW_CODE)
|
||
AND ALG_LOCATIE_KEY = v_locatie_key
|
||
AND ALG_GEBOUW_VERWIJDER IS NULL;
|
||
|
||
v_errorhint := 'Fout bij toevoegen verdieping';
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM alg_v_aanwezigverdieping
|
||
WHERE alg_gebouw_key = v_gebouw_key
|
||
AND ALG_VERDIEPING_VOLGNR = recVerdieping.ALG_VERDIEPING_VOLGNR;
|
||
|
||
IF (v_count = 0) THEN
|
||
|
||
insert into ALG_VERDIEPING
|
||
(ALG_GEBOUW_KEY
|
||
,ALG_VERDIEPING_VOLGNR
|
||
,ALG_VERDIEPING_CODE
|
||
,ALG_VERDIEPING_OMSCHRIJVING
|
||
)
|
||
values
|
||
(v_gebouw_key
|
||
,recVerdieping.ALG_VERDIEPING_VOLGNR
|
||
,to_char(recVerdieping.ALG_VERDIEPING_VOLGNR)
|
||
,'Verdieping '||to_char(recVerdieping.ALG_VERDIEPING_VOLGNR)
|
||
);
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
|
||
v_errormsg := 'Fout tijdens verwerken verdieping ['||recVerdieping.ALG_LOCATIE_CODE||'-'||recVerdieping.ALG_GEBOUW_CODE||'-'||to_number(recVerdieping.ALG_VERDIEPING_VOLGNR)||']';
|
||
v_errorhint := v_errorhint||': ' || oracle_err_mes;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding||v_errormsg,
|
||
v_errorhint
|
||
);
|
||
commit;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Verdieping: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
|
||
''
|
||
);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Verdieping: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
|
||
''
|
||
);
|
||
END IF;
|
||
CLOSE cVerdieping;
|
||
|
||
|
||
-- *******************
|
||
-- ***RUIMTEFUNCTIE***
|
||
-- *******************
|
||
OPEN cSrtRuimte;
|
||
v_count_update := 0;
|
||
v_count_tot := 0;
|
||
IF cSrtRuimte%ISOPEN THEN
|
||
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := '';
|
||
v_errorhint := '';
|
||
v_aanduiding := '';
|
||
|
||
FETCH cSrtRuimte INTO recSrtRuimte;
|
||
EXIT WHEN cSrtRuimte%NOTFOUND;
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING||'| ';
|
||
|
||
v_errorhint := ' Fout bij toevoegen ruimtefunctie';
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM alg_srtruimte
|
||
WHERE upper(alg_srtruimte_omschrijving) = upper(recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING)
|
||
AND alg_srtruimte_verwijder is null;
|
||
|
||
IF (v_count = 0) THEN
|
||
|
||
insert into ALG_SRTRUIMTE
|
||
(ALG_SRTRUIMTE_OMSCHRIJVING
|
||
)
|
||
values
|
||
(recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING
|
||
);
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
|
||
v_errormsg := 'Fout tijdens verwerken ruimtefunctie ['||recSrtRuimte.ALG_SRTRUIMTE_OMSCHRIJVING||']';
|
||
v_errorhint := v_errorhint||': ' || oracle_err_mes;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding||v_errormsg,
|
||
v_errorhint
|
||
);
|
||
commit;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Ruimtefunctie: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
|
||
''
|
||
);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Ruimtefunctie: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
|
||
''
|
||
);
|
||
END IF;
|
||
CLOSE cSrtRuimte;
|
||
|
||
-- ************
|
||
-- ***RUIMTE***
|
||
-- ************
|
||
OPEN cRuimte;
|
||
v_count_update := 0;
|
||
v_count_tot := 0;
|
||
IF cRuimte%ISOPEN THEN
|
||
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := '';
|
||
v_errorhint := '';
|
||
v_aanduiding := '';
|
||
v_ruimte_key := NULL;
|
||
|
||
FETCH cRuimte INTO recRuimte;
|
||
EXIT WHEN cRuimte%NOTFOUND;
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := recRuimte.ALG_LOCATIE_CODE||'|'||recRuimte.ALG_GEBOUW_CODE||'|'||recRuimte.ALG_VERDIEPING_VOLGNR||'|'||recRuimte.ALG_RUIMTE_NR||'| ';
|
||
|
||
v_errorhint := ' Fout bij bepalen locatie';
|
||
|
||
SELECT ALG_LOCATIE_KEY
|
||
INTO v_locatie_key
|
||
FROM ALG_LOCATIE
|
||
WHERE UPPER(ALG_LOCATIE_CODE) = UPPER(recRuimte.ALG_LOCATIE_CODE)
|
||
AND ALG_LOCATIE_verwijder is null;
|
||
|
||
v_errorhint := ' Fout bij bepalen gebouw';
|
||
|
||
SELECT ALG_GEBOUW_KEY
|
||
INTO v_gebouw_key
|
||
FROM ALG_GEBOUW
|
||
WHERE UPPER(ALG_GEBOUW_CODE) = UPPER(recRuimte.ALG_GEBOUW_CODE)
|
||
AND ALG_LOCATIE_KEY = v_locatie_key
|
||
AND ALG_GEBOUW_verwijder is null;
|
||
|
||
v_errorhint := ' Fout bij bepalen verdieping';
|
||
|
||
SELECT ALG_VERDIEPING_KEY
|
||
INTO v_verdieping_key
|
||
FROM ALG_VERDIEPING
|
||
WHERE ALG_GEBOUW_KEY = v_gebouw_key
|
||
AND ALG_VERDIEPING_VOLGNR = recRuimte.ALG_VERDIEPING_VOLGNR
|
||
AND ALG_VERDIEPING_verwijder is null;
|
||
|
||
v_errorhint := ' Fout bij bepalen ruimtefunctie'||' ['||recRuimte.alg_srtruimte_omschrijving||']';
|
||
|
||
SELECT ALG_SRTRUIMTE_KEY
|
||
INTO v_srtruimte_key
|
||
FROM ALG_SRTRUIMTE
|
||
WHERE upper(alg_srtruimte_omschrijving) = upper(recRuimte.ALG_SRTRUIMTE_OMSCHRIJVING)
|
||
AND ALG_SRTRUIMTE_verwijder is null;
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM ALG_RUIMTE
|
||
WHERE ALG_VERDIEPING_KEY = v_verdieping_key
|
||
AND UPPER(ALG_RUIMTE_NR) = UPPER(recRuimte.ALG_RUIMTE_NR)
|
||
-- als ruimteomschrijving in sheet afwijkt geeft dit een onduidelijke error, dan liever
|
||
-- de omschrijving negeren en gewoon niet bijwerken
|
||
-- AND UPPER(ALG_RUIMTE_OMSCHRIJVING) = UPPER(recRuimte.ALG_RUIMTE_OMSCHRIJVING)
|
||
AND alg_ruimte_verwijder is null;
|
||
|
||
v_errorhint := ' Fout bij toevoegen ruimte';
|
||
|
||
IF v_count = 0 THEN
|
||
|
||
insert into ALG_RUIMTE
|
||
(ALG_VERDIEPING_KEY
|
||
,ALG_SRTRUIMTE_KEY
|
||
,ALG_RUIMTE_NR
|
||
,ALG_RUIMTE_OMSCHRIJVING
|
||
,ALG_RUIMTE_OPMERKING
|
||
,ALG_RUIMTE_BRUTO_VLOEROPP
|
||
)
|
||
values
|
||
(v_verdieping_key
|
||
,v_srtruimte_key
|
||
,recRuimte.ALG_RUIMTE_NR
|
||
,recRuimte.ALG_RUIMTE_OMSCHRIJVING
|
||
,''
|
||
,TO_NUMBER(recRuimte.ALG_RUIMTE_BRUTO_VLOEROPP)
|
||
)
|
||
RETURNING ALG_RUIMTE_KEY
|
||
INTO v_ruimte_key;
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
|
||
-- Als de ruimte al bestaat, dan nog de key ophalen, zodat we 'm hieronder kunnen gebruiken.
|
||
IF (v_ruimte_key IS NULL)
|
||
THEN
|
||
v_errorhint := ' Fout bij bepalen ruimte';
|
||
|
||
SELECT ALG_RUIMTE_KEY
|
||
INTO v_ruimte_key
|
||
FROM ALG_RUIMTE
|
||
WHERE ALG_VERDIEPING_KEY = v_verdieping_key
|
||
AND UPPER(ALG_RUIMTE_NR) = UPPER(recRuimte.ALG_RUIMTE_NR)
|
||
AND alg_ruimte_verwijder is null;
|
||
END IF;
|
||
|
||
-- ********************
|
||
-- ***RUIMTEAFDELING***
|
||
-- ********************
|
||
-- AAES#25942: koppel afdeling(en) aan ruimte; <20><>n afdeling per regel, ruimte kan meerdere keren voorkomen.
|
||
IF (recRuimte.prs_afdeling_naam IS NOT NULL)
|
||
THEN
|
||
IF (recRuimte.prs_afdeling_key IS NULL)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding||' afdeling ['||recRuimte.prs_afdeling_naam||']',
|
||
'Afdeling niet gevonden'
|
||
);
|
||
ELSE
|
||
IF (recRuimte.prs_ruimteafdeling_bezetting IS NULL)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding||' afdeling ['||recRuimte.prs_afdeling_naam||']',
|
||
'Fout: afdeling gevuld, bezetting leeg!'
|
||
);
|
||
ELSIF (recRuimte.prs_ruimteafdeling_bezetting > 100 OR recRuimte.prs_ruimteafdeling_bezetting < 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding||' afdeling ['||recRuimte.prs_afdeling_naam||']',
|
||
'Ongeldige ruimtebezetting ['||TO_CHAR(recRuimte.prs_ruimteafdeling_bezetting)||'] verwacht 0 <= bezetting <= 100'
|
||
);
|
||
ELSE
|
||
BEGIN
|
||
SELECT COUNT(*), MAX(prs_ruimteafdeling_key)
|
||
INTO v_count, v_ruimteafdeling_key
|
||
FROM prs_ruimteafdeling
|
||
WHERE prs_ruimteafdeling_verwijder IS NULL
|
||
AND prs_afdeling_key = recRuimte.prs_afdeling_key
|
||
AND alg_ruimte_key = v_ruimte_key;
|
||
|
||
IF (v_count = 0)
|
||
THEN
|
||
v_errorhint := ' Fout bij toevoegen ruimtebezetting';
|
||
|
||
INSERT INTO prs_ruimteafdeling
|
||
(prs_afdeling_key
|
||
,alg_ruimte_key
|
||
,prs_ruimteafdeling_bezetting)
|
||
VALUES
|
||
(recRuimte.prs_afdeling_key
|
||
,v_ruimte_key
|
||
,recRuimte.prs_ruimteafdeling_bezetting
|
||
);
|
||
END IF;
|
||
|
||
IF (v_count = 1)
|
||
THEN
|
||
v_errorhint := ' Fout bij aanpassen ruimtebezetting';
|
||
|
||
UPDATE prs_ruimteafdeling
|
||
SET prs_ruimteafdeling_bezetting = recRuimte.prs_ruimteafdeling_bezetting
|
||
WHERE prs_ruimteafdeling_key = v_ruimteafdeling_key;
|
||
END IF;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
|
||
v_errormsg := 'Fout tijdens verwerken ruimteafdeling ['||
|
||
recRuimte.ALG_LOCATIE_CODE||'-'||recRuimte.ALG_GEBOUW_CODE||'-'||recRuimte.ALG_VERDIEPING_VOLGNR||'-'||recRuimte.ALG_RUIMTE_NR
|
||
||'] / ['||recRuimte.PRS_AFDELING_NAAM||']';
|
||
v_errorhint := v_errorhint||': ' || oracle_err_mes;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding||v_errormsg,
|
||
v_errorhint
|
||
);
|
||
commit;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- *******************
|
||
-- ***FLEXKENMERKEN***
|
||
-- *******************
|
||
v_errorhint := ' Fout bij toevoegen/bijwerken flexkenmerken';
|
||
|
||
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key1, recRuimte.waarde1);
|
||
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key2, recRuimte.waarde2);
|
||
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key3, recRuimte.waarde3);
|
||
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key4, recRuimte.waarde4);
|
||
upsert_algkenmerk (v_ruimte_key, recRuimte.kenmerk_key5, recRuimte.waarde5);
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
|
||
v_errormsg := 'Fout tijdens verwerken ruimte ['||recRuimte.ALG_LOCATIE_CODE||'-'||recRuimte.ALG_GEBOUW_CODE||'-'||recRuimte.ALG_VERDIEPING_VOLGNR||'-'||recRuimte.ALG_RUIMTE_NR||']';
|
||
v_errorhint := v_errorhint||': ' || oracle_err_mes;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding||v_errormsg,
|
||
v_errorhint
|
||
);
|
||
commit;
|
||
END;
|
||
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Ruimte: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
|
||
''
|
||
);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Ruimte: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
|
||
''
|
||
);
|
||
END IF;
|
||
CLOSE cRuimte;
|
||
|
||
-- ****************
|
||
-- ***OPSTELLING***
|
||
-- ****************
|
||
OPEN cOpstelling;
|
||
v_count_update := 0;
|
||
v_count_tot := 0;
|
||
IF cOpstelling%ISOPEN THEN
|
||
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := '';
|
||
v_errorhint := '';
|
||
v_aanduiding := '';
|
||
|
||
FETCH cOpstelling INTO recOpstelling;
|
||
EXIT WHEN cOpstelling%NOTFOUND;
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := recOpstelling.RES_OPSTELLING_OMSCHRIJVING||'| ';
|
||
|
||
v_errorhint := ' Fout bij toevoegen opstelling';
|
||
|
||
select count(*)
|
||
into v_count
|
||
from RES_OPSTELLING
|
||
where RES_OPSTELLING_verwijder is null
|
||
and trim(RES_OPSTELLING_upper) = upper(trim(recOpstelling.RES_OPSTELLING_OMSCHRIJVING));
|
||
|
||
IF (v_count = 0) THEN
|
||
|
||
insert into RES_OPSTELLING
|
||
(RES_OPSTELLING_OMSCHRIJVING
|
||
)
|
||
values
|
||
(trim(recOpstelling.RES_OPSTELLING_OMSCHRIJVING)
|
||
);
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
|
||
v_errormsg := 'Fout tijdens verwerken opstelling ['||recOpstelling.RES_OPSTELLING_OMSCHRIJVING||']';
|
||
v_errorhint := v_errorhint||': ' || oracle_err_mes;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding||v_errormsg,
|
||
v_errorhint
|
||
);
|
||
commit;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Opstelling: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
|
||
''
|
||
);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Opstelling: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
|
||
''
|
||
);
|
||
END IF;
|
||
CLOSE cOpstelling;
|
||
|
||
-- ***************
|
||
-- ***CATEGORIE***
|
||
-- ***************
|
||
OPEN cCategorie;
|
||
v_count_update := 0;
|
||
v_count_tot := 0;
|
||
IF cCategorie%ISOPEN THEN
|
||
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := '';
|
||
v_errorhint := '';
|
||
v_aanduiding := '';
|
||
|
||
FETCH cCategorie INTO recCategorie;
|
||
EXIT WHEN cCategorie%NOTFOUND;
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := recCategorie.res_discipline_omschrijving||'| ';
|
||
|
||
v_errorhint := ' Fout bij toevoegen categorie';
|
||
|
||
select count(*)
|
||
into v_count
|
||
from ins_tab_discipline
|
||
where ins_discipline_verwijder is null
|
||
and ins_discipline_module='RES'
|
||
and upper(trim(ins_discipline_omschrijving)) = upper(trim(recCategorie.res_discipline_omschrijving));
|
||
|
||
IF (v_count = 0) THEN
|
||
|
||
INSERT INTO ins_tab_discipline
|
||
(ins_discipline_module
|
||
,ins_discipline_omschrijving
|
||
,ins_discipline_verwijder
|
||
,ins_discipline_min_level)
|
||
VALUES
|
||
('RES'
|
||
,trim(recCategorie.res_discipline_omschrijving)
|
||
,to_date(null)
|
||
,3)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO res_disc_params
|
||
(res_ins_discipline_key
|
||
,res_disc_params_expire_dagen)
|
||
VALUES
|
||
(v_discipline_key
|
||
,recCategorie.res_discipline_expire_dagen
|
||
);
|
||
|
||
END IF;
|
||
|
||
commit;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
|
||
v_errormsg := 'Fout tijdens verwerken catalogus ['||recCategorie.res_discipline_omschrijving||']';
|
||
v_errorhint := v_errorhint||': ' || oracle_err_mes;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding||v_errormsg,
|
||
v_errorhint
|
||
);
|
||
commit;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Categorie: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
|
||
''
|
||
);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Categorie: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
|
||
''
|
||
);
|
||
END IF;
|
||
CLOSE cCategorie;
|
||
|
||
-- ***************
|
||
-- ***RESRUIMTE***
|
||
-- ***************
|
||
OPEN cResRuimte;
|
||
v_count_update := 0;
|
||
v_count_tot := 0;
|
||
IF cResRuimte%ISOPEN THEN
|
||
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := '';
|
||
v_errorhint := '';
|
||
v_aanduiding := '';
|
||
|
||
FETCH cResRuimte INTO recResRuimte;
|
||
EXIT WHEN cResRuimte%NOTFOUND;
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := recResRuimte.ALG_LOCATIE_CODE||'|'||recResRuimte.ALG_GEBOUW_CODE||'|'||recResRuimte.ALG_VERDIEPING_VOLGNR||'|'||recResRuimte.ALG_RUIMTE_NR||'| ';
|
||
|
||
v_errorhint := ' Fout bij bepalen locatie';
|
||
|
||
SELECT ALG_LOCATIE_KEY
|
||
INTO v_locatie_key
|
||
FROM ALG_LOCATIE
|
||
WHERE UPPER(ALG_LOCATIE_CODE) = UPPER(recResRuimte.ALG_LOCATIE_CODE)
|
||
AND alg_locatie_verwijder is null;
|
||
|
||
v_errorhint := ' Fout bij bepalen gebouw';
|
||
|
||
SELECT ALG_GEBOUW_KEY
|
||
INTO v_gebouw_key
|
||
FROM ALG_GEBOUW
|
||
WHERE UPPER(ALG_GEBOUW_CODE) = UPPER(recResRuimte.ALG_GEBOUW_CODE)
|
||
AND ALG_LOCATIE_KEY = v_locatie_key
|
||
AND alg_gebouw_verwijder is null;
|
||
|
||
v_errorhint := ' Fout bij bepalen verdieping';
|
||
|
||
SELECT ALG_VERDIEPING_KEY, ALG_VERDIEPING_VOLGNR
|
||
INTO v_verdieping_key, v_verdieping_volgnr
|
||
FROM ALG_VERDIEPING
|
||
WHERE ALG_GEBOUW_KEY = v_gebouw_key
|
||
AND ALG_VERDIEPING_VOLGNR = recResRuimte.ALG_VERDIEPING_VOLGNR;
|
||
|
||
v_errorhint := ' Fout bij bepalen ruimte';
|
||
|
||
SELECT ALG_RUIMTE_KEY
|
||
INTO v_ruimte_key
|
||
FROM ALG_V_AANWEZIGRUIMTE
|
||
WHERE ALG_VERDIEPING_KEY = v_verdieping_key
|
||
AND ALG_RUIMTE_UPPER_NR = UPPER(recResRuimte.ALG_RUIMTE_NR);
|
||
|
||
v_errorhint := ' Fout bij bepalen catalogus ['||recResRuimte.res_discipline_omschrijving||']';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM RES_V_RES_CATALOGUS
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_min_level = 3
|
||
AND upper(trim(ins_discipline_omschrijving)) = upper(trim(recResRuimte.res_discipline_omschrijving));
|
||
|
||
v_errorhint := ' Fout bij bepalen opstelling ['||recResRuimte.RES_OPSTELLING_OMSCHRIJVING||']';
|
||
|
||
SELECT RES_OPSTELLING_KEY
|
||
INTO v_opstelling_key
|
||
FROM RES_OPSTELLING
|
||
WHERE UPPER(trim(RES_OPSTELLING_OMSCHRIJVING)) = UPPER(trim(recResRuimte.RES_OPSTELLING_OMSCHRIJVING))
|
||
AND RES_OPSTELLING_verwijder is null;
|
||
|
||
v_errorhint := ' Fout bij samenstellen ruimte-omschrijving';
|
||
|
||
IF (recResRuimte.RES_RUIMTE_NR IS NULL) THEN
|
||
v_ruimte_omschrijving := SUBSTR( recResRuimte.ALG_LOCATIE_CODE || '-' || recResRuimte.ALG_GEBOUW_CODE || '-' || TO_CHAR(recResRuimte.ALG_VERDIEPING_VOLGNR) || '-' || recResRuimte.ALG_RUIMTE_NR,1,40);
|
||
ELSE
|
||
v_ruimte_omschrijving := recResRuimte.RES_RUIMTE_NR;
|
||
END IF;
|
||
|
||
v_errorhint := 'Fout bij bepalen reserveerbare ruimte';
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM RES_RUIMTE
|
||
WHERE RES_RUIMTE_UPPER = upper(v_ruimte_omschrijving)
|
||
AND res_ruimte_verwijder is null;
|
||
|
||
IF v_count = 0 THEN
|
||
|
||
v_errorhint := 'Fout bij toevoegen reserveerbare ruimte';
|
||
|
||
INSERT INTO RES_RUIMTE
|
||
(RES_RUIMTE_NR
|
||
,RES_RUIMTE_UPPER
|
||
,RES_RUIMTE_PRIJS
|
||
,RES_RUIMTE_OMSCHRIJVING
|
||
,RES_DISCIPLINE_KEY
|
||
)
|
||
VALUES
|
||
(v_ruimte_omschrijving
|
||
,upper(v_ruimte_omschrijving)
|
||
,recResRuimte.RES_RUIMTE_PRIJS
|
||
,recResRuimte.RES_RUIMTE_OMSCHRIJVING
|
||
,v_discipline_key
|
||
)
|
||
RETURNING RES_RUIMTE_KEY
|
||
INTO v_res_ruimte_key;
|
||
|
||
v_errorhint := 'Fout bij koppelen ruimte en reserveerbare ruimte';
|
||
|
||
insert into RES_ALG_RUIMTE
|
||
(RES_RUIMTE_KEY
|
||
,ALG_RUIMTE_KEY
|
||
)
|
||
values
|
||
(v_res_ruimte_key
|
||
,v_ruimte_key
|
||
);
|
||
|
||
ELSE
|
||
|
||
SELECT RES_RUIMTE_KEY
|
||
INTO v_res_ruimte_key
|
||
FROM RES_RUIMTE
|
||
WHERE RES_RUIMTE_UPPER = upper(v_ruimte_omschrijving)
|
||
AND res_ruimte_verwijder IS NULL;
|
||
|
||
END IF;
|
||
|
||
v_errorhint := 'Fout bij koppelen opstelling en reserveerbare ruimte';
|
||
|
||
insert into RES_RUIMTE_OPSTELLING
|
||
(RES_RUIMTE_KEY
|
||
,RES_OPSTELLING_KEY
|
||
,RES_RUIMTE_OPSTEL_BEZOEKERS
|
||
)
|
||
values
|
||
(v_res_ruimte_key
|
||
,v_opstelling_key
|
||
,NVL(recResRuimte.RES_RUIMTE_OPSTEL_BEZOEKERS, 0)
|
||
);
|
||
|
||
commit;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR(SQLERRM, 1, 200);
|
||
v_errormsg := 'Reserveerbare ruimte ['||recResRuimte.RES_RUIMTE_OMSCHRIJVING||']';
|
||
v_errorhint := v_errorhint||': ' || oracle_err_mes;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding||v_errormsg,
|
||
v_errorhint
|
||
);
|
||
commit;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Res. ruimte: verwerkte regels zonder foutmelding: '||to_char(v_count_update),
|
||
''
|
||
);
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Res. ruimte: verwerkte regels met foutmelding: '||to_char(v_count_tot-v_count_update),
|
||
''
|
||
);
|
||
END IF;
|
||
CLOSE cResRuimte;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Fout tijdens importeren van onroerend goed (verdieping en ruimte) ',
|
||
''
|
||
);
|
||
END fmhw_update_ruimten;
|
||
/
|
||
*/
|
||
|
||
-- CAD sync-view, de orginele ruimtenummers landen in een kenmerk bij de ruimte.
|
||
|
||
CREATE OR REPLACE VIEW fmhw_v_sync_alg_ruimte
|
||
(
|
||
alg_ruimte_key,
|
||
alg_verdieping_key,
|
||
cadlabel
|
||
)
|
||
AS
|
||
SELECT r.alg_ruimte_key,
|
||
r.alg_verdieping_key,
|
||
COALESCE (k.alg_onrgoedkenmerk_waarde, r.alg_ruimte_nr) cadlabel
|
||
FROM alg_ruimte r, alg_onrgoedkenmerk k
|
||
WHERE r.alg_ruimte_key = k.alg_onrgoed_key AND k.alg_kenmerk_key = 1000;
|
||
|
||
-- En dan volgen nu de werkplekthema`s per ministerie (res_discipline).
|
||
CREATE OR REPLACE VIEW FMHW_V_THEMA_DEEL_RES_BUZA
|
||
(
|
||
FCLT_F_DATUM,
|
||
INS_DEEL_KEY,
|
||
MIN_VAN,
|
||
MAX_TOT,
|
||
WAARDE1,
|
||
WAARDE,
|
||
WAARDE3
|
||
)
|
||
AS
|
||
SELECT c.fclt_f_datum,
|
||
c.ins_deel_key,
|
||
c.min_van,
|
||
c.max_tot,
|
||
c.waarde1,
|
||
c.waarde,
|
||
c.waarde3
|
||
FROM cad_v_thema_deel_res_datum c, res_v_aanwezigdeel r
|
||
WHERE c.ins_deel_key = r.res_ins_deel_key
|
||
AND r.res_discipline_key = 22;
|
||
|
||
CREATE OR REPLACE VIEW FMHW_V_THEMA_DEEL_RES_BZK
|
||
(
|
||
FCLT_F_DATUM,
|
||
INS_DEEL_KEY,
|
||
MIN_VAN,
|
||
MAX_TOT,
|
||
WAARDE1,
|
||
WAARDE,
|
||
WAARDE3
|
||
)
|
||
AS
|
||
SELECT c.fclt_f_datum,
|
||
c.ins_deel_key,
|
||
c.min_van,
|
||
c.max_tot,
|
||
c.waarde1,
|
||
c.waarde,
|
||
c.waarde3
|
||
FROM cad_v_thema_deel_res_datum c, res_v_aanwezigdeel r
|
||
WHERE c.ins_deel_key = r.res_ins_deel_key
|
||
AND r.res_discipline_key = 21;
|
||
|
||
CREATE OR REPLACE VIEW FMHW_V_THEMA_DEEL_RES_FIN
|
||
(
|
||
FCLT_F_DATUM,
|
||
INS_DEEL_KEY,
|
||
MIN_VAN,
|
||
MAX_TOT,
|
||
WAARDE1,
|
||
WAARDE,
|
||
WAARDE3
|
||
)
|
||
AS
|
||
SELECT c.fclt_f_datum,
|
||
c.ins_deel_key,
|
||
c.min_van,
|
||
c.max_tot,
|
||
c.waarde1,
|
||
c.waarde,
|
||
c.waarde3
|
||
FROM cad_v_thema_deel_res_datum c, res_v_aanwezigdeel r
|
||
WHERE c.ins_deel_key = r.res_ins_deel_key
|
||
AND r.res_discipline_key = 23;
|
||
|
||
CREATE OR REPLACE VIEW FMHW_V_THEMA_DEEL_RES_IENW
|
||
(
|
||
FCLT_F_DATUM,
|
||
INS_DEEL_KEY,
|
||
MIN_VAN,
|
||
MAX_TOT,
|
||
WAARDE1,
|
||
WAARDE,
|
||
WAARDE3
|
||
)
|
||
AS
|
||
SELECT c.fclt_f_datum,
|
||
c.ins_deel_key,
|
||
c.min_van,
|
||
c.max_tot,
|
||
c.waarde1,
|
||
c.waarde,
|
||
c.waarde3
|
||
FROM cad_v_thema_deel_res_datum c, res_v_aanwezigdeel r
|
||
WHERE c.ins_deel_key = r.res_ins_deel_key
|
||
AND r.res_discipline_key = 24;
|
||
|
||
CREATE OR REPLACE VIEW FMHW_V_THEMA_DEEL_RES_JENV
|
||
(
|
||
FCLT_F_DATUM,
|
||
INS_DEEL_KEY,
|
||
MIN_VAN,
|
||
MAX_TOT,
|
||
WAARDE1,
|
||
WAARDE,
|
||
WAARDE3
|
||
)
|
||
AS
|
||
SELECT c.fclt_f_datum,
|
||
c.ins_deel_key,
|
||
c.min_van,
|
||
c.max_tot,
|
||
c.waarde1,
|
||
c.waarde,
|
||
c.waarde3
|
||
FROM cad_v_thema_deel_res_datum c, res_v_aanwezigdeel r
|
||
WHERE c.ins_deel_key = r.res_ins_deel_key
|
||
AND r.res_discipline_key = 25;
|
||
|
||
CREATE OR REPLACE VIEW FMHW_V_THEMA_DEEL_RES_SZW
|
||
(
|
||
FCLT_F_DATUM,
|
||
INS_DEEL_KEY,
|
||
MIN_VAN,
|
||
MAX_TOT,
|
||
WAARDE1,
|
||
WAARDE,
|
||
WAARDE3
|
||
)
|
||
AS
|
||
SELECT c.fclt_f_datum,
|
||
c.ins_deel_key,
|
||
c.min_van,
|
||
c.max_tot,
|
||
c.waarde1,
|
||
c.waarde,
|
||
c.waarde3
|
||
FROM cad_v_thema_deel_res_datum c, res_v_aanwezigdeel r
|
||
WHERE c.ins_deel_key = r.res_ins_deel_key
|
||
AND r.res_discipline_key = 26;
|
||
|
||
CREATE OR REPLACE VIEW FMHW_V_THEMA_DEEL_RES_VWS
|
||
(
|
||
FCLT_F_DATUM,
|
||
INS_DEEL_KEY,
|
||
MIN_VAN,
|
||
MAX_TOT,
|
||
WAARDE1,
|
||
WAARDE,
|
||
WAARDE3
|
||
)
|
||
AS
|
||
SELECT c.fclt_f_datum,
|
||
c.ins_deel_key,
|
||
c.min_van,
|
||
c.max_tot,
|
||
c.waarde1,
|
||
c.waarde,
|
||
c.waarde3
|
||
FROM cad_v_thema_deel_res_datum c, res_v_aanwezigdeel r
|
||
WHERE c.ins_deel_key = r.res_ins_deel_key
|
||
AND r.res_discipline_key = 27;
|
||
|
||
------ 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
|