diff --git a/FZKH/FZKH.sql b/FZKH/FZKH.sql index 5dfdf6f97..0ab284e25 100644 --- a/FZKH/FZKH.sql +++ b/FZKH/FZKH.sql @@ -140,6 +140,9 @@ BEGIN rec_ins.ins_srtcontrole_mode IS NOT NULL AND (rec_ins.ins_srtcontrole_mode = 1 OR (1=1)) THEN + + + INSERT INTO ins_srtcontrole (ins_srtinstallatie_key, ins_srtcontrole_niveau, ins_srtcontrole_omschrijving, @@ -219,13 +222,25 @@ BEGIN FOR rec in c1 LOOP - SELECT COUNT(*) - INTO v_count - FROM prs_perslid p - WHERE p.prs_perslid_nr = rec.prs_perslid_matchwaarde - AND p.prs_perslid_verwijder IS NULL - AND ( p.prs_perslid_inactief IS NULL - OR p.prs_perslid_inactief > SYSDATE); + IF rec.prs_perslid_matchcode='4' + THEN + SELECT COUNT(*) + INTO v_count + FROM prs_perslid p + WHERE p.prs_perslid_nr = rec.prs_perslid_matchwaarde + AND p.prs_perslid_verwijder IS NULL + AND ( p.prs_perslid_inactief IS NULL + OR p.prs_perslid_inactief > SYSDATE); + ELSIF rec.prs_perslid_matchcode='3' + THEN + SELECT COUNT(*) + INTO v_count + FROM prs_v_perslid_fullnames p + WHERE p.prs_perslid_naam_full = rec.prs_perslid_matchwaarde; + ELSE + v_count:=0; + END IF; + v_vervaldatum := NULL; IF UPPER(rec.ins_kenmerkwaarde1) = 'VERMIST' THEN @@ -258,6 +273,443 @@ BEGIN END; / +CREATE OR REPLACE PROCEDURE FZKH_IMPORT_MT_KENMERKEN (p_import_key IN NUMBER) +AS + +BEGIN + NULL; +END; +/ + +CREATE OR REPLACE PROCEDURE FZKH_UPDATE_MT_KENMERKEN (p_import_key IN NUMBER) +AS + CURSOR sel + IS + SELECT fac_imp_csv_col01 ins_deel_omschrijving, + fac_imp_csv_col03 ins_kenmerk_label, + fac_imp_csv_col08 ins_kenmerk_waarde + FROM fac_imp_csv + WHERE fac_import_key=p_import_key + ORDER BY fac_imp_csv_key; + + v_ins_deel_key NUMBER; + v_ins_kenmerk_key NUMBER; + + v_errormsg VARCHAR2 (1000) := '-'; + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_aanduiding VARCHAR2 (200); +BEGIN + FOR rec IN sel + LOOP + IF rec.ins_deel_omschrijving<>'eqmid' + THEN + BEGIN + v_aanduiding := 'Object '||rec.ins_deel_omschrijving||' is niet gevonden en wordt overgeslagen'; + SELECT ins_deel_key + INTO v_ins_deel_key + FROM ins_deel + WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving + AND ins_deel_verwijder IS NULL; + + IF v_ins_deel_key >0 + THEN + v_aanduiding:='kenmerk : ' || TO_CHAR (rec.ins_kenmerk_label)||' voor object '||rec.ins_deel_omschrijving||' is niet gevonden en wordt overgeslagen'; + SELECT ins_kenmerk_key + INTO v_ins_kenmerk_key + FROM ins_kenmerk + WHERE UPPER(ins_kenmerk_omschrijving) = UPPER(rec.ins_kenmerk_label) + AND ins_kenmerk_niveau='D' + AND ins_kenmerk_verwijder IS NULL; + IF v_ins_kenmerk_key>0 AND rec.ins_kenmerk_waarde <>'NULL' + THEN + flx.setflex('INS',v_ins_kenmerk_key,v_ins_deel_key,rec.ins_kenmerk_waarde); + END IF; + + END IF; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + fac.imp_writelog (p_import_key, + 'W', + v_aanduiding, + ''); + END; + END IF; + + END LOOP; +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 150); + v_errormsg := + v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.imp_writelog (p_import_key, + 'E', + 'Importproces MT Kenmerken afgebroken!', + v_errormsg); + +END; +/ + +CREATE OR REPLACE PROCEDURE FZKH_IMPORT_RESERVERINGEN (p_import_key IN NUMBER) +AS + +BEGIN + NULL; +END; +/ + +CREATE OR REPLACE PROCEDURE FZKH_UPDATE_RESERVERINGEN (p_import_key IN NUMBER) +AS + CURSOR sel + IS + SELECT fac_imp_csv_col01 ultimo_code, + fac_imp_csv_col03 res_ruimte_nr, + fac_imp_csv_col06 res_startdatum, + fac_imp_csv_col07 res_einddatum, + fac_imp_csv_col08 res_status, + fac_imp_csv_col09 res_aanvrager, + fac_imp_csv_col10 res_omschrijving + FROM fac_imp_csv + WHERE fac_import_key=p_import_key + ORDER BY fac_imp_csv_key; + v_res_startdatum DATE; + v_res_einddatum DATE; + v_prs_perslid_key NUMBER; + v_res_ruimte_key NUMBER; + + v_count NUMBER; + v_errormsg VARCHAR2 (1000) := '-'; + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_aanduiding VARCHAR2 (200); +BEGIN + + FOR rec IN sel + LOOP + v_res_startdatum := fac.safe_to_date(rec.res_startdatum,'DD-MM-YYYY HH24:MI'); + v_res_einddatum := fac.safe_to_date(rec.res_einddatum,'DD-MM-YYYY HH24:MI'); + BEGIN + SELECT prs_perslid_key + INTO v_prs_perslid_key + FROM prs_v_perslid_fullnames p + WHERE UPPER(p.prs_perslid_naam_full) = UPPER(rec.res_aanvrager); + EXCEPTION + WHEN NO_DATA_FOUND THEN + v_prs_perslid_key:=3; + END; + + v_aanduiding := 'Reservering '||rec.ultimo_code||' voor ruimte met ruimte Nr :'||rec.res_ruimte_nr||' is niet gevonden'; + SELECT res_ruimte_key + INTO v_res_ruimte_key + from res_ruimte + WHERE res_ruimte_verwijder IS NULL + AND res_ruimte_nr LIKE rec.res_ruimte_nr||'%'; + + -- Insert in res_reservering + -- Insert ito res-sv_ruimte + -- voeg tracking toe. + -- fac.trackaction ('RESNEW', v_res_rsv_ruimte_key, NULL, SYSDATE, 'Gemigreerd vanuit Ultimo'); + + + END LOOP; + +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 150); + v_errormsg := + v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.imp_writelog (p_import_key, + 'E', + 'Importproces Ultimo reserveringen afgebroken!', + v_errormsg); +END; +/ + +CREATE OR REPLACE PROCEDURE FZKH_IMPORT_ULTIMO_MLD(p_import IN NUMBER) +AS +BEGIN + NULL; +END; +/ + +CREATE OR REPLACE PROCEDURE FZKH_UPDATE_ULTIMO_MLD(p_import_key IN NUMBER) +AS + + CURSOR sel + IS + SELECT fac_imp_csv_col01 ultimo_nr, + fac_imp_csv_col02 mld_onderwerp, + fac_imp_csv_col03 prs_perslid_behandelaar, + fac_imp_csv_col05 mld_melding_datum, + fac_imp_csv_col05 prs_afdeling, + fac_imp_csv_col07 mld_note, + fac_imp_csv_col08 ins_deel_omschrijving, + fac_imp_csv_col08 ins_deel_serienummer, + fac_imp_csv_col11 ins_deel_leverancier, + fac_imp_csv_col12 mld_stdmelding, + fac_imp_csv_col13 mld_status, + fac_imp_csv_col14 mld_substatus, + fac_imp_csv_col15 mld_melding_gereeddatum, + fac_imp_csv_col17 prs_perslid_melder, + fac_imp_csv_col19 prs_kostenplaats_nr + FROM fac_imp_csv + WHERE fac_import_key=p_import_key + ORDER BY fac_imp_csv_key; + v_errormsg VARCHAR2 (1000) := '-'; + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_aanduiding VARCHAR2 (200); + + v_counter NUMBER; + v_count_deel_ok NUMBER; + v_count_deel NUMBER; + v_stdmelding_key NUMBER; + v_alg_onrgoed_niveau VARCHAR2(1); + v_prs_perslid_melder NUMBER; + v_mld_meldbron_key NUMBER; + v_kenmerk_key NUMBER; + v_ins_deel_key NUMBER; + v_prs_perslid_behandelaar NUMBER; + v_meldingsdatum DATE; + v_melding_gereeddatum DATE; + v_mld_key NUMBER; + v_status_key NUMBER; +BEGIN + v_stdmelding_key := 1; -- standaard worden alle migratie meldingen op de stdmelding overig gezet + v_mld_meldbron_key :=5; + v_counter:=0; + + v_aanduiding :='Ophalen melding kenmerk key met code=ULTIMO_MLD_KEY is muslukt'; + SELECT mld_kenmerk_key + INTO v_kenmerk_key + FROM mld_kenmerk + WHERE mld_kenmerk_code='ULTIMO_NR'; + + FOR rec IN sel + LOOP + IF rec.ultimo_nr<>'Code' + THEN + BEGIN + v_aanduiding:='Ophalen std melding gaat fout :'|| rec.mld_stdmelding; + SELECT ms.mld_stdmelding_key, ms.alg_onrgoed_niveau + INTO v_stdmelding_key, v_alg_onrgoed_niveau + FROM mld_stdmelding ms , ins_srtdiscipline vgt, MLD_DISCIPLINE vg + WHERE vgt.ins_srtdiscipline_omschrijving='Medische Techniek' + AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key + AND vg.ins_discipline_key = ms.mld_ins_discipline_key + AND ms.mld_stdmelding_omschrijving=rec.mld_stdmelding + AND ms.MLD_STDMELDING_VERWIJDER IS NULL; + + EXCEPTION + WHEN NO_DATA_FOUND + THEN + SELECT ms.mld_stdmelding_key, ms.alg_onrgoed_niveau + INTO v_stdmelding_key, v_alg_onrgoed_niveau + FROM mld_stdmelding ms , ins_srtdiscipline vgt, MLD_DISCIPLINE vg + WHERE vgt.ins_srtdiscipline_omschrijving='Medische Techniek' + AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key + AND vg.ins_discipline_key = ms.mld_ins_discipline_key + AND UPPER(ms.mld_stdmelding_omschrijving)='MIGRATIE' + AND ms.MLD_STDMELDING_VERWIJDER IS NULL; + END; + + v_aanduiding:= 'Ophalen van het asset '||rec.ins_deel_omschrijving || ' is mislukt.'; + BEGIN + SELECT ins_deel_key + INTO v_ins_deel_key + FROM ins_deel + WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving + AND ins_deel_verwijder IS NULL; + v_count_deel_ok:=v_count_deel_ok+1; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_ins_deel_key:=NULL; + v_count_deel:=v_count_deel+1; + END; + + -- Opahlen aanvrger + BEGIN + SELECT prs_perslid_key + INTO v_prs_perslid_melder + FROM prs_v_aanwezigperslid + WHERE prs_perslid_naam=rec.prs_perslid_melder; + + + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_prs_perslid_melder:=3; + END; + + BEGIN + SELECT prs_perslid_key + INTO v_prs_perslid_behandelaar + FROM prs_v_aanwezigperslid + WHERE prs_perslid_naam=rec.prs_perslid_behandelaar; + + + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_prs_perslid_behandelaar:=NULL; + END; + + -- Status + SELECT DECODE(rec.mld_status,'Gesloten',6,'Nieuw',2,'In behandeling',4,'Afgemeld',5,6) + INTO v_status_key + FROM DUAL; -- Historie is default + + + v_meldingsdatum:= fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS'); + IF rec.mld_melding_gereeddatum IS NOT NULL + THEN + v_melding_gereeddatum := fac.safe_to_date(rec.mld_melding_gereeddatum,'DD-MM-YYYY HH24:MI.SS'); + ELSE + v_melding_gereeddatum:=NULL; + END IF; + + IF v_stdmelding_key>-1 + THEN + v_counter:=v_counter+1; + INSERT INTO mld_melding (mld_melding_module, + mld_meldbron_key, + mld_alg_locatie_key, + mld_alg_onroerendgoed_keys, + mld_melding_datum, + mld_melding_onderwerp, + mld_melding_omschrijving, + mld_melding_opmerking, + mld_melding_behandelaar_key, + mld_melding_behandelaar2_key, + mld_ins_discipline_key, + mld_stdmelding_key, + mld_melding_t_uitvoertijd, + mld_melding_einddatum, + prs_perslid_key, + prs_perslid_key_voor, + mld_melding_status, + mld_melding_spoed, + MLD_MELDING_EXTERNNR) + VALUES ('MLD', + v_mld_meldbron_key, + NULL, + NULL, + v_meldingsdatum, + rec.mld_onderwerp, + rec.mld_onderwerp, + rec.mld_note, + v_prs_perslid_behandelaar, -- mld_melding_behandelaar_key + TO_NUMBER(NULL), -- mld_melding_behandelaar2_key + TO_NUMBER(NULL), + v_stdmelding_key, + NULL, + v_melding_gereeddatum, + v_prs_perslid_melder, + v_prs_perslid_melder, + v_status_key, + 3, + rec.ultimo_nr + ) + RETURNING mld_melding_key + INTO v_mld_key; + + + + flx.setflex('MLD',v_kenmerk_key,v_mld_key,rec.ultimo_nr); + IF v_status_key = 2 + THEN + fac.trackaction ('MLDNEW', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' aangemaakt'); + ELSIF v_status_key = 4 + THEN + fac.trackaction ('MLDNEW', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' aangemaakt.'); + fac.trackaction ('MLDACP', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' geaccepteerd.'); + ELSIF v_status_key = 6 + THEN + fac.trackaction ('MLDNEW', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' aangemaakt.'); + fac.trackaction ('MLDACP', v_mld_key, NULL, v_meldingsdatum, 'Ultimo melding '||rec.ultimo_nr||' geaccepteerd.'); + fac.trackaction ('MLDAFM', v_mld_key, NULL, v_melding_gereeddatum, 'Ultimo melding '||rec.ultimo_nr||' afgemeld'); + ELSE + fac.trackaction ('MLDTRK', v_mld_key, NULL, NULL, 'Ultimo melding '||rec.ultimo_nr||' gemigreerd.'); + END IF; + + IF v_mld_key>1 AND LENGTH(rec.mld_note)>0 + THEN + INSERT INTO mld_melding_note (mld_melding_key, + mld_melding_note_aanmaak, + mld_melding_note_wijzigdatum, + prs_perslid_key, + mld_melding_note_omschrijving, + mld_melding_note_flag) + VALUES (v_mld_key, + v_meldingsdatum, + SYSDATE, + 3, -- Facilitor + 'Migratie melding Ultimo melding: ' || rec.ultimo_nr||CHR(10)||'Aanvrager: '|| rec.prs_perslid_melder, + 0); + END IF; + + IF v_ins_deel_key > 0 + THEN + INSERT INTO mld_melding_object(ins_deel_key, + mld_melding_key, + mld_melding_object_aanmaak) + VALUES(v_ins_deel_key, + v_mld_key, + v_meldingsdatum); + + END IF; + + + + + END IF; + + + END IF; + + -- haal het object op + -- haal de melder op + -- haal de evt hebandelar op + -- haal de stdmelding op, + -- haal de status op, + + + END LOOP; + + fac.imp_writelog (p_import_key, + 'I', + 'Er zijn in totaal '||v_counter||' meldingen aangemaakt.', + 'Ultimo meldingen aanmaak'); + fac.imp_writelog (p_import_key, + 'I', + 'Daar zijn intotaal '||v_count_deel_ok||' objecten aangekoppeld.', + 'Ultimo meldingen aanmaak'); + fac.imp_writelog (p_import_key, + 'I', + 'In totaal zijn '||v_count_deel||' objecten niet gevonden.', + 'Ultimo meldingen aanmaak'); + +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 150); + v_errormsg := + v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.imp_writelog (p_import_key, + 'E', + 'Importproces Ultimo meldingen afgebroken!'||v_aanduiding, + v_errormsg); +END; +/ + + CREATE OR REPLACE PROCEDURE FZKH_IMPORT_AOC_CODES(p_import IN NUMBER) AS @@ -458,19 +910,20 @@ AS fac_imp_csv_col46 ins_kenm_garantie, fac_imp_csv_col50 ins_kenm_status, fac_imp_csv_col12 ins_kenm_aanschafprijs, - fac.safe_to_date(fac_imp_csv_col27,'DD-MM-YYYY') ins_kenm_instaldatum, - fac_imp_csv_col47 ins_onderhoud_datum + fac_imp_csv_col27 ins_kenm_instaldatum, + fac_imp_csv_col48 ins_onderhoud_datum FROM fac_imp_csv WHERE fac_import_key=p_import_key ORDER BY fac_imp_csv_key; - - v_locatie_code VARCHAR2(10); - v_gebouw_code VARCHAR2(10); - v_verdieping_nr VARCHAR2(10); - v_ruimte_nr VARCHAR2(25); - v_huidige_locatie VARCHAR2(50); + v_count NUMBER; + v_locatie_code VARCHAR2(10); + v_gebouw_code VARCHAR2(10); + v_verdieping_nr VARCHAR2(10); + v_ruimte_nr VARCHAR2(25); + v_huidige_locatie VARCHAR2(100); + v_installdatum DATE; BEGIN fac_import_file2csv(p_import_key); @@ -490,70 +943,91 @@ BEGIN v_huidige_locatie:=''; IF rec.ins_kenm_locatie IS NOT NULL THEN - v_huidige_locatie:='Locatie|0='||rec.ins_kenm_locatie; + v_huidige_locatie:=rec.ins_kenm_locatie; ELSE v_huidige_locatie:=''; END IF; IF rec.ins_kenm_ruimtenr IS NOT NULL THEN - v_huidige_locatie:='Locatie|0='||rec.ins_kenm_ruimtenr||'-'||rec.ins_kenm_ruimtenaam; + v_huidige_locatie:=rec.ins_kenm_ruimtenr||'-'||rec.ins_kenm_ruimtenaam; ELSE v_huidige_locatie:=''; END IF; - INSERT INTO fac_imp_ins (ins_discipline_omschrijving, - ins_srtgroep_omschrijving, - ins_srtdeel_code, - ins_srtdeel_omschrijving, - ins_deel_omschrijving, - ins_deel_opmerking, - ins_deel_aanmaak, - alg_locatie_code, - alg_gebouw_code, - alg_verdieping_volgnr, - alg_ruimte_nr, - ins_deel_aantal, - ins_kenmerkwaarde1, - ins_kenmerkwaarde2, - ins_kenmerkwaarde3, - ins_kenmerkwaarde4, - ins_kenmerkwaarde5, - ins_kenmerkwaarde6, - ins_kenmerkwaarde7, - ins_kenmerkwaarde8, - ins_kenmerkwaarde9, - ins_kenmerkwaarde10, - ins_kenmerkwaarde11, - ins_kenmerkwaarde12, - ins_kenmerkwaarde13, - ins_kenmerkwaarde14) - VALUES (rec.ins_discipline, - rec.ins_groep, - SUBSTR(rec.ins_srtdeel_code,1,8), - rec.ins_srtdeel_omschrijving, - rec.ins_deel_omschrijving, - rec.ins_deel_opmerking, - rec.ins_kenm_instaldatum, - v_locatie_code, - v_gebouw_code, - v_verdieping_nr, - v_ruimte_nr, - 1, - 'Eigenaar|0='||rec.ins_kenm_eigenaar, - v_huidige_locatie, - 'Model|0='||rec.ins_kenm_model, - 'TypeNr|0='||rec.ins_kenm_type, - 'Serienummer|0='||rec.ins_kenm_serienr, - 'Bouwjaar|0='||rec.ins_kenm_bouwjaar, - 'Leverancier|0='||rec.ins_kenm_leverancier, - 'ServiceLeverancier|0='||rec.ins_kenm_service_leverancier, - 'Fabrikant|0='||rec.ins_kenm_fabrikant, - 'MDD-Classificatie|0='||TRIM(rec.ins_kenm_mdd_clas), - 'Einde Garantie|0='||rec.ins_kenm_garantie, - 'Status|0='||rec.ins_kenm_status, - 'Aanschafprijs|0='||TRIM(rec.ins_kenm_aanschafprijs), - 'Installatie datum|0='||TO_CHAR(rec.ins_kenm_instaldatum,'DD-MM-YYY') - ); + + IF LENGTH(rec.ins_kenm_instaldatum)>1 + THEN + v_installdatum := fac.safe_to_date(rec.ins_kenm_instaldatum,'DD-MM-YYYY'); + ELSE + v_installdatum:=TRUNC(SYSDATE); + END IF; + + SELECT COUNT(*) INTO v_count + FROM ins_deel + WHERE ins_deel_omschrijving=rec.ins_deel_omschrijving + AND ins_deel_verwijder IS NULL; + IF v_count=0 THEN + + INSERT INTO fac_imp_ins (ins_discipline_omschrijving, + ins_srtgroep_omschrijving, + ins_srtdeel_code, + ins_srtdeel_omschrijving, + ins_deel_omschrijving, + ins_deel_opmerking, + ins_deel_aanmaak, + alg_locatie_code, + alg_gebouw_code, + alg_verdieping_volgnr, + alg_ruimte_nr, + ins_deel_aantal, + ins_kenmerkwaarde1, + ins_kenmerkwaarde2, + ins_kenmerkwaarde3, + ins_kenmerkwaarde4, + ins_kenmerkwaarde5, + ins_kenmerkwaarde6, + ins_kenmerkwaarde7, + ins_kenmerkwaarde8, + ins_kenmerkwaarde9, + ins_kenmerkwaarde10, + ins_kenmerkwaarde11, + ins_kenmerkwaarde12, + ins_kenmerkwaarde13, + ins_kenmerkwaarde14, + ins_kenmerkwaarde15) + VALUES (rec.ins_discipline, + rec.ins_groep, + SUBSTR(rec.ins_srtdeel_code,1,8), + rec.ins_srtdeel_omschrijving, + rec.ins_deel_omschrijving, + rec.ins_deel_opmerking, + v_installdatum, + v_locatie_code, + v_gebouw_code, + v_verdieping_nr, + v_ruimte_nr, + 1, + 'Eigenaar|0='||rec.ins_kenm_eigenaar, + 'Locatie|0='||v_huidige_locatie, + 'Model|0='||rec.ins_kenm_model, + 'TypeNr|0='||rec.ins_kenm_type, + 'Serienummer|0='||rec.ins_kenm_serienr, + 'Bouwjaar|0='||rec.ins_kenm_bouwjaar, + 'Leverancier|0='||rec.ins_kenm_leverancier, + 'ServiceLeverancier|0='||rec.ins_kenm_service_leverancier, + 'Fabrikant|0='||rec.ins_kenm_fabrikant, + 'MDD-Classificatie|0='||TRIM(rec.ins_kenm_mdd_clas), + 'Einde Garantie|0='||rec.ins_kenm_garantie, + 'Status|0='||rec.ins_kenm_status, + 'Aanschafprijs|0='||TRIM(rec.ins_kenm_aanschafprijs), + 'Installatie datum|0='||rec.ins_kenm_instaldatum, + 'Onderhouddatum|0='||rec.ins_onderhoud_datum + ); + ELSE + fac.imp_writelog (p_import_key, + 'W', + 'Object : '||rec.ins_deel_omschrijving || ' is al bekend en wordt dus overgeslagen',''); END IF; + END IF; END LOOP; @@ -595,19 +1069,21 @@ AS oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); - v_ins_deel_key NUMBER; - v_prs_afdeling_key NUMBER; - v_ins_srtdeel_key NUMBER; - v_srtcontrole_key NUMBER; - v_count NUMBER; + v_ins_deel_key NUMBER; + v_prs_afdeling_key NUMBER; + v_ins_srtdeel_key NUMBER; + v_srtcontrole_key NUMBER; + v_count NUMBER; + v_counter NUMBER; + v_ins_deelsrtcontrole_key NUMBER; - v_maand VARChar2(15); + v_maand VARChar2(15); BEGIN fac_update_ins(p_import_key); - + v_counter:=0; -- Gaan we nu de objecten aan de juiste afdeling koppelen FOR rec IN sel LOOP @@ -650,14 +1126,15 @@ BEGIN prs_kostenplaats k WHERE k.prs_kostenplaats_nr = rec.prs_afdeling_code AND a.prs_kostenplaats_key = k.prs_kostenplaats_key - AND a.prs_afdeling_omschrijving LIKE 'T-%' -- Pakken we de teamleiders afdeling + AND UPPER(a.prs_afdeling_omschrijving) NOT LIKE 'T-%' -- Pakken we de teamleiders afdeling + AND UPPER(a.prs_afdeling_omschrijving) NOT LIKE 'STAGIARE%' -- Pakken we de teamleiders afdeling AND prs_afdeling_verwijder IS NULL; ELSE v_prs_afdeling_key:=-1; fac.imp_writelog (p_import_key, 'W', - 'Afdeling niet gevonden :'||rec.prs_afdeling_code,''); + 'Afdeling niet gevonden :'||rec.prs_afdeling_code||' voor object :'||rec.ins_deel_omschrijving,''); END IF; @@ -673,8 +1150,10 @@ BEGIN END LOOP; -- gaan we nu de periodiek taken maken en aan de xcp records met de juiste taak start datum + v_counter:=0; FOR c IN sel_controle LOOP + v_counter:=v_counter+1; -- Welk maand met het onderhoud plaats vinden SELECT CASE TO_CHAR(TO_DATE(c.ctr_onderhoud_datum,'DD-MM-YYYY'),'MM') WHEN '01' THEN 'Januari' @@ -695,8 +1174,8 @@ BEGIN FROM DUAL; BEGIN - v_aanduiding := ' Ophalen van srtcontrole voor object '|| c.ins_deel_omschrijving||' in '||v_maand||' gaat fout.'; - select isc.ins_srtcontrole_key, + v_aanduiding := 'Ophalen van srtcontrole voor object '|| c.ins_deel_omschrijving||' in '||v_maand||' gaat fout. - '||v_counter; + select MIN(isc.ins_srtcontrole_key), i.ins_deel_key, i.ins_srtdeel_key INTO v_srtcontrole_key, @@ -713,25 +1192,34 @@ BEGIN AND id.ins_discipline_key=isg.ins_discipline_key AND UPPER(id.ins_discipline_omschrijving)=UPPER('Medische Techniek') AND isc.ins_srtinstallatie_key=i.ins_srtdeel_key - AND UPPER(isc.ins_srtcontrole_omschrijving) like UPPER('Onderhoud %'||v_maand||'%'); + AND UPPER(isc.ins_srtcontrole_omschrijving) like UPPER('Onderhoud %'||v_maand||'%') + GROUP BY i.ins_deel_key,i.ins_srtdeel_key; - v_aanduiding:='Uitzonderingstaak niet gevonden'; - v_count:=0; - SELECT count(*) - INTO v_count - from ins_srtcontroledl_xcp isx - WHERE isx.ins_srtcontrole_key=v_srtcontrole_key - AND ins_deel_key=v_ins_deel_key; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_srtcontrole_key:=-1; + fac.imp_writelog (p_import_key, + 'W', + v_aanduiding, + 'Taak niet toegevoegd'); + END;-- v_aanduiding:='Uitzonderingstaak niet gevonden'; + -- v_count:=0; + -- SELECT count(*) + -- INTO v_count + -- from ins_srtcontroledl_xcp isx + -- WHERE isx.ins_srtcontrole_key=v_srtcontrole_key + -- AND ins_deel_key=v_ins_deel_key; - IF v_count=0 - THEN - INSERT INTO ins_srtcontroledl_xcp (ins_deel_key, - ins_srtcontrole_key, - ins_srtcontroledl_xcp_startdat) - VALUES (v_ins_deel_key, - v_srtcontrole_key, - fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY')); - END IF; + -- IF v_count=0 + -- THEN + -- INSERT INTO ins_srtcontroledl_xcp (ins_deel_key, + -- ins_srtcontrole_key, + -- ins_srtcontroledl_xcp_startdat) + -- VALUES (v_ins_deel_key, + -- v_srtcontrole_key, + -- fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY')); + -- END IF; -- Gaan we nu de srtcontrole die niet gelden voor dit asset een xcp record aanmaken met einddatum @@ -754,17 +1242,52 @@ BEGIN END IF; END LOOP; - EXCEPTION - WHEN NO_DATA_FOUND + + + -- gaan we hem ook gelijk inplannen + IF v_ins_deel_key>0 AND v_srtcontrole_key>0 + THEN + + SELECT COUNT(*) + INTO v_count + FROM ins_deelsrtcontrole + WHERE ins_deel_key=v_ins_deel_key + AND ins_srtcontrole_key = v_srtcontrole_key + AND ins_deelsrtcontrole_plandatum = fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY') + AND ins_scenario_key=1; + + IF v_count=0 THEN - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding, - 'Taak niet toegevoegd'); - - END; + INSERT INTO ins_deelsrtcontrole( ins_deel_key, + ins_srtcontrole_key, + ins_deelsrtcontrole_plandatum, + ins_deelsrtcontrole_status, + ins_scenario_key, + prs_perslid_key) + VALUES(v_ins_deel_key, + v_srtcontrole_key, + fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY'), + 0, --status ingepland + 1, -- sceario + 3); -- Facilitor + END IF; + END IF; + + + + END LOOP; - +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 150); + v_errormsg := + v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.imp_writelog (p_import_key, + 'E', + 'Importproces MT assets afgebroken! ('||v_counter||')', + v_errormsg); END;