TDNL#80795 Aanpassing import Notities tbv Contracten

svn path=/Customer/trunk/; revision=66963
This commit is contained in:
Norbert Wassink
2024-11-08 14:11:40 +00:00
parent a66c94687a
commit f680bd34cd

View File

@@ -1378,7 +1378,8 @@ AS
fac_imp_csv_col03 deel,
fac_imp_csv_col04 prs_perslid_oslogin,
fac_imp_csv_col05 notitie,
fac_imp_csv_col06 notitie_datum
fac_imp_csv_col06 notitie_datum,
fac_imp_csv_col07 volgnr
from fac_imp_csv
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_csv_key;
@@ -1394,16 +1395,22 @@ AS
v_prs_perslid_key NUMBER;
v_mld_counter NUMBER;
v_opdr_counter NUMBER;
v_cnt_counter NUMBER;
v_melding_key NUMBER;
v_opdr_key NUMBER;
v_regel NUMBER;
v_module_key NUMBER;
v_note_key NUMBER;
BEGIN
v_mld_counter:=0;
v_opdr_counter:=0;
v_cnt_counter:=0;
v_count:=0;
FOR rec IN C
LOOP
v_regel:=rec.regel;
v_regel:=rec.regel;
v_count:=v_count+1;
v_error:=0;
BEGIN
SELECT prs_perslid_key
@@ -1431,48 +1438,119 @@ BEGIN
END;
ELSIF rec.module='OPD'
THEN
v_aanduiding:='Opdracht met nr '||rec.module_key||' is niet gevonden, regel wordt overgeslagen';
v_aanduiding:='Opdracht met nr '||rec.module_key||'/'||rec.volgnr||' 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;
SELECT o.mld_opdr_key
INTO v_module_key
FROM mld_opdr o, mld_kenmerkopdr mko, mld_kenmerk mk
WHERE mko.mld_kenmerkopdr_waarde=(rec.module_key||'/'||rec.volgnr)
AND mk.mld_kenmerk_key = mko.mld_kenmerk_key
AND UPPER(mk.mld_kenmerk_omschrijving)='CONN OPDRACHTNR'
AND mk.mld_kenmerk_niveau='O'
AND o.mld_opdr_key = mko.mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_error:=1;
END;
ELSIF rec.module='CNT'
THEN
v_aanduiding:='contract met nr '||rec.module_key||' is niet gevonden, regel wordt overgeslagen';
BEGIN
SELECT cnt_contract_key
INTO v_module_key
FROM cnt_contract
where cnt_contract_nummer_intern=rec.module_key
AND cnt_contract_verwijder IS NULL;
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;
BEGIN
SELECT mld_melding_note_key INTO v_note_key
FROM mld_melding_note
WHERE mld_melding_key = v_module_key
AND mld_melding_note_aanmaak=fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS')
AND prs_perslid_key=v_prs_perslid_key
AND mld_melding_note_omschrijving = rec.notitie
AND mld_melding_note_flag=0;
EXCEPTION
WHEN NO_DATA_FOUND
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;
END;
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;
BEGIN
SELECT mld_opdr_note_key INTO v_note_key
FROM mld_opdr_note
WHERE mld_opdr_key = v_module_key
AND mld_opdr_note_aanmaak=fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS')
AND prs_perslid_key=v_prs_perslid_key
AND mld_opdr_note_omschrijving = rec.notitie
AND mld_opdr_note_flag=0;
EXCEPTION
WHEN NO_DATA_FOUND
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;
ELSIF rec.module='CNT' THEN
BEGIN
SELECT cnt_contract_note_key
INTO v_note_key
FROM cnt_contract_note
WHERE cnt_contract_key = v_module_key
AND cnt_contract_note_aanmaak=fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS')
AND prs_perslid_key=v_prs_perslid_key
AND cnt_contract_note_omschrijving = rec.notitie;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO cnt_contract_note (cnt_contract_key,
cnt_contract_note_aanmaak,
prs_perslid_key,
cnt_contract_note_omschrijving)
VALUES (v_module_key,
fac.safe_to_date(rec.notitie_datum,'DD-MM-YYYY HH24:MI.SS'),
v_prs_perslid_key,
rec.notitie);
v_cnt_counter:=v_cnt_counter+1;
END;
END IF;
ELSE
fac.imp_writelog (p_import_key,
@@ -1486,12 +1564,15 @@ BEGIN
fac.imp_writelog (p_import_key,
'I',
'Melding Notie',
v_mld_counter||' melding notities aangemaakt.');
v_mld_counter||'/'||v_count||' melding notities aangemaakt.');
fac.imp_writelog (p_import_key,
'I',
'Opdracht Notie',
v_opdr_counter||' Opdracht notities aangemaakt.');
v_opdr_counter||'/'||v_count||' Opdracht notities aangemaakt.');
fac.imp_writelog (p_import_key,
'I',
'Contract Notie',
v_cnt_counter||'/'||v_count||' Opdracht notities aangemaakt.');
EXCEPTION
WHEN OTHERS
THEN
@@ -1653,6 +1734,275 @@ THEN
END;
/
CREATE OR REPLACE PROCEDURE TDNL_IMPORT_WPRESERVERING(p_import_key IN NUMBER)
AS
BEGIN
NULL;
END;
/
CREATE OR REPLACE PROCEDURE TDNL_UPDATE_WPRESERVERING(p_import_key IN NUMBER)
AS
CURSOR sel
IS
SELECT f.fac_imp_csv_key fac_imp_csv_key,
f.fac_imp_csv_col01 reservering_key,
f.fac_imp_csv_col02 res_van,
f.fac_imp_csv_col03 res_tot,
f.fac_imp_csv_col04 res_aanmaak,
f.fac_imp_csv_col05 kostenplaats_nr,
f.fac_imp_csv_col06 contact_login,
f.fac_imp_csv_col07 contact_email,
f.fac_imp_csv_col08 CVAB_mode,
f.fac_imp_csv_col09 alg_ruimte_nr,
f.fac_imp_csv_col10 alg_gebouw_code,
f.fac_imp_csv_col11 activiteit,
f.fac_imp_csv_col12 werkplek,
f.fac_imp_csv_col13 res_volgnr
FROM fac_imp_csv f
WHERE f.fac_import_key = p_import_key
ORDER BY f.fac_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_regel NUMBER;
v_count NUMBER;
v_reservering_key NUMBER;
v_rsv_ruimte_key NUMBER;
v_res_activiteit_key NUMBER;
v_kenmerk_key NUMBER;
v_prs_perslid_key NUMBER;
v_res_deel_key NUMBER;
v_alg_ruimte_key NUMBER;
v_prs_kostenplaats_key NUMBER;
v_status_fo NUMBER;
v_status_bo NUMBER;
v_no_show NUMBER;
v_datumaanmaak DATE;
v_datum_van DATE;
v_datum_tot DATE;
BEGIN
v_regel:=0;
v_aanduiding:='Ophalen kenmerk key voor kenmerk CONN_RESNR is mislukt';
SELECT res_kenmerk_key
INTO v_kenmerk_key
FROM res_kenmerk
WHERE res_kenmerk_code='CONN_RESNR';
FOR rec IN sel
LOOP
v_error:=0;
v_count:=0;
SELECT count(*)
INTO v_count
FROM res_rsv_ruimte r, res_kenmerkwaarde rk
where rk.res_kenmerkreservering_waarde= rec.reservering_key||'/'|| rec.res_volgnr
AND rk.RES_KENMERK_KEY=v_kenmerk_key
AND r.res_rsv_ruimte_key = rk.res_rsv_ruimte_key
AND r.res_rsv_ruimte_verwijder IS NULL;
IF v_count=0
THEN
-- haal de werkplek op , biij niet gevionden skip record,
BEGIN
v_aanduiding:='Ophalen werkplek '||rec.werkplek||' is mislukt.';
SELECT res_deel_key
INTO v_res_deel_key
FROM res_deel r
WHERE UPPER(r.res_deel_omschrijving)=UPPER(rec.werkplek)
AND r.res_deel_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key, 'W', 'WP niet gevonden'|| rec.werkplek,'');
v_error :=1 ;
END;
-- haal alg_ruimte key op op bais van alg_ruimte nr en gebouw_code,
BEGIN
v_aanduiding:='Ophalen ruimte'||rec.alg_ruimte_nr||'-'||rec.alg_gebouw_code||' is mislukt.';
SELECT alg_ruimte_key
INTO v_alg_ruimte_key
FROM alg_v_allonrgoed_gegevens a
WHERE UPPER(a.alg_ruimte_nr)=UPPER(rec.alg_ruimte_nr)
AND UPPER(a.alg_gebouw_code) = UPPER(rec.alg_gebouw_code);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_error :=1 ;
fac.imp_writelog (p_import_key, 'W', 'ALG RUIMTE niet gevonden'|| rec.alg_ruimte_nr||'-'||rec.alg_gebouw_code,'');
END;
BEGIN
v_aanduiding:='Ophalen activiteit '||rec.activiteit||' is mislukt.';
SELECT res_activiteit_key
INTO v_res_activiteit_key
FROM res_activiteit
WHERE UPPER(res_activiteit_omschrijving)=UPPER(rec.activiteit)
AND res_activiteit_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_error:=1;
fac.imp_writelog (p_import_key, 'W', 'Activiteit niet gevonden'|| rec.activiteit,'');
END;
v_aanduiding:='Ophalen persoon '||rec.contact_login||'op bais van oslogin is mislukt.';
BEGIN
SELECT p.prs_perslid_key
INTO v_prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_oslogin=rec.contact_login
AND p.prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_error:=1;
fac.imp_writelog (p_import_key, 'W', 'Persoon niet gevonden : '|| rec.contact_login,'');
END;
IF v_error=0
THEN
-- haal kostenplaats op als deze er is,
BEGIN
v_aanduiding:='Ophalen kostenplaats '||rec.kostenplaats_nr||' is mislukt.';
SELECT prs_kostenplaats_key
INTO v_prs_kostenplaats_key
FROM prs_kostenplaats
WHERE UPPER(prs_kostenplaats_nr)=UPPER(rec.kostenplaats_nr)
AND prs_kostenplaats_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_prs_kostenplaats_key:=NULL;
END;
-- haal kostenplaats op als deze er is,
v_regel:=v_regel+1;
v_status_bo := 2; -- Alles op Geregistreerd (want alleen lopende reserveringen)
v_status_fo := 2; -- Alles op Definitief (want alleen lopende reserveringen)
v_no_show := TO_NUMBER (NULL);
v_datumaanmaak:= fac.safe_to_date(rec.res_aanmaak,'DD-MM-YYYY HH24:MI:SS');
v_datum_van:= fac.safe_to_date(rec.res_van,'DD-MM-YYYY HH24:MI:SS');
v_datum_tot:= fac.safe_to_date(rec.res_tot,'DD-MM-YYYY HH24:MI:SS');
-- IS ER AL EEN RESERVERING OP DEZE WERKPLEK DATUM en TIJD
v_errormsg := 'Fout toevoegen res_reservering';
INSERT INTO res_reservering (res_reservering_verwijder)
VALUES (NULL)
RETURNING res_reservering_key
INTO v_reservering_key;
v_errormsg := 'Fout toevoegen res_rsv_ruimte.';
INSERT INTO res_rsv_ruimte (res_reservering_key,
res_rsv_ruimte_volgnr,
res_rsv_ruimte_opmerking,
res_rsv_ruimte_omschrijving,
prs_kostenplaats_key,
res_rsv_ruimte_contact_key,
res_rsv_ruimte_host_key,
alg_ruimte_key,
--res_ruimte_opstel_key,
res_rsv_ruimte_cvab_mode,
res_activiteit_key,
res_rsv_ruimte_van,
res_rsv_ruimte_tot,
res_rsv_ruimte_bezoekers,
res_rsv_ruimte_bezoekers_shown,
res_status_bo_key,
res_status_fo_key,
res_rsv_ruimte_noshow,
res_rsv_ruimte_externnr)
VALUES (v_reservering_key,
1,
NULL,
NULL,
TO_NUMBER (NULL),
v_prs_perslid_key,
v_prs_perslid_key,
v_alg_ruimte_key,
2, -- CVAB-mode op Afhalen!
v_res_activiteit_key,
v_datum_van,
v_datum_tot,
TO_NUMBER (NULL),
v_no_show,
TO_NUMBER (NULL),
v_status_fo,
v_no_show,
NULL) -- Externnr moet uniek zijn en TD-nr is dat niet!
RETURNING res_rsv_ruimte_key
INTO v_rsv_ruimte_key;
v_errormsg := 'Fout toevoegen res_rsv_deel.';
INSERT INTO res_rsv_deel (res_deel_key,
res_rsv_deel_aantal,
res_status_bo_key,
res_rsv_ruimte_key,
res_rsv_deel_van,
res_rsv_deel_tot)
VALUES (v_res_deel_key,
1,
v_status_bo,
v_rsv_ruimte_key,
v_datum_van,
v_datum_tot);
-- Toevoegen Reserveringsnummer TOPdesk
v_errormsg := 'Fout toevoegen Reserveringsnummer TOPdesk';
flx.setflex('RES',v_kenmerk_key,v_rsv_ruimte_key,rec.reservering_key||'/1');
fac.trackaction ('RESNEW', v_rsv_ruimte_key, NULL, SYSDATE, 'Gemigreerd vanuit CONN');
ELSE
fac.imp_writelog (p_import_key, 'W', ' WP reserveringen '|| rec.reservering_key||' niet verwerkt','');
END IF;
ELSE
fac.imp_writelog (p_import_key, 'W', ' WP reserveringen '|| rec.reservering_key||'/'||rec.res_volgnr||' is al bekend.','');
END IF;
END LOOP;
fac.imp_writelog (p_import_key, 'S', v_regel||' WP reserveringen DONE: ' || TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS'), '');
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;
/
-- Import taken uit CONN omgeving
--CREATE OR REPLACE PROCEDURE TDNL_IMPORT_TAKEN(p_import_key IN NUMBER)
@@ -3866,6 +4216,58 @@ AS
AND p.prs_perslid_key = m.prs_perslid_key
AND l.alg_locatie_key = m.mld_alg_locatie_key;
CREATE OR REPLACE VIEW tdnl_v_coupa_exp_error
( opdr_key,
melding,
melder,
omschrijving,
track_datum,
opdr_datum)
AS
SELECT DISTINCT o.mld_opdr_key,
o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames p
WHERE p.prs_perslid_key=o.prs_perslid_key) aanvrager,
ft.fac_tracking_oms,
ft.fac_tracking_datum,
o.mld_opdr_datumbegin
FROM mld_opdr o, fac_tracking ft, fac_srtnotificatie fs
WHERE ft.fac_tracking_refkey=o.mld_opdr_key
AND fs.fac_srtnotificatie_code='ORDSNX'
AND ft.fac_srtnotificatie_key=fs.fac_srtnotificatie_key
AND (upper(ft.fac_tracking_oms) like 'COUPA_FAIL%' OR upper(ft.fac_tracking_oms) like '%COUPA ERROR%');
-- View die voor die opdrachten die gereed gezet zijn voor export naar coupa
-- met aanvraagnr en InkoopNr.
CREATE OR REPLACE VIEW tdnl_v_coupa_rapport
AS
SELECT o.mld_melding_key opdrachtnr,
o.mld_opdr_bedrijfopdr_volgnr volgnr,
o.mld_opdr_key opdr_key,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames p
WHERE p.prs_perslid_key=o.prs_perslid_key) aanvrager,
(SELECT ko2.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko2
WHERE ko2.mld_opdr_key = o.mld_opdr_key
AND ko2.mld_kenmerk_key=84) aanvraagnr,
(SELECT ko1.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko1
WHERE ko1.mld_opdr_key = o.mld_opdr_key
AND ko1.mld_kenmerk_key=85) inkoopnr,
o.mld_opdr_datumbegin opd_datumbegin,
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_srtnotificatie_key=92 -- ORDSNT
AND lower(ft.fac_tracking_oms)='opdracht in bestand klaargezet'
AND ft.fac_tracking_refkey=o.mld_opdr_key) datum_verstuurd
FROM mld_opdr o, mld_kenmerkopdr ko
WHERE o.mld_statusopdr_key=5
AND ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key=84
AND ko.mld_kenmerkopdr_waarde IS NOT NULL;
-- EINDE VIEWS