STER#83920 -- Sterk huis implementatie, youforce import aanpassing.Nieuwe structuur csv bestand

svn path=/Customer/trunk/; revision=67787
This commit is contained in:
Norbert Wassink
2025-01-29 15:32:27 +00:00
parent db63ac48d2
commit 05f4877864

View File

@@ -86,10 +86,12 @@ IS
IS
SELECT fac_imp_csv_index file_index,
FAC_IMP_CSV_COL01 prs_perslid_nr,
FAC_IMP_CSV_COL02 prs_kostenplaats_code,
FAC_IMP_CSV_COL03 dienstverband_code,
FAC_IMP_CSV_COL04 budgethouder_nr,
FAC_IMP_CSV_COL05 uren
FAC_IMP_CSV_COL02 prs_perslid_email,
FAC_IMP_CSV_COL03 prs_kostenplaats_code,
FAC_IMP_CSV_COL04 dienstverband_code,
FAC_IMP_CSV_COL05 budgethouder_nr,
FAC_IMP_CSV_COL06 budgethouder_email,
FAC_IMP_CSV_COL07 uren
from fac_imp_csv
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_csv_index;
@@ -145,26 +147,39 @@ BEGIN
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (
v_perslid_key:=-1;
END;
IF v_perslid_key=-1 THEN
BEGIN
v_aanduiding := 'Persoon kan niet gevonden worden op basis van personeels nr'|| rec.prs_perslid_nr||' of email '||rec.prs_perslid_email;
SELECT p.prs_perslid_key
INTO v_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_email=rec.prs_perslid_email
AND p.prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Persoon niet gevonden');
END;
END;
END IF;
-- Maar nu moeten we de afdeling hebben met het maximaal aantal uren
BEGIN
v_primary_kostcode:=NULL;
v_aanduiding := 'Max aantal uren ophalen gaat fout bij personeels nr'|| rec.prs_perslid_nr;
SELECT fac_imp_csv_col02
SELECT fac_imp_csv_col03
INTO v_primary_kostcode
from (
SELECT fac_imp_csv_col02
SELECT fac_imp_csv_col03
FROM fac_imp_csv
WHERE fac_import_key=p_import_key
AND fac_imp_csv_col01=rec.prs_perslid_nr
ORDER BY fac_imp_csv_col04 DESC
ORDER BY fac_imp_csv_col07 DESC
) WHERE rownum=1;
EXCEPTION
WHEN NO_DATA_FOUND
@@ -192,22 +207,49 @@ BEGIN
IF (rec.budgethouder_nr IS NOT NULL)
THEN
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 p.prs_perslid_inactief IS NULL OR TRUNC(p.prs_perslid_inactief) > TRUNC(SYSDATE);
IF v_budgethouder_key<>v_kpn_budgethouder_key
BEGIN
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 p.prs_perslid_inactief IS NULL OR TRUNC(p.prs_perslid_inactief) > TRUNC(SYSDATE);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_budgethouder_key:=-1;
END;
IF v_budgethouder_key=-1 THEN
BEGIN
v_aanduiding := 'Budgethouder kan niet gevonden worden op basis van budgethouder personeelssnr : '|| rec.budgethouder_nr ||' en email adres '||rec.budgethouder_email;
SELECT p.prs_perslid_key
INTO v_budgethouder_key
FROM prs_perslid p
where p.prs_perslid_email=rec.budgethouder_email
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_inactief IS NULL OR TRUNC(p.prs_perslid_inactief) > TRUNC(SYSDATE);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_budgethouder_key:=-1;
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Budgethouder niet gevonden');
END;
END IF;
IF v_budgethouder_key <> -1 AND v_budgethouder_key<>v_kpn_budgethouder_key
THEN
UPDATE prs_kostenplaats
SET prs_perslid_key=v_budgethouder_key
WHERE prs_kostenplaats_key= v_prs_kostenplaats_key;
END IF;
IF v_budgethouder_key<>v_afd_verantw_key
IF v_budgethouder_key<>-1 AND v_budgethouder_key<>v_afd_verantw_key
THEN
UPDATE prs_afdeling
SET prs_perslid_key_verantw=v_budgethouder_key
@@ -244,20 +286,20 @@ BEGIN
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;
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;
IF v_count=0 AND v_perslid_key >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;
@@ -1954,6 +1996,40 @@ AS
AND l.alg_locatie_key = a.alg_locatie_key
AND p.prs_perslid_key = m.prs_perslid_key;
CREATE OR REPLACE VIEW STER_V_NOTI_RES_REMINDER
AS
(
key,
code,
sender,
receiver,
text,
xkey,
xemail,
xmobile
)
SELECT rrr.res_rsv_ruimte_key key,
'CUST01' code,
NULL sender,
rrr.res_rsv_ruimte_contact_key receiver,
'Herinnering van je reservering '||rrr.res_reservering_key||'/'||rrr.RES_RSV_RUIMTE_VOLGNR||' op '||TO_CHAR(rrr.res_rsv_ruimte_van,'DD-MM-YYYY')||' om '||TO_CHAR(rrr.res_rsv_ruimte_van,'HH24:MI') text
NULL xkey,
NULL xemail,
NULL xmobile
FROM res_rsv_ruimte rrr
WHERE FAC.count_Work_Days (SYSDATE, rrr.res_rsv_ruimte_van) = 2
AND FAC.count_Work_Days (rrr.res_rsv_ruimte_aanmaak, SYSDATE) >= 0 -- als kort van te voren (2 dagen) aangemaakt dan sturen we geen noti
AND rrr.res_activiteit_key IN (170,171) -- Alleen reservering uit Outlook
AND rrr.
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND NOT EXISTS
(SELECT 1
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 228
AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND t.fac_tracking_oms LIKE '%CUST01%');
------ payload end ------
SET DEFINE OFF
@@ -1965,3 +2041,4 @@ SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile