diff --git a/TDNL/TDNL.sql b/TDNL/TDNL.sql index 9bf20f483..6a01b35f5 100644 --- a/TDNL/TDNL.sql +++ b/TDNL/TDNL.sql @@ -165,6 +165,7 @@ END; -- IMPORTS + -- Import KPN aan gebouw koppelen CREATE OR REPLACE PROCEDURE TDNL_IMPORT_GEBOUW_KPN(p_import_key IN NUMBER) AS @@ -557,180 +558,525 @@ END; / -- Import meldingen uit CONN omgeveing ---CREATE OR REPLACE PROCEDURE TDNL_IMPORT_MELDINGEN(p_import_key IN NUMBER) ---AS ---BEGIN +CREATE OR REPLACE PROCEDURE TDNL_IMPORT_MELDINGEN(p_import_key IN NUMBER) +AS +BEGIN --- NULL; ---END; + NULL; +END; / ---CREATE OR REPLACE PROCEDURE TDNL_UPDATE_MELDINGEN(p_import_key IN NUMBER) ---AS --- CURSOR c --- IS --- SELECT fac_imp_csv_col01 mld_melding_key, --- fac_imp_csv_col02 alg_locatie_code, --- fac_imp_csv_col03 alg_ruimte_nr, --- fac_imp_csv_col04 mld_stdmelding, --- TO_DATE(fac_imp_csv_col05,'DD-MM-YYYY HH24:MI:SS') mld_datum, --- TO_DATE(fac_imp_csv_col06,'DD-MM-YYYY HH24:MI:SS') mld_afmelddatum, --- fac_imp_csv_col07 mld_uitvoertijd, --- fac_imp_csv_col08 mld_uitvoertijd_eenheid, --- fac_imp_csv_col09 mld_onderwerp, --- fac_imp_csv_col10 mld_status_key, --- fac_imp_csv_col11 prs_aanvrager_email, --- fac_imp_csv_col12 prs_behandelaar_email, --- fac_imp_csv_col13 kostenplaats_code, --- fac_imp_csv_col14 mld_omschrijving --- from fac_imp_csv --- WHERE fac_import_key = p_import_key; --- --- v_locatie_key NUMBER; --- v_ruimte_key NUMBER; --- v_aanvrager_key NUMBER; --- v_behandelaar_key NUMBER; --- v_stdmelding_key NUMBER; --- v_kostenplaats_key NUMBER; --- v_mld_meldbron_key NUMBER; --- v_error NUMBER; --- v_mldkey NUMBER; ---BEGIN --- v_stdmelding_key := 1; -- standaard worden alle migratie meldingen op de stdmelding overig gezet --- v_mld_meldbron_key :=5; --- FOR rec IN c --- LOOP --- BEGIN --- SELECT alg_locatie_key INTO v_locatie_key --- FROm alg_locatie l --- WHERE l.alg_locatie_code = rec.alg_locatie_code; --- EXCEPTION --- WHEN NO_DATA_FOUND --- THEN --- -- wat wordt de fall back locatie --- v_error:=1; --- v_locatie_key:=0; --- END; --- --- BEGIN --- SELECT a.alg_ruimte_key INTO v_ruimte_key --- FROm alg_v_ruimte_gegevens_all a --- WHERE a.alg_locatie_key = v_locatie_key --- AND a.ALG_RUIMTE_NR = rec.alg_ruimte_nr; --- EXCEPTION --- WHEN NO_DATA_FOUND --- THEN --- -- wat wordt de fall back locatie --- v_error:=1; --- v_ruimte_key:=0; --- END; --- --- --- BEGIN --- SELECT prs_perslid_key into v_behandelaar_key --- FROM prs_perslid --- WHERE prs_perslid_email = rec.prs_behandelaar_email; --- EXCEPTION --- WHEN NO_DATA_FOUND --- THEN --- -- Wat wordt de fallback aanvrager --- --- v_error:=1; --- v_aanvrager_key:=0; --- END; --- BEGIN --- SELECT prs_perslid_key into v_aanvrager_key --- FROM prs_perslid --- WHERE prs_perslid_email = rec.prs_aanvrager_email; --- --- --- EXCEPTION --- WHEN NO_DATA_FOUND --- THEN --- -- wat wordt de fallvback behandelaar --- v_error:=1; --- v_aanvrager_key:=0; --- END; --- BEGIN --- SELECT prs_kostenplaats_key into v_kostenplaats_key --- FROM prs_kostenplaats --- WHERE prs_KOSTENPLAATS_NR = rec.kostenplaats_code; --- EXCEPTION --- WHEN NO_DATA_FOUND --- THEN --- -- wat wordt de fallvback behandelaar --- v_error:=0; --- v_kostenplaats_key:=0; --- END; --- --- IF v_error=0 THEN --- 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_behandelaar_key, --- mld_melding_behandelaar2_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, --- v_locatie_key, --- NULL, --- rec.mld_datum, --- rec.mld_onderwerp, --- rec.mld_omschrijving, --- v_behandelaar_key, -- mld_melding_behandelaar_key --- NULL, -- mld_melding_behandelaar2_key --- v_stdmelding_key, --- MLD_T_UITVOERTIJD(rec.mld_uitvoertijd,rec.mld_uitvoertijd_eenheid), --- rec.mld_afmelddatum, --- v_aanvrager_key, --- v_aanvrager_key, --- rec.mld_status_key, --- 3, --- rec.mld_melding_key --- ) --- RETURNING mld_melding_key --- INTO v_mldkey; --- --- 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_mldkey, --- rec.mld_datum, --- SYSDATE, --- NULL, -- Facilitor --- 'Migratie melding van Meldingnr ' || rec.mld_melding_key, --- 0); --- --- --- END IF; --- --- --- END LOOP; --- --- --- -- Nu de csv data weer verwijderen --- DELETE --- FROM fac_imp_csv --- WHERE fac_import_key = p_import_key; --- ---END; ---/ +CREATE OR REPLACE PROCEDURE TDNL_UPDATE_MELDINGEN(p_import_key IN NUMBER) +AS + CURSOR sel + IS + SELECT fac_imp_csv_col01 mld_org_melding_key, + fac_imp_csv_col02 alg_onrgoed_niveau, + fac_imp_csv_col03 alg_locatie_code, + fac_imp_csv_col04 alg_gebouw_code, + fac_imp_csv_col05 alg_verdieping_code, + fac_imp_csv_col06 alg_ruimte_nr, + fac_imp_csv_col07 mld_stdmelding_key, + fac_imp_csv_col08 mld_melding_datum, + fac_imp_csv_col09 mld_melding_afmelddatum, + fac_imp_csv_col10 mld_melding_onderwerp, + fac_imp_csv_col11 mld_melding_status, + COALESCE(fac_imp_csv_col12,'migratie@transdev.nl') prs_aanvrager_oslogin, + fac_imp_csv_col13 prs_aanvrager_naam, + COALESCE(fac_imp_csv_col14,'migratie@transdev.nl') prs_behandelaar_oslogin, + fac_imp_csv_col15 prs_behandelaar_naam, + fac_imp_csv_col16 prs_kostenplaats_code, + fac_imp_csv_col17 mld_melding_kenmerken, + fac_imp_csv_col19 mld_melding_omschrijving + 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_error NUMBER; + v_count NUMBER; + + v_alg_onrgoed_niveau VARCHAR2(10); + + v_alg_locatie_key NUMBER; + v_alg_gebouw_key NUMBER; + v_alg_ruimte_key NUMBER; + v_alg_onrgoed_key NUMBER; + v_prs_aanvrager_key NUMBER; + v_naam_aanvrager VARCHAR2(100); + v_naam_behandelaar VARCHAR2(100); + v_prs_behandelaar_key NUMBER; + v_stdmelding_key NUMBER; + v_kostenplaats_key NUMBER; + v_mld_meldbron_key NUMBER; + v_mldkey NUMBER; + v_aantal NUMBER; + v_migratie NUMBER; + v_aanvrager VARCHAR2(100); + v_behandelaar VARCHAR2(100); +BEGIN + v_stdmelding_key := 1; -- standaard worden alle migratie meldingen op de stdmelding overig gezet + v_mld_meldbron_key :=5; + + + FOR rec IN sel + LOOP + v_error:=0; + v_migratie :=0; + v_count:=0; + + v_aanduiding :='De melding met nr : '||rec.mld_org_melding_key||' is reeds bekend'; + SELECT COUNT(*) + INTO v_count + FROM mld_melding + WHERE mld_melding_externnr=rec.mld_org_melding_key; + + IF v_count=0 + THEN + + v_aanduiding:='Ophalen std melding gaat fout :'|| rec.mld_stdmelding_key; + SELECT alg_onrgoed_niveau, mld_stdmelding_key + INTO v_alg_onrgoed_niveau, v_stdmelding_key + FROM mld_stdmelding ms + WHERE ms.mld_stdmelding_key=rec.mld_stdmelding_key; + + + BEGIN + v_aanduiding:='Ophalen locatie gaat fout :'|| rec.alg_locatie_code; + SELECT l.alg_locatie_key, g.alg_gebouw_key + INTO v_alg_locatie_key, v_alg_gebouw_key + FROM alg_gebouw g, alg_locatie l + WHERE g.alg_gebouw_code=rec.alg_gebouw_code + AND l.ALG_LOCATIE_KEY = g.ALG_LOCATIE_KEY + AND l.alg_locatie_code=rec.alg_locatie_code; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + SELECT l.alg_locatie_key, g.alg_gebouw_key + INTO v_alg_locatie_key, v_alg_gebouw_key + FROM alg_gebouw g, alg_locatie l + WHERE g.alg_gebouw_code='0000' + AND l.ALG_LOCATIE_KEY = g.ALG_LOCATIE_KEY + AND l.alg_locatie_code='0000'; + v_migratie:=1; + END; + + + + + IF v_alg_onrgoed_niveau='G' + THEN + v_alg_onrgoed_key:=v_alg_gebouw_key; + ELSE + v_alg_onrgoed_key:=v_alg_locatie_key; + END IF; + + -- Ophalen aanvrager + + v_aanduiding:='Ophalen aanvrager op oslogin gaat fout :'|| rec.prs_aanvrager_oslogin; + v_error:=0; + SELECT COUNT(*), MAX(prs_perslid_key) + INTO v_aantal, v_prs_aanvrager_key + FROM prs_perslid p + WHERE UPPER(prs_perslid_oslogin)=UPPER(rec.prs_aanvrager_oslogin); + v_error:=0; + IF v_aantal=0 + THEN + BEGIN + v_aanduiding:='Ophalen aanvrager op naam gaat fout :'|| rec.prs_aanvrager_oslogin; + IF INSTR(rec.prs_aanvrager_oslogin,'@') >0 THEN + v_aanvrager:=UPPER(SUBSTR(rec.prs_aanvrager_oslogin,0,INSTR(rec.prs_aanvrager_oslogin,'@')-1)); + ELSE + v_aanvrager:=UPPER(rec.prs_aanvrager_oslogin); + END IF; + SELECT prs_perslid_key + INTO v_prs_aanvrager_key + FROM prs_perslid p + WHERE UPPER(prs_perslid_oslogin) LIKE v_aanvrager||'%'; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_prs_aanvrager_key:=101; -- Migratie medewerker + END; + END IF; + + v_aanduiding:='Ophalen behandelaar op oslogin gaat fout :'|| rec.prs_behandelaar_oslogin; + v_naam_behandelaar := SUBSTR(rec.prs_behandelaar_oslogin,0, INSTR(rec.prs_behandelaar_oslogin,'@')-1); + SELECT COUNT(*), MAX(prs_perslid_key) + INTO v_aantal, v_prs_behandelaar_key + FROM prs_perslid p + WHERE UPPER(prs_perslid_oslogin)=UPPER(rec.prs_behandelaar_oslogin); + IF v_aantal =0 + THEN + BEGIN + v_aanduiding:='Ophalen behandelaar op naam gaat fout :'|| rec.prs_behandelaar_oslogin; + IF INSTR(rec.prs_behandelaar_oslogin,'@') >0 THEN + v_behandelaar:=UPPER(SUBSTR(rec.prs_behandelaar_oslogin,0,INSTR(rec.prs_behandelaar_oslogin,'@')-1)); + ELSE + v_behandelaar:=UPPER(rec.prs_behandelaar_oslogin); + END IF; + SELECT prs_perslid_key + INTO v_prs_aanvrager_key + FROM prs_perslid p + WHERE UPPER(prs_perslid_email) LIKE v_behandelaar||'%'; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_prs_behandelaar_key:=3; -- Nader te bepalen nu even facilitor + END; + END IF; + + + + -- Ophalen kostenplaats + + BEGIN + v_aanduiding:='Ophalen kostenplaats gaat fout :'|| rec.prs_kostenplaats_code; + SELECT prs_kostenplaats_key into v_kostenplaats_key + FROM prs_kostenplaats + WHERE prs_KOSTENPLAATS_NR = rec.prs_kostenplaats_code; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + + v_kostenplaats_key:=NULL; + END; + + + -- gaan we nu verwerken + + IF v_error=0 + THEN + fac.imp_writelog (p_import_key,'I','stdmelding_key',v_stdmelding_key); + fac.imp_writelog (p_import_key,'I','Locatie_key',v_alg_locatie_key); + fac.imp_writelog (p_import_key,'I','Onrgd_key',v_alg_onrgoed_key); + fac.imp_writelog (p_import_key,'I','behandelaar_key',v_prs_behandelaar_key); + fac.imp_writelog (p_import_key,'I','aanvrager_key',v_prs_aanvrager_key); + fac.imp_writelog (p_import_key,'I','meld datum',rec.mld_melding_datum); + v_aanduiding:='Toevoegen melding gaat fout :'|| rec.mld_org_melding_key; + 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_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, + v_alg_locatie_key, + v_alg_onrgoed_key, + fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS'), + rec.mld_melding_onderwerp, + rec.mld_melding_omschrijving, + v_prs_behandelaar_key, -- mld_melding_behandelaar_key + TO_NUMBER(NULL), -- mld_melding_behandelaar2_key + TO_NUMBER(NULL), + v_stdmelding_key, + NULL, + fac.safe_to_date(rec.mld_melding_afmelddatum,'DD-MM-YYYY HH24:MI.SS'), + v_prs_aanvrager_key, + v_prs_aanvrager_key, + rec.mld_melding_status, + 3, + rec.mld_org_melding_key + ) + RETURNING mld_melding_key + INTO v_mldkey; + + v_aanduiding := 'Toevoegen notities bij melding '||rec.mld_org_melding_key|| 'gaat fout'; + 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_mldkey, + fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS'), + SYSDATE, + 3, -- Facilitor + 'Migratie melding CONN melding: ' || rec.mld_org_melding_key||CHR(10)||'Aanvrager: '|| rec.prs_aanvrager_naam, + 0); + + IF rec.mld_melding_kenmerken IS NOT NULL + 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_mldkey, + fac.safe_to_date(rec.mld_melding_datum,'DD-MM-YYYY HH24:MI.SS'), + SYSDATE, + 3, -- Facilitor + 'Kenmerken :' ||CHR(10)|| REPLACE(rec.mld_melding_kenmerken,';',CHR(10)), + 0); + END IF; + fac.imp_writelog (p_import_key, + 'I', + 'Melding toegevoegd', + 'melding '|| v_mldkey||' aangemaakt voor migratie melding :'||rec.mld_org_melding_key); + ELSE + fac.imp_writelog (p_import_key, + 'E', + 'Niet gevonden', + v_aanduiding); + END IF; + + ELSE + fac.imp_writelog (p_import_key, + 'E', + 'Reeds aanwezig', + v_aanduiding); + END IF; + END LOOP; + 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; +/ -- EINDE meldingen import +-- Import opdrachten + +CREATE OR REPLACE PROCEDURE TDNL_IMPORT_OPDRACHTEN(p_import_key IN NUMBER) +AS +BEGIN + + NULL; +END; +/ + +CREATE OR REPLACE PROCEDURE TDNL_UPDATE_OPDRACHTEN(p_import_key IN NUMBER) +AS + + CURSOR sel + IS + SELECT fac_imp_csv.FAC_IMP_CSV_INDEX regel, + fac_imp_csv_col01 mld_org_melding_key, + fac_imp_csv_col02 mld_opdr_volgnr, + fac_imp_csv_col03 mld_statusopdr_key, + fac_imp_csv_col04 mld_opdrtype, + fac_imp_csv_col05 mld_opdr_discipline_key, + fac_imp_csv_col06 prs_leverancier_nr, + fac_imp_csv_col07 mld_opdr_omschrijving, + fac_imp_csv_col08 mld_opdr_begindatum, + fac_imp_csv_col09 mld_opdr_einddatum, + fac_imp_csv_col10 prs_kostenplaats_nr, + fac_imp_csv_col11 mld_opdr_kosten, + fac_imp_csv_col12 prs_perslid_oslogin, + fac_imp_csv_col13 prs_leverancier_naam, + fac_imp_csv_col14 mld_org_opdr_key + 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_error NUMBER; + v_count NUMBER; + v_regel NUMBER; + + v_melding_key NUMBER; + v_mld_opdr_key NUMBER; + v_prs_kostenplaats_key NUMBER; + v_mld_ins_discipline_key NUMBER; + v_mld_typeopdr_key NUMBER; + v_prs_perslid_key NUMBER; + v_uitvoerende_key NUMBER; +BEGIN + v_error:=0; + FOR rec in sel + LOOP + v_regel:=rec.regel; + v_error:=0; + v_count:=0; + -- Wat is het m,elding_key van dze opdracht, + -- Wat is d eins_discipine van deze melding , nodig bij opdarcht insert + -- Welke relatie is het verstuurd, haal die op en anders fall back leverancier + -- + v_aanduiding:='Ophalen van meldning met nr:'||rec.mld_org_melding_key||' is mislukt'; + BEGIN + SELECT m.mld_melding_key , msm.mld_ins_discipline_key + INTO v_melding_key, v_mld_ins_discipline_key + FROM mld_melding m, mld_stdmelding msm + WHERE m.mld_melding_externnr=rec.mld_org_melding_key + AND msm.mld_stdmelding_key = m.mld_stdmelding_key; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_error:=1; + END; + + IF v_error=0 THEN + v_aanduiding:='Opdracht is al bekend :'||v_melding_key||'/'||rec.mld_opdr_volgnr ||'(regel: '||v_regel||')'; + SELECT COUNT(*) + INTO v_count + FROM mld_opdr o + WHERE o.mld_melding_key=v_melding_key + AND o.mld_opdr_bedrijfopdr_volgnr=rec.mld_opdr_volgnr; + + IF v_count>0 THEN + v_error:=1; + END IF; + END IF; + + + IF v_error=0 THEN + BEGIN + v_aanduiding:='Ophalen van kostenplaats nr :'||rec.prs_kostenplaats_nr||' is mislukt.'; + SELECT p.prs_kostenplaats_key + INTO v_prs_kostenplaats_key + FROM prs_kostenplaats p + WHERE p.prs_kostenplaats_nr=rec.prs_kostenplaats_nr; + + + v_aanduiding:='Ophalen van opdracht type is mislukt.'; + SELECT mld_typeopdr_key + INTO v_mld_typeopdr_key + FROM mld_typeopdr o + WHERE UPPER(o.mld_typeopdr_omschrijving)='UITVOERINGSOPDRACHT'; + + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_error:=1; + END; + + + v_aanduiding:='Ophalen van perslid.'; + BEGIN + SELECT p.prs_perslid_key + INTO v_prs_perslid_key + from prs_perslid p + WHERE UPPER(p.prs_perslid_oslogin)=UPPER(rec.prs_perslid_oslogin); + EXCEPTION + WHEN NO_DATA_FOUND THEN + v_prs_perslid_key:=3; + END; + + v_aanduiding:='Ophalen van leverenacier is mislukt.'; + BEGIN + SElECT prs_bedrijf_key + INTO v_uitvoerende_key + FROM prs_bedrijf p + WHERE UPPER(p.prs_leverancier_nr)=UPPER(rec.prs_leverancier_nr); + EXCEPTION + WHEN NO_DATA_FOUND + THEN + SElECT prs_bedrijf_key + INTO v_uitvoerende_key + FROM prs_bedrijf p + WHERE p.prs_leverancier_nr='_999999'; + END; + END IF; + + IF v_error=0 AND v_count=0 + THEN + + INSERT INTO mld_opdr (mld_melding_key, + prs_kostenplaats_key, + mld_statusopdr_key, + mld_typeopdr_key, + prs_perslid_key, + mld_uitvoerende_keys, + mld_opdr_discipline_key, + mld_opdr_datumbegin, + mld_opdr_einddatum, + mld_opdr_module, + mld_opdr_omschrijving, + mld_opdr_kosten, + mld_opdr_bedrijfopdr_volgnr, + mld_opdr_externnr) + VALUES( v_melding_key, + v_prs_kostenplaats_key, + rec.mld_statusopdr_key, + v_mld_typeopdr_key, + v_prs_perslid_key, + v_uitvoerende_key, + v_mld_ins_discipline_key, + fac.safe_to_date(rec.mld_opdr_begindatum,'DD-MM-YYYY HH24:MI.SS'), + fac.safe_to_date(rec.mld_opdr_einddatum,'DD-MM-YYYY HH24:MI.SS'), + 'MLD', + rec.mld_opdr_omschrijving, + fac.safe_to_number(rec.mld_opdr_kosten), + rec.mld_opdr_volgnr, + rec.mld_org_opdr_key) + RETURNING mld_opdr_key + INTO v_mld_opdr_key; + + INSERT INTO mld_opdr_note (mld_opdr_key, + mld_opdr_note_aanmaak, + mld_opdr_note_wijzigdatum, + prs_perslid_key, + mld_opdr_note_omschrijving, + mld_opdr_note_flag) + VALUES (v_mld_opdr_key, + fac.safe_to_date(rec.mld_opdr_begindatum,'DD-MM-YYYY HH24:MI.SS'), + SYSDATE, + 3, -- Facilitor + 'Migratie opdracht CONN melding: ' || rec.mld_org_melding_key||CHR(10)||' leverancier :'|| rec.prs_leverancier_naam, + 0); + fac.imp_writelog (p_import_key, + 'I', + 'Opdacht aangemaakt', + 'Opdracht '||v_melding_key||'/'||rec.mld_opdr_volgnr||'('||v_mld_opdr_key||') is aangemaakt.'); + + + ELSE + + fac.imp_writelog (p_import_key, + 'E', + 'Niet gevonden', + v_aanduiding); + + END IF; + END LOOP; + +EXCEPTION +WHEN OTHERS +THEN + v_errorhint := v_errormsg || ' - ' || v_aanduiding||'('||v_regel||')'; + 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; +/ + +-- Einden import opdrachten + + + -- Import tracking CREATE OR REPLACE PROCEDURE TDNL_IMPORT_TRACKING(p_import_key IN NUMBER) AS @@ -814,54 +1160,158 @@ BEGIN END; END LOOP; - -- Nu de csv data weer verwijderen - DELETE - FROM fac_imp_csv - WHERE fac_import_key = p_import_key; + + END; / -- EINDE IMPORT MELDINGEN --- IMPORT Opdrachten +-- IMPORT Notities +CREATE OR REPLACE PROCEDURE TDNL_IMPORT_NOTITIES(p_import_key IN NUMBER) +AS +BEGIN ---CREATE OR REPLACE PROCEDURE TDNL_IMPORT_OPDRACHTEN(p_import_key IN NUMBER) ---AS ---BEGIN + NULL; +END; +/ --- NULL; ---END; ---/ +CREATE OR REPLACE PROCEDURE TDNL_UPDATE_NOTITIES(p_import_key IN NUMBER) +AS + CURSOR c + IS + SELECT fac_imp_csv.FAC_IMP_CSV_INDEX regel, + fac_imp_csv_col01 module_key, + fac_imp_csv_col02 module, + fac_imp_csv_col03 deel, + fac_imp_csv_col04 prs_perslid_oslogin, + fac_imp_csv_col05 notitie, + fac_imp_csv_col06 notitie_datum + from fac_imp_csv + WHERE fac_import_key = p_import_key; ---CREATE OR REPLACE PROCEDURE TDNL_UPDATE_OPDRACHTEN(p_import_key IN NUMBER) ---AS --- CURSOR opd --- IS --- SELECT * --- FROM fac_imp_csv f --- WHERE f.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_error NUMBER; + v_count NUMBER; + v_entity_key NUMBER; + v_prs_perslid_key NUMBER; + v_mld_counter NUMBER; + v_opdr_counter NUMBER; + v_melding_key NUMBER; + v_opdr_key NUMBER; + v_regel NUMBER; + v_module_key NUMBER; +BEGIN + v_mld_counter:=0; + v_opdr_counter:=0; + FOR rec IN C + LOOP + v_regel:=rec.regel; + v_error:=0; + BEGIN + SELECT prs_perslid_key + INTO v_prs_perslid_key + FROM prs_perslid p + WHERE p.prs_perslid_oslogin=rec.prs_perslid_oslogin; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_prs_perslid_key:=3; + END; + + IF rec.module='MLD' + THEN + v_aanduiding:='Melding met nr '||rec.module_key||' is niet gevonden, regel wordt overgeslagen'; + BEGIN + SELECT mld_melding_key + INTO v_module_key + FROM mld_melding + WHERE mld_melding_externnr=rec.module_key; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_error:=1; + END; + ELSIF rec.module='OPD' + THEN + v_aanduiding:='Opdracht met nr '||rec.module_key||' is niet gevonden, regel wordt overgeslagen'; + BEGIN + SELECT mld_opdr_key + INTO v_module_key + FROM mld_opdr + WHERE mld_opdr_externnr=rec.module_key; + EXCEPTION + WHEN NO_DATA_FOUND + THEN + v_error:=1; + END; + END IF; + + IF v_error=0 THEN + IF rec.module='MLD' 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_module_key, + fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS'), + SYSDATE, + v_prs_perslid_key, + rec.notitie, + 0); + v_mld_counter:=v_mld_counter+1; + ELSIF rec.module='OPD' THEN + INSERT INTO mld_opdr_note (mld_opdr_key, + mld_opdr_note_aanmaak, + mld_opdr_note_wijzigdatum, + prs_perslid_key, + mld_opdr_note_omschrijving, + mld_opdr_note_flag) + VALUES (v_module_key, + fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS'), + SYSDATE, + v_prs_perslid_key, + rec.notitie, + 0); + v_opdr_counter:=v_opdr_counter+1; + END IF; + ELSE + fac.imp_writelog (p_import_key, + 'E', + 'Niet gevonden', + v_aanduiding); + END If; + + + END LOOP; + fac.imp_writelog (p_import_key, + 'I', + 'Melding Notie', + v_mld_counter||' melding notities aangemaakt.'); + fac.imp_writelog (p_import_key, + 'I', + 'Opdracht Notie', + v_opdr_counter||' Opdracht notities aangemaakt.'); - --- v_date DATE; ---BEGIN - -- Om wat voor melding gaat het, - -- Welk opdracht type is het, - -- Welke relatie is het, - -- Wat is de discipline key van de Overig vakgroep (mld_opdr_discipline_key) - --- SELECT SYSDATE INTO v_date FROM DUAL; - - - - - -- Nu de csv data weer verwijderen --- DELETE FROM fac_imp_csv --- WHERE fac_import_key = p_import_key; ---END; ---/ - - --- EINDE IMPORT OPDRACHTEN +EXCEPTION +WHEN OTHERS +THEN + v_errorhint := v_errormsg || ' - ' || v_aanduiding||'('||v_regel||')'; + 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; +/