From 9faa6fab76a930dec50dffd7295104e54cb442a9 Mon Sep 17 00:00:00 2001 From: Robin Stoker Date: Thu, 25 Jul 2024 14:52:50 +0000 Subject: [PATCH] VNOG#78645 -- Werkplektoekenning procedure VNOG#84802 -- Automatisch starten van taak op ingediende plandatum svn path=/Customer/trunk/; revision=65724 --- VNOG/vnog.sql | 601 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 491 insertions(+), 110 deletions(-) diff --git a/VNOG/vnog.sql b/VNOG/vnog.sql index 06643733c..7f0f62333 100644 --- a/VNOG/vnog.sql +++ b/VNOG/vnog.sql @@ -965,6 +965,8 @@ AS PROCEDURE afmelden_ord; PROCEDURE verhuis_inv; PROCEDURE verstuur_gmo; + PROCEDURE start_ctr; + PROCEDURE post_helloid; END; / @@ -1089,60 +1091,60 @@ AS fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!'); END; - PROCEDURE verhuis_inv - AS - c_applname VARCHAR2 (50) := 'VERHUIS_INV'; - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - v_count_tot NUMBER (10); - v_deel_key NUMBER (10); - v_perslid_key NUMBER (5) := 3; - - CURSOR c1 IS - SELECT i2.ins_deel_omschrijving vrt, - i.ins_deel_omschrijving inv, - i.ins_deel_opmerking nummer, - i.ins_deel_key inventaris, - i2.ins_deel_key voertuig, - i.ins_alg_ruimte_key ruimte_oud, - i2.ins_alg_ruimte_key ruimte_nieuw, - COALESCE (SUBSTR (i2.ins_deel_omschrijving, - 1, - INSTR (i2.ins_deel_omschrijving, '/') - 1), i2.ins_deel_omschrijving) waarde - FROM ins_deel i, ins_deel i2, ins_deelkoppeling k - WHERE i.ins_deel_key = k.ins_deelkoppeling_naar_key - AND i2.ins_deel_key = k.ins_deelkoppeling_van_key - AND i.ins_alg_ruimte_key <> i2.ins_alg_ruimte_key - AND i.ins_alg_ruimte_type = 'R' - AND i2.ins_alg_ruimte_type = 'R' - AND i.ins_deel_verwijder IS NULL - AND i2.ins_deel_verwijder IS NULL; - - CURSOR c2 IS - SELECT x.inventaris, - x.nummer, - x.waarde - FROM (SELECT i2.ins_deel_omschrijving vrt, + PROCEDURE verhuis_inv + AS + c_applname VARCHAR2 (50) := 'VERHUIS_INV'; + v_errormsg VARCHAR2 (1000); + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_aanduiding VARCHAR2 (200); + v_count_tot NUMBER (10); + v_deel_key NUMBER (10); + v_perslid_key NUMBER (5) := 3; + + CURSOR c1 IS + SELECT i2.ins_deel_omschrijving vrt, i.ins_deel_omschrijving inv, i.ins_deel_opmerking nummer, i.ins_deel_key inventaris, i2.ins_deel_key voertuig, i.ins_alg_ruimte_key ruimte_oud, i2.ins_alg_ruimte_key ruimte_nieuw, - SUBSTR (i2.ins_deel_omschrijving, + COALESCE (SUBSTR (i2.ins_deel_omschrijving, 1, - INSTR (i2.ins_deel_omschrijving, '/') - 1) waarde - FROM ins_deel i, ins_deel i2, ins_deelkoppeling k - WHERE i.ins_deel_key = k.ins_deelkoppeling_naar_key + INSTR (i2.ins_deel_omschrijving, '/') - 1), i2.ins_deel_omschrijving) waarde + FROM ins_deel i, ins_deel i2, ins_deelkoppeling k + WHERE i.ins_deel_key = k.ins_deelkoppeling_naar_key AND i2.ins_deel_key = k.ins_deelkoppeling_van_key + AND i.ins_alg_ruimte_key <> i2.ins_alg_ruimte_key AND i.ins_alg_ruimte_type = 'R' AND i2.ins_alg_ruimte_type = 'R' AND i.ins_deel_verwijder IS NULL - AND i2.ins_deel_verwijder IS NULL) x - WHERE x.nummer != x.waarde; - + AND i2.ins_deel_verwijder IS NULL; + + CURSOR c2 IS + SELECT x.inventaris, + x.nummer, + x.waarde + FROM (SELECT i2.ins_deel_omschrijving vrt, + i.ins_deel_omschrijving inv, + i.ins_deel_opmerking nummer, + i.ins_deel_key inventaris, + i2.ins_deel_key voertuig, + i.ins_alg_ruimte_key ruimte_oud, + i2.ins_alg_ruimte_key ruimte_nieuw, + SUBSTR (i2.ins_deel_omschrijving, + 1, + INSTR (i2.ins_deel_omschrijving, '/') - 1) waarde + FROM ins_deel i, ins_deel i2, ins_deelkoppeling k + WHERE i.ins_deel_key = k.ins_deelkoppeling_naar_key + AND i2.ins_deel_key = k.ins_deelkoppeling_van_key + AND i.ins_alg_ruimte_type = 'R' + AND i2.ins_alg_ruimte_type = 'R' + AND i.ins_deel_verwijder IS NULL + AND i2.ins_deel_verwijder IS NULL) x + WHERE x.nummer != x.waarde; + BEGIN v_count_tot := 0; FOR rec IN c1 @@ -1156,14 +1158,14 @@ AS WHERE ins_deel_key = rec.inventaris RETURNING ins_deel_key INTO v_deel_key; - + fac.trackaction ('INSUPD', v_deel_key, v_perslid_key, NULL, '#Inventarisitem verhuisd met voertuig'); END; v_count_tot := v_count_tot + 1; END LOOP; fac.writelog (c_applname, 'S', '#Inventarisitems verplaatst: ' || TO_CHAR (v_count_tot), ''); COMMIT; - + v_count_tot := 0; FOR rec IN c2 LOOP @@ -1175,14 +1177,14 @@ AS WHERE ins_deel_key = rec.inventaris RETURNING ins_deel_key INTO v_deel_key; - + fac.trackaction ('INSUPD', v_deel_key, v_perslid_key, NULL, '#Nieuw 06-nummer toegekend aan inventarisitem'); END; v_count_tot := v_count_tot + 1; END LOOP; fac.writelog (c_applname, 'S', '#Inventarisitems aangepast: ' || TO_CHAR (v_count_tot), ''); COMMIT; - + EXCEPTION WHEN OTHERS THEN @@ -1191,7 +1193,7 @@ AS v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!'); END; - + -- Maak elke jaar op 1 augustus voor iedereen met objecten een GMO melding aan. -- Objecten in bezit worden hieraan gekoppeld. -- Wanneer een GMO melding voorzien is van een handtekening wordt deze de volgende dag afgemeld. @@ -1203,7 +1205,7 @@ AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); - + CURSOR mld IS SELECT MAX (i.ins_deel_key), p.prs_perslid_key FROM ins_deel i, prs_v_aanwezigperslid p @@ -1212,7 +1214,7 @@ AS AND ins_deel_verwijder IS NULL AND NOT EXISTS (SELECT 'x' FROM mld_melding m WHERE m.mld_stdmelding_key = 951 AND m.prs_perslid_key = p.prs_perslid_key AND mld_melding_status IN (0, 2, 3, 4, 7)) GROUP BY p.prs_perslid_key; - + CURSOR obj IS SELECT i.ins_deel_key, p.prs_perslid_key, m.mld_melding_key FROM ins_deel i, prs_v_aanwezigperslid p, mld_melding m @@ -1223,7 +1225,7 @@ AS AND m.mld_stdmelding_key = 951 -- GMO AND m.mld_melding_status = 2 AND NOT EXISTS (SELECT 'x' FROM mld_melding_object o WHERE o.mld_melding_key = m.mld_melding_key AND o.ins_deel_key = i.ins_deel_key); - + CURSOR tek IS SELECT m.mld_melding_key @@ -1233,72 +1235,449 @@ AS AND mk.mld_kenmerk_key = 1361 -- Handtekening AND m.mld_melding_status NOT IN (5, 6) -- Nog niet afgemeld of archief ; -BEGIN - IF TO_CHAR (sysdate, 'DD-MM') = '01-08' - THEN - FOR rec IN mld - LOOP - v_errormsg := 'Fout aanmaken GMO melding'; - v_aanduiding := '[perslid_key: ' || TO_CHAR (rec.prs_perslid_key) || ']'; - BEGIN - INSERT INTO mld_melding (mld_melding_module, - mld_meldbron_key, - mld_melding_datum, - mld_stdmelding_key, - prs_perslid_key, - prs_perslid_key_voor, - mld_melding_status, - mld_melding_spoed, - mld_ins_discipline_key) - VALUES ('MLD', - 5, - SYSDATE, - 951, -- GMO - rec.prs_perslid_key, - rec.prs_perslid_key, - 2, -- Status nieuw - 3, -- Prio normaal - 1121) -- Behandelteam GMO - ; - END; - END LOOP; - - FOR rec IN obj - LOOP - v_errormsg := 'Fout toevoegen object aan GMO melding'; - v_aanduiding := '[deel_key: ' || TO_CHAR (rec.ins_deel_key) || ']'; - BEGIN - INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key) - VALUES (rec.mld_melding_key, rec.ins_deel_key); - END; - END LOOP; - COMMIT; - - ELSE - FOR rec IN tek - LOOP - v_errormsg := 'Fout afmelden GMO melding'; - v_aanduiding := - '[melding_key: ' || TO_CHAR (rec.mld_melding_key) || ']'; + BEGIN + IF TO_CHAR (sysdate, 'DD-MM') = '01-08' + THEN + FOR rec IN mld + LOOP + v_errormsg := 'Fout aanmaken GMO melding'; + v_aanduiding := '[perslid_key: ' || TO_CHAR (rec.prs_perslid_key) || ']'; + BEGIN + INSERT INTO mld_melding (mld_melding_module, + mld_meldbron_key, + mld_melding_datum, + mld_stdmelding_key, + prs_perslid_key, + prs_perslid_key_voor, + mld_melding_status, + mld_melding_spoed, + mld_ins_discipline_key) + VALUES ('MLD', + 5, + SYSDATE, + 951, -- GMO + rec.prs_perslid_key, + rec.prs_perslid_key, + 2, -- Status nieuw + 3, -- Prio normaal + 1121) -- Behandelteam GMO + ; + END; + END LOOP; + FOR rec IN obj + LOOP + v_errormsg := 'Fout toevoegen object aan GMO melding'; + v_aanduiding := '[deel_key: ' || TO_CHAR (rec.ins_deel_key) || ']'; + BEGIN + INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key) + VALUES (rec.mld_melding_key, rec.ins_deel_key); + END; + END LOOP; + COMMIT; + + ELSE + FOR rec IN tek + LOOP + v_errormsg := 'Fout afmelden GMO melding'; + v_aanduiding := + '[melding_key: ' || TO_CHAR (rec.mld_melding_key) || ']'; + + BEGIN + UPDATE mld_melding + SET mld_melding_status = 5 -- Afgemeld + WHERE mld_melding_key = rec.mld_melding_key; + END; + END LOOP; + COMMIT; + + END IF; + + EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 200); + v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!'); + END; + + -- Automatische starten en ter uitvoering zetten van taken die voor vandaag of eerder zijn gepland (via plandatum of berekend). + -- Er wordt bij de taak ook direct een melding aangemaakt. + -- voorwaarden: 1) Er is een stdmelding gedefinieerd bij de periodieke taak. + -- 2) Alleen periodieke taken, GEEN mjob taken. + PROCEDURE start_ctr + AS + c_applname VARCHAR2 (50) := 'AFMELDEN_ORD'; + v_errormsg VARCHAR2 (1000); + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_aanduiding VARCHAR2 (200); + v_count_tot NUMBER (10); + + l_new_melding_key NUMBER (10); + l_new_melding_object_key NUMBER (10); + l_new_deelsrtcontrole_key NUMBER (10); + l_deelsrtcontrole_key NUMBER (10); + mjb_approvedmld_desc fac_setting.fac_setting_default%TYPE; + mld_subject VARCHAR2 (200); + + CURSOR c_taak_start + IS + SELECT idsc.ins_deelsrtcontrole_key, + idsc.ins_deel_key, + idsc.ins_srtcontrole_key, + idsc.ins_scenario_key, + xcp.mld_stdmelding_key, + sm.mld_stdmelding_default_disc, + COALESCE(xcp.prs_kostenplaats_key, + (SELECT prs_kostenplaats_key + FROM alg_gebouw + WHERE alg_gebouw_key = alg.alg_gebouw_key)) prs_kostenplaats_key, + xcp.ins_srtcontrole_omschrijving, + xcp.ins_srtcontrole_info, + isd.ins_srtdeel_omschrijving, + alg.alg_locatie_key, + alg.alg_onroerendgoed_keys, + CASE + WHEN (SELECT COUNT(ins_deelsrtcontrole_key) + FROM ins_deelsrtcontrole idsc2 + WHERE idsc2.ins_deel_key = idsc.ins_deel_key + AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key + AND idsc2.ins_scenario_key = idsc.ins_scenario_key + AND idsc2.ins_deelsrtcontrole_status = 6) >= 1 + THEN + ins.nextcyclusdate(idsc.ins_deel_key, idsc.ins_srtcontrole_key, 1, 1) + ELSE NULL + END nextdate, + idsc.prs_perslid_key + FROM ins_deelsrtcontrole idsc, + ins_v_defined_inspect_xcp xcp, + ins_deel d, + ins_srtdeel isd, + alg_v_allonroerendgoed alg, + mld_stdmelding sm + WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key + AND xcp.ins_deel_key = idsc.ins_deel_key + AND xcp.ins_scenario_key = idsc.ins_scenario_key + AND xcp.mld_stdmelding_key = sm.mld_stdmelding_key + AND d.ins_deel_key = idsc.ins_deel_key + AND d.ins_srtdeel_key = isd.ins_srtdeel_key + AND d.ins_alg_ruimte_key = alg.alg_onroerendgoed_keys(+) + AND d.ins_alg_ruimte_type = 'R' + AND TRUNC(idsc.ins_deelsrtcontrole_plandatum, 'dd') <= TRUNC(SYSDATE, 'dd') + AND idsc.ins_scenario_key = 1 + AND idsc.ins_deelsrtcontrole_status = 0 + AND xcp.ctr_ismjob = 0 + AND xcp.mld_stdmelding_key IS NOT NULL + UNION + SELECT NULL ins_deelsrtcontrole_key, + idsc.ins_deel_key, + idsc.ins_srtcontrole_key, + idsc.ins_scenario_key, + xcp.mld_stdmelding_key, + sm.mld_stdmelding_default_disc, + COALESCE(xcp.prs_kostenplaats_key, + (SELECT prs_kostenplaats_key + FROM alg_gebouw + WHERE alg_gebouw_key = alg.alg_gebouw_key)) prs_kostenplaats_key, + xcp.ins_srtcontrole_omschrijving, + xcp.ins_srtcontrole_info, + isd.ins_srtdeel_omschrijving, + alg.alg_locatie_key, + alg.alg_onroerendgoed_keys, + CASE + WHEN (SELECT COUNT(ins_deelsrtcontrole_key) + FROM ins_deelsrtcontrole idsc2 + WHERE idsc2.ins_deel_key = idsc.ins_deel_key + AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key + AND idsc2.ins_scenario_key = idsc.ins_scenario_key + AND idsc2.ins_deelsrtcontrole_status = 6) >= 1 + THEN + ins.nextcyclusdate(idsc.ins_deel_key, idsc.ins_srtcontrole_key, 1, 1) + ELSE NULL + END nextdate, + (SELECT idsc3.prs_perslid_key + FROM ins_deelsrtcontrole idsc3 + WHERE idsc3.ins_deelsrtcontrole_key = (SELECT MAX(ins_deelsrtcontrole_key) + FROM ins_deelsrtcontrole idsc2 + WHERE idsc2.ins_deel_key = idsc.ins_deel_key + AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key + AND idsc2.ins_scenario_key = idsc.ins_scenario_key + AND idsc2.ins_deelsrtcontrole_status = 6)) prs_perslid_key + FROM ins_deelsrtcontrole idsc, + ins_v_defined_inspect_xcp xcp, + ins_deel d, + ins_srtdeel isd, + alg_v_allonroerendgoed alg, + mld_stdmelding sm + WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key + AND xcp.ins_deel_key = idsc.ins_deel_key + AND xcp.ins_scenario_key = idsc.ins_scenario_key + AND xcp.mld_stdmelding_key = sm.mld_stdmelding_key + AND d.ins_deel_key = idsc.ins_deel_key + AND d.ins_srtdeel_key = isd.ins_srtdeel_key + AND d.ins_alg_ruimte_key = alg.alg_onroerendgoed_keys(+) + AND d.ins_alg_ruimte_type = 'R' + AND TRUNC(ins.nextcyclusdate(idsc.ins_deel_key, idsc.ins_srtcontrole_key, 1, 1), 'dd') <= TRUNC(SYSDATE, 'dd') + AND idsc.ins_scenario_key = 1 + AND idsc.ins_deelsrtcontrole_key = (SELECT MAX(ins_deelsrtcontrole_key) + FROM ins_deelsrtcontrole idsc2 + WHERE idsc2.ins_deel_key = idsc.ins_deel_key + AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key + AND idsc2.ins_scenario_key = idsc.ins_scenario_key + AND idsc2.ins_deelsrtcontrole_status = 6) + AND (SELECT MAX(ins_deelsrtcontrole_key) + FROM ins_deelsrtcontrole idsc2 + WHERE idsc2.ins_deel_key = idsc.ins_deel_key + AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key + AND idsc2.ins_scenario_key = idsc.ins_scenario_key + AND idsc2.ins_deelsrtcontrole_status != 6) IS NULL -- Er mag geen lopende taak aanwezig zijn. + AND xcp.ctr_ismjob = 0 + AND xcp.mld_stdmelding_key IS NOT NULL; + BEGIN + v_count_tot := 0; + FOR rec IN c_taak_start + LOOP BEGIN - UPDATE mld_melding - SET mld_melding_status = 5 -- Afgemeld - WHERE mld_melding_key = rec.mld_melding_key; + v_errormsg := 'Fout starten taak'; + v_aanduiding := '[' || TO_CHAR (rec.ins_deel_key) || '/' || TO_CHAR (rec.ins_srtcontrole_key) || '] '; + IF rec.ins_deelsrtcontrole_key IS NULL + THEN + SELECT ins_s_ins_deelsrtcontrole_key.NEXTVAL INTO l_new_deelsrtcontrole_key FROM DUAL; + + INSERT INTO ins_deelsrtcontrole (ins_deelsrtcontrole_key, + ins_deel_key, + ins_srtcontrole_key, + ins_deelsrtcontrole_status, + prs_perslid_key, + ins_deelsrtcontrole_datum_org) + VALUES (l_new_deelsrtcontrole_key, + rec.ins_deel_key, + rec.ins_srtcontrole_key, + 2, + rec.prs_perslid_key, + rec.nextdate); + l_deelsrtcontrole_key := l_new_deelsrtcontrole_key; + ELSE + l_deelsrtcontrole_key := rec.ins_deelsrtcontrole_key; + -- Het ins_deelsrtcontrole record bestaat al omdat de taak al is ingepland. + END IF; + + ins.setinspectstatus(l_deelsrtcontrole_key, 2, NULL); + + mjb_approvedmld_desc := fac.getsetting('mjb_approvedmelding_description'); + + IF mjb_approvedmld_desc = 2 + THEN + mld_subject := rec.ins_srtcontrole_omschrijving; + ELSIF mjb_approvedmld_desc = 3 + THEN + mld_subject := rec.ins_srtcontrole_omschrijving || ' (' || rec.ins_srtdeel_omschrijving; + ELSE -- mjb_approvedmelding_description = 1 + mld_subject := rec.ins_srtdeel_omschrijving; + END IF; + + SELECT mld_s_mld_melding_key.NEXTVAL INTO l_new_melding_key FROM DUAL; + + INSERT INTO mld_melding(prs_perslid_key, + prs_perslid_key_voor, + mld_melding_datum, + mld_ins_discipline_key, + mld_stdmelding_key, + mld_melding_omschrijving, + mld_melding_onderwerp, + mld_meldbron_key, + prs_kostenplaats_key, + mld_alg_locatie_key, + mld_melding_spoed, + mld_alg_onroerendgoed_keys, + mld_melding_module, + mld_melding_key) + VALUES (rec.prs_perslid_key, + rec.prs_perslid_key, + SYSDATE, + rec.mld_stdmelding_default_disc, + rec.mld_stdmelding_key, + rec.ins_srtcontrole_info, + mld_subject, + 10, + rec.prs_kostenplaats_key, + rec.alg_locatie_key, + 3, -- Default prioriteit 3. + rec.alg_onroerendgoed_keys, + 'MLD', + l_new_melding_key); + + SELECT mld_s_mld_object_key.NEXTVAL INTO l_new_melding_object_key FROM DUAL; + + INSERT INTO mld_melding_object(ins_deel_key, + mld_melding_key, + ins_deelsrtcontrole_key, + mld_melding_object_key) + VALUES (rec.ins_deel_key, + l_new_melding_key, + l_deelsrtcontrole_key, + l_new_melding_object_key); + + mld.setmeldingstatus(l_new_melding_key, 2, NULL, 1); + + IF rec.mld_stdmelding_default_disc IS NOT NULL -- mldbhg notificatie. + THEN + mld.notifybackoffice (l_new_melding_key, 'MLDBHG', 2); + END IF; + + mld.mld_nextworkflowstep (l_new_melding_key, -1); + + mld.mld_addautoorder(l_new_melding_key); + + ins.setinspectstatus(l_deelsrtcontrole_key, 3, NULL); + + v_count_tot := v_count_tot + 1; + IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF; END; - END LOOP; - COMMIT; - - END IF; - - EXCEPTION + END LOOP; + fac.writelog (c_applname, 'S', '#Taken gestart: ' || TO_CHAR (v_count_tot), ''); + COMMIT; + EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!'); -END; + END; + + PROCEDURE post_helloid + AS + v_importkey NUMBER; + v_importappkey NUMBER; + + -- Personen die verwijderd moet worden + CURSOR c1 IS + SELECT prs_perslid_key + FROM prs_perslid + WHERE prs_perslid_inactief IS NOT NULL -- Als inactief gemarkeerd door HelloID + AND prs_perslid_verwijder IS NULL; + + -- Toekennen van werkplek aan persoon (postcommandanten en personen met meer dan 1 werkplek zijn uitgesloten) + CURSOR c2 IS + SELECT p.prs_perslid_key, + pk.prs_kenmerklink_waarde, + l.alg_locatie_key, + g.alg_gebouw_key, + g.alg_gebouw_naam, + v.alg_verdieping_key, + r.alg_ruimte_key ruimte + FROM prs_perslid p, + prs_kenmerklink pk, + alg_locatie l, + alg_gebouw g, + alg_verdieping v, + alg_ruimte r + WHERE p.prs_perslid_key = pk.prs_link_key + AND pk.prs_kenmerklink_niveau = 'P' + AND pk.prs_kenmerk_key = 1060 -- LocatieID + AND prs_kenmerklink_waarde = l.alg_locatie_key + AND g.alg_locatie_key = l.alg_locatie_key + AND v.alg_gebouw_key = g.alg_gebouw_key + AND r.alg_verdieping_key = v.alg_verdieping_key + AND r.alg_ruimte_nr = '0000' + AND l.alg_locatie_verwijder IS NULL + AND g.alg_gebouw_verwijder IS NULL + AND r.alg_ruimte_verwijder IS NULL + AND UPPER (g.alg_gebouw_naam) LIKE 'WERKLO%' + AND NOT EXISTS + (SELECT 1 + FROM alg_v_aanweziggebouw + WHERE UPPER (alg_gebouw_naam) LIKE 'WERKLO%' + AND alg_locatie_key = g.alg_locatie_key + AND alg_gebouw_key < g.alg_gebouw_key) + AND NOT EXISTS + (SELECT 1 + FROM fac_gebruikersgroep f + WHERE f.fac_groep_key = 171 + AND p.prs_perslid_key = f.prs_perslid_key) + UNION ALL + SELECT p.prs_perslid_key, + pk.prs_kenmerklink_waarde, + l.alg_locatie_key, + g.alg_gebouw_key, + g.alg_gebouw_naam, + v.alg_verdieping_key, + r.alg_ruimte_key ruimte + FROM prs_perslid p, + prs_kenmerklink pk, + alg_locatie l, + alg_gebouw g, + alg_verdieping v, + alg_ruimte r + WHERE p.prs_perslid_key = pk.prs_link_key + AND pk.prs_kenmerklink_niveau = 'P' + AND pk.prs_kenmerk_key = 1060 -- LocatieID + AND prs_kenmerklink_waarde = l.alg_locatie_key + AND g.alg_locatie_key = l.alg_locatie_key + AND v.alg_gebouw_key = g.alg_gebouw_key + AND r.alg_verdieping_key = v.alg_verdieping_key + AND r.alg_ruimte_nr = '0000' + AND l.alg_locatie_verwijder IS NULL + AND g.alg_gebouw_verwijder IS NULL + AND r.alg_ruimte_verwijder IS NULL + AND UPPER (g.alg_gebouw_naam) NOT LIKE 'WERKLO%' + AND NOT EXISTS + (SELECT 1 + FROM alg_v_aanweziggebouw + WHERE UPPER (alg_gebouw_naam) LIKE 'WERKLO%' + AND alg_locatie_key = g.alg_locatie_key) + AND NOT EXISTS + (SELECT 1 + FROM alg_v_aanweziggebouw + WHERE UPPER (alg_gebouw_naam) NOT LIKE 'WERKLO%' + AND alg_locatie_key = g.alg_locatie_key + AND alg_gebouw_key < g.alg_gebouw_key) + AND NOT EXISTS + (SELECT 1 + FROM fac_gebruikersgroep f + WHERE f.fac_groep_key = 171 + AND p.prs_perslid_key = f.prs_perslid_key); + + -- Voor deze acties hebben we een import_key nodig, dus die gaan we nu aanmaken + BEGIN + SELECT fac_import_app_key + INTO v_importappkey + FROM fac_import_app + WHERE fac_import_app_code = 'HELLOID'; + + INSERT INTO fac_import (fac_import_app_key, + fac_import_datum_gelezen, + fac_import_datum_verwerkt, + fac_import_filenaam, + prs_perslid_key) + VALUES (v_importappkey, + SYSDATE, + SYSDATE, + NULL, + 3); + + SELECT MAX (fac_import_key) INTO v_importkey FROM fac_import; + + FOR rec IN c1 + LOOP + BEGIN + prs.delete_perslid (v_importkey, rec.prs_perslid_key); + END; + END LOOP; + + FOR rec IN c2 + LOOP + BEGIN + prs.movetoruimte (rec.prs_perslid_key, + rec.ruimte, + 'A', + 0); + END; + END LOOP; + END; END; / @@ -1312,6 +1691,8 @@ BEGIN vnog.afmelden_ord; vnog.verhuis_inv; vnog.verstuur_gmo; + vnog.start_ctr; + vnog.post_helloid; EXCEPTION WHEN OTHERS THEN @@ -1332,8 +1713,8 @@ AS FROM prs_perslid p WHERE p.prs_perslid_verwijder IS NULL AND p.prs_perslid_email IS NOT NULL; - --- Rapport om te kunnen zien wie er online is (ICT en Servicedesk) + +-- Rapport om te kunnen zien wie er online is (ICT en Servicedesk) CREATE OR REPLACE VIEW vnog_v_rap_prs_online ( naam,