From 33e8f8d457cae6f5b8cfda81e7bf5d80baa48b0a Mon Sep 17 00:00:00 2001 From: Maarten van der Heide Date: Fri, 27 Sep 2024 19:26:05 +0000 Subject: [PATCH] NOVA#80968 NOVA0 svn path=/Customer/trunk/; revision=66361 --- NOVA/nova.sql | 139 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 113 insertions(+), 26 deletions(-) diff --git a/NOVA/nova.sql b/NOVA/nova.sql index 83572ff3b..4c3d26b15 100644 --- a/NOVA/nova.sql +++ b/NOVA/nova.sql @@ -748,16 +748,17 @@ AS fac.writelog ('AFD2KPN', 'S', 'Kostenplaatsen/#toegevoegd: ' || TO_CHAR (v_count), ''); -- Bijwerken einddatum van PRS-kostenplaatsen niet langer in gebruik. - v_errormsg := 'Fout deactiveren kostenplaatsen'; - UPDATE prs_kostenplaats kp - SET kp.prs_kostenplaats_eind = SYSDATE - WHERE kp.prs_kostenplaats_verwijder IS NULL - AND kp.prs_kostenplaats_module = 'PRS' - AND NOT EXISTS - (SELECT 1 - FROM prs_afdeling - WHERE prs_afdeling_verwijder IS NULL - AND prs_kostenplaats_key = kp.prs_kostenplaats_key); + --v_errormsg := 'Fout deactiveren kostenplaatsen'; + --UPDATE prs_kostenplaats kp + -- SET kp.prs_kostenplaats_eind = SYSDATE + -- WHERE kp.prs_kostenplaats_verwijder IS NULL + -- AND COALESCE (kp.prs_kostenplaats_eind, SYSDATE) > TRUNC (SYSDATE) + -- AND kp.prs_kostenplaats_module = 'PRS' + -- AND NOT EXISTS + -- (SELECT 1 + -- FROM prs_afdeling + -- WHERE prs_afdeling_verwijder IS NULL + -- AND prs_kostenplaats_key = kp.prs_kostenplaats_key); EXCEPTION WHEN OTHERS THEN @@ -948,19 +949,20 @@ AS v_count NUMBER (10); -- Bepalen automatisch te sluiten meldingen (als '/1'-opdracht doorgezet - -- naar en gesloten door TOPdesk). + -- naar en gesloten door API-user tbv. TOPdesk-koppeling). CURSOR c1 IS - SELECT o.mld_melding_key + SELECT DISTINCT o.mld_melding_key FROM mld_opdr o, mld_melding m - WHERE o.mld_typeopdr_key = 61 -- TOPdesk (intern) + WHERE o.mld_typeopdr_key = 61 -- IVT/TOPdesk (intern) --AND o.mld_statusopdr_key = 6 -- Afgemeld --AND o.mld_opdr_bedrijfopdr_volgnr = 1 AND fac.gettrackinguserkey ('ORDAFM', o.mld_opdr_key) = 3663 -- API-user tbv. TOPdesk-koppeling AND NOT EXISTS (SELECT 1 FROM mld_opdr - WHERE mld_opdr_key != o.mld_opdr_key + WHERE mld_statusopdr_key IN (3, 4, 5, 8, 10) -- Lopend + AND mld_opdr_key != o.mld_opdr_key AND mld_melding_key = o.mld_melding_key) AND o.mld_melding_key = m.mld_melding_key AND m.mld_melding_status NOT IN (1, 5, 6) -- Nog niet gesloten @@ -1182,6 +1184,7 @@ EXCEPTION END NOVA_IMPORT_KPN; / +-- TODO: Speciale kostenplaatsgroep voor ALG- en PRJ-kostenplaatsen? CREATE OR REPLACE PROCEDURE NOVA_UPDATE_KPN (p_import_key IN NUMBER) AS v_errormsg VARCHAR2 (1000) := ''; @@ -1196,12 +1199,13 @@ AS SELECT '[' || x.prs_kostenplaats_nr || '|' || x.prs_kostenplaats_omschrijving || '|' || x.prs_kostenplaats_module || '] ' aanduiding, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, - x.prs_kostenplaats_module, + 'PRS' prs_kostenplaats_module, -- Negeer 'SOORT CODE' uit import! x.prs_kostenplaats_externnr, kp.prs_kostenplaats_key, pf.prs_perslid_key FROM fac_imp_kpn x, - (SELECT * FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_module IN ('ALG', 'PRJ')) kp, + --(SELECT * FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_module IN ('ALG', 'PRJ')) kp, + (SELECT * FROM prs_v_aanwezigkostenplaats WHERE prs_kostenplaats_module IN ('PRS')) kp, prs_v_perslid_fullnames pf WHERE UPPER (x.prs_kostenplaats_nr) = kp.prs_kostenplaats_upper(+) AND UPPER (x.prs_kostenplaats_externnr) = UPPER (pf.prs_perslid_naam_friendly(+)) @@ -1236,36 +1240,50 @@ BEGIN END LOOP; fac.imp_writelog (p_import_key, 'S', 'KPN/#bijgewerkt: ' || TO_CHAR (v_count), ''); - +/* + --UPDATE prs_kostenplaats + -- SET prs_kostenplaats_module = 'PRS' + -- WHERE prs_kostenplaats_module != 'PRS'; -- Zet kostenplaatsen op VERVALLEN; de rest handmatig verder maar regelen! v_errormsg := 'Fout inactiveren kostenplaatsen.'; SELECT COUNT ( * ) INTO v_count FROM prs_kostenplaats kp WHERE kp.prs_kostenplaats_verwijder IS NULL - AND kp.prs_kostenplaats_module IN ('ALG', 'PRJ') + --AND kp.prs_kostenplaats_module IN ('ALG', 'PRJ') + AND kp.prs_kostenplaats_module IN ('PRS') AND kp.prs_kostenplaats_upper != 'ONB' AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%' AND COALESCE (kp.prs_kostenplaats_eind, SYSDATE) > TRUNC (SYSDATE) -- Actief (einddatum leeg of in toekomst) AND NOT EXISTS (SELECT 1 FROM fac_imp_kpn - WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper); + WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper) + AND NOT EXISTS + (SELECT 1 + FROM prs_afdeling + WHERE prs_kostenplaats_key = kp.prs_kostenplaats_key); UPDATE prs_kostenplaats kp SET kp.prs_kostenplaats_eind = TRUNC (SYSDATE), -- Per vandaag vervallen kp.prs_kostenplaats_omschrijving = SUBSTR ('VERVALLEN: ' || COALESCE (prs_kostenplaats_omschrijving, '-'), 1, 60) WHERE kp.prs_kostenplaats_verwijder IS NULL - AND kp.prs_kostenplaats_module IN ('ALG', 'PRJ') + --AND kp.prs_kostenplaats_module IN ('ALG', 'PRJ') + AND kp.prs_kostenplaats_module IN ('PRS') AND kp.prs_kostenplaats_upper != 'ONB' AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%' AND COALESCE (kp.prs_kostenplaats_eind, SYSDATE) > TRUNC (SYSDATE) -- Actief (einddatum leeg of in toekomst) AND NOT EXISTS (SELECT 1 FROM fac_imp_kpn - WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper); + WHERE UPPER (prs_kostenplaats_nr) = kp.prs_kostenplaats_upper) + AND NOT EXISTS + (SELECT 1 + FROM prs_afdeling + WHERE prs_kostenplaats_key = kp.prs_kostenplaats_key); fac.imp_writelog (p_import_key, 'S', 'KPN/#vervallen: ' || TO_CHAR (v_count), ''); +*/ EXCEPTION WHEN OTHERS THEN @@ -1474,7 +1492,8 @@ BEGIN THEN header_is_valid := 1; END IF; - ELSIF (rec.regellengte > 0 AND v_gebouw IS NOT NULL AND v_nrs IS NOT NULL) -- Lege regels overslaan + --ELSIF (rec.regellengte > 0 AND v_gebouw IS NOT NULL AND v_nrs IS NOT NULL) -- Lege regels overslaan + ELSIF (rec.regellengte > 0 AND v_gebouw IS NOT NULL) -- Lege regels overslaan THEN BEGIN v_count_tot := v_count_tot + 1; @@ -2461,7 +2480,7 @@ CREATE OR REPLACE VIEW NOVA_V_NOTI_ITVD prs_bedrijfadres_key ) AS - SELECT 'CUST01', + SELECT sn.fac_srtnotificatie_code, NULL, NULL, REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde), @@ -2492,7 +2511,7 @@ AS AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ITVD' AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE)) UNION ALL - SELECT 'CUST02', + SELECT x.fac_srtnotificatie_code, NULL, NULL, REPLACE (REPLACE (REPLACE (x.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (x.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde), '##LOC##', '/uitgaand ' || COALESCE (locvan.alg_locatie_omschrijving, altlocvan.alg_locatie_omschrijving)), @@ -2532,7 +2551,7 @@ AS LEFT JOIN alg_locatie altlocvan ON fac.safe_to_number (altvan.mld_kenmerkmelding_waarde) = altlocvan.alg_locatie_key UNION ALL - SELECT 'CUST02', + SELECT x.fac_srtnotificatie_code, NULL, NULL, REPLACE (REPLACE (REPLACE (x.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (x.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde), '##LOC##', '/inkomend ' || COALESCE (locnaar.alg_locatie_omschrijving, altlocnaar.alg_locatie_omschrijving)), @@ -2571,7 +2590,7 @@ AS LEFT JOIN alg_locatie altlocnaar ON fac.safe_to_number (altnaar.mld_kenmerkmelding_waarde) = altlocnaar.alg_locatie_key UNION ALL - SELECT 'CUST03', + SELECT sn.fac_srtnotificatie_code, NULL, NULL, REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (m.mld_melding_key)), '##DAT##', datum.mld_kenmerkmelding_waarde), @@ -2602,6 +2621,74 @@ AS AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ITVD' AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE)); +-- Klantspecifieke MLD2BO-notificatie naar Roosterbureau-medewerker met WP op +-- dezelfde locatie als waarvoor de Aanvraag lesruimte(n) is geregistreerd. +CREATE OR REPLACE VIEW NOVA_V_NOTI_ROOSTERBUREAU +( + code, + sender, + receiver, + text, + key, + par1, + par2, + xkey, + xemail, + xmobile, + fac_srtnotificatie_key, + attachments, + xsender, + prs_bedrijfadres_key +) +AS + SELECT sn.fac_srtnotificatie_code, + NULL, + gg.prs_perslid_key, + REPLACE ( + --REPLACE ( + --REPLACE ( + REPLACE ( + sn.fac_srtnotificatie_oms, + '##KEY##', + TO_CHAR (m.mld_melding_key)), + --'##DISC##', + --md.ins_discipline_omschrijving), + --'##STDMLD##', + --sm.mld_stdmelding_omschrijving), + '##GEB##', + COALESCE (wpg.alg_gebouw_code, wpg.alg_locatie_code)), + m.mld_melding_key, + NULL, + NULL, + NULL, + NULL xemail, + NULL xmobile, + NULL fac_srtnotificatie_key, + NULL attachments, + NULL xsender, + NULL prs_bedrijfadres_key + FROM mld_melding m, + --mld_stdmelding sm, + --mld_discipline md, + fac_tracking t, + fac_gebruikersgroep gg, + prs_perslidwerkplek pw, + prs_v_werkplek_gegevens wpg, + fac_srtnotificatie sn, + fac_notificatie_job nj + WHERE m.mld_stdmelding_key = 29 -- Aanvraag lesruimte(n) + --AND m.mld_stdmelding_key = sm.mld_stdmelding_key + --AND sm.mld_ins_discipline_key = md.ins_discipline_key + AND m.mld_melding_key = t.fac_tracking_refkey + AND t.fac_srtnotificatie_key = 52 -- MLDNEW + AND gg.fac_groep_key = 125 -- Roosterbureau + AND gg.prs_perslid_key = pw.prs_perslid_key + AND pw.prs_werkplek_key = wpg.prs_werkplek_key + AND wpg.alg_locatie_key = m.mld_alg_locatie_key -- WP op melding-locatie! + AND sn.fac_srtnotificatie_code = 'CUST04' + AND nj.fac_notificatie_job_view = 'NOVA_V_NOTI_ROOSTERBUREAU' + AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE)); + ------ payload end ------ SET DEFINE OFF