diff --git a/BLOS/blos.sql b/BLOS/blos.sql index 2536cc88d..6eb9719f7 100644 --- a/BLOS/blos.sql +++ b/BLOS/blos.sql @@ -1019,7 +1019,7 @@ AS AND w.prs_perslid_key = f2.prs_perslid_key(+) ORDER BY 1, 2, 3; - CURSOR c_loc_kp_del -- Voor deleten van mandaten die niet meer van toepassing zijn + CURSOR c_loc_kp_del -- Voor deleten van mandaten IS SELECT pk.prs_perslid_key, pk.prs_perslidkostenplaats_key FROM prs_perslidkostenplaats pk @@ -1036,8 +1036,33 @@ AS GROUP BY v_prs.prs_perslid_key, v_kp.prs_kostenplaats_key) AND pk.prs_perslid_key IN ( SELECT prs_perslid_key - FROM blos_v_regiomanagers - GROUP BY prs_perslid_key) + FROM blos_v_personenlijst_clus p + WHERE p.prs_perslid_verwijder IS NULL + UNION + SELECT prs_perslid_key + FROM blos_v_personenlijst_dir d + WHERE d.prs_perslid_verwijder IS NULL + GROUP BY prs_perslid_key) + ORDER BY 1, 2; + + CURSOR c_loc_bud_del -- Voor deleten van budgethouderschap op kostenplaatsen + IS + SELECT kp.prs_perslid_key, p.prs_perslid_naam, r.naam, kp.prs_kostenplaats_key + FROM prs_kostenplaats kp, prs_perslid p, blos_v_personenlijst_clus r + WHERE kp.prs_perslid_key = p.prs_perslid_key + AND p.prs_perslid_key = r.prs_perslid_key (+) + AND NOT EXISTS + ( SELECT v_prs.prs_perslid_key, + v_kp.prs_kostenplaats_key + FROM blos_v_regiomanagers v_prs, + blos_v_locaties_kp v_kp + WHERE v_prs.alg_locatie_key = + v_kp.alg_locatie_key + AND v_prs.prs_perslid_key = kp.prs_perslid_key + AND v_kp.prs_kostenplaats_key = + kp.prs_kostenplaats_key + GROUP BY v_prs.prs_perslid_key, + v_kp.prs_kostenplaats_key) ORDER BY 1, 2; CURSOR c_loc_recht -- Voor onderhouder van de regiomanagers en directeuren in de autorisatiegroepen @@ -1268,6 +1293,27 @@ BEGIN rec.prs_perslidkostenplaats_key; END; END LOOP; + + FOR rec IN c_loc_bud_del + LOOP + BEGIN + -- opschonen budgethouders op kostenplaatsen + --- Regiomanagers zijn de budgethouders en zij fiatteren bij BLOS voor hun locaties. + ---- Indien een kostenplaats niet gekoppeld is aan locatie-kaart dan kan/moet de budgethouder op die kp verwijderd zijn/worden + ---- Indien een kostenplaats wel is gekoppeld maar er nog geen regiomanager gekoppeld op boveliggend cluster dan heeft die kostenplaats dus ook nog geen budgethouder! + v_aanduiding := + 'verwijderen budgethouder met prs_perslid_key ' || TO_CHAR (rec.prs_perslid_key) || ' op kostenplaats_key ' || TO_CHAR (rec.prs_kostenplaats_key) ; + v_errorhint := 'verwijderen budgethouders op kostenplaatsen'; + + UPDATE prs_kostenplaats + SET prs_perslid_key = NULL + WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key; + + -- logging + --- niet nodig, wordt al automatisch gelogd + + END; + END LOOP; FOR rec IN c_loc_recht LOOP