2271 lines
99 KiB
SQL
2271 lines
99 KiB
SQL
/* Formatted on 13/3/2024 11:16:23 (QP5 v5.336) */
|
|
--
|
|
-- $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 = 'KW1C.SQL'
|
|
DEFINE dbuser = 'KW1C'
|
|
|
|
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 KW1C
|
|
IS
|
|
PROCEDURE VERWERKEN_RUIMTEKAART;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY KW1C
|
|
IS
|
|
PROCEDURE VERWERKEN_RUIMTEKAART
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
|
|
-- stap 1: bepalen of er per vandaag een mutatie is voor cat/type
|
|
-- nog te doen: wat als er nog geen categorie en type is?
|
|
CURSOR CAT IS
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
mutatiedatum.mutatiedatum,
|
|
ruimtetype.alg_kenmerk_key_type, ---> dit is de kenmerkkey voor deze nieuwe waarde
|
|
ruimtetype.huidig_type, --> ter info de oude waarde
|
|
ruimtetype.new_type_kenmerkwaarde, ---> dit is de key van nieuwe waarde
|
|
ruimtetype.nieuw_type_omschrijving, ---> dit is de nieuwe waarde
|
|
categorie.alg_kenmerk_key_categorie, ---> dit is de kenmerkkey voor deze nieuwe waarde
|
|
categorie.huidige_categorie, --> ter info de oude waarde
|
|
categorie.new_categorie_kenmerkwaarde, ---> dit is de key van nieuwe waarde
|
|
categorie.nieuwe_categorie_omschrijving, ---> dit is de nieuwe waarde
|
|
ruimtetype.onrgoedkenmerk_to_delete_type, --> deze mag weg als alles is opgeschoond
|
|
ruimtetype.onrgoedkenmerk_to_archive_type, --> deze mag een einddatum krijgen vandaag - 1
|
|
mutatiedatum.onrgoedkenmerk_to_delete_mutatiedat, --> deze mag weg als alles is opgeschoond
|
|
categorie.onrgoedkenmerk_to_archive_categorie, --> deze mag een einddatum krijgen vandaag - 1
|
|
categorie.onrgoedkenmerk_to_delete_categorie --> deze mag weg als alles is opgeschoond
|
|
FROM alg_ruimte r,
|
|
(SELECT fac.safe_to_date (kw.alg_onrgoedkenmerk_waarde, 'dd-mm-yyyy')
|
|
mutatiedatum,
|
|
kw.alg_onrgoedkenmerk_key
|
|
onrgoedkenmerk_to_delete_mutatiedat,
|
|
kw.alg_onrgoed_key
|
|
ruimte_key
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw
|
|
WHERE k.alg_kenmerk_key = 1082
|
|
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
|
AND kw.alg_onrgoed_niveau = 'R') mutatiedatum,
|
|
(SELECT r.alg_ruimte_key ruimte_key,
|
|
huidig.omschrijving huidig_type,
|
|
nieuw.omschrijving nieuw_type_omschrijving,
|
|
huidig.alg_kenmerk_key alg_kenmerk_key_type,
|
|
typen.fac_usrdata_key new_type_kenmerkwaarde,
|
|
huidig.alg_onrgoedkenmerk_key onrgoedkenmerk_to_archive_type,
|
|
nieuw.alg_onrgoedkenmerk_key onrgoedkenmerk_to_delete_type
|
|
FROM (SELECT kw.alg_onrgoedkenmerk_key,
|
|
kw.alg_onrgoed_key,
|
|
k.alg_kenmerk_key,
|
|
type_new.fac_usrdata_omschr omschrijving
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw, fac_usrdata type_new
|
|
WHERE k.alg_kenmerk_key = 1081
|
|
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
type_new.fac_usrdata_key
|
|
AND type_new.fac_usrtab_key = 41 -- keuzelijst nieuwe type
|
|
AND kw.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND kw.alg_onrgoed_niveau = 'R') nieuw,
|
|
(SELECT kw.alg_onrgoedkenmerk_key,
|
|
kw.alg_onrgoed_key,
|
|
k.alg_kenmerk_key,
|
|
type_new.fac_usrdata_omschr omschrijving
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw, fac_usrdata type_new
|
|
WHERE k.alg_kenmerk_key = 1008
|
|
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
type_new.fac_usrdata_key
|
|
AND type_new.fac_usrtab_key = 3 -- keuzelijst type
|
|
AND kw.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND kw.alg_onrgoed_niveau = 'R') huidig,
|
|
alg_ruimte r,
|
|
fac_usrdata typen
|
|
WHERE typen.fac_usrtab_key = 3 -- keuzelijst typen
|
|
AND UPPER (nieuw.omschrijving) = UPPER (typen.fac_usrdata_omschr) --- op basis van de omschrijvingen kan de juiste key bepaald worden
|
|
AND r.alg_ruimte_key = nieuw.alg_onrgoed_key
|
|
AND r.alg_ruimte_key = huidig.alg_onrgoed_key) ruimtetype,
|
|
(SELECT r.alg_ruimte_key ruimte_key,
|
|
huidig.omschrijving huidige_categorie,
|
|
nieuw.omschrijving nieuwe_categorie_omschrijving,
|
|
huidig.alg_kenmerk_key alg_kenmerk_key_categorie,
|
|
categorie.fac_usrdata_key new_categorie_kenmerkwaarde,
|
|
huidig.alg_onrgoedkenmerk_key onrgoedkenmerk_to_archive_categorie,
|
|
nieuw.alg_onrgoedkenmerk_key onrgoedkenmerk_to_delete_categorie
|
|
FROM (SELECT kw.alg_onrgoedkenmerk_key,
|
|
kw.alg_onrgoed_key,
|
|
k.alg_kenmerk_key,
|
|
categorie_new.fac_usrdata_omschr omschrijving
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw, fac_usrdata categorie_new
|
|
WHERE k.alg_kenmerk_key = 1080
|
|
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
categorie_new.fac_usrdata_key
|
|
AND categorie_new.fac_usrtab_key = 42 -- keuzelijst nieuwe categorieen
|
|
AND kw.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND kw.alg_onrgoed_niveau = 'R') nieuw,
|
|
(SELECT kw.alg_onrgoedkenmerk_key,
|
|
kw.alg_onrgoed_key,
|
|
k.alg_kenmerk_key,
|
|
categorie_new.fac_usrdata_omschr omschrijving
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw, fac_usrdata categorie_new
|
|
WHERE k.alg_kenmerk_key = 1060
|
|
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
categorie_new.fac_usrdata_key
|
|
AND categorie_new.fac_usrtab_key = 21 -- keuzelijst categorie
|
|
AND kw.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND kw.alg_onrgoed_niveau = 'R') huidig,
|
|
alg_ruimte r,
|
|
fac_usrdata categorie
|
|
WHERE categorie.fac_usrtab_key = 21 -- keuzelijst categorie
|
|
AND UPPER (nieuw.omschrijving) = UPPER (categorie.fac_usrdata_omschr) --- op basis van de omschrijvingen kan de juiste key bepaald worden
|
|
AND r.alg_ruimte_key = nieuw.alg_onrgoed_key
|
|
AND r.alg_ruimte_key = huidig.alg_onrgoed_key) categorie
|
|
WHERE mutatiedatum.ruimte_key = r.alg_ruimte_key
|
|
AND ruimtetype.ruimte_key = r.alg_ruimte_key
|
|
AND categorie.ruimte_key = r.alg_ruimte_key
|
|
AND mutatiedatum.mutatiedatum < TRUNC (SYSDATE + 1);
|
|
|
|
-- stap 1: bepalen of er per vandaag een mutatie is voor vloer
|
|
CURSOR VLOER IS
|
|
SELECT r.alg_ruimte_key,
|
|
r.alg_ruimte_nr,
|
|
mutatiedatum.mutatiedatum,
|
|
mutatiedatum.onrgoedkenmerk_to_delete_mutatiedat, --> deze mag weg als alles is opgeschoond
|
|
vloer.alg_kenmerk_key_vloer, ---> dit is de kenmerkkey voor de nieuwe waarde
|
|
vloer.huidige_vloer, ---> ter info de oude waarde
|
|
vloer.to_archive_vloer, ---> deze mag een einddatum krijgen vandaag - 1,
|
|
vloer_new.nieuwe_vloer_key, ---> dit is de key van nieuwe waarde
|
|
vloer_new.nieuwe_vloer_omschr, ---> dit is de nieuwe waarde
|
|
vloer_new.to_delete_vloer --> deze mag weg als alles is opgeschoond
|
|
FROM alg_ruimte r,
|
|
(SELECT fac.safe_to_date (kw.alg_onrgoedkenmerk_waarde, 'dd-mm-yyyy')
|
|
mutatiedatum,
|
|
kw.alg_onrgoedkenmerk_key
|
|
onrgoedkenmerk_to_delete_mutatiedat,
|
|
kw.alg_onrgoed_key
|
|
ruimte_key
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw
|
|
WHERE k.alg_kenmerk_key = 1084
|
|
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
|
AND kw.alg_onrgoed_niveau = 'R') mutatiedatum,
|
|
(SELECT kw.alg_onrgoed_key ruimte_key,
|
|
kw.alg_kenmerk_key alg_kenmerk_key_vloer,
|
|
kw.alg_onrgoedkenmerk_key to_archive_vloer,
|
|
ud.fac_usrdata_omschr huidige_vloer
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw, fac_usrdata ud
|
|
WHERE k.alg_kenmerk_key = 1009
|
|
AND k.alg_kenmerk_key = kw.alg_kenmerk_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND kw.alg_onrgoed_niveau = 'R'
|
|
AND kw.alg_onrgoedkenmerk_verwijder IS NULL) vloer,
|
|
(SELECT kw.alg_onrgoed_key ruimte_key,
|
|
kw.alg_onrgoedkenmerk_key to_delete_vloer,
|
|
ud.fac_usrdata_key nieuwe_vloer_key,
|
|
ud.fac_usrdata_omschr nieuwe_vloer_omschr
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk kw, fac_usrdata ud
|
|
WHERE k.alg_kenmerk_key = 1083
|
|
AND k.alg_kenmerk_key = kw.alg_kenmerk_key
|
|
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
|
|
ud.fac_usrdata_key
|
|
AND kw.alg_onrgoed_niveau = 'R'
|
|
AND kw.alg_onrgoedkenmerk_verwijder IS NULL) vloer_new
|
|
WHERE r.alg_ruimte_key = vloer.ruimte_key --- (+) nu nog geen outer join, maar wat als er nog geen waarde is? dit afvangen!
|
|
AND r.alg_ruimte_key = vloer_new.ruimte_key
|
|
AND r.alg_ruimte_key = mutatiedatum.ruimte_key
|
|
AND mutatiedatum.mutatiedatum < TRUNC (SYSDATE + 1);
|
|
BEGIN
|
|
FOR rec IN CAT
|
|
LOOP
|
|
-- de oude waarden (categorie en type archiveren) geven we een verwijderdatum vandaag-1
|
|
UPDATE alg_onrgoedkenmerk ok
|
|
SET ok.alg_onrgoedkenmerk_verwijder = TRUNC (SYSDATE) - 1
|
|
WHERE ok.alg_onrgoedkenmerk_key = rec.onrgoedkenmerk_to_archive_type
|
|
OR ok.alg_onrgoedkenmerk_key = rec.onrgoedkenmerk_to_archive_categorie;
|
|
|
|
fac.trackaction (
|
|
'ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Categorie '
|
|
|| rec.huidige_categorie
|
|
|| ' en type '
|
|
|| rec.huidig_type
|
|
|| ' gearchiveerd');
|
|
|
|
-- de nieuwe waarde voor categorie voegen we toe
|
|
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
|
|
alg_onrgoed_niveau,
|
|
alg_kenmerk_key,
|
|
alg_onrgoedkenmerk_waarde)
|
|
VALUES (rec.alg_ruimte_key,
|
|
'R',
|
|
rec.alg_kenmerk_key_categorie,
|
|
rec.new_categorie_kenmerkwaarde);
|
|
|
|
-- de nieuwe waarde voor type voegen we toe
|
|
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
|
|
alg_onrgoed_niveau,
|
|
alg_kenmerk_key,
|
|
alg_onrgoedkenmerk_waarde)
|
|
VALUES (rec.alg_ruimte_key,
|
|
'R',
|
|
rec.alg_kenmerk_key_type,
|
|
rec.new_type_kenmerkwaarde);
|
|
|
|
fac.trackaction (
|
|
'ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Categorie en type omgezet naar : '
|
|
|| rec.nieuwe_categorie_omschrijving
|
|
|| ' - '
|
|
|| rec.nieuw_type_omschrijving);
|
|
|
|
-- de mutatie velden --> die moeten weer leeggemaakt worden voor een volgende mutatie
|
|
DELETE FROM alg_onrgoedkenmerk ok
|
|
WHERE ok.alg_onrgoedkenmerk_key = rec.onrgoedkenmerk_to_delete_type
|
|
OR ok.alg_onrgoedkenmerk_key = rec.onrgoedkenmerk_to_delete_mutatiedat
|
|
OR ok.alg_onrgoedkenmerk_key = rec.onrgoedkenmerk_to_delete_categorie;
|
|
|
|
fac.trackaction ('ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Mutatievelden categorie en type opgeschoond');
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
FOR rec IN VLOER
|
|
LOOP
|
|
-- de oude waarden (categorie en type archiveren) geven we een verwijderdatum vandaag-1
|
|
UPDATE alg_onrgoedkenmerk ok
|
|
SET ok.alg_onrgoedkenmerk_verwijder = TRUNC (SYSDATE) - 1
|
|
WHERE ok.alg_onrgoedkenmerk_key = rec.to_archive_vloer;
|
|
|
|
|
|
fac.trackaction ('ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Vloerafwerking ' || rec.huidige_vloer || ' gearchiveerd');
|
|
|
|
-- de nieuwe waarde voor categorie voegen we toe
|
|
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
|
|
alg_onrgoed_niveau,
|
|
alg_kenmerk_key,
|
|
alg_onrgoedkenmerk_waarde)
|
|
VALUES (rec.alg_ruimte_key,
|
|
'R',
|
|
rec.alg_kenmerk_key_vloer,
|
|
rec.nieuwe_vloer_key);
|
|
|
|
fac.trackaction ('ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Vloerafwerking omgezet naar : ' || rec.nieuwe_vloer_omschr);
|
|
|
|
-- de mutatie velden --> die moeten weer leeggemaakt worden voor een volgende mutatie
|
|
DELETE FROM alg_onrgoedkenmerk ok
|
|
WHERE ok.alg_onrgoedkenmerk_key = rec.to_delete_vloer
|
|
OR ok.alg_onrgoedkenmerk_key = rec.onrgoedkenmerk_to_delete_mutatiedat;
|
|
|
|
|
|
fac.trackaction ('ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Mutatievelden vloerafwerking opgeschoond');
|
|
COMMIT;
|
|
END LOOP;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog ('Verwerken mutaties ruimtekaart',
|
|
'E',
|
|
v_errormsg,
|
|
'');
|
|
END VERWERKEN_RUIMTEKAART;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE KW1C_DAILY
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
BEGIN
|
|
KW1C.VERWERKEN_RUIMTEKAART;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog ('DAILY',
|
|
'E',
|
|
'Proces afgebroken!',
|
|
v_errormsg);
|
|
END KW1C_DAILY;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW KW1C_V_SYNC_ALG_RUIMTE
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
ALG_VERDIEPING_KEY,
|
|
CADLABEL
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key, v.alg_verdieping_key, LOWER (r.alg_ruimte_nr) cadlabel
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key;
|
|
|
|
-- Sleepbaar thema vloerafwerking
|
|
|
|
CREATE OR REPLACE VIEW KW1C_V_CAD_THEMA_VLOERAFW
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
WAARDE_KEY
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
COALESCE (gf.fac_usrdata_omschr, 'Onbekend'),
|
|
COALESCE (gf.fac_usrdata_key, 161)
|
|
FROM alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 1009
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) gf
|
|
WHERE gf.alg_ruimte_key(+) = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE TRIGGER kw1c_t_thema_vloerafw_i_iu
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON KW1C_V_CAD_THEMA_VLOERAFW
|
|
FOR EACH ROW
|
|
BEGIN
|
|
--- kenmerk bijwerken, let op: de nieuwe waarde is de key en dus niet de omschrijving
|
|
alg.upsertkenmerk (1009, :new.alg_ruimte_key, :new.waarde_key);
|
|
END;
|
|
/
|
|
|
|
|
|
----------------------------------------------------------------------------
|
|
------------------ BEGIN MBJOB IMPORT --------------------------------------
|
|
----------------------------------------------------------------------------
|
|
|
|
CREATE OR REPLACE PROCEDURE kw1c_import_insp_mjob (p_import_key IN NUMBER)
|
|
IS
|
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
|
|
|
v_newline VARCHAR2 (4000); -- Input line
|
|
v_errormsg VARCHAR (1000);
|
|
v_hint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_ongeldig NUMBER (1);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_header_is_valid NUMBER (1);
|
|
v_dummy VARCHAR2 (1000);
|
|
v_count NUMBER;
|
|
v_count_rec NUMBER := 0; -- totaal aantal record in csv
|
|
v_count_verwerk NUMBER; -- aantal te verwerken regels
|
|
v_count_n_taak NUMBER; -- aantal nieuw aan te maken basistaken
|
|
v_count_n_taakobject NUMBER; -- aantal nieuw aan te maken objecttaken
|
|
v_count_w_taak NUMBER; -- aantal bestaande taken te wijzigen
|
|
|
|
-- De importvelden:
|
|
v_locatiecode VARCHAR2 (1000);
|
|
v_objectomschrijving VARCHAR2 (1000);
|
|
v_taakcategorie VARCHAR2 (1000);
|
|
v_taakomschrijving VARCHAR2 (1000);
|
|
v_taakomschrijving_nieuw VARCHAR2 (1000); -- Vullen we in kolom extra_veld5
|
|
v_taakopmerking VARCHAR2 (1000);
|
|
v_taakgroep VARCHAR2 (1000);
|
|
v_taakprioriteit VARCHAR2 (1000);
|
|
v_taakobjectpercentage VARCHAR2 (1000);
|
|
v_taakobjectopmerking VARCHAR2 (1000);
|
|
v_taakobjectperiode VARCHAR2 (1000);
|
|
v_taakobjectstartjaar VARCHAR2 (1000); -- Startjaar uit CSV
|
|
v_taakobjectstartjaar_d DATE;
|
|
v_object_aanmaak DATE; -- Datum aanmaak van Object
|
|
|
|
v_taakobjecteindjaar VARCHAR2 (1000);
|
|
v_taakobjecteindjaar_d DATE;
|
|
v_taakobjectmateriaal VARCHAR2 (1000);
|
|
v_taakobjectkosten VARCHAR2 (1000);
|
|
v_taakobjecteenheid VARCHAR2 (1000);
|
|
v_taakdienst VARCHAR2 (1000);
|
|
v_deel_key NUMBER (10);
|
|
v_discipline_key NUMBER (10);
|
|
v_ismjob NUMBER;
|
|
v_taak_geschiedenis NUMBER (10); -- Vullen we in kolom extra_veld4
|
|
|
|
v_srtcontrole_key NUMBER (10);
|
|
v_srtcontrole_teller NUMBER (10);
|
|
v_ins_srtdeel_key NUMBER (10);
|
|
v_ins_srtdeel_code VARCHAR2 (10);
|
|
v_ins_srtcontroledl_xcp_key NUMBER (10);
|
|
v_taakobject_startjaar_d DATE; -- Startjaar van de reeds in Facilitor gekoppelde objecttaak
|
|
|
|
CURSOR c IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
|
|
DELETE FROM tmp_imp_mjb;
|
|
|
|
COMMIT;
|
|
|
|
v_header_is_valid := 0;
|
|
v_ongeldig := 0;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
v_ongeldig := 0;
|
|
v_taak_geschiedenis := NULL;
|
|
v_deel_key := NULL;
|
|
v_ins_srtdeel_key := NULL;
|
|
v_ins_srtdeel_code := NULL;
|
|
v_srtcontrole_key := NULL;
|
|
v_ins_srtcontroledl_xcp_key := NULL;
|
|
|
|
v_errormsg := 'Fout FETCH te importeren rij';
|
|
v_newline := rec.fac_imp_file_line;
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200);
|
|
v_aanduiding := '';
|
|
|
|
-- OUD: 'OBJECTOMSCHRIJVING;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKBTW;TAAKKOSTENPLAATSNR;TAAKKOSTENPLAATSOMSCHRIJVING;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN%
|
|
-- NIEUW (vanaf 2020-6): OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW;
|
|
|
|
IF (REPLACE (UPPER (v_newline), ' ') LIKE
|
|
'OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW%')
|
|
THEN
|
|
v_header_is_valid := 1;
|
|
ELSE
|
|
-- Lees alle veldwaarden
|
|
v_count_rec := v_count_rec + 1;
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (object)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_objectomschrijving);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (discipline)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakcategorie);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijving)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakopmerking)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakopmerking);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakgroep)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakgroep);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (prioriteit)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakprioriteit);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (percentage)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectpercentage);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (opmerking)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectopmerking);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (eenheid)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteenheid);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (periode)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectperiode);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (startjaar)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectstartjaar);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (eindjaar)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteindjaar);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (materiaal)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectmateriaal);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (dienst)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakdienst);
|
|
|
|
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijvingnieuw)';
|
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving_nieuw);
|
|
|
|
|
|
IF v_header_is_valid = 1
|
|
THEN -- Als geldige header gepasseerd en csv-recordvelden gevuld dan gaan we eerst checken of data klopt
|
|
-- Controleer of het object bestaat
|
|
-- Controleer of object er meerdere keren in staat (valt terug naar OTHERS, regel 300)
|
|
BEGIN
|
|
v_errormsg :=
|
|
'Fout bij opzoeken object: '
|
|
|| v_objectomschrijving
|
|
|| ' komt vaker dan 1 keer voor';
|
|
|
|
SELECT ins_deel_key
|
|
INTO v_deel_key
|
|
FROM ins_deel
|
|
WHERE UPPER (ins_deel_omschrijving) = UPPER (v_objectomschrijving)
|
|
AND ins_deel_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Object bestaat niet - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
|
v_ongeldig := 1;
|
|
END;
|
|
|
|
-- Controleer de taakcategorie
|
|
v_errormsg := 'Fout bij controleren taakcategorie ';
|
|
|
|
BEGIN
|
|
SELECT ins_discipline_key, ctr_disc_params_ismjob
|
|
INTO v_discipline_key, v_ismjob
|
|
FROM ins_tab_discipline d, ctr_disc_params dp
|
|
WHERE dp.ctr_ins_discipline_key = d.ins_discipline_key
|
|
AND UPPER (d.ins_discipline_omschrijving) =
|
|
TRIM (UPPER (v_taakcategorie));
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Inspectie discipline niet gevonden - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index || ' - ' || v_taakcategorie);
|
|
v_ongeldig := 1;
|
|
END;
|
|
|
|
-- Controleer de eenheid
|
|
IF v_ismjob = 1
|
|
THEN
|
|
v_taakobjecteenheid := '4'; -- jaar
|
|
END IF;
|
|
|
|
IF v_taakobjecteenheid IS NOT NULL
|
|
AND v_taakobjecteenheid NOT IN ('1',
|
|
'2',
|
|
'3',
|
|
'4')
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Eenheid is niet correct gevuld (of leeg of 1,2,3,4) - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakobjecteenheid);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer dienst
|
|
v_errormsg := 'Fout controleren dienst ';
|
|
|
|
IF v_taakdienst IS NOT NULL
|
|
THEN
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_dienst
|
|
WHERE UPPER (prs_dienst_omschrijving) = UPPER (v_taakdienst);
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
'Dienst onbekend - zal bij verwerken aangemaakt worden.. ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakdienst);
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Controleer de kosten - leeg of numeriek
|
|
v_errormsg := 'Fout controleren kosten ';
|
|
|
|
IF v_taakobjectmateriaal IS NOT NULL
|
|
AND fac.safe_to_number (REPLACE (v_taakobjectmateriaal, ',', '.')) IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Kosten taakobject niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| 'Kosten csv: '
|
|
|| v_taakobjectmateriaal);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer de taakperiode - Leeg of numeriek
|
|
v_errormsg := 'Fout controleren taakperiode ';
|
|
|
|
IF v_taakobjectperiode IS NOT NULL
|
|
AND fac.safe_to_number (v_taakobjectperiode) IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakobjectperiode);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer de taakprioriteit - Leeg of numeriek
|
|
v_errormsg := 'Fout controleren taakprioriteit ';
|
|
|
|
IF v_taakprioriteit IS NOT NULL
|
|
AND fac.safe_to_number (v_taakprioriteit) IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Prioriteit taak niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| 'Kosten csv: '
|
|
|| v_taakprioriteit);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
-- Controleer de startdatum
|
|
v_errormsg := 'Fout bij controle startdatum ';
|
|
|
|
-- In geval jaar-invoer op datum zetten..
|
|
IF LENGTH (v_taakobjectstartjaar) = 4
|
|
THEN
|
|
v_taakobjectstartjaar := '01-01-' || v_taakobjectstartjaar;
|
|
END IF;
|
|
|
|
IF v_taakobjectstartjaar IS NOT NULL
|
|
AND fac.safe_to_date (v_taakobjectstartjaar, 'dd-mm-yyyy') IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Startdatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - Datum csv: '
|
|
|| v_taakobjectstartjaar);
|
|
v_ongeldig := 1;
|
|
ELSE
|
|
v_taakobjectstartjaar_d :=
|
|
fac.safe_to_date (v_taakobjectstartjaar, 'dd-mm-yyyy');
|
|
END IF;
|
|
|
|
-- Hier controleren of de startdatum voor de Objectregisratiedatum ligt
|
|
v_errormsg := 'Fout bij controle start- en objectregistratiedatum ';
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
|
THEN
|
|
SELECT ins_deel_aanmaak
|
|
INTO v_object_aanmaak
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = v_deel_key;
|
|
END IF;
|
|
|
|
-- Controleer de einddatum
|
|
v_errormsg := 'Fout bij controle einddatum ';
|
|
|
|
-- In geval jaar-invoer op datum zetten..
|
|
IF LENGTH (v_taakobjecteindjaar) = 4
|
|
THEN
|
|
v_taakobjecteindjaar := '31-12-' || v_taakobjecteindjaar;
|
|
END IF;
|
|
|
|
IF v_taakobjecteindjaar IS NOT NULL
|
|
AND fac.safe_to_date (v_taakobjecteindjaar, 'dd-mm-yyyy') IS NULL
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Einddatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - Datum csv: '
|
|
|| v_taakobjecteindjaar);
|
|
v_ongeldig := 1;
|
|
ELSE
|
|
v_taakobjecteindjaar_d :=
|
|
fac.safe_to_date (v_taakobjecteindjaar, 'dd-mm-yyyy');
|
|
END IF;
|
|
|
|
-- Hier controleren of de taak al bestaat...
|
|
v_errormsg :=
|
|
'Fout controleren nieuwe of bestaande taak '
|
|
|| rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakomschrijving;
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
|
THEN
|
|
-- Eerst ins_srtdeel_code bepalen
|
|
SELECT d.ins_srtdeel_key, sd.ins_srtdeel_code
|
|
INTO v_ins_srtdeel_key, v_ins_srtdeel_code
|
|
FROM ins_deel d, ins_srtdeel sd
|
|
WHERE d.ins_deel_key = v_deel_key
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND ins_deel_verwijder IS NULL;
|
|
|
|
-- Vervolgens kijken of er al een taak op aangemaakt is
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_srtcontrole_teller
|
|
FROM ins_srtcontrole
|
|
WHERE LOWER (ins_srtcontrole_omschrijving) =
|
|
SUBSTR (
|
|
TRIM (v_ins_srtdeel_code || ' - ' || LOWER (v_taakomschrijving)),
|
|
1,
|
|
60);
|
|
|
|
-- Zo ja, dan gaan we de srt_controle_key vullen
|
|
--- Ps. Komt soms bij heyday voor dat eenzelfde basistaak er meer dan 1 keer in staat (per ongeluk) en daarom pakken we hier dan de max(key).
|
|
IF v_srtcontrole_teller > 0
|
|
THEN
|
|
SELECT MAX (ins_srtcontrole_key)
|
|
INTO v_srtcontrole_key
|
|
FROM ins_srtcontrole
|
|
WHERE LOWER (ins_srtcontrole_omschrijving) =
|
|
SUBSTR (
|
|
TRIM (
|
|
v_ins_srtdeel_code
|
|
|| ' - '
|
|
|| LOWER (v_taakomschrijving)),
|
|
1,
|
|
60);
|
|
ELSE -- Zo niet, dan is het dus geen bestaande standaard taak en gaan we straks in de update NIEUWE taak aanmaken
|
|
-- En passen dan ook maar gelijk taakomschrijving goed aan
|
|
v_errormsg := 'Fout bij aanpassen taakomschrijving ';
|
|
|
|
IF ( LENGTH (TRIM (v_ins_srtdeel_code))
|
|
+ 3
|
|
+ LENGTH (TRIM (v_taakomschrijving))) >
|
|
60
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
'Nieuwe taak - Aangepast ivm lengte groter dan 60 ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakomschrijving
|
|
|| ' wordt: '
|
|
|| SUBSTR (
|
|
TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving),
|
|
1,
|
|
60));
|
|
END IF;
|
|
|
|
v_taakomschrijving :=
|
|
SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving),
|
|
1,
|
|
60);
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Hier controleren of voor de bestaande taak ook de objecttaak al bestaat...
|
|
v_errormsg :=
|
|
'Fout controleren nieuwe of bestaande objecttaak '
|
|
|| rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakomschrijving;
|
|
|
|
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL
|
|
THEN
|
|
SELECT MAX (t.ins_srtcontroledl_xcp_key),
|
|
MAX (t.ins_srtcontroledl_xcp_startdat)
|
|
INTO v_ins_srtcontroledl_xcp_key, v_taakobject_startjaar_d
|
|
FROM ins_srtcontroledl_xcp t
|
|
WHERE t.ins_srtcontrole_key = v_srtcontrole_key
|
|
AND t.ins_deel_key = v_deel_key;
|
|
END IF;
|
|
|
|
-- Hier controleren of alle verplichte velden voor de nieuwe objecttaak correct zijn gevuld
|
|
---- Dit zijn: Startdatum + Eenheid + Periode + Taakgroep(?) + Percentage (?) + Kosten (?)
|
|
v_errormsg := 'Fout controleren verplichte velden bij nieuwe objecttaak ';
|
|
|
|
IF v_deel_key IS NOT NULL
|
|
AND v_ongeldig = 0
|
|
AND v_ins_srtcontroledl_xcp_key IS NULL
|
|
THEN
|
|
-- startdatum mag ook leeg zijn, dan is het automatich object registratie + cyclus
|
|
-- IF v_taakobjectstartjaar IS NULL THEN
|
|
-- fac.imp_writelog (
|
|
-- p_import_key, 'E', 'Startdatum niet ingevuld - Regel wordt niet verwerkt.. ',
|
|
-- rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
|
-- v_ongeldig := 1;
|
|
-- END IF;
|
|
|
|
IF v_taakobjecteenheid IS NULL
|
|
OR v_taakobjecteenheid NOT IN ('1',
|
|
'2',
|
|
'3',
|
|
'4')
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Geen of ongeldige eenheid gevonden - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakobjecteenheid);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
|
|
IF (v_taakobjectperiode IS NULL)
|
|
OR ( v_taakobjectperiode IS NOT NULL
|
|
AND fac.safe_to_number (v_taakobjectperiode) IS NULL)
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Geen of ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakobjectperiode);
|
|
v_ongeldig := 1;
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Hier controleren of er al geschiedenis op de objecttaak zit en de startdatum afwijkt van degene meegegeven in csv
|
|
v_errormsg := 'Fout controleren geschiedenis op objecttaak ';
|
|
|
|
IF v_deel_key IS NOT NULL
|
|
AND v_ongeldig = 0
|
|
AND v_srtcontrole_key IS NOT NULL
|
|
AND v_ins_srtcontroledl_xcp_key IS NOT NULL
|
|
THEN
|
|
v_taak_geschiedenis := 0;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_taak_geschiedenis
|
|
FROM ins_deelsrtcontrole
|
|
WHERE ins_deel_key = v_deel_key
|
|
AND ins_srtcontrole_key = v_srtcontrole_key;
|
|
|
|
IF v_taak_geschiedenis > 0
|
|
AND v_taakobjectstartjaar IS NOT NULL
|
|
AND v_taakobjectstartjaar_d <> v_taakobject_startjaar_d
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
'Op deze objecttaak zit al geschiedenis - afwijkende startdatum zal niet aangepast worden.. ',
|
|
rec.fac_imp_file_index
|
|
|| ' - '
|
|
|| v_objectomschrijving
|
|
|| ' - '
|
|
|| v_taakomschrijving
|
|
|| ' - '
|
|
|| v_taakobjectstartjaar_d
|
|
|| ' vs. '
|
|
|| v_taakobject_startjaar_d);
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Aangezien de taken altijd een startdatum hebben, en objecten niet altijd een aanmaakdatum, gaan we die hier gelijk trekken.
|
|
-- Daarna maken we de taak startdatum leeg, zodat de cyclus gaat lopen vanaf de bijgewerkte ins_deel_aanmaak.
|
|
-- Zo blijft het mogelijk om taken in de MJOB console te verslepen naar jaartallen eerder dan het aangegeven startjaar.
|
|
|
|
IF v_taakobjectstartjaar_d < SYSDATE
|
|
THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_aanmaak = v_taakobjectstartjaar_d
|
|
WHERE ins_deel_key = v_deel_key;
|
|
END IF;
|
|
|
|
-- v_taakobjectstartjaar_d := NULL;
|
|
|
|
-- Nu kunnen we de tussentabel vullen
|
|
v_errormsg := 'Fout bij toevoegen regel aan tabel ' || v_objectomschrijving;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
INSERT INTO tmp_imp_mjb (locatiecode,
|
|
objectomschrijving,
|
|
taakcategorie,
|
|
taakomschrijving,
|
|
taakopmerking,
|
|
taakgroep,
|
|
taakprioriteit,
|
|
taakobjectpercentage,
|
|
taakobjectopmerking,
|
|
taakobjectperiode,
|
|
taakobjectstartjaar,
|
|
taakobjecteindjaar,
|
|
taakobjectmateriaal,
|
|
taakobjecteenheid,
|
|
taakdienst,
|
|
extra_veld4, -- Gebruiken voor taakgeschiedenis
|
|
extra_veld5, -- Gebruiken voor taakomschrijving_nieuw
|
|
deel_key,
|
|
discipline_key,
|
|
ismjob,
|
|
ins_srtcontrole_key,
|
|
ins_srtcontroledl_xcp_key,
|
|
ins_srtdeel_key)
|
|
VALUES (v_locatiecode,
|
|
v_objectomschrijving,
|
|
v_taakcategorie,
|
|
v_taakomschrijving,
|
|
v_taakopmerking,
|
|
v_taakgroep,
|
|
v_taakprioriteit,
|
|
v_taakobjectpercentage,
|
|
v_taakobjectopmerking,
|
|
v_taakobjectperiode,
|
|
v_taakobjectstartjaar_d,
|
|
v_taakobjecteindjaar_d,
|
|
v_taakobjectmateriaal,
|
|
v_taakobjecteenheid,
|
|
v_taakdienst,
|
|
v_taak_geschiedenis,
|
|
v_taakomschrijving_nieuw,
|
|
v_deel_key,
|
|
v_discipline_key,
|
|
v_ismjob,
|
|
v_srtcontrole_key,
|
|
v_ins_srtcontroledl_xcp_key,
|
|
v_ins_srtdeel_key);
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
v_hint := v_errormsg;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_hint);
|
|
END;
|
|
END LOOP;
|
|
|
|
-- Aantallen tellen voor logging
|
|
v_errormsg := 'Fout bij tellen aantallen voor logging ';
|
|
|
|
v_count_verwerk := 0; -- aantal te verwerken regels
|
|
v_count_n_taak := 0; -- aantal nieuw aan te maken basistaken
|
|
v_count_n_taakobject := 0; -- aantal nieuw aan te maken objecttaken
|
|
v_count_w_taak := 0; -- aantal bestaande (object)taken te wijzigen
|
|
|
|
SELECT COUNT (*) INTO v_count_verwerk FROM tmp_imp_mjb;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count_n_taak
|
|
FROM (SELECT DISTINCT (taakomschrijving)
|
|
FROM tmp_imp_mjb
|
|
WHERE ins_srtcontrole_key IS NULL) v;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count_n_taakobject
|
|
FROM tmp_imp_mjb
|
|
WHERE ins_srtcontroledl_xcp_key IS NULL;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count_w_taak
|
|
FROM tmp_imp_mjb
|
|
WHERE ins_srtcontrole_key IS NOT NULL AND ins_srtcontroledl_xcp_key IS NOT NULL;
|
|
|
|
|
|
IF v_header_is_valid = 0
|
|
THEN
|
|
ROLLBACK;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || 'Ongeldig importbestand',
|
|
'Toelichting: Verkeerde header. Niet conform specs. ');
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'IMPORT TAKEN: aantal te verwerken regels: '
|
|
|| TO_CHAR (v_count_verwerk)
|
|
|| ' (van de '
|
|
|| TO_CHAR (v_count_rec)
|
|
|| ' records in csv)'
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| 'Aantal nieuwe taken: '
|
|
|| TO_CHAR (v_count_n_taak)
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| 'Aantal nieuwe objecttaken: '
|
|
|| TO_CHAR (v_count_n_taakobject)
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| 'Aantal bestaande, te wijzigen (object)taken: '
|
|
|| TO_CHAR (v_count_w_taak),
|
|
'');
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
ROLLBACK;
|
|
oracle_err_num := SQLCODE;
|
|
v_hint := v_errormsg;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_hint);
|
|
END kw1c_import_insp_mjob;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE kw1c_update_insp_mjob (p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c_n -- nieuwe taken en objecttaken aanmaken..
|
|
IS
|
|
SELECT i.*
|
|
FROM tmp_imp_mjb i
|
|
WHERE i.ins_srtcontrole_key IS NULL;
|
|
|
|
CURSOR c_no -- nieuwe objecttaken aanmaken..
|
|
IS
|
|
SELECT i.*
|
|
FROM tmp_imp_mjb i
|
|
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NULL;
|
|
|
|
CURSOR c_m -- bestaande taak en/of objecttaak wijzigen
|
|
IS
|
|
SELECT i.*
|
|
FROM tmp_imp_mjb i
|
|
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NOT NULL;
|
|
|
|
v_errormsg VARCHAR2 (4000);
|
|
v_error_hint VARCHAR2 (4000);
|
|
oracle_err_mes VARCHAR2 (4000);
|
|
oracle_err_num VARCHAR2 (4000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
v_aanduiding_objecttaak VARCHAR2 (1000);
|
|
v_ongeldig NUMBER (1);
|
|
v_ins_srtcontrole_key NUMBER (10);
|
|
v_dienst_key NUMBER (10);
|
|
v_taak_al_aangemaakt NUMBER (10);
|
|
|
|
v_count_verwerk NUMBER := 0; -- aantal verwerkte records
|
|
v_count_n_taak NUMBER := 0; -- aantal nieuw aangemaakte basistaken
|
|
v_count_n_taakobject NUMBER := 0; -- aantal nieuw aangemaakte objecttaken
|
|
v_count_w_taak NUMBER := 0; -- aantal bestaande basistaken gewijzigd
|
|
v_count_w_taakobject NUMBER := 0; -- aantal bestaande object-taken gewijzigd
|
|
v_count_taak NUMBER := 0;
|
|
v_count_taakobject NUMBER := 0;
|
|
|
|
|
|
-- Velden
|
|
v_taakomschrijving VARCHAR2 (1000);
|
|
v_ins_srtdeel_code VARCHAR2 (10);
|
|
v_taakomschrijving_nieuw VARCHAR2 (1000);
|
|
v_taakopmerking VARCHAR2 (1000);
|
|
v_taakgroep VARCHAR2 (1000);
|
|
v_taakdienst_key NUMBER (10);
|
|
v_taakdienst VARCHAR2 (1000);
|
|
v_taakprioriteit NUMBER (3);
|
|
v_percentage NUMBER (3);
|
|
v_objecttaakopmerking VARCHAR2 (1000);
|
|
v_eenheid NUMBER (3);
|
|
v_periode NUMBER (3);
|
|
v_startjaar DATE;
|
|
v_eindjaar DATE;
|
|
v_materiaalkosten NUMBER (10);
|
|
BEGIN
|
|
v_ongeldig := 0;
|
|
|
|
FOR rec IN c_n
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
rec.objectomschrijving
|
|
|| ' / '
|
|
|| rec.taakcategorie
|
|
|| ' - '
|
|
|| rec.taakomschrijving;
|
|
|
|
-- Eenzelfde basistaak kan meerdere keren in CSV zitten.
|
|
-- Daarom gaan we in deze cursor eerst kijken of de basistaak er in deze LOOP al ingezet is.
|
|
-- Zo ja, dan kunnen we door naar de Objecttaak. Zo niet, dan gaan we eerst de basis
|
|
v_errormsg := 'Opzoeken basistaak ' || v_aanduiding;
|
|
v_taak_al_aangemaakt := 0;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_taak_al_aangemaakt
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
|
|
|
-- Als basistaak al in loop was aangemaakt nog even de key erbij zoeken
|
|
IF v_taak_al_aangemaakt > 0
|
|
THEN
|
|
SELECT MAX (ins_srtcontrole_key)
|
|
INTO v_ins_srtcontrole_key
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
|
END IF;
|
|
|
|
-- Basistaak aanmaken
|
|
IF v_taak_al_aangemaakt = 0
|
|
THEN
|
|
-- We gaan we eerst op zoek naar de dienst.
|
|
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
|
v_dienst_key := NULL;
|
|
|
|
IF rec.taakdienst IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_dienst_key
|
|
INTO v_dienst_key
|
|
FROM prs_dienst
|
|
WHERE UPPER (prs_dienst_omschrijving) =
|
|
UPPER (SUBSTR (rec.taakdienst, 1, 60));
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
|
VALUES (SUBSTR (rec.taakdienst, 1, 60))
|
|
RETURNING prs_dienst_key
|
|
INTO v_dienst_key;
|
|
END;
|
|
END IF;
|
|
|
|
v_count_verwerk := v_count_verwerk + 1;
|
|
v_count_n_taak := v_count_n_taak + 1;
|
|
|
|
v_errormsg := 'Aanmaken taak ' || v_aanduiding;
|
|
|
|
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
|
|
ins_srtcontrole_niveau,
|
|
ins_srtcontrole_omschrijving,
|
|
ctr_discipline_key,
|
|
ins_srtcontrole_info,
|
|
ins_srtcontrole_periode,
|
|
ins_srtcontrole_eenheid,
|
|
ins_srtcontrole_mode,
|
|
ins_srtcontrole_level,
|
|
ins_srtcontrole_opmerking,
|
|
prs_dienst_key)
|
|
VALUES (rec.ins_srtdeel_key,
|
|
'S',
|
|
rec.taakomschrijving,
|
|
rec.discipline_key,
|
|
NULL,
|
|
0,
|
|
rec.taakobjecteenheid,
|
|
1,
|
|
COALESCE (rec.taakprioriteit, '0'),
|
|
rec.taakopmerking,
|
|
v_dienst_key)
|
|
RETURNING ins_srtcontrole_key
|
|
INTO v_ins_srtcontrole_key;
|
|
|
|
fac.trackaction ('CTRSUP',
|
|
v_ins_srtcontrole_key,
|
|
4,
|
|
NULL,
|
|
'Periodieke taak toegevoegd - Via taakimport ');
|
|
END IF;
|
|
|
|
-- Nu kunnen we de objectaak aanmaken
|
|
v_count_n_taakobject := v_count_n_taakobject + 1;
|
|
|
|
v_errormsg :=
|
|
'Aanmaken taak object '
|
|
|| v_aanduiding
|
|
|| ' ['
|
|
|| rec.deel_key
|
|
|| '|'
|
|
|| v_ins_srtcontrole_key
|
|
|| '|'
|
|
|| rec.taakobjectperiode
|
|
|| '|'
|
|
|| rec.taakobjecteenheid
|
|
|| '|'
|
|
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
|
|| '|'
|
|
|| ROUND (fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.')))
|
|
|| '|'
|
|
|| rec.taakgroep
|
|
|| '|'
|
|
|| rec.taakobjectopmerking
|
|
|| ']';
|
|
|
|
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
|
|
ins_srtcontrole_key,
|
|
ins_srtcontroledl_xcp_periode,
|
|
ins_srtcontroledl_xcp_eenheid,
|
|
ins_srtcontroledl_xcp_materia,
|
|
ins_srtcontroledl_xcp_perc,
|
|
ins_srtcontroledl_xcp_groep,
|
|
ins_srtcontroledl_xcp_opmerk,
|
|
ins_srtcontroledl_xcp_startdat)
|
|
VALUES (rec.deel_key,
|
|
v_ins_srtcontrole_key,
|
|
rec.taakobjectperiode,
|
|
rec.taakobjecteenheid,
|
|
fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
|
ROUND (fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
|
rec.taakgroep,
|
|
rec.taakobjectopmerking,
|
|
rec.taakobjectstartjaar);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_error_hint := v_errormsg;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_error_hint);
|
|
v_ongeldig := 1;
|
|
END;
|
|
|
|
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_no
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
rec.objectomschrijving
|
|
|| ' / '
|
|
|| rec.taakcategorie
|
|
|| ' - '
|
|
|| rec.taakomschrijving;
|
|
|
|
-- We kunnen direct objectaak aanmaken
|
|
v_count_verwerk := v_count_verwerk + 1;
|
|
v_count_n_taakobject := v_count_n_taakobject + 1;
|
|
|
|
v_errormsg :=
|
|
'Aanmaken taak object '
|
|
|| v_aanduiding
|
|
|| ' ['
|
|
|| rec.deel_key
|
|
|| '|'
|
|
|| rec.ins_srtcontrole_key
|
|
|| '|'
|
|
|| rec.taakobjectperiode
|
|
|| '|'
|
|
|| rec.taakobjecteenheid
|
|
|| '|'
|
|
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
|
|| '|'
|
|
|| ROUND (fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.')))
|
|
|| '|'
|
|
|| rec.taakgroep
|
|
|| '|'
|
|
|| rec.taakobjectopmerking
|
|
|| ']';
|
|
|
|
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
|
|
ins_srtcontrole_key,
|
|
ins_srtcontroledl_xcp_periode,
|
|
ins_srtcontroledl_xcp_eenheid,
|
|
ins_srtcontroledl_xcp_materia,
|
|
ins_srtcontroledl_xcp_perc,
|
|
ins_srtcontroledl_xcp_groep,
|
|
ins_srtcontroledl_xcp_opmerk)
|
|
VALUES (rec.deel_key,
|
|
rec.ins_srtcontrole_key,
|
|
rec.taakobjectperiode,
|
|
rec.taakobjecteenheid,
|
|
fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
|
ROUND (fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
|
rec.taakgroep,
|
|
rec.taakobjectopmerking);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_error_hint := v_errormsg;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_error_hint);
|
|
v_ongeldig := 1;
|
|
END;
|
|
|
|
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_m
|
|
LOOP
|
|
BEGIN
|
|
v_count_verwerk := v_count_verwerk + 1;
|
|
|
|
v_aanduiding :=
|
|
rec.objectomschrijving
|
|
|| ' / '
|
|
|| rec.taakcategorie
|
|
|| ' - '
|
|
|| rec.taakomschrijving;
|
|
|
|
-- Basis-taak - Taakomschrijving
|
|
v_errormsg := 'Fout taakomschrijving wijzigen ';
|
|
v_taakomschrijving := ''; -- huidige taakomschrijving
|
|
v_taakomschrijving_nieuw := '';
|
|
|
|
IF rec.extra_veld5 IS NOT NULL
|
|
THEN
|
|
-- Eerst de objectsrt-code ophalen en nieuwe taakomschrijving bepalen
|
|
SELECT ins_srtdeel_code_upper
|
|
INTO v_ins_srtdeel_code
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key = rec.ins_srtdeel_key;
|
|
|
|
v_taakomschrijving_nieuw :=
|
|
SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || rec.extra_veld5), 1, 60);
|
|
|
|
-- Huidige omschrijving ophalen
|
|
SELECT ins_srtcontrole_omschrijving
|
|
INTO v_taakomschrijving
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
IF v_taakomschrijving <> v_taakomschrijving_nieuw
|
|
THEN
|
|
UPDATE ins_srtcontrole
|
|
SET ins_srtcontrole_omschrijving = v_taakomschrijving_nieuw
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
v_count_taak := 1;
|
|
|
|
fac.trackaction (
|
|
'CTRSUP',
|
|
rec.ins_srtcontrole_key,
|
|
4,
|
|
NULL,
|
|
'Gewijzigd Taakomschrijving: '
|
|
|| v_taakomschrijving
|
|
|| '-->'
|
|
|| v_taakomschrijving_nieuw);
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Basis-taak - Taakopmerking
|
|
v_errormsg := 'Fout taakopmerking wijzigen ';
|
|
|
|
SELECT ins_srtcontrole_opmerking
|
|
INTO v_taakopmerking
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
IF v_taakopmerking IS NULL
|
|
THEN
|
|
v_taakopmerking := '<leeg>';
|
|
END IF;
|
|
|
|
IF v_taakopmerking <> rec.taakopmerking AND rec.taakopmerking IS NOT NULL
|
|
THEN
|
|
UPDATE ins_srtcontrole
|
|
SET ins_srtcontrole_opmerking = rec.taakopmerking
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
v_count_taak := 1;
|
|
|
|
fac.trackaction (
|
|
'CTRSUP',
|
|
rec.ins_srtcontrole_key,
|
|
4,
|
|
NULL,
|
|
'Gewijzigd Taakopmerking: ' || v_taakopmerking || '-->' || rec.taakopmerking);
|
|
END IF;
|
|
|
|
-- Basis-taak - Taakprioriteit
|
|
v_errormsg := 'Fout prioriteit wijzigen ';
|
|
|
|
SELECT ins_srtcontrole_level
|
|
INTO v_taakprioriteit
|
|
FROM ins_srtcontrole
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
IF rec.taakprioriteit IS NOT NULL
|
|
AND v_taakprioriteit <> fac.safe_to_number (rec.taakprioriteit)
|
|
THEN
|
|
UPDATE ins_srtcontrole
|
|
SET ins_srtcontrole_level = fac.safe_to_number (rec.taakprioriteit)
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
v_count_taak := 1;
|
|
|
|
fac.trackaction (
|
|
'CTRSUP',
|
|
rec.ins_srtcontrole_key,
|
|
4,
|
|
NULL,
|
|
'Gewijzigd Prioriteit: ' || v_taakprioriteit || '-->' || rec.taakprioriteit);
|
|
END IF;
|
|
|
|
-- Basis-taak - Dienst
|
|
v_errormsg := 'Fout dienst wijzigen ' || v_aanduiding;
|
|
v_taakdienst_key := NULL;
|
|
v_taakdienst := '<leeg>';
|
|
|
|
-- Eerst huidige dienstkey en omschrijving ophalen
|
|
BEGIN
|
|
SELECT MAX (t.prs_dienst_key), MAX (d.prs_dienst_omschrijving)
|
|
INTO v_taakdienst_key, v_taakdienst
|
|
FROM ins_srtcontrole t, prs_dienst d
|
|
WHERE t.ins_srtcontrole_key = rec.ins_srtcontrole_key
|
|
AND t.prs_dienst_key = d.prs_dienst_key
|
|
AND t.prs_dienst_key IS NOT NULL;
|
|
|
|
IF v_taakdienst IS NULL
|
|
THEN
|
|
v_taakdienst := '<leeg>';
|
|
END IF;
|
|
|
|
IF v_taakdienst_key IS NULL
|
|
THEN
|
|
v_taakdienst_key := -1;
|
|
END IF;
|
|
END;
|
|
|
|
-- Dan gaan we kijken of de dienst meegegeven in csv al bestaat
|
|
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
|
v_dienst_key := NULL;
|
|
|
|
IF rec.taakdienst IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_dienst_key
|
|
INTO v_dienst_key
|
|
FROM prs_dienst
|
|
WHERE UPPER (prs_dienst_omschrijving) = UPPER (SUBSTR (rec.taakdienst, 1, 60));
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
|
VALUES (SUBSTR (rec.taakdienst, 1, 60))
|
|
RETURNING prs_dienst_key
|
|
INTO v_dienst_key;
|
|
END;
|
|
END IF;
|
|
|
|
IF v_taakdienst_key <> v_dienst_key AND rec.taakdienst IS NOT NULL
|
|
THEN
|
|
UPDATE ins_srtcontrole
|
|
SET prs_dienst_key = v_dienst_key
|
|
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
|
|
|
v_count_taak := 1;
|
|
|
|
fac.trackaction (
|
|
'CTRSUP',
|
|
rec.ins_srtcontrole_key,
|
|
4,
|
|
NULL,
|
|
'Gewijzigd taakdienst: ' || v_taakdienst || '-->' || rec.taakdienst);
|
|
END IF;
|
|
|
|
IF v_count_taak = 1
|
|
THEN
|
|
v_count_w_taak := v_count_w_taak + 1;
|
|
END IF;
|
|
|
|
-- Gaan nu de object-taken aanpassen
|
|
v_aanduiding_objecttaak :=
|
|
rec.taakcategorie
|
|
|| ' - '
|
|
|| v_ins_srtdeel_code
|
|
|| rec.taakomschrijving
|
|
|| CHR (13)
|
|
|| CHR (10);
|
|
|
|
-- Object-taak - Percentage
|
|
v_errormsg := 'Fout percentage wijzigen ';
|
|
|
|
SELECT COALESCE (ins_srtcontroledl_xcp_perc, 0)
|
|
INTO v_percentage
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
IF rec.taakobjectpercentage IS NOT NULL AND v_percentage <> rec.taakobjectpercentage
|
|
THEN
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_perc =
|
|
ROUND (
|
|
fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.')))
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
v_count_taakobject := 1;
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.deel_key,
|
|
SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
|
|
NULL,
|
|
v_aanduiding_objecttaak
|
|
|| 'Percentage: ('
|
|
|| v_percentage
|
|
|| ') --> '
|
|
|| rec.taakobjectpercentage);
|
|
END IF;
|
|
|
|
-- Object-taak - Opmerking
|
|
v_errormsg := 'Fout opmerking objecttaak wijzigen ';
|
|
|
|
SELECT ins_srtcontroledl_xcp_opmerk
|
|
INTO v_objecttaakopmerking
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
IF v_objecttaakopmerking IS NULL
|
|
THEN
|
|
v_objecttaakopmerking := '<leeg>';
|
|
END IF;
|
|
|
|
IF rec.taakobjectopmerking IS NOT NULL
|
|
AND v_objecttaakopmerking <> rec.taakobjectopmerking
|
|
THEN
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_opmerk = rec.taakobjectopmerking
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
v_count_taakobject := 1;
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.deel_key,
|
|
SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
|
|
NULL,
|
|
v_aanduiding_objecttaak
|
|
|| 'Taakopmerking: ('
|
|
|| v_objecttaakopmerking
|
|
|| ') --> '
|
|
|| rec.taakobjectopmerking);
|
|
END IF;
|
|
|
|
-- Object-taak - Eenheid
|
|
v_errormsg := 'Fout eenheid wijzigen ';
|
|
|
|
SELECT COALESCE (ins_srtcontroledl_xcp_eenheid, 0)
|
|
INTO v_eenheid
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
IF rec.taakobjecteenheid IS NOT NULL
|
|
AND fac.safe_to_number (rec.taakobjecteenheid) <> v_eenheid
|
|
AND rec.ismjob = 0
|
|
THEN
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_eenheid = fac.safe_to_number (rec.taakobjecteenheid)
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
v_count_taakobject := 1;
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.deel_key,
|
|
SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
|
|
NULL,
|
|
v_aanduiding_objecttaak
|
|
|| 'Eenheid: ('
|
|
|| v_eenheid
|
|
|| ') --> '
|
|
|| rec.taakobjecteenheid);
|
|
END IF;
|
|
|
|
-- Object-taak - Periode
|
|
v_errormsg := 'Fout periode wijzigen ';
|
|
|
|
SELECT COALESCE (ins_srtcontroledl_xcp_periode, 0)
|
|
INTO v_periode
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
IF rec.taakobjectperiode IS NOT NULL
|
|
AND fac.safe_to_number (rec.taakobjectperiode) <> v_periode
|
|
THEN
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_periode = fac.safe_to_number (rec.taakobjectperiode)
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
v_count_taakobject := 1;
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.deel_key,
|
|
SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
|
|
NULL,
|
|
v_aanduiding_objecttaak
|
|
|| 'Periode: ('
|
|
|| v_periode
|
|
|| ') --> '
|
|
|| rec.taakobjectperiode);
|
|
END IF;
|
|
|
|
-- Object-taak - Taakgroep
|
|
v_errormsg := 'Fout taakgroep wijzigen ';
|
|
|
|
SELECT ins_srtcontroledl_xcp_groep
|
|
INTO v_taakgroep
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
IF v_taakgroep IS NULL
|
|
THEN
|
|
v_taakgroep := '<leeg>';
|
|
END IF;
|
|
|
|
IF v_taakgroep <> rec.taakgroep AND rec.taakgroep IS NOT NULL
|
|
THEN
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_groep = rec.taakgroep
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
v_count_taakobject := 1;
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.deel_key,
|
|
SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
|
|
NULL,
|
|
v_aanduiding_objecttaak
|
|
|| 'Taakgroep: ('
|
|
|| v_taakgroep
|
|
|| ') --> '
|
|
|| rec.taakgroep);
|
|
END IF;
|
|
|
|
-- Object-taak - Eindjaar
|
|
v_errormsg := 'Fout eindjaar wijzigen ';
|
|
|
|
SELECT ins_srtcontroledl_xcp_eind
|
|
INTO v_eindjaar
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
-- IF v_eindjaar IS NULL THEN v_eindjaar := TO_DATE(01-01-1900, 'DD-MM-YYYY'); END IF;
|
|
|
|
IF (v_eindjaar IS NULL AND rec.taakobjecteindjaar IS NOT NULL)
|
|
OR ( v_eindjaar IS NOT NULL
|
|
AND rec.taakobjecteindjaar IS NOT NULL
|
|
AND v_eindjaar <> rec.taakobjecteindjaar)
|
|
THEN
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_eind = rec.taakobjecteindjaar
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
v_count_taakobject := 1;
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.deel_key,
|
|
SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
|
|
NULL,
|
|
v_aanduiding_objecttaak
|
|
|| 'Eindjaar: ('
|
|
|| v_eindjaar
|
|
|| ') --> '
|
|
|| rec.taakobjecteindjaar);
|
|
END IF;
|
|
|
|
-- Object-taak - Kosten
|
|
v_errormsg := 'Fout kosten wijzigen ';
|
|
|
|
SELECT COALESCE (MAX (ins_srtcontroledl_xcp_materia), 0)
|
|
INTO v_materiaalkosten
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
IF v_materiaalkosten <>
|
|
fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
|
AND rec.taakobjectmateriaal IS NOT NULL
|
|
THEN
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET ins_srtcontroledl_xcp_materia =
|
|
fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
|
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
|
|
|
v_count_taakobject := 1;
|
|
|
|
fac.trackaction (
|
|
'INSUPD',
|
|
rec.deel_key,
|
|
SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
|
|
NULL,
|
|
v_aanduiding_objecttaak
|
|
|| 'Kosten: ('
|
|
|| v_materiaalkosten
|
|
|| ') --> '
|
|
|| rec.taakobjectmateriaal);
|
|
END IF;
|
|
|
|
IF v_count_taakobject = 1
|
|
THEN
|
|
v_count_w_taakobject := v_count_w_taakobject + 1;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_error_hint := v_errormsg;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| 'ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_error_hint);
|
|
v_ongeldig := 1;
|
|
END;
|
|
|
|
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
|
END LOOP;
|
|
|
|
v_ongeldig := 0;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
COMMIT;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'IMPORT TAKEN: aantal verwerkte regels: '
|
|
|| TO_CHAR (v_count_verwerk)
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| 'Aantal nieuwe taken ingelezen: '
|
|
|| TO_CHAR (v_count_n_taak)
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| 'Aantal nieuwe objecttaken ingelezen: '
|
|
|| TO_CHAR (v_count_n_taakobject)
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| 'Aantal bestaande basistaken gewijzigd: '
|
|
|| TO_CHAR (v_count_w_taak)
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| 'Aantal bestaande objecttaken gewijzigd: '
|
|
|| TO_CHAR (v_count_w_taakobject),
|
|
'');
|
|
ELSE
|
|
ROLLBACK;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
----------------------------------------------------------------------------
|
|
------------------ EINDE MBJOB IMPORT --------------------------------------
|
|
----------------------------------------------------------------------------
|
|
|
|
CREATE OR REPLACE PROCEDURE kw1c_import_historie (p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_import_genericcsv (p_import_key);
|
|
END kw1c_import_historie;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE kw1c_update_historie (p_import_key IN NUMBER)
|
|
IS
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
|
|
CURSOR vloer IS
|
|
SELECT UPPER (i.fac_imp_csv_col02) ruimtenr_oud,
|
|
i.fac_imp_csv_col03 vloertypecode,
|
|
i.fac_imp_csv_col04 vloertypenaam,
|
|
fac.safe_to_date (i.fac_imp_csv_col05, 'dd-mm-yyyy') begindatum,
|
|
fac.safe_to_date (i.fac_imp_csv_col06, 'dd-mm-yyyy') einddatum,
|
|
v.fac_usrdata_key vloertype_key,
|
|
rn.alg_ruimte_key,
|
|
rn.alg_ruimte_nr
|
|
FROM fac_imp_csv i,
|
|
(SELECT r.alg_ruimte_key,
|
|
UPPER (rk.alg_onrgoedkenmerk_waarde) ruimte_nr_oud,
|
|
r.alg_ruimte_nr
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk rk, alg_ruimte r
|
|
WHERE k.alg_kenmerk_key = rk.alg_kenmerk_key
|
|
AND k.alg_kenmerk_key = 1062
|
|
AND rk.alg_onrgoed_niveau = 'R'
|
|
AND r.alg_ruimte_key = rk.alg_onrgoed_key) rn,
|
|
(SELECT d.fac_usrdata_key, d.fac_usrdata_code, d.fac_usrdata_upper
|
|
FROM fac_usrtab t, fac_usrdata d
|
|
WHERE t.fac_usrtab_key = 4 AND d.fac_usrtab_key = t.fac_usrtab_key) v
|
|
WHERE UPPER (i.fac_imp_csv_col01) = 'VLOERAFWERKING'
|
|
AND v.fac_usrdata_code = i.fac_imp_csv_col03
|
|
AND rn.ruimte_nr_oud = UPPER (i.fac_imp_csv_col02)
|
|
--- AND i.fac_imp_csv_col06 IS NOT NULL hiermee nemen we alleen verwijderde datums op, maar kunnen we verschillen in de huidige situatie niet vinden
|
|
AND NOT EXISTS --- het huidige vloertype laten we buiten beschouwing
|
|
(SELECT r.alg_ruimte_key, rk.alg_onrgoedkenmerk_waarde vloerafwerking_key
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk rk, alg_ruimte r
|
|
WHERE k.alg_kenmerk_key = rk.alg_kenmerk_key
|
|
AND k.alg_kenmerk_key = 1009
|
|
AND rk.alg_onrgoed_niveau = 'R'
|
|
AND r.alg_ruimte_key = rk.alg_onrgoed_key
|
|
AND rk.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND r.alg_ruimte_key = rn.alg_ruimte_key
|
|
AND rk.alg_onrgoedkenmerk_waarde = v.fac_usrdata_key);
|
|
|
|
CURSOR org IS
|
|
SELECT UPPER (i.fac_imp_csv_col02) ruimtenr_oud,
|
|
i.fac_imp_csv_col03 oe,
|
|
fac.safe_to_date (SUBSTR (i.fac_imp_csv_col04, 1, 10), 'dd-mm-yyyy') begindatum,
|
|
fac.safe_to_date (SUBSTR (i.fac_imp_csv_col05, 1, 10), 'dd-mm-yyyy') einddatum,
|
|
rn.alg_ruimte_key,
|
|
rn.alg_ruimte_nr,
|
|
a.prs_afdeling_key,
|
|
a.prs_afdeling_naam
|
|
FROM fac_imp_csv i,
|
|
prs_afdeling a,
|
|
(SELECT r.alg_ruimte_key,
|
|
UPPER (rk.alg_onrgoedkenmerk_waarde) ruimte_nr_oud,
|
|
r.alg_ruimte_nr
|
|
FROM alg_kenmerk k, alg_onrgoedkenmerk rk, alg_ruimte r
|
|
WHERE k.alg_kenmerk_key = rk.alg_kenmerk_key
|
|
AND k.alg_kenmerk_key = 1062
|
|
AND rk.alg_onrgoed_niveau = 'R'
|
|
AND r.alg_ruimte_key = rk.alg_onrgoed_key) rn
|
|
WHERE UPPER (i.fac_imp_csv_col01) = 'ORGANISATIE'
|
|
AND rn.ruimte_nr_oud = UPPER (i.fac_imp_csv_col02)
|
|
AND a.prs_afdeling_naam = i.fac_imp_csv_col03;
|
|
|
|
BEGIN
|
|
FOR rec IN vloer
|
|
LOOP
|
|
BEGIN
|
|
--- om de historie te vullen vullen we de tabel alg_onrgoedkenmerk met 'vervallen' waarden
|
|
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
|
|
alg_onrgoed_niveau,
|
|
alg_kenmerk_key,
|
|
alg_onrgoedkenmerk_waarde,
|
|
alg_onrgoedkenmerk_aanmaak,
|
|
alg_onrgoedkenmerk_verwijder)
|
|
VALUES (rec.alg_ruimte_key,
|
|
'R',
|
|
1009,
|
|
rec.vloertype_key,
|
|
rec.begindatum,
|
|
rec.einddatum);
|
|
|
|
fac.trackaction ('ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Vloerafwerking ' || rec.vloertypenaam || ' opgenomen in het archief');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errorhint
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'Historie ruimte ' || rec.alg_ruimte_nr || ' kan niet worden gevuld');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN org
|
|
LOOP
|
|
BEGIN
|
|
INSERT INTO prs_ruimteafdeling (prs_afdeling_key,
|
|
alg_ruimte_key,
|
|
prs_ruimteafdeling_bezetting,
|
|
prs_ruimteafdeling_ingangsdatum,
|
|
prs_ruimteafdeling_einddatum)
|
|
VALUES (rec.prs_afdeling_key,
|
|
rec.alg_ruimte_key,
|
|
'100',
|
|
rec.begindatum,
|
|
rec.einddatum);
|
|
|
|
fac.trackaction (
|
|
'ALGRUP',
|
|
rec.alg_ruimte_key,
|
|
3,
|
|
SYSDATE,
|
|
'Ruimtegebruiker ' || rec.prs_afdeling_naam || ' opgenomen in het archief');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errorhint
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'Historie ruimte ' || rec.alg_ruimte_nr || ' kan niet worden gevuld');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
-- we ruimen de import tabel direct weer netjes op aangezien dit een generieke importtabel is
|
|
DELETE FAC_IMP_CSV i
|
|
WHERE i.fac_import_key = p_import_key;
|
|
|
|
END kw1c_update_historie;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_gebouw
|
|
(
|
|
LocatieCode,
|
|
GebouwCode,
|
|
GebouwNaam,
|
|
Adres,
|
|
Postcode,
|
|
Plaats,
|
|
Begindatum,
|
|
Einddatum,
|
|
Breedtegraad,
|
|
Lengtegraad
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_code,
|
|
g.alg_gebouw_code,
|
|
g.alg_gebouw_naam,
|
|
l.alg_locatie_adres,
|
|
l.alg_locatie_postcode,
|
|
l.alg_locatie_plaats,
|
|
ind.ingangsdatum,
|
|
g.alg_gebouw_vervaldatum,
|
|
g.alg_gebouw_x,
|
|
g.alg_gebouw_y
|
|
FROM alg_locatie l,
|
|
alg_gebouw g,
|
|
(SELECT ok.alg_onrgoed_key,
|
|
fac.safe_to_date (ok.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') ingangsdatum
|
|
FROM alg_onrgoedkenmerk ok, alg_kenmerk k
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'G'
|
|
AND k.alg_kenmerk_key = 1001
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL) ind
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key AND ind.alg_onrgoed_key(+) = g.alg_gebouw_key;
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_locatie
|
|
(
|
|
Code,
|
|
Naam,
|
|
NaamVolledig,
|
|
Adres,
|
|
Postcode,
|
|
Plaats,
|
|
Breedtegraad,
|
|
Lengtegraad,
|
|
Begindatum,
|
|
Einddatum
|
|
)
|
|
AS
|
|
SELECT l.alg_locatie_code,
|
|
l.alg_locatie_omschrijving,
|
|
NULL,
|
|
l.alg_locatie_adres,
|
|
l.alg_locatie_postcode,
|
|
l.alg_locatie_plaats,
|
|
l.alg_locatie_x,
|
|
l.alg_locatie_y,
|
|
ind.ingangsdatum,
|
|
l.alg_locatie_vervaldatum
|
|
FROM alg_locatie l,
|
|
(SELECT ok.alg_onrgoed_key,
|
|
fac.safe_to_date (ok.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') ingangsdatum
|
|
FROM alg_onrgoedkenmerk ok, alg_kenmerk k
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'L'
|
|
AND k.alg_kenmerk_key = 1120
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL) ind
|
|
WHERE l.alg_locatie_key = ind.alg_onrgoed_key(+);
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_ruimtecategorien
|
|
(
|
|
RuimteCategorieCode,
|
|
RuimteCategorieNaam
|
|
)
|
|
AS
|
|
SELECT d.fac_usrdata_code, d.fac_usrdata_omschr
|
|
FROM fac_usrtab t, fac_usrdata d
|
|
WHERE t.fac_usrtab_key = 21
|
|
AND t.fac_usrtab_key = d.fac_usrtab_key
|
|
AND d.fac_usrdata_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_ruimtedetails
|
|
(
|
|
ruimtecode,
|
|
oppervlakte,
|
|
aantalwerkplekken,
|
|
ruimtecategoriecode,
|
|
ruimtetypecode,
|
|
begindatum,
|
|
einddatum
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_nr,
|
|
r.alg_ruimte_bruto_vloeropp,
|
|
wp.aantal_wp,
|
|
cat.cat_code,
|
|
t.type_code,
|
|
NULL begindatum,
|
|
NULL einddatum
|
|
FROM alg_ruimte r,
|
|
(SELECT ok.alg_onrgoed_key, fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) aantal_wp
|
|
FROM alg_onrgoedkenmerk ok, alg_kenmerk k
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_key = 1006
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL) wp,
|
|
(SELECT ok.alg_onrgoed_key, d.fac_usrdata_code cat_code
|
|
FROM alg_onrgoedkenmerk ok,
|
|
alg_kenmerk k,
|
|
fac_usrdata d,
|
|
fac_usrtab t
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_key = 1060
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND d.fac_usrdata_key = ok.alg_onrgoedkenmerk_waarde
|
|
AND t.fac_usrtab_key = d.fac_usrtab_key
|
|
AND t.fac_usrtab_key = 21) cat,
|
|
(SELECT ok.alg_onrgoed_key, d.fac_usrdata_code type_code
|
|
FROM alg_onrgoedkenmerk ok,
|
|
alg_kenmerk k,
|
|
fac_usrdata d,
|
|
fac_usrtab t
|
|
WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND k.alg_kenmerk_key = 1008
|
|
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
|
AND d.fac_usrdata_key = ok.alg_onrgoedkenmerk_waarde
|
|
AND t.fac_usrtab_key = d.fac_usrtab_key
|
|
AND t.fac_usrtab_key = 3) t
|
|
WHERE wp.alg_onrgoed_key(+) = r.alg_ruimte_key
|
|
AND cat.alg_onrgoed_key(+) = r.alg_ruimte_key
|
|
AND t.alg_onrgoed_key(+) = r.alg_ruimte_key;
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_ruimtegebruik
|
|
(
|
|
RuimteCode,
|
|
OrganisatieEenheidCode,
|
|
Begindatum,
|
|
Einddatum,
|
|
Status
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_nr,
|
|
a.prs_afdeling_naam,
|
|
ra.prs_ruimteafdeling_ingangsdatum,
|
|
ra.prs_ruimteafdeling_einddatum,
|
|
CASE WHEN a.prs_afdeling_naam = '002' THEN 'Buiten gebruik' ELSE 'In gebruik' END status
|
|
FROM prs_ruimteafdeling ra, alg_ruimte r, prs_afdeling a
|
|
WHERE ra.alg_ruimte_key = r.alg_ruimte_key AND a.prs_afdeling_key = ra.prs_afdeling_key;
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_ruimtes
|
|
(
|
|
Code,
|
|
Naam,
|
|
GebouwCode,
|
|
LocatieCode,
|
|
Actief,
|
|
VerdiepingCode,
|
|
VerdiepingNaam,
|
|
Virtueel
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_nr,
|
|
r.alg_ruimte_omschrijving,
|
|
g.alg_gebouw_code,
|
|
l.alg_locatie_code,
|
|
'Actief?',
|
|
v.alg_verdieping_code,
|
|
v.alg_verdieping_omschrijving,
|
|
'Virtuele ruimtes zijn terreinen?'
|
|
FROM alg_ruimte r,
|
|
alg_verdieping v,
|
|
alg_gebouw g,
|
|
alg_locatie l
|
|
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_gebouw_key = g.alg_gebouw_key
|
|
AND g.alg_locatie_key = l.alg_locatie_key;
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_ruimtetype
|
|
(
|
|
RuimtetypeCode,
|
|
RuimtetypeNaam
|
|
)
|
|
AS
|
|
SELECT ud.fac_usrdata_code, ud.fac_usrdata_omschr
|
|
FROM fac_usrdata ud, fac_usrtab ut
|
|
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key AND ut.fac_usrtab_key = 3;
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_vloerafw
|
|
(
|
|
ruimtecode,
|
|
vloertypecode,
|
|
vloertypenaam,
|
|
begindatum,
|
|
einddatum
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_nr,
|
|
ud.fac_usrdata_code,
|
|
ud.fac_usrdata_omschr,
|
|
ok.alg_onrgoedkenmerk_aanmaak,
|
|
ok.alg_onrgoedkenmerk_verwijder
|
|
FROM fac_usrdata ud,
|
|
fac_usrtab ut,
|
|
alg_onrgoedkenmerk ok,
|
|
alg_kenmerk k,
|
|
alg_ruimte r
|
|
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND ut.fac_usrtab_key = 4
|
|
AND k.alg_kenmerk_key = ok.alg_kenmerk_key
|
|
AND k.alg_kenmerk_key = 1009
|
|
AND ok.alg_onrgoed_niveau = 'R'
|
|
AND ok.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key;
|
|
|
|
CREATE OR REPLACE VIEW kw1c_export_vloerafw_types
|
|
(
|
|
referentie,
|
|
naam,
|
|
omschrijving,
|
|
hardheid
|
|
)
|
|
AS
|
|
SELECT ud.fac_usrdata_code,
|
|
ud.fac_usrdata_omschr,
|
|
NULL,
|
|
ud.fac_usrdata_omschr2
|
|
FROM fac_usrdata ud, fac_usrtab ut
|
|
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key AND ut.fac_usrtab_key = 4;
|
|
|
|
------ 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 |