YKPN#86368 -- Centercodes uit personenkoppeling tbv organisatie gebruiken. Aanpassing op ophalen afdeling_key en controle hierop in UPDATE_ORGANISATIE_SCHED

svn path=/Customer/trunk/; revision=67803
This commit is contained in:
Norbert Wassink
2025-01-30 13:21:05 +00:00
parent 755b53221f
commit a23a6ac5f7

View File

@@ -3613,12 +3613,7 @@ CREATE OR REPLACE PROCEDURE ykpn_update_organisatie_sched (p_import_key IN NUMBE
AS
CURSOR c
IS
SELECT i.*,
(SELECT COALESCE(MIN(prs_afdeling_key) ,-1)
FROM prs_afdeling a, prs_kostenplaats k
WHERE k.prs_kostenplaats_nr=i.prs_kostenplaats_nr
AND a.prs_kostenplaats_key=k.prs_kostenplaats_key
AND a.prs_afdeling_verwijder IS NULL) prs_afdeling_key
SELECT *
FROM ykpn_imp_organisatie i
ORDER BY fac_imp_file_index;
@@ -3711,7 +3706,8 @@ BEGIN
UPDATE prs_kostenplaats
SET prs_kostenplaats_omschrijving = rec.prs_afdeling_omschrijving,
prs_perslid_key = v_budgethouder_key
prs_perslid_key = v_budgethouder_key,
prs_kostenplaats_eind = NULL
WHERE prs_kostenplaats_key = v_prs_kostenplaats_key;
EXCEPTION
WHEN NO_DATA_FOUND
@@ -3763,8 +3759,39 @@ BEGIN
v_prs_afd_niveau_parent := 0;
END IF;
v_prs_afd_niveau_parent := v_prs_afd_niveau_parent +1;
IF rec.prs_afdeling_key = -1
v_prs_afdeling_key:=-1;
-- We gaan eerst de afdeling op zowel kostenplaats als naam opzoeken,
SELECT COALESCE(MAX(prs_afdeling_key),-1)
INTO v_prs_afdeling_key
FROM prs_afdeling a, prs_kostenplaats k
WHERE (k.prs_kostenplaats_nr=rec.prs_kostenplaats_nr
AND a.prs_kostenplaats_key=k.prs_kostenplaats_key
AND a.prs_afdeling_naam = rec.prs_kostenplaats_nr
AND a.prs_afdeling_verwijder IS NULL);
-- ALs niet gevonden gaan we hem op basis van de kostenplaats opzoeken
IF v_prs_afdeling_key=-1 THEN
SELECT COALESCE(MAX(prs_afdeling_key),-1)
INTO v_prs_afdeling_key
FROM prs_afdeling a, prs_kostenplaats k
WHERE (k.prs_kostenplaats_nr=rec.prs_kostenplaats_nr
AND a.prs_kostenplaats_key=k.prs_kostenplaats_key
AND a.prs_afdeling_verwijder IS NULL);
END IF;
-- Indien nog steeds niet gevonden gaan we hem op basis van de afdelingnaam opzoeken (dit is vaak de oude code die IAM niet meer heeft)
IF v_prs_afdeling_key=-1 THEN
SELECT COALESCE(MAX(prs_afdeling_key),-1)
INTO v_prs_afdeling_key
FROM prs_afdeling a
WHERE a.prs_afdeling_naam = rec.prs_kostenplaats_nr
AND a.prs_afdeling_verwijder IS NULL;
END IF;
IF v_prs_afdeling_key = -1
THEN
-- toevoegen afdeling
v_errorhint := 'Toevoegen afdeling'||rec.prs_afdeling_naam;
@@ -3795,8 +3822,8 @@ BEGIN
prs_afdeling_naam = rec.prs_afdeling_naam,
prs_afdeling_omschrijving = rec.prs_afdeling_omschrijving,
prs_kostenplaats_key = v_prs_kostenplaats_key
WHERE prs_afdeling_key = rec.prs_afdeling_key;
v_prs_afdeling_key := rec.prs_afdeling_key;
WHERE prs_afdeling_key = v_prs_afdeling_key;
-- v_prs_afdeling_key := rec.prs_afdeling_key;
END IF;
ykpn.set_kenmerk('PRS', 1, v_prs_afdeling_key, v_prs_afd_parent_key, 0);
@@ -3816,7 +3843,7 @@ BEGIN
END LOOP;
-- Legenda's bijwerken voor de thema's
INSERT INTO cad_legendawaarde (cad_legenda_key,
/* INSERT INTO cad_legendawaarde (cad_legenda_key,
cad_legendawaarde_value,
cad_legendawaarde_rgb,
cad_legendawaarde_omschr)
@@ -3868,7 +3895,7 @@ BEGIN
(SELECT cl.cad_legendawaarde_value
FROM cad_legendawaarde cl
WHERE cl.cad_legendawaarde_value = thv.waarde
AND cl.cad_legenda_key = 181);
AND cl.cad_legenda_key = 181); */
-- afdelingen verwijderen;
FOR rec IN c_del
@@ -3994,7 +4021,8 @@ AS
prs_kenmerk5 prs_budgethouder
FROM fac_imp_perslid
WHERE fac_import_key=p_import_key;
v_seq_of_columns VARCHAR(255);
v_count NUMBER;
@@ -4005,7 +4033,7 @@ BEGIN
-- de functie wordt tijdelijk gevuld met de key van het record. Puur om een waarde
-- erin te hebben staan.
UPDATE fac_imp_file SET fac_imp_file_line = REPLACE(fac_imp_file_line, 'NULL') WHERE fac_import_key = p_import_key;
v_seq_of_columns := '14;14;0;0;0;0;8;6;5;24;4;17;16;20;0;11;0;9;0;2;1;3;0;0;0;0;1;8;23;24;25;26;21;8;0;0;0;0;0;0;0;0;0;0;0;0';
v_seq_of_columns := '14;14;0;0;0;0;8;6;5;24;4;17;16;20;0;11;0;9;0;2;1;3;0;0;0;0;1;8;23;24;25;26;21;8;14;0;0;0;0;0;0;0;0;0;0;0';
prs.import_perslid(p_import_key, v_seq_of_columns, 'emp_cbl_number;emp_number;emp_ruis_id;prs_name_initials;prs_name_prefix;prs_name_last;emp_sup_name;emp_dep_code;emp_email;emp_active;emp_phone;emp_mobile;emp_sms_authentication;emp_loc_code;emp_date_termination;prs_name_partner_prefix;prs_name_partner_last;prs_umra_name_prefix;prs_umra_name_last;prs_name_last_pref;emp_dep_name;emp_fnc_code;emp_fnc_name;prs_name_call%');
@@ -4076,8 +4104,10 @@ BEGIN
LOOP
DELETE fac_imp_perslid
WHERE prs_perslid_oslogin = rec.prs_perslid_oslogin AND prs_perslid_nr <> rec.prs_perslid_nr;
END LOOP;
-- Mensen zonder werkplek zetten we onder een standaard locatie zodat hierop gezocht kan worden.
UPDATE fac_imp_perslid
SET alg_locatie_code = '00000',
@@ -4281,6 +4311,12 @@ BEGIN
WHERE prs_perslid_nr = rec.leidingg;
v_hint := 'Vul het kenmerk leidinggevende: ' || rec.prs_perslid_key || '-' || v_leidingg_key;
-- Er is een veld voor de verntw bij de persoon die gaan we ook zetten
--UPDATE prs_perslid
-- SET prs_perslid_key_verantw=v_leidingg_key
--WHERE prs_perlid_key=rec.prs_perslid_key
-- AND prs_perslid_verwijder IS NULL;
ykpn.set_kenmerk('PRS', 1160, rec.prs_perslid_key, v_leidingg_key, 0);
v_hint := 'Vul het kenmerk BHV: ' || rec.prs_perslid_key || '-' || rec.bhv;