diff --git a/STER/STER.sql b/STER/STER.sql index dcaf800e2..48262c5eb 100644 --- a/STER/STER.sql +++ b/STER/STER.sql @@ -94,6 +94,16 @@ IS WHERE fac_import_key = p_import_key ORDER BY fac_imp_csv_index; + CURSOR aut(v_kostenplaats_nr IN VARCHAR2) + IS + SELECT fac.safe_to_number(SUBSTR(fud.fac_usrdata_code,1,INSTR(fud.fac_usrdata_code,'-')-1)) fac_groep_key + FROM fac_usrdata fud , fac_usrtab fut + WHERE UPPER(fut.fac_usrtab_naam)='AUTH_MATRI_RO' + AND fut.fac_usrtab_verwijder IS NULL + AND fud.fac_usrtab_key = fut.fac_usrtab_key + AND fud.fac_usrdata_verwijder IS NULL + AND SUBSTR(fud.fac_usrdata_code,INSTR(fud.fac_usrdata_code,'-')+1)=v_kostenplaats_nr; + v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); @@ -181,13 +191,13 @@ BEGIN IF (rec.budgethouder_nr IS NOT NULL) THEN - v_aanduiding := 'Budgethouder kan niet gevonden worden op basis van budgethouder personeelssnr'|| rec.budgethouder_nr; + v_aanduiding := 'Budgethouder kan niet gevonden worden op basis van budgethouder personeelssnr : '|| rec.budgethouder_nr; SELECT p.prs_perslid_key INTO v_budgethouder_key FROM prs_perslid p where p.prs_perslid_nr=rec.budgethouder_nr AND p.prs_perslid_verwijder IS NULL - AND TRUNC(p.prs_perslid_inactief) > TRUNC(SYSDATE); + AND p.prs_perslid_inactief IS NULL OR TRUNC(p.prs_perslid_inactief) > TRUNC(SYSDATE); IF v_budgethouder_key<>v_kpn_budgethouder_key THEN @@ -206,6 +216,7 @@ BEGIN END IF; + -- -- Moeten we de persoon ook nog een werkplek geven op de locatei vnd e afdelingen waar ze ondervalt @@ -230,6 +241,25 @@ BEGIN END IF; + FOR rec_aut IN aut(v_primary_kostcode) + LOOP + SELECT COUNT(*) + INTO v_count + FROM fac_gebruikersgroep + WHERE fac_groep_key = rec_aut.fac_groep_key + AND prs_perslid_key = v_perslid_key; + + IF v_count=0 THEN + v_aanduiding := 'Fout bij toevoegen persoon '||v_perslid_key||' aan autorisatiegroep'|| rec_aut.fac_groep_key; + INSERT INTO fac_gebruikersgroep(fac_groep_key, + prs_perslid_key) + VALUES(rec_aut.fac_groep_key, + v_perslid_key); + + END IF; + END LOOP; + + END IF; END LOOP;