From f73aa4b47da63effaf93f7935b3aa82ad6fd7ed9 Mon Sep 17 00:00:00 2001 From: Norbert Wassink Date: Mon, 25 Aug 2025 08:55:38 +0000 Subject: [PATCH] TMGP#89670 -- AiAi op rapport view TMGP_V_PROJECTMELDINGEN svn path=/Customer/trunk/; revision=70086 --- TMGP/TMGP.sql | 785 +++++++++++++++++++++++++------------------------- 1 file changed, 399 insertions(+), 386 deletions(-) diff --git a/TMGP/TMGP.sql b/TMGP/TMGP.sql index 06724ecd4..f15dcdc9c 100644 --- a/TMGP/TMGP.sql +++ b/TMGP/TMGP.sql @@ -2,11 +2,11 @@ -- $Id$ -- -- Script containing customer specific sql statements for the FACILITOR database --- --- --- --- --- +-- +-- +-- +-- +-- DEFINE thisfile = 'TMGP.SQL' @@ -31,9 +31,9 @@ SET DEFINE OFF -- Personen import CREATE OR REPLACE PROCEDURE TMGP_IMPORT_PERSONEN(p_import_key NUMBER) -AS +AS BEGIN - fac_import_perslid(p_import_key); + fac_import_perslid(p_import_key); END; / @@ -41,33 +41,33 @@ 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. - -- + -- Inine niet dan moete we de persoon aanmaken. + -- CREATE OR REPLACE PROCEDURE TMGP_UPDATE_PERSONEN(p_import_key NUMBER) -AS +AS CURSOR c (v_import_key NUMBER) IS - SELECT * - FROM fac_imp_perslid + SELECT * + FROM fac_imp_perslid WHERE fac_import_key=v_import_key; - - - CURSOR c_del(v_import_key NUMBER) + + + CURSOR c_del(v_import_key NUMBER) IS SELECT p.prs_perslid_key FROM prs_perslid p - WHERE p.prs_perslid_verwijder IS NULL + 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 + AND p.prs_perslid_nr NOT IN (SELECT prs_perslid_nr FROM fac_imp_perslid - WHERE fac_import_key=v_import_key); + 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); - + oracle_err_mes VARCHAR2 (200); + v_date DATE; v_count NUMBER; v_insert_count NUMBER:=0; @@ -85,154 +85,167 @@ AS v_prs_oslogin PRS_PERSLID.PRS_PERSLID_OSLOGIN%TYPE; BEGIN BEGIN - SELECT prs_srtperslid_key - INTO v_functie - FROM prs_srtperslid + 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; - - - - 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 < 0 - 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; - + + + 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; - - 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; - - - - - EXCEPTION WHEN OTHERS THEN v_errorhint := v_errormsg || ' - ' || v_aanduiding; @@ -250,14 +263,14 @@ END; -- IMport van data set uit de PAT tester CREATE OR REPLACE PROCEDURE TMGP_IMPORT_PATDATA(p_import_key NUMBER) -AS +AS BEGIN - fac_import_genericcsv(p_import_key); + NULL; END; / CREATE OR REPLACE PROCEDURE TMGP_UPDATE_PATDATA(p_import_key NUMBER) -AS +AS v_date DATE; BEGIN SELECT SYSDATE INTO v_date FROM DUAL; @@ -269,18 +282,18 @@ END; -- Import procedure voor inlezen perriodiek taken -CREATE OR REPLACE PROCEDURE TMGP_IMPORT_TAKEN_OVERIG(p_import_key IN NUMBER) +CREATE OR REPLACE PROCEDURE TMGP_IMPORT_TAKEN_OVERIG(p_import_key IN NUMBER) AS BEGIN - - fac_import_genericcsv(p_import_key); - + + NULL; + END; / -CREATE OR REPLACE PROCEDURE TMGP_UPDATE_TAKEN_OVERIG(p_import_key IN NUMBER) +CREATE OR REPLACE PROCEDURE TMGP_UPDATE_TAKEN_OVERIG(p_import_key IN NUMBER) AS - CURSOR c + CURSOR c IS SELECT fac_imp_csv_col01 ins_deel_omschrijving, fac_imp_csv_col02 taak_omschrijving, @@ -290,15 +303,15 @@ AS 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 + 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); - + oracle_err_mes VARCHAR2 (200); + v_eenheid NUMBER; v_eenheid_uitz NUMBER; v_periode_uitz NUMBER; @@ -310,53 +323,53 @@ AS v_srtcontrole_key NUMBER; v_taakcat_key NUMBER; v_srtcontroledl_xcp_key NUMBER; - v_srtkenmerk_doc 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 + 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 + ELSIF UPPER(rec.taak_interval_periode)='M' THEN v_eenheid:=3; - ELSIF UPPER(rec.taak_interval_periode)='W' THEN + 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; + 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 + ELSIF UPPER(rec.taak_interval_uitz_per)='M' THEN v_eenheid_uitz:=3; - ELSIF UPPER(rec.taak_interval_uitz_per)='W' THEN + 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; - + 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 + 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; @@ -369,36 +382,36 @@ BEGIN v_deel_key:=-1; END; v_ins_srtcontrole_niveau:='S'; - - IF v_deel_key>0 - THEN + + 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' + + 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 + 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; - + 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_omschrijving, ins_srtcontrole_periode, ins_srtcontrole_eenheid, ins_srtcontrole_mode, @@ -419,11 +432,11 @@ BEGIN ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, - ins_kenmerk_bewerkniveau, + ins_kenmerk_bewerkniveau, ins_kenmerk_groep, ins_kenmerk_volgnummer, - ins_kenmerk_hint, - ins_kenmerk_omschrijving + ins_kenmerk_hint, + ins_kenmerk_omschrijving ) VALUES ( v_srtkenmerk_doc, @@ -433,33 +446,33 @@ BEGIN 0, 10, '', - 'Documenten' - ); - END IF; - END; - + 'Documenten' + ); + END IF; + END; + BEGIN - + SELECT ins_srtcontroledl_xcp_key INTO v_srtcontroledl_xcp_key - FROM ins_srtcontroledl_xcp + 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 + + -- 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 + + 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 + + INSERT INTO ins_srtcontroledl_xcp (ins_srtcontrole_key, ins_deel_key, ins_srtcontroledl_xcp_eenheid, @@ -467,20 +480,20 @@ BEGIN INS_SRTCONTROLEDL_XCP_STARTDAT) VALUES (v_srtcontrole_key, v_deel_key, - v_eenheid, + v_eenheid, v_periode_uitz, - fac.safe_to_date(rec.taak_datum,'DD-MM-YYYY')); + fac.safe_to_date(rec.taak_datum,'DD-MM-YYYY')); END; - ELSE + ELSE fac.imp_writelog (p_import_key, 'W', 'Object '||rec.ins_deel_omschrijving||' niet gevonden', 'Object niet gevonden'); END IF; - --Heeft object + --Heeft object END LOOP; EXCEPTION -WHEN NO_DATA_FOUND +WHEN NO_DATA_FOUND THEN v_errorhint := v_errormsg || ' - ' || v_aanduiding; oracle_err_num := SQLCODE; @@ -496,18 +509,18 @@ END; --Import procedure voor inlezen periodiek MJOB -CREATE OR REPLACE PROCEDURE TMGP_IMPORT_TAKEN_MJOB(p_import_key IN NUMBER) +CREATE OR REPLACE PROCEDURE TMGP_IMPORT_TAKEN_MJOB(p_import_key IN NUMBER) AS BEGIN - - fac_import_genericcsv(p_import_key); - + + NULL; + END; / -CREATE OR REPLACE PROCEDURE TMGP_UPDATE_TAKEN_MJOB(p_import_key IN NUMBER) +CREATE OR REPLACE PROCEDURE TMGP_UPDATE_TAKEN_MJOB(p_import_key IN NUMBER) AS - CURSOR c + CURSOR c IS SELECT fac_imp_csv_col01 ins_deel_omschrijving, fac_imp_csv_col02 taak_omschrijving, @@ -522,16 +535,16 @@ AS 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 + 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); - + oracle_err_mes VARCHAR2 (200); + v_eenheid NUMBER; v_deel_key NUMBER; v_ins_discipine_key NUMBER; @@ -539,47 +552,47 @@ AS 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_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 + 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 + ELSIF UPPER(rec.taak_interval_periode)='M' THEN v_eenheid:=3; - ELSIF UPPER(rec.taak_interval_periode)='W' THEN + 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; - + 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,'€',''),'.','')),',','.')); - - - + + + --Haal het object, discipine , groep en objectsoort BEGIN v_errormsg :='Ophalen object '||rec.ins_deel_omschrijving; @@ -590,53 +603,53 @@ BEGIN EXCEPTION WHEN NO_DATA_FOUND THEN v_deel_key:=-1; - END; + END; v_ins_srtcontrole_niveau:='S'; - - IF v_deel_key > 0 - THEN - BEGIN - SELECT ikd.ins_kenmerkdeel_waarde + + 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' + 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 + 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' + + 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 + 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; - + 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_omschrijving, ins_srtcontrole_periode, ins_srtcontrole_eenheid, ins_srtcontrole_mode, @@ -653,17 +666,17 @@ BEGIN ) RETURNING ins_srtcontrole_key INTO v_srtcontrole_key; - -- Gaan we gelijk een Documenten kenmerk toevoegen + -- 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_bewerkniveau, ins_kenmerk_groep, ins_kenmerk_volgnummer, - ins_kenmerk_hint, - ins_kenmerk_omschrijving + ins_kenmerk_hint, + ins_kenmerk_omschrijving ) VALUES ( v_srtkenmerk_doc, @@ -673,13 +686,13 @@ BEGIN 0, 10, '', - 'Documenten' - ); - END IF; - END; - + 'Documenten' + ); + END IF; + END; + -- XCP record m,aken met de verwachte startdatum - INSERT INTO ins_srtcontroledl_xcp + INSERT INTO ins_srtcontroledl_xcp (ins_srtcontrole_key, ins_deel_key, ins_srtcontroledl_xcp_eenheid, @@ -692,14 +705,14 @@ BEGIN VALUES (v_srtcontrole_key, v_deel_key, v_eenheid, - rec.taak_interval, + 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); - - + v_eenheid_hoev); + + ELSE v_errormsg:='Object '||rec.ins_deel_omschrijving||' niet gevonden'; v_errorhint := v_errormsg || ' - ' || v_aanduiding; @@ -711,9 +724,9 @@ BEGIN v_errorhint); END IF; END LOOP; - + EXCEPTION -WHEN NO_DATA_FOUND +WHEN NO_DATA_FOUND THEN v_errorhint := v_errormsg || ' - ' || v_aanduiding; oracle_err_num := SQLCODE; @@ -730,47 +743,47 @@ END; -- 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 +AS BEGIN - fac_import_ins(p_import_key); + fac_import_ins(p_import_key); END; / CREATE OR REPLACE PROCEDURE TMGP_UPDATE_CMDBASSETS(p_import_key IN NUMBER) AS - CURSOR sel + CURSOR sel IS - SELECT i.ins_deel_key object_key, i2.ins_deel_key config_key + 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 (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); - - + v_errorhint VARCHAR2 (200); + + BEGIN - fac_update_ins(p_import_key); - + 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 - - - + 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 + BEGIN INSERT INTO ins_deelkoppeling(ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key, ins_deelkoppeling_omschrijving, @@ -778,8 +791,8 @@ BEGIN VALUES (rec.config_key, rec.object_key, 'Configuratie koppeling', - SYSDATE); - fac.trackaction ('INSUPD', rec.config_key, 3, SYSDATE,'Object toegevoegd aan configuratie'); + SYSDATE); + fac.trackaction ('INSUPD', rec.config_key, 3, SYSDATE,'Object toegevoegd aan configuratie'); EXCEPTION WHEN OTHERS THEN @@ -797,7 +810,7 @@ BEGIN END; END LOOP; - + END; / @@ -815,12 +828,12 @@ AS 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; - + WHERE kpn.prs_kostenplaats_verwijder IS NULL; + CREATE OR REPLACE VIEW TGMP_V_NLSFB -( +( FAC_USRDATA_KEY, FAC_USRDATA_CODE, FAC_USRDATA_OMSCHR @@ -828,20 +841,20 @@ CREATE OR REPLACE VIEW TGMP_V_NLSFB AS SELECT fud.fac_usrdata_key, fud.fac_usrdata_code||'-'||fud.fac_usrdata_omschr, - fud.fac_usrdata_omschr2 + 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; + 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, + SELECT fud.fac_usrdata_key, fud.fac_usrdata_code||'-'||fud.fac_usrdata_omschr, fud.fac_usrdata_omschr2 FROM fac_usrdata fud, fac_usrtab fut @@ -853,12 +866,12 @@ AS 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 + 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 @@ -880,35 +893,35 @@ CREATE OR REPLACE VIEW tmgp_v_opdracht_uren uren ) AS - SELECT m.mld_melding_key melding_key, + 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 + (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, + 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, + 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 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_afdeling, prs_afdelinge_bezetting, alg_locatie_kpn, alg_locatie_code, @@ -919,21 +932,21 @@ CREATE OR REPLACE VIEW TMGP_V_RUIMTEDOORBELAST alg_ruimte_bropp, netto ) -AS +AS SELECT k1.prs_kostenplaats_nr afdeling_kpn, - a.prs_afdeling_omschrijving, - ra.prs_ruimteafdeling_bezetting, + a.prs_afdeling_omschrijving, + ra.prs_ruimteafdeling_bezetting, k2.prs_kostenplaats_nr gebouw_kpn, - l.alg_locatie_code, + 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 + (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 + r.alg_ruimte_bruto_vloeropp*ra.prs_ruimteafdeling_bezetting/100 netto FROM alg_ruimte r, prs_ruimteafdeling ra, prs_afdeling a, @@ -954,14 +967,14 @@ AS 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 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, @@ -971,74 +984,74 @@ AS 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 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' + 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' + 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' + 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=mkm.mld_kenmerkmelding_waarde) projectstatus, + 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' + 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 + (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, + 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' + 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' + 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, + 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' + 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=mkm.mld_kenmerkmelding_waarde) gepland_huidgjaar, + 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' + 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=mkm.mld_kenmerkmelding_waarde) begroot - FROM mld_melding m, - mld_stdmelding sm, + 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 (sm.mld_stdmelding_code = 'PROJECT' OR sm.mld_stdmelding_code = 'PROJECTMJOB') AND stat.mld_statuses_key = m.mld_melding_status; - - - - - + + + + +