Files
Customer/TMGP/TMGP.sql
Norbert Wassink f73aa4b47d TMGP#89670 -- AiAi op rapport view TMGP_V_PROJECTMELDINGEN
svn path=/Customer/trunk/; revision=70086
2025-08-25 08:55:38 +00:00

1069 lines
40 KiB
SQL
Raw Permalink Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
--
--
--
--
--
DEFINE thisfile = 'TMGP.SQL'
DEFINE dbuser = 'TMGP'
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 ------
-- Personen import
CREATE OR REPLACE PROCEDURE TMGP_IMPORT_PERSONEN(p_import_key NUMBER)
AS
BEGIN
fac_import_perslid(p_import_key);
END;
/
-- Check of persoon p basis van werknermID bekend is.
-- ALs deze niet bekend is controleren we of de wergevenNr er de initalen in staan van de email adres,
-- indien ja dan updaten van record metbhet juiste werknermersnr
-- Inine niet dan moete we de persoon aanmaken.
--
CREATE OR REPLACE PROCEDURE TMGP_UPDATE_PERSONEN(p_import_key NUMBER)
AS
CURSOR c (v_import_key NUMBER)
IS
SELECT *
FROM fac_imp_perslid
WHERE fac_import_key=v_import_key;
CURSOR c_del(v_import_key NUMBER)
IS
SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_inactief IS NULL
AND p.prs_perslid_nr NOT IN (SELECT prs_perslid_nr
FROM fac_imp_perslid
WHERE fac_import_key=v_import_key);
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_date DATE;
v_count NUMBER;
v_insert_count NUMBER:=0;
v_update_count NUMBER:=0;
v_ongw_count NUMBER:=0;
v_prs_perslid_key NUMBER;
v_functie NUMBER;
v_afdeling_key NUMBER;
v_action VARCHAR2(10);
v_afdeling_code PRS_afdeling.prs_afdeling_naam%TYPE;
v_prs_perslid_naam PRS_PERSLID.PRS_PERSLID_NAAM%TYPE;
v_prs_perslid_email PRS_PERSLID.PRS_PERSLID_EMAIL%TYPE;
v_prs_perslid_nr PRS_PERSLID.PRS_PERSLID_NR%TYPE;
v_prs_perslid_externid PRS_PERSLID.PRS_PERSLID_EXTERNID%TYPE;
v_prs_oslogin PRS_PERSLID.PRS_PERSLID_OSLOGIN%TYPE;
BEGIN
BEGIN
SELECT prs_srtperslid_key
INTO v_functie
FROM prs_srtperslid
WHERE prs_srtperslid_upper='MEDEWERKER';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_functie:=1;
END;
SELECT COUNT(*)
INTO v_Count
FROM fac_imp_perslid
WHERE fac_import_key=p_import_key;
IF v_count> 1000
THEN
FOR rec IN c(p_import_key)
LOOP
v_errormsg:='Fout bij ophalen persoon via medewerkerNr' ||rec.prs_kenmerk1 ;
v_prs_perslid_key:=-1;
-- ken ik de persoon op basis van het medewerkerNr (prs_kenmerk1)
BEGIN
SELECT prs_perslid_key INTO v_prs_perslid_key
from prs_perslid
where prs_perslid_externID=UPPER(rec.prs_kenmerk1)
AND prs_perslid_verwijder IS NULL;
v_action:='UPDATE';
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_prs_perslid_key:=-1;
END;
IF v_prs_perslid_key = -1
THEN
v_errormsg:='Fout bij ophalen persoon via medewerker initialen'|| SUBSTR(rec.prs_perslid_email,1,INSTR(rec.prs_perslid_email,'@')-1);
BEGIN
SELECT prs_perslid_key,
prs_perslid_naam,
prs_perslid_email,
prs_perslid_nr,
prs_perslid_externID
INTO v_prs_perslid_key,
v_prs_perslid_naam,
v_prs_perslid_email,
v_prs_perslid_nr,
v_prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_oslogin=UPPER(SUBSTR(rec.prs_perslid_email,1,INSTR(rec.prs_perslid_email,'@')-1))
AND prs_perslid_verwijder IS NULL;
v_action:= 'UPDATE';
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- We kennen de persoon echt niet dus gaan we hem toevoegen
v_action:='INSERT';
END;
END IF;
BEGIN
v_errormsg:='Fout bij ophalen afdeling';
SELECT prs_afdeling_key, prs_afdeling_naam into v_afdeling_key, v_afdeling_code
from prs_afdeling where prs_afdeling_naam=rec.prs_afdeling_naam AND prs_afdeling_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_aanduiding :='Afdeling '||rec.prs_afdeling_naam||' is niet gevonden dus '||rec.prs_perslid_naam||' is niet aangemaakt';
v_errormsg:='Afdeling fout';
v_action := '';
END;
IF v_action='INSERT'
THEN
-- We kennen de persoon echt niet dus gaan we hem toevoegen
v_errormsg:='Fout bij toevoegen van perslid '|| rec.prs_perslid_naam;
IF INSTR(rec.prs_perslid_email,'@')> 1 THEN
v_prs_oslogin := SUBSTR(rec.prs_perslid_email,1,INSTR(rec.prs_perslid_email,'@')-1); -- Die persoon die een email adres hebben moeten onderdeel worden van de _Default groep
ELSE
v_prs_oslogin:=NULL;
END IF;
INSERT INTO prs_perslid
(prs_perslid_naam,
prs_perslid_voornaam,
prs_perslid_tussenvoegsel,
prs_perslid_email,
prs_perslid_oslogin,
prs_perslid_externid,
prs_perslid_nr,
prs_afdeling_key,
prs_srtperslid_key)
VALUES(rec.prs_perslid_naam,
rec.prs_perslid_voornaam,
rec.prs_perslid_tussenvoegsel,
rec.prs_perslid_email,
v_prs_oslogin,
rec.prs_kenmerk1,
rec.prs_perslid_nr,
v_afdeling_key,
v_functie);
v_insert_count:=v_insert_count+1;
ELSIF v_action='UPDATE' THEN
-- We kennen de persoon wel dus gaan we hem updaten maar alleen als er mutaties zijn tov zijn huidge gegevens
UPDATE prs_perslid
SET prs_perslid_naam=rec.prs_perslid_naam,
prs_perslid_voornaam=rec.prs_perslid_voornaam,
prs_perslid_tussenvoegsel=rec.prs_perslid_tussenvoegsel,
prs_perslid_email=rec.prs_perslid_email,
prs_perslid_oslogin=SUBSTR(rec.prs_perslid_email,1,INSTR(rec.prs_perslid_email,'@')-1),
prs_perslid_nr=rec.prs_perslid_nr,
prs_perslid_externid=rec.prs_kenmerk1,
prs_afdeling_key=v_afdeling_key
WHERE prs_perslid_key=v_prs_perslid_key
AND (prs_perslid_nr != rec.prs_perslid_nr
OR prs_perslid_naam != rec.prs_perslid_naam
OR prs_perslid_email != rec.prs_perslid_email
-- OR prs_perslid_oslogin != rec.prs_kenmerk1
OR prs_afdeling_key != v_afdeling_key);
v_update_count:=v_update_count+1;
v_aanduiding:='';
END IF;
IF LENGTH(v_aanduiding)>1 THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
v_errorhint);
ELSE
v_aanduiding:='';
END IF;
END LOOP;
fac.imp_writelog (p_import_key,
'W',
'Resultaat',
v_insert_count||' accounts toegevoegd.');
FOR rec_del IN c_del(p_import_key)
LOOP
prs.delete_perslid(p_import_key, rec_del.prs_perslid_key);
END LOOP;
ELSE
fac.imp_writelog (p_import_key,
'E',
'Fout besatand',
'Het aangeleverde bestand heeft maar '||v_count||' regels terwijl er meer dan 1000 worden verwacht. ');
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END;
/
-- IMport van data set uit de PAT tester
CREATE OR REPLACE PROCEDURE TMGP_IMPORT_PATDATA(p_import_key NUMBER)
AS
BEGIN
NULL;
END;
/
CREATE OR REPLACE PROCEDURE TMGP_UPDATE_PATDATA(p_import_key NUMBER)
AS
v_date DATE;
BEGIN
SELECT SYSDATE INTO v_date FROM DUAL;
END;
/
-- Einde import PAT tester
-- Import procedure voor inlezen perriodiek taken
CREATE OR REPLACE PROCEDURE TMGP_IMPORT_TAKEN_OVERIG(p_import_key IN NUMBER)
AS
BEGIN
NULL;
END;
/
CREATE OR REPLACE PROCEDURE TMGP_UPDATE_TAKEN_OVERIG(p_import_key IN NUMBER)
AS
CURSOR c
IS
SELECT fac_imp_csv_col01 ins_deel_omschrijving,
fac_imp_csv_col02 taak_omschrijving,
fac_imp_csv_col03 taak_categorie,
fac_imp_csv_col04 taak_datum,
fac_imp_csv_col05 taak_interval,
fac_imp_csv_col06 taak_interval_periode,
fac_imp_csv_col07 taak_interval_uitz,
fac_imp_csv_col08 taak_interval_uitz_per
from fac_imp_csv
WHERE fac_import_key = p_import_key;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_eenheid NUMBER;
v_eenheid_uitz NUMBER;
v_periode_uitz NUMBER;
v_deel_key NUMBER;
v_ins_discipine_key NUMBER;
v_ins_srtgroep_key NUMBER;
v_ins_srtdeel_key NUMBER;
v_ins_srtcontrole_niveau VARCHAR2(1);
v_srtcontrole_key NUMBER;
v_taakcat_key NUMBER;
v_srtcontroledl_xcp_key NUMBER;
v_srtkenmerk_doc NUMBER;
BEGIN
v_eenheid:=3;
v_deel_key:=-1;
BEGIN
SELECT ins_srtkenmerk_key
INTO v_srtkenmerk_doc
FROM ins_srtkenmerk i
WHERE i.ins_srtkenmerk_code='DOCUMENTEN'
AND i.ins_srtkenmerk_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_srtkenmerk_doc:=-1;
END;
FOR rec IN c
LOOP
IF UPPER(rec.taak_interval_periode)='J' THEN
v_eenheid:=4;
ELSIF UPPER(rec.taak_interval_periode)='M' THEN
v_eenheid:=3;
ELSIF UPPER(rec.taak_interval_periode)='W' THEN
v_eenheid:=2;
ELSIF UPPER(rec.taak_interval_periode)='D' THEN
v_eenheid:=1;
ELSE
v_eenheid:=3;
END IF;
IF UPPER(rec.taak_interval_uitz_per)='J' THEN
v_eenheid_uitz:=4;
ELSIF UPPER(rec.taak_interval_uitz_per)='M' THEN
v_eenheid_uitz:=3;
ELSIF UPPER(rec.taak_interval_uitz_per)='W' THEN
v_eenheid_uitz:=2;
ELSIF UPPER(rec.taak_interval_uitz_per)='D' THEN
v_eenheid_uitz:=1;
END IF;
IF (LENGTH(rec.taak_interval_uitz)>0) THEN
v_periode_uitz:=fac.safe_to_number(rec.taak_interval_uitz);
ELSE
v_periode_uitz:=fac.safe_to_number(rec.taak_interval);
END IF;
--Haal het object, discipine , groep en objectsoort
BEGIN
v_errormsg :='Ophalen object '||rec.ins_deel_omschrijving;
SELECT ins_deel_key, ins_discipline_key, ins_srtgroep_key, ins_srtdeel_key
INTO v_deel_key, v_ins_discipine_key, v_ins_srtgroep_key, v_ins_srtdeel_key
FROM ins_v_deel_gegevens
WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_deel_key:=-1;
END;
v_ins_srtcontrole_niveau:='S';
IF v_deel_key>0
THEN
-- Haal taak categorie op indien niet aanwezig maak deze aan.
v_errormsg :='Ophalen taakcetegorie '||rec.taak_categorie;
SELECT ins_discipline_key
INTO v_taakcat_key
FROM ins_tab_discipline
WHERE ins_discipline_module='CTR'
AND UPPER(ins_discipline_omschrijving) = UPPER(rec.taak_categorie)
AND ins_discipline_verwijder IS NULL;
BEGIN
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtdeel_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND UPPER(ins_srtcontrole_omschrijving) = UPPER(rec.taak_omschrijving)
AND ins_srtcontrole_periode=rec.taak_interval
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=v_taakcat_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- ins_srtcontrole is er niet dus maken we hem aan,
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtdeel_key,
v_ins_srtcontrole_niveau,
SUBSTR(rec.taak_omschrijving,0,60),
fac.safe_to_number(rec.taak_interval),
v_eenheid,
1,
v_taakcat_key
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
IF v_srtkenmerk_doc>0 THEN
INSERT INTO ins_kenmerk (
ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_bewerkniveau,
ins_kenmerk_groep,
ins_kenmerk_volgnummer,
ins_kenmerk_hint,
ins_kenmerk_omschrijving
)
VALUES (
v_srtkenmerk_doc,
v_srtcontrole_key,
'C',
'D',
0,
10,
'',
'Documenten'
);
END IF;
END;
BEGIN
SELECT ins_srtcontroledl_xcp_key
INTO v_srtcontroledl_xcp_key
FROM ins_srtcontroledl_xcp
WHERE ins_deel_key=v_deel_key
AND ins_srtcontrole_key=v_srtcontrole_key
AND ins_srtcontroledl_xcp_eenheid=v_eenheid;
-- we hebben een xcp record dan updaten we nu alleen de startdatum
UPDATE ins_srtcontroledl_xcp
SET INS_SRTCONTROLEDL_XCP_STARTDAT=fac.safe_to_date(rec.taak_datum,'DD-MM-YYYY')
WHERE ins_srtcontroledl_xcp_key = v_srtcontroledl_xcp_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- Er is nog geen XCP record dus maken we er 1 met de verwachte startdatum
IF v_eenheid_uitz>0 THEN
v_eenheid:=v_eenheid_uitz;
END IF;
INSERT INTO ins_srtcontroledl_xcp
(ins_srtcontrole_key,
ins_deel_key,
ins_srtcontroledl_xcp_eenheid,
INS_SRTCONTROLEDL_XCP_PERIODE,
INS_SRTCONTROLEDL_XCP_STARTDAT)
VALUES (v_srtcontrole_key,
v_deel_key,
v_eenheid,
v_periode_uitz,
fac.safe_to_date(rec.taak_datum,'DD-MM-YYYY'));
END;
ELSE
fac.imp_writelog (p_import_key,
'W',
'Object '||rec.ins_deel_omschrijving||' niet gevonden',
'Object niet gevonden');
END IF;
--Heeft object
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END;
/
--EINDE Import procedure voor inlezen perriodiek taken
--Import procedure voor inlezen periodiek MJOB
CREATE OR REPLACE PROCEDURE TMGP_IMPORT_TAKEN_MJOB(p_import_key IN NUMBER)
AS
BEGIN
NULL;
END;
/
CREATE OR REPLACE PROCEDURE TMGP_UPDATE_TAKEN_MJOB(p_import_key IN NUMBER)
AS
CURSOR c
IS
SELECT fac_imp_csv_col01 ins_deel_omschrijving,
fac_imp_csv_col02 taak_omschrijving,
fac_imp_csv_col03 taak_categorie,
fac_imp_csv_col04 taak_datum,
fac_imp_csv_col05 taak_interval,
fac_imp_csv_col06 taak_interval_periode,
fac_imp_csv_col07 taak_datum_oorspr,
fac_imp_csv_col08 taak_datum_begroot,
fac_imp_csv_col09 taak_opmerking,
fac_imp_csv_col10 taak_werksoort,
fac_imp_csv_col11 taak_kosten,
fac_imp_csv_col12 taak_financiering,
fac_imp_csv_col13 taak_grootboek,
fac_imp_csv_col14 taak_grootboek_omsc
from fac_imp_csv
WHERE fac_import_key = p_import_key;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_eenheid NUMBER;
v_deel_key NUMBER;
v_ins_discipine_key NUMBER;
v_ins_srtgroep_key NUMBER;
v_ins_srtdeel_key NUMBER;
v_ins_srtcontrole_niveau VARCHAR2(1);
v_srtcontrole_key NUMBER;
v_taakcat_key NUMBER;
v_srtcontroledl_xcp_key NUMBER;
v_eenheid_hoev VARCHAR2(10);
v_kosten NUMBER;
v_srtkenmerk_doc NUMBER;
BEGIN
v_eenheid:=3;
BEGIN
SELECT ins_srtkenmerk_key
INTO v_srtkenmerk_doc
FROM ins_srtkenmerk i
WHERE i.ins_srtkenmerk_code='DOCUMENTEN'
AND i.ins_srtkenmerk_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_srtkenmerk_doc:=-1;
END;
FOR rec IN c
LOOP
IF UPPER(rec.taak_interval_periode)='J' THEN
v_eenheid:=4;
ELSIF UPPER(rec.taak_interval_periode)='M' THEN
v_eenheid:=3;
ELSIF UPPER(rec.taak_interval_periode)='W' THEN
v_eenheid:=2;
ELSIF UPPER(rec.taak_interval_periode)='D' THEN
v_eenheid:=1;
ELSE
v_eenheid:=3;
END IF;
-- Bedrag strippen van euro en . tekens
v_kosten := fac.safe_to_number(REPLACE((REPLACE(REPLACE(rec.taak_kosten,'<EFBFBD>',''),'.','')),',','.'));
--Haal het object, discipine , groep en objectsoort
BEGIN
v_errormsg :='Ophalen object '||rec.ins_deel_omschrijving;
SELECT ins_deel_key, ins_discipline_key, ins_srtgroep_key, ins_srtdeel_key
INTO v_deel_key, v_ins_discipine_key, v_ins_srtgroep_key, v_ins_srtdeel_key
FROM ins_v_deel_gegevens
WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_deel_key:=-1;
END;
v_ins_srtcontrole_niveau:='S';
IF v_deel_key > 0
THEN
BEGIN
SELECT ikd.ins_kenmerkdeel_waarde
INTO v_eenheid_hoev
FROM ins_kenmerkdeel ikd, ins_kenmerk ik
WHERE ikd.ins_deel_key= v_deel_key
AND ikd.ins_kenmerkdeel_verwijder IS NULL
AND UPPER(ik.ins_kenmerk_omschrijving)='EENHEID'
AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_eenheid_hoev:='';
END;
-- Haal taak categorie op indien niet aanwezig maak deze aan.
v_errormsg :='Ophalen taakcetegorie '||rec.taak_categorie;
SELECT ins_discipline_key
INTO v_taakcat_key
FROM ins_tab_discipline
WHERE ins_discipline_module='CTR'
AND UPPER(ins_discipline_omschrijving) = UPPER(rec.taak_categorie)
AND ins_discipline_verwijder IS NULL;
BEGIN
SELECT ins_srtcontrole_key
INTO v_srtcontrole_key
FROM ins_srtcontrole
where ins_srtinstallatie_key=v_ins_srtdeel_key
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
AND UPPER(ins_srtcontrole_omschrijving) = UPPER(rec.taak_omschrijving)
AND ins_srtcontrole_periode=0
AND ins_srtcontrole_eenheid=v_eenheid
AND ins_srtcontrole_mode=1
AND ctr_discipline_key=v_taakcat_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- ins_srtcontrole is er niet dus maken we hem aan,
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode,
ins_srtcontrole_eenheid,
ins_srtcontrole_mode,
ctr_discipline_key
)
VALUES (v_ins_srtdeel_key,
v_ins_srtcontrole_niveau,
rec.taak_omschrijving,
0,
-- rec.taak_interval,
v_eenheid,
1,
v_taakcat_key
)
RETURNING ins_srtcontrole_key
INTO v_srtcontrole_key;
-- Gaan we gelijk een Documenten kenmerk toevoegen
IF v_srtkenmerk_doc>0 THEN
INSERT INTO ins_kenmerk (
ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_bewerkniveau,
ins_kenmerk_groep,
ins_kenmerk_volgnummer,
ins_kenmerk_hint,
ins_kenmerk_omschrijving
)
VALUES (
v_srtkenmerk_doc,
v_srtcontrole_key,
'C',
'D',
0,
10,
'',
'Documenten'
);
END IF;
END;
-- XCP record m,aken met de verwachte startdatum
INSERT INTO ins_srtcontroledl_xcp
(ins_srtcontrole_key,
ins_deel_key,
ins_srtcontroledl_xcp_eenheid,
ins_srtcontroledl_xcp_periode,
ins_srtcontroledl_xcp_startdat,
ins_srtcontroledl_xcp_kosten,
ins_srtcontroledl_xcp_opmerk,
ins_srtcontroledl_xcp_groep,
ins_srtcontroledl_xcp_aanteh)
VALUES (v_srtcontrole_key,
v_deel_key,
v_eenheid,
rec.taak_interval,
fac.safe_to_date(rec.taak_datum,'DD-MM-YYYY'),
v_kosten,
SUBSTR(rec.taak_opmerking,0,300),
rec.taak_financiering||'-'||rec.taak_grootboek,
v_eenheid_hoev);
ELSE
v_errormsg:='Object '||rec.ins_deel_omschrijving||' niet gevonden';
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
v_errorhint);
END IF;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END;
/
--EINDE Import procedure voor inlezen periodiek MJOB
-- Import procedure voor inlezen cmdb assets met configuratie link in kenmkerk 1 kolom
CREATE OR REPLACE PROCEDURE TMGP_IMPORT_CMDBASSETS(p_import_key IN NUMBER)
AS
BEGIN
fac_import_ins(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE TMGP_UPDATE_CMDBASSETS(p_import_key IN NUMBER)
AS
CURSOR sel
IS
SELECT i.ins_deel_key object_key, i2.ins_deel_key config_key
from fac_imp_ins f, ins_deel i, ins_deel i2
WHERE i.ins_deel_omschrijving=f.ins_deel_omschrijving
AND f.ins_kenmerkwaarde1 IS NOT NULL
AND i2.ins_deel_omschrijving = f.ins_kenmerkwaarde1
AND (SELECT count(*)
FROM ins_deelkoppeling idk
WHERE idk.ins_deelkoppeling_van_key = i2.ins_deel_key
AND idk.ins_deelkoppeling_naar_key =i.ins_deel_key)=0;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
BEGIN
fac_update_ins(p_import_key);
-- Voor die obejcten die onderdeel zijn van een configuratiengaan we nu de relatie leggen
FOR rec IN sel
LOOP
v_aanduiding := 'Ins deel_key: ' || rec.object_key;
v_errorhint := 'Configuratie koppeling fout tussen '
|| rec.config_key|| ' en '||rec.object_key;
BEGIN
INSERT INTO ins_deelkoppeling(ins_deelkoppeling_van_key,
ins_deelkoppeling_naar_key,
ins_deelkoppeling_omschrijving,
ins_deelkoppeling_aanmaak)
VALUES (rec.config_key,
rec.object_key,
'Configuratie koppeling',
SYSDATE);
fac.trackaction ('INSUPD', rec.config_key, 3, SYSDATE,'Object toegevoegd aan configuratie');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
'Fout bij wegschrijven configuratie' ,
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
END;
/
CREATE OR REPLACE VIEW TMGP_V_KOSTENPLAATSEN
(
pors_kostenplaats_nr,
prs_kostenplaats_omsch,
prs_budget_houder
)
AS
SELECT kpn.prs_kostenplaats_nr,
kpn.prs_kostenplaats_omschrijving,
(SELECT prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames
WHERE prs_perslid_key = kpn.prs_perslid_key) prs_budgetHouder
FROM prs_kostenplaats kpn
WHERE kpn.prs_kostenplaats_verwijder IS NULL;
CREATE OR REPLACE VIEW TGMP_V_NLSFB
(
FAC_USRDATA_KEY,
FAC_USRDATA_CODE,
FAC_USRDATA_OMSCHR
)
AS
SELECT fud.fac_usrdata_key,
fud.fac_usrdata_code||'-'||fud.fac_usrdata_omschr,
fud.fac_usrdata_omschr2
FROM fac_usrdata fud, fac_usrtab fut
WHERE fut.fac_usrtab_naam='NLSFB'
AND fud.fac_usrtab_key = fut.fac_usrtab_key
AND fud.fac_usrdata_verwijder IS NULL;
CREATE OR REPLACE VIEW TGMP_V_GROOTBOEK
(
FAC_USRDATA_KEY,
FAC_USRDATA_OMSCHR,
FAC_USRDATA_OMSCHR2
)
AS
SELECT fud.fac_usrdata_key,
fud.fac_usrdata_code||'-'||fud.fac_usrdata_omschr,
fud.fac_usrdata_omschr2
FROM fac_usrdata fud, fac_usrtab fut
WHERE fut.fac_usrtab_naam='GROOTBOEK'
AND fud.fac_usrtab_key = fut.fac_usrtab_key
AND fud.fac_usrdata_verwijder IS NULL;
CREATE OR REPLACE VIEW tmgp_v_takenlocatie
AS
SELECT isc.ins_srtcontrole_omschrijving taak_omschrijving,
x.ins_srtcontroledl_xcp_startdat taak_startdatum,
isg.ins_srtgroep_omschrijving object_groep,
isd.ins_srtdeel_omschrijving object_soort,
a.alg_gebouw_code gebouw_code,
a.alg_gebouw_naam gebouw_naam
FROM ins_srtcontroledl_xcp x, ins_srtcontrole isc, ins_deel i,ins_srtdeel isd, ins_srtgroep isg, alg_v_allonrgoed_gegevens a
WHERE i.ins_deel_key = x.ins_deel_key
AND isc.INS_SRTCONTROLE_KEY = x.INS_SRTCONTROLE_KEY
AND a.alg_ruimte_key = i.ins_alg_ruimte_key
AND isd.ins_srtdeel_key = i.ins_srtdeel_key
AND isg.INS_SRTgROEP_KEY = isd.ins_srtgroep_key;
CREATE OR REPLACE VIEW tmgp_v_opdracht_uren
(
melding_key,
melding_datum,
melding_afgemeld,
vakgroeptype,
vakgroep,
stdmelding,
opdr_key,
medewerker,
uren
)
AS
SELECT m.mld_melding_key melding_key,
m.mld_melding_datum melding_datum,
TO_CHAR( m.mld_melding_datum,'YYYY') melding_jaar,
TO_CHAR( m.mld_melding_datum,'MM') melding_maand,
(SELECT f.fac_tracking_datum
FROM fac_tracking f
WHERE f.fac_tracking_refkey=m.mld_melding_key
AND f.fac_srtnotificatie_key=47) melding_afgemeld,
isd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
ms.mld_stdmelding_omschrijving stdmelding,
o.mld_opdr_key opdr_key,
o.mld_opdr_bedrijfopdr_volgnr volgnr,
p.prs_perslid_naam_friendly medewerker,
u.mld_opdr_uren_besteed uren
FROM mld_opdr o ,mld_melding m, prs_v_perslid_fullnames p, mld_opdr_uren u, mld_stdmelding ms , mld_discipline md, ins_srtdiscipline isd
WHERE o.mld_typeopdr_key=501 -- Urenregistratie A=501
AND u.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND u.prs_perslid_key = p.prs_perslid_key
AND ms.mld_stdmelding_key = m.mld_stdmelding_key
AND md.ins_discipline_key=ms.mld_ins_discipline_key
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
CREATE OR REPLACE VIEW TMGP_V_RUIMTEDOORBELAST
(
prs_afdeling_kpn,
prs_afdeling,
prs_afdelinge_bezetting,
alg_locatie_kpn,
alg_locatie_code,
alg_verdieping_oms,
alg_ruimte_nr,
alg_ruimte_oms,
alg_ruimte_categ,
alg_ruimte_bropp,
netto
)
AS
SELECT k1.prs_kostenplaats_nr afdeling_kpn,
a.prs_afdeling_omschrijving,
ra.prs_ruimteafdeling_bezetting,
k2.prs_kostenplaats_nr gebouw_kpn,
l.alg_locatie_code,
v.alg_verdieping_omschrijving,
-- g.alg_gebouw_code||'-'||v.ALG_VERDIEPING_CODE||'-'||r.alg_ruimte_nr,
g.alg_gebouw_code||v.ALG_VERDIEPING_CODE||r.alg_ruimte_nr ruimte_nr,
r.alg_ruimte_omschrijving,
(SELECT fud.fac_usrdata_code
FROM fac_usrdata fud
WHERE fud.fac_usrdata_key=ok.alg_onrgoedkenmerk_waarde) ruimte_categorie,
r.alg_ruimte_bruto_vloeropp,
r.alg_ruimte_bruto_vloeropp*ra.prs_ruimteafdeling_bezetting/100 netto
FROM alg_ruimte r,
prs_ruimteafdeling ra,
prs_afdeling a,
prs_kostenplaats k1,
prs_kostenplaats k2,
alg_v_allonroerendgoed av,
alg_gebouw g,
alg_locatie l,
alg_verdieping v,
alg_onrgoedkenmerk ok,
alg_kenmerk ak
WHERE r.alg_ruimte_key = ra.alg_ruimte_key
AND r.ALG_RUIMTE_VERWIJDER IS NULL
AND a.prs_afdeling_key = ra.prs_afdeling_key
AND k1.prs_kostenplaats_key = a.prs_kostenplaats_key
AND av.alg_ruimte_key = r.alg_ruimte_key
AND l.alg_locatie_key = av.alg_locatie_key
AND g.alg_gebouw_key = av.alg_gebouw_key
AND g.ALG_GEBOUW_VERWIJDER IS NULL
AND v.alg_verdieping_key = r.alg_verdieping_key
AND k2.prs_kostenplaats_key = g.prs_kostenplaats_key
AND ok.alg_onrgoed_key = r.alg_ruimte_key
AND ok.alg_onrgoed_niveau='R'
AND ok.alg_kenmerk_key =ak.alg_kenmerk_key
AND ak.alg_kenmerk_code='RUIMTECATEGORIE';
CREATE OR REPLACE VIEW TMGP_V_PROJECTMELDINGEN
AS
SELECT m.mld_melding_key,
sm.mld_stdmelding_Code,
m.mld_melding_datum,
stat.mld_statuses_omschrijving melding_status,
m.mld_melding_onderwerp,
m.mld_melding_omschrijving,
DECODE(m.mld_melding_spoed,3,lcl.l('lcl_mld_urg_normaal'),1,lcl.l('lcl_mld_urg_kritiek'),2,lcl.l('lcl_mld_urg_hoog'),4,lcl.l('lcl_mld_urg_laag')) prioriteit,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames_all p
WHERE p.prs_perslid_key= m.mld_melding_behandelaar_key) behandelaar,
(SELECT alg_locatie_code from alg_locatie where alg_locatie_key=m.mld_alg_locatie_key ) locatie,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE mk.mld_kenmerk_code = 'STARTDATUM'
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key=m.mld_melding_key) startdatum,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE mk.mld_kenmerk_code = 'EINDDATUM'
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key=m.mld_melding_key) einddatum,
(SELECT fud.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm, mld_kenmerk mk, fac_usrdata fud
WHERE mk.mld_kenmerk_code = 'PROJECTSTATUS'
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key=m.mld_melding_key
AND fud.fac_usrdata_key=fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)) projectstatus,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE mk.mld_kenmerk_code = 'BEDRAG'
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key=m.mld_melding_key) mld_begroot,
(SELECT SUM(idc.ins_deelsrtcontrole_freezecost)
from mld_melding_object mmo, ins_deelsrtcontrole idc
WHERE mmo.mld_melding_key = m.mld_melding_key
AND idc.ins_deelsrtcontrole_key = mmo.ins_deelsrtcontrole_key) ctr_begroot,
(SELECT SUM(o.mld_opdr_kosten)
FROM mld_opdr o
WHERE o.mld_melding_key=m.mld_melding_key
AND o.mld_statusopdr_key=9) opd_uitnutting,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE mk.mld_kenmerk_code = 'INVESTERINGNR'
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key=m.mld_melding_key) investeringnr,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
WHERE mk.mld_kenmerk_code = 'INKOOPORDER'
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key=m.mld_melding_key) inkooporder,
(SELECT fud.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm, mld_kenmerk mk, fac_usrdata fud
WHERE mk.mld_kenmerk_code = 'GEPLAND'
AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
AND mkm.mld_melding_key=m.mld_melding_key
AND fud.fac_usrdata_key=fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)) gepland_huidgjaar,
(SELECT fud.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm, mld_kenmerk mk, fac_usrdata fud
WHERE mk.mld_kenmerk_code = 'BEGROOT'
AND mkm.mld_kenmerk_key = mk.MLD_kENMERK_KEY
AND mkm.mld_melding_key=m.mld_melding_key
AND fud.fac_usrdata_key=fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)) begroot
FROM mld_melding m,
mld_stdmelding sm,
mld_statuses stat
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND (sm.mld_stdmelding_code = 'PROJECT' OR sm.mld_stdmelding_code = 'PROJECTMJOB')
AND stat.mld_statuses_key = m.mld_melding_status;
------ 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