CSUN#68556 Ondersteuning bij vervanging koppeling AS400
Aanpassingen gedaan voor betere logging en aansturing van RM/DM obv emailadres svn path=/Customer/trunk/; revision=71116
This commit is contained in:
628
CSUN/CSUN.sql
628
CSUN/CSUN.sql
@@ -8698,12 +8698,6 @@ IS
|
||||
v_error_hint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_count NUMBER (10);
|
||||
v_ongeldig NUMBER (1);
|
||||
v_count_update NUMBER (10);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_mld NUMBER (10);
|
||||
|
||||
v_locatie_key NUMBER (10);
|
||||
v_bud_key VARCHAR2 (255);
|
||||
@@ -8713,88 +8707,162 @@ IS
|
||||
v_afdeling_key NUMBER (10);
|
||||
v_tussenv VARCHAR2 (15);
|
||||
v_achternaam VARCHAR2 (60);
|
||||
v_email VARCHAR2 (255);
|
||||
|
||||
CURSOR c_account
|
||||
CURSOR c_rec
|
||||
IS
|
||||
WITH k AS (
|
||||
SELECT l.alg_locatie_key loc_key,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1940 THEN aog.alg_onrgoedkenmerk_waarde END) accountcode,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1941 THEN aog.alg_onrgoedkenmerk_waarde END) accountnaam,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1942 THEN aog.alg_onrgoedkenmerk_waarde END) project,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1943 THEN aog.alg_onrgoedkenmerk_waarde END) vervallen,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1951 THEN aog.alg_onrgoedkenmerk_waarde END) omschrijving,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1952 THEN aog.alg_onrgoedkenmerk_waarde END) adres,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1953 THEN aog.alg_onrgoedkenmerk_waarde END) postcode,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 1954 THEN aog.alg_onrgoedkenmerk_waarde END) woonplaats,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 2120 THEN aog.alg_onrgoedkenmerk_waarde END) vervaldatum,
|
||||
MAX (CASE WHEN aog.alg_kenmerk_key = 2141 THEN aog.alg_onrgoedkenmerk_waarde END) dm_mail
|
||||
FROM alg_locatie l
|
||||
JOIN alg_onrgoedkenmerk aog
|
||||
ON aog.alg_onrgoed_key = l.alg_locatie_key
|
||||
AND aog.alg_onrgoed_niveau = 'L'
|
||||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL
|
||||
WHERE l.alg_locatie_verwijder IS NULL -- alleen niet-verwijderde locaties
|
||||
GROUP BY l.alg_locatie_key
|
||||
HAVING MAX (
|
||||
CASE
|
||||
WHEN aog.alg_kenmerk_key = 1942
|
||||
THEN aog.alg_onrgoedkenmerk_waarde
|
||||
END) IS NOT NULL -- project (1942) m<>et gevuld zijn
|
||||
)
|
||||
SELECT k.loc_key,
|
||||
k.accountcode,
|
||||
k.accountnaam,
|
||||
k.project,
|
||||
k.vervallen,
|
||||
k.omschrijving,
|
||||
k.adres,
|
||||
k.postcode,
|
||||
k.woonplaats,
|
||||
k.vervaldatum,
|
||||
LOWER (k.dm_mail) dm_mail,
|
||||
-- district op basis van dm_mail
|
||||
(SELECT MAX (d.alg_district_key)
|
||||
FROM prs_perslid p,
|
||||
alg_onrgoedkenmerk aogdm,
|
||||
alg_district d
|
||||
WHERE LOWER (p.prs_perslid_email) = LOWER (k.dm_mail)
|
||||
AND aogdm.alg_kenmerk_key = 1021
|
||||
AND p.prs_perslid_key =
|
||||
fac.safe_to_number (
|
||||
aogdm.alg_onrgoedkenmerk_waarde)
|
||||
AND aogdm.alg_onrgoed_key = d.alg_district_key
|
||||
AND d.alg_district_verwijder IS NULL
|
||||
AND aogdm.alg_onrgoedkenmerk_verwijder IS NULL)
|
||||
AS district_key,
|
||||
-- BUD op district
|
||||
(SELECT aogb.alg_onrgoedkenmerk_waarde
|
||||
FROM alg_onrgoedkenmerk aogb
|
||||
WHERE aogb.alg_onrgoed_key =
|
||||
(SELECT MAX (d2.alg_district_key)
|
||||
FROM prs_perslid p2,
|
||||
alg_onrgoedkenmerk aogdm2,
|
||||
alg_district d2
|
||||
WHERE LOWER (p2.prs_perslid_email) =
|
||||
LOWER (k.dm_mail)
|
||||
AND aogdm2.alg_kenmerk_key = 1021
|
||||
AND p2.prs_perslid_key =
|
||||
fac.safe_to_number (
|
||||
aogdm2.alg_onrgoedkenmerk_waarde)
|
||||
AND aogdm2.alg_onrgoed_key =
|
||||
d2.alg_district_key
|
||||
AND d2.alg_district_verwijder IS NULL
|
||||
AND aogdm2.alg_onrgoedkenmerk_verwijder
|
||||
IS NULL)
|
||||
AND aogb.alg_kenmerk_key = 1060
|
||||
AND aogb.alg_onrgoed_niveau = 'L'
|
||||
AND aogb.alg_onrgoedkenmerk_verwijder IS NULL)
|
||||
AS bud_key,
|
||||
-- account_key uit fac_usrdata (kan NULL zijn; dan maken we hem aan)
|
||||
(SELECT ud.fac_usrdata_key
|
||||
FROM fac_usrdata ud
|
||||
WHERE ud.fac_usrtab_key = 1
|
||||
AND ud.fac_usrdata_code = k.accountcode
|
||||
AND ud.fac_usrdata_verwijder IS NULL)
|
||||
AS account_key
|
||||
FROM k
|
||||
WHERE k.accountcode IS NOT NULL
|
||||
AND k.project IS NOT NULL
|
||||
AND COALESCE (UPPER (k.vervallen), 'N') <> 'J'
|
||||
AND k.dm_mail IS NOT NULL;
|
||||
-- eventueel tijdelijk filteren op <20><>n project:
|
||||
-- AND k.project = '2019104';
|
||||
|
||||
CURSOR c_verv
|
||||
IS
|
||||
WITH k AS (
|
||||
SELECT aog.alg_onrgoed_key loc_key,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1940 THEN aog.alg_onrgoedkenmerk_waarde END) accountcode,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1941 THEN aog.alg_onrgoedkenmerk_waarde END) accountnaam,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1942 THEN aog.alg_onrgoedkenmerk_waarde END) project,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1943 THEN aog.alg_onrgoedkenmerk_waarde END) vervallen
|
||||
MAX(
|
||||
CASE
|
||||
WHEN aog.alg_kenmerk_key = 1942
|
||||
THEN aog.alg_onrgoedkenmerk_waarde
|
||||
END) AS project,
|
||||
MAX(
|
||||
CASE
|
||||
WHEN aog.alg_kenmerk_key = 1943
|
||||
THEN aog.alg_onrgoedkenmerk_waarde
|
||||
END) AS vervallen_flag
|
||||
FROM alg_onrgoedkenmerk aog
|
||||
WHERE aog.alg_onrgoed_niveau = 'L'
|
||||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL
|
||||
GROUP BY aog.alg_onrgoed_key
|
||||
)
|
||||
SELECT DISTINCT accountcode, accountnaam
|
||||
FROM k
|
||||
WHERE accountcode IS NOT NULL
|
||||
AND project IS NOT NULL
|
||||
AND COALESCE (UPPER (vervallen), 'N') <> 'J';
|
||||
SELECT l.alg_locatie_key,
|
||||
l.alg_locatie_code
|
||||
FROM alg_locatie l
|
||||
JOIN k
|
||||
ON k.loc_key = l.alg_locatie_key
|
||||
WHERE k.project IS NOT NULL -- 1942 moet bestaan
|
||||
AND UPPER (k.vervallen_flag) = 'J' -- 1943 = 'J'
|
||||
AND l.alg_locatie_vervaldatum IS NULL -- nog niet vervallen
|
||||
AND l.alg_locatie_verwijder IS NULL; -- niet verwijderd
|
||||
|
||||
CURSOR c_district (
|
||||
c_accountcode IN VARCHAR2)
|
||||
CURSOR c_unverv
|
||||
IS
|
||||
WITH k AS (
|
||||
SELECT aog.alg_onrgoed_key loc_key,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1940 THEN aog.alg_onrgoedkenmerk_waarde END) accountcode,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1942 THEN aog.alg_onrgoedkenmerk_waarde END) project,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1943 THEN aog.alg_onrgoedkenmerk_waarde END) vervallen,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1946 THEN aog.alg_onrgoedkenmerk_waarde END) voornaam,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1947 THEN aog.alg_onrgoedkenmerk_waarde END) voorletters,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1948 THEN aog.alg_onrgoedkenmerk_waarde END) tussenvoegsels,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1949 THEN aog.alg_onrgoedkenmerk_waarde END) achternaam,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 2141 THEN aog.alg_onrgoedkenmerk_waarde END) dm_mail
|
||||
MAX(
|
||||
CASE
|
||||
WHEN aog.alg_kenmerk_key = 1942
|
||||
THEN aog.alg_onrgoedkenmerk_waarde
|
||||
END) AS project,
|
||||
MAX(
|
||||
CASE
|
||||
WHEN aog.alg_kenmerk_key = 1943
|
||||
THEN aog.alg_onrgoedkenmerk_waarde
|
||||
END) AS vervallen_flag
|
||||
FROM alg_onrgoedkenmerk aog
|
||||
WHERE aog.alg_onrgoed_niveau = 'L'
|
||||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL
|
||||
GROUP BY aog.alg_onrgoed_key
|
||||
)
|
||||
SELECT DISTINCT
|
||||
LOWER (dm_mail) dm,
|
||||
voornaam,
|
||||
voorletters,
|
||||
tussenvoegsels,
|
||||
achternaam
|
||||
FROM k
|
||||
WHERE accountcode = c_accountcode
|
||||
AND project IS NOT NULL
|
||||
AND COALESCE (UPPER (vervallen), 'N') <> 'J'
|
||||
AND dm_mail IS NOT NULL;
|
||||
|
||||
CURSOR c (
|
||||
c_accountcode IN VARCHAR2,
|
||||
c_dm IN VARCHAR2)
|
||||
IS
|
||||
WITH k AS (
|
||||
SELECT aog.alg_onrgoed_key loc_key,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1940 THEN aog.alg_onrgoedkenmerk_waarde END) accountcode,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1942 THEN aog.alg_onrgoedkenmerk_waarde END) project,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1943 THEN aog.alg_onrgoedkenmerk_waarde END) vervallen,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1951 THEN aog.alg_onrgoedkenmerk_waarde END) omschrijving,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1952 THEN aog.alg_onrgoedkenmerk_waarde END) adres,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1953 THEN aog.alg_onrgoedkenmerk_waarde END) postcode,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1954 THEN aog.alg_onrgoedkenmerk_waarde END) woonplaats,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 2120 THEN aog.alg_onrgoedkenmerk_waarde END) vervaldatum,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 2141 THEN aog.alg_onrgoedkenmerk_waarde END) dm_mail
|
||||
FROM alg_onrgoedkenmerk aog
|
||||
WHERE aog.alg_onrgoed_niveau = 'L'
|
||||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL
|
||||
GROUP BY aog.alg_onrgoed_key
|
||||
)
|
||||
SELECT loc_key alg_locatie_key,
|
||||
project,
|
||||
omschrijving,
|
||||
adres,
|
||||
postcode,
|
||||
woonplaats,
|
||||
vervaldatum
|
||||
FROM k
|
||||
WHERE accountcode = c_accountcode
|
||||
AND project IS NOT NULL
|
||||
AND LOWER (dm_mail) = LOWER (c_dm)
|
||||
AND COALESCE (UPPER (vervallen), 'N') <> 'J';
|
||||
SELECT l.alg_locatie_key,
|
||||
l.alg_locatie_code
|
||||
FROM alg_locatie l
|
||||
JOIN k
|
||||
ON k.loc_key = l.alg_locatie_key
|
||||
WHERE k.project IS NOT NULL -- 1942 moet gevuld zijn
|
||||
AND ( k.vervallen_flag IS NULL -- 1943 niet meer 'J'
|
||||
OR UPPER (k.vervallen_flag) <> 'J')
|
||||
AND ( l.alg_locatie_vervaldatum IS NOT NULL -- alleen als hij nu w<>l vervallen staat
|
||||
OR EXISTS (
|
||||
SELECT 1
|
||||
FROM alg_onrgoedkenmerk a1160
|
||||
WHERE a1160.alg_onrgoed_key = l.alg_locatie_key
|
||||
AND a1160.alg_kenmerk_key = 1160
|
||||
AND a1160.alg_onrgoed_niveau = 'L'
|
||||
AND a1160.alg_onrgoedkenmerk_verwijder IS NULL));
|
||||
|
||||
CURSOR c_del
|
||||
IS
|
||||
@@ -8839,7 +8907,7 @@ IS
|
||||
SELECT aog.alg_onrgoed_key loc_key,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1942 THEN aog.alg_onrgoedkenmerk_waarde END) project,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1944 THEN aog.alg_onrgoedkenmerk_waarde END) bu,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1955 THEN aog.alg_onrgoedkenmerk_waarde END) rayonl_persnr,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 2140 THEN aog.alg_onrgoedkenmerk_waarde END) rayonl_mail,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1956 THEN aog.alg_onrgoedkenmerk_waarde END) rayonl_naam
|
||||
FROM alg_onrgoedkenmerk aog
|
||||
WHERE aog.alg_onrgoed_niveau = 'L'
|
||||
@@ -8847,26 +8915,21 @@ IS
|
||||
GROUP BY aog.alg_onrgoed_key
|
||||
)
|
||||
SELECT DISTINCT
|
||||
bu,
|
||||
rayonl_persnr,
|
||||
TRIM (SUBSTR (rayonl_naam, 1, INSTR (rayonl_naam, ' ')))
|
||||
voornaam,
|
||||
TRIM (
|
||||
SUBSTR (rayonl_naam,
|
||||
INSTR (rayonl_naam, ' '),
|
||||
60))
|
||||
achternaam,
|
||||
rayonl_naam
|
||||
k.bu,
|
||||
TRIM(SUBSTR(k.rayonl_naam, 1, INSTR(k.rayonl_naam, ' '))) AS voornaam,
|
||||
TRIM(SUBSTR(k.rayonl_naam, INSTR(k.rayonl_naam, ' '), 60)) AS achternaam,
|
||||
LOWER(k.rayonl_mail) AS rayonl_mail
|
||||
FROM k
|
||||
WHERE rayonl_naam IS NOT NULL
|
||||
AND project IS NOT NULL;
|
||||
WHERE k.project IS NOT NULL
|
||||
AND k.rayonl_naam IS NOT NULL
|
||||
AND k.rayonl_mail IS NOT NULL;
|
||||
|
||||
CURSOR c_rayon_wp
|
||||
IS
|
||||
WITH k AS (
|
||||
SELECT aog.alg_onrgoed_key loc_key,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1942 THEN aog.alg_onrgoedkenmerk_waarde END) project,
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 1955 THEN aog.alg_onrgoedkenmerk_waarde END) rayonl_persnr
|
||||
MAX(CASE WHEN aog.alg_kenmerk_key = 2140 THEN aog.alg_onrgoedkenmerk_waarde END) rayonl_mail
|
||||
FROM alg_onrgoedkenmerk aog
|
||||
WHERE aog.alg_onrgoed_niveau = 'L'
|
||||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL
|
||||
@@ -8880,131 +8943,62 @@ IS
|
||||
k
|
||||
WHERE k.loc_key = l.alg_locatie_key
|
||||
AND k.project IS NOT NULL
|
||||
AND k.rayonl_persnr IS NOT NULL
|
||||
AND (SELECT pk.prs_kenmerklink_waarde
|
||||
FROM prs_kenmerklink pk
|
||||
WHERE pk.prs_kenmerklink_verwijder IS NULL
|
||||
AND pk.prs_kenmerk_key = 1120
|
||||
AND p.prs_perslid_key = pk.prs_link_key
|
||||
AND pk.prs_kenmerklink_niveau = 'P') LIKE
|
||||
'%' || k.rayonl_persnr || '%'
|
||||
AND l.alg_locatie_key = rg.alg_locatie_key
|
||||
AND rg.alg_ruimte_nr = '-'
|
||||
AND k.rayonl_mail IS NOT NULL
|
||||
AND LOWER(p.prs_perslid_email) = LOWER(k.rayonl_mail)
|
||||
AND p.prs_srtperslid_key = 50
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND l.alg_locatie_key = rg.alg_locatie_key
|
||||
AND rg.alg_ruimte_nr = '-'
|
||||
AND NOT EXISTS
|
||||
(SELECT *
|
||||
(SELECT 1
|
||||
FROM prs_v_perslidwerkplek_gegevens pwpg
|
||||
WHERE pwpg.prs_perslid_key = p.prs_perslid_key
|
||||
AND pwpg.alg_locatie_key =
|
||||
l.alg_locatie_key);
|
||||
BEGIN
|
||||
v_error_hint := 'Start met doorlopen accounts';
|
||||
|
||||
FOR rec_a IN c_account
|
||||
BEGIN
|
||||
v_error_hint := 'Start met bijwerken locaties';
|
||||
|
||||
FOR r IN c_rec
|
||||
LOOP
|
||||
BEGIN
|
||||
v_error_hint :=
|
||||
'Ophalen data voor accountcode: ' || rec_a.accountcode;
|
||||
v_locatie_key := r.loc_key;
|
||||
v_district_key := r.district_key;
|
||||
v_bud_key := r.bud_key;
|
||||
v_account_key := r.account_key;
|
||||
|
||||
BEGIN
|
||||
SELECT fac_usrdata_key
|
||||
INTO v_account_key
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrtab_key = 1
|
||||
AND fac_usrdata_code = rec_a.accountcode
|
||||
AND fac_usrdata_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
-- accountkey aanmaken als hij nog niet bestaat
|
||||
IF v_account_key IS NULL
|
||||
THEN
|
||||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||||
fac_usrdata_code,
|
||||
fac_usrdata_omschr)
|
||||
VALUES (1, rec_a.accountcode, rec_a.accountnaam)
|
||||
VALUES (1, r.accountcode, r.accountnaam)
|
||||
RETURNING fac_usrdata_key
|
||||
INTO v_account_key;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
FOR rec_d IN c_district (rec_a.accountcode)
|
||||
LOOP
|
||||
BEGIN
|
||||
v_error_hint :=
|
||||
'Ophalen data voor dm: '
|
||||
|| rec_d.dm;
|
||||
|
||||
v_district_key := NULL;
|
||||
|
||||
BEGIN
|
||||
SELECT alg_onrgoed_key
|
||||
INTO v_district_key
|
||||
FROM prs_perslid p,
|
||||
alg_onrgoedkenmerk aog,
|
||||
alg_district d
|
||||
WHERE LOWER (p.prs_perslid_email) = rec_d.dm
|
||||
AND aog.alg_kenmerk_key = 1021
|
||||
AND p.prs_perslid_key =
|
||||
fac.safe_to_number (
|
||||
aog.alg_onrgoedkenmerk_waarde)
|
||||
AND aog.alg_onrgoed_key = d.alg_district_key
|
||||
AND d.alg_district_verwijder IS NULL
|
||||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
IF v_district_key IS NULL
|
||||
THEN
|
||||
fac.imp_writelog (
|
||||
NULL,
|
||||
'E',
|
||||
'Import locaties afgebroken, distrinctmanager niet gevonden ( dm_mail:'
|
||||
|| rec_d.dm
|
||||
|| '- account:'
|
||||
|| rec_a.accountcode
|
||||
|| '-'
|
||||
|| rec_a.accountnaam
|
||||
|| ')',
|
||||
fac.writelog ('CSUN_UPDATE_AFASPROJECT',
|
||||
'W',
|
||||
r.project
|
||||
|| 'DM niet gevonden voor '
|
||||
|| r.dm_mail
|
||||
|| ' account '
|
||||
|| r.accountcode
|
||||
|| ' / project '
|
||||
|| r.project,
|
||||
v_error_hint);
|
||||
END;
|
||||
|
||||
IF v_district_key IS NOT NULL
|
||||
THEN
|
||||
FOR rec IN c (rec_a.accountcode, rec_d.dm)
|
||||
LOOP
|
||||
BEGIN
|
||||
v_locatie_key := rec.alg_locatie_key;
|
||||
|
||||
v_error_hint :=
|
||||
'Bepalen bb referentie: ' || rec_d.dm;
|
||||
|
||||
BEGIN
|
||||
SELECT alg_onrgoedkenmerk_waarde
|
||||
INTO v_bud_key
|
||||
FROM alg_onrgoedkenmerk aogb
|
||||
WHERE aogb.alg_onrgoed_key =
|
||||
v_district_key
|
||||
AND aogb.alg_kenmerk_key = 1060
|
||||
AND aogb.alg_onrgoed_niveau = 'L'
|
||||
AND aogb.alg_onrgoedkenmerk_verwijder
|
||||
IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_bud_key := NULL;
|
||||
END;
|
||||
|
||||
IF v_locatie_key IS NOT NULL
|
||||
THEN
|
||||
ELSE
|
||||
UPDATE alg_locatie
|
||||
SET alg_locatie_omschrijving =
|
||||
SUBSTR (rec.omschrijving, 1, 50),
|
||||
SUBSTR (r.omschrijving, 1, 50),
|
||||
alg_district_key = v_district_key,
|
||||
alg_locatie_adres = rec.adres,
|
||||
alg_locatie_postcode = rec.postcode,
|
||||
alg_locatie_plaats = rec.woonplaats,
|
||||
alg_locatie_vervaldatum = NULL
|
||||
WHERE alg_locatie_key = v_locatie_key;
|
||||
|
||||
-- gebouwen op deze locatie ook weer activeren
|
||||
UPDATE alg_gebouw
|
||||
SET alg_gebouw_vervaldatum = NULL
|
||||
alg_locatie_adres = r.adres,
|
||||
alg_locatie_postcode = r.postcode,
|
||||
alg_locatie_plaats = r.woonplaats
|
||||
WHERE alg_locatie_key = v_locatie_key;
|
||||
|
||||
csun_set_kenmerk ('ALG',
|
||||
@@ -9020,170 +9014,200 @@ BEGIN
|
||||
csun_set_kenmerk ('ALG',
|
||||
1040,
|
||||
v_locatie_key,
|
||||
rec.project,
|
||||
r.project,
|
||||
0);
|
||||
csun_set_kenmerk ('ALG',
|
||||
1160,
|
||||
v_locatie_key,
|
||||
rec.vervaldatum,
|
||||
r.vervaldatum,
|
||||
0);
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg :=
|
||||
'(ORACLE error ' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (
|
||||
NULL,
|
||||
'E',
|
||||
'Import locaties afgebroken ( dm_mail:'
|
||||
|| rec_d.dm
|
||||
|| '- account:'
|
||||
|| rec_a.accountcode
|
||||
|| '-'
|
||||
|| rec_a.accountnaam
|
||||
|| ' Projectnr: '
|
||||
|| rec.project
|
||||
|| '):'
|
||||
|| v_errormsg,
|
||||
v_error_hint);
|
||||
END;
|
||||
END LOOP;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (
|
||||
NULL,
|
||||
|
||||
fac.writelog ('CSUN_UPDATE_AFASPROJECT',
|
||||
'E',
|
||||
'Import locaties afgebroken ( dm_mail:'
|
||||
|| rec_d.dm
|
||||
|| '- account:'
|
||||
|| rec_a.accountcode
|
||||
|| '-'
|
||||
|| rec_a.accountnaam
|
||||
|| '):'
|
||||
|| v_errormsg,
|
||||
v_error_hint);
|
||||
END;
|
||||
END LOOP;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (
|
||||
NULL,
|
||||
'E',
|
||||
'Fout tijdens verwerking account ('
|
||||
|| rec_a.accountcode
|
||||
|| '):'
|
||||
r.project
|
||||
|| 'Fout bij bijwerken locatie '
|
||||
|| v_locatie_key
|
||||
|| ' '
|
||||
|| v_errormsg,
|
||||
v_error_hint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec_del IN c_del
|
||||
v_error_hint := 'Start met vervallen locaties';
|
||||
|
||||
FOR r_verv IN c_verv
|
||||
LOOP
|
||||
BEGIN
|
||||
v_count_mld := rec_del.count_mld;
|
||||
v_error_hint :=
|
||||
'Vervallen locatie obv 1943=J, locatie: '
|
||||
|| r_verv.alg_locatie_code;
|
||||
|
||||
IF v_count_mld = 0
|
||||
UPDATE alg_locatie
|
||||
SET alg_locatie_vervaldatum = SYSDATE
|
||||
WHERE alg_locatie_key = r_verv.alg_locatie_key;
|
||||
|
||||
csun_set_kenmerk ('ALG',
|
||||
1160,
|
||||
r_verv.alg_locatie_key,
|
||||
TO_CHAR (SYSDATE, 'dd-mm-yyyy'),
|
||||
0);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
|
||||
fac.writelog ('CSUN_UPDATE_AFASPROJECT',
|
||||
'E',
|
||||
r_verv.alg_locatie_code
|
||||
|| 'Fout bij vervallen zetten locatie '
|
||||
|| v_locatie_key
|
||||
|| ' '
|
||||
|| v_errormsg,
|
||||
v_error_hint);
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- Vervallen terugdraaien als 1943 niet meer 'J' is
|
||||
FOR r_unverv IN c_unverv
|
||||
LOOP
|
||||
BEGIN
|
||||
v_error_hint :=
|
||||
'Vervallen ongedaan maken obv 1943<>J, locatie: '
|
||||
|| r_unverv.alg_locatie_code;
|
||||
|
||||
-- vervaldatum op locatie leegmaken
|
||||
UPDATE alg_locatie
|
||||
SET alg_locatie_vervaldatum = NULL
|
||||
WHERE alg_locatie_key = r_unverv.alg_locatie_key;
|
||||
|
||||
-- kenmerk 1160 (vervaldatum) leegmaken
|
||||
csun_set_kenmerk ('ALG',
|
||||
1160,
|
||||
r_unverv.alg_locatie_key,
|
||||
NULL,
|
||||
0);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
|
||||
fac.writelog ('CSUN_UPDATE_AFASPROJECT',
|
||||
'E',
|
||||
r_unverv.alg_locatie_code
|
||||
|| 'Fout bij vervallen ongedaan maken locatie '
|
||||
|| v_locatie_key
|
||||
|| ' '
|
||||
|| v_errormsg,
|
||||
v_error_hint);
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
v_error_hint := 'Start met verwijderen locaties';
|
||||
|
||||
FOR r_del IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
IF r_del.count_mld = 0
|
||||
THEN
|
||||
v_error_hint :=
|
||||
'Verwijderen gebouwen - Locatie_code: '
|
||||
|| rec_del.alg_locatie_code;
|
||||
|| r_del.alg_locatie_code;
|
||||
|
||||
UPDATE alg_gebouw
|
||||
SET alg_gebouw_verwijder = SYSDATE
|
||||
WHERE alg_gebouw_verwijder IS NULL
|
||||
AND alg_locatie_key = rec_del.alg_locatie_key;
|
||||
AND alg_locatie_key = r_del.alg_locatie_key;
|
||||
|
||||
v_error_hint :=
|
||||
'Verwijderen locatie - Locatie_code: '
|
||||
|| rec_del.alg_locatie_code;
|
||||
|| r_del.alg_locatie_code;
|
||||
|
||||
UPDATE alg_locatie
|
||||
SET alg_locatie_verwijder = SYSDATE
|
||||
WHERE alg_locatie_key = rec_del.alg_locatie_key;
|
||||
WHERE alg_locatie_key = r_del.alg_locatie_key;
|
||||
ELSE
|
||||
v_error_hint :=
|
||||
'Vervallen gebouwen - Locatie_code: '
|
||||
|| rec_del.alg_locatie_code;
|
||||
|| r_del.alg_locatie_code;
|
||||
|
||||
UPDATE alg_gebouw
|
||||
SET alg_gebouw_vervaldatum = SYSDATE
|
||||
WHERE alg_gebouw_vervaldatum IS NULL
|
||||
AND alg_locatie_key = rec_del.alg_locatie_key;
|
||||
AND alg_locatie_key = r_del.alg_locatie_key;
|
||||
|
||||
v_error_hint :=
|
||||
'Vervallen locatie - Locatie_code: '
|
||||
|| rec_del.alg_locatie_code;
|
||||
|| r_del.alg_locatie_code;
|
||||
|
||||
UPDATE alg_locatie
|
||||
SET alg_locatie_vervaldatum = SYSDATE
|
||||
WHERE alg_locatie_key = rec_del.alg_locatie_key;
|
||||
WHERE alg_locatie_key = r_del.alg_locatie_key;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (NULL,
|
||||
|
||||
fac.writelog ('CSUN_UPDATE_AFASPROJECT',
|
||||
'E',
|
||||
'Verwijderen locaties:' || v_errormsg,
|
||||
r_del.alg_locatie_code
|
||||
|| 'Fout bij verwijderen locatie '
|
||||
|| v_locatie_key
|
||||
|| ' '
|
||||
|| v_errormsg,
|
||||
v_error_hint);
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec_ray IN c_rayonl
|
||||
LOOP
|
||||
BEGIN
|
||||
-- 1) Bepaal eerst of de persoon al bestaat op basis van e-mail
|
||||
v_perslid_key := NULL;
|
||||
v_email := rec_ray.rayonl_mail; -- al lowercase in cursor
|
||||
|
||||
SELECT MAX (p.prs_perslid_key)
|
||||
BEGIN
|
||||
SELECT MAX(p.prs_perslid_key)
|
||||
INTO v_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND (SELECT pk.prs_kenmerklink_waarde
|
||||
FROM prs_kenmerklink pk
|
||||
WHERE pk.prs_kenmerklink_verwijder IS NULL
|
||||
AND pk.prs_kenmerk_key = 1120
|
||||
AND p.prs_perslid_key = pk.prs_link_key
|
||||
AND pk.prs_kenmerklink_niveau = 'P') LIKE
|
||||
'%' || rec_ray.rayonl_persnr || '%';
|
||||
AND LOWER(p.prs_perslid_email) = v_email;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_perslid_key := NULL;
|
||||
END;
|
||||
|
||||
-- 2) Zo niet: nieuwe rayonleider aanmaken
|
||||
IF v_perslid_key IS NULL
|
||||
THEN
|
||||
INSERT INTO prs_perslid (prs_srtperslid_key,
|
||||
prs_afdeling_key,
|
||||
prs_perslid_naam,
|
||||
prs_perslid_voornaam)
|
||||
VALUES (50, 1, rec_ray.achternaam, rec_ray.voornaam)
|
||||
prs_perslid_voornaam,
|
||||
prs_perslid_email)
|
||||
VALUES (50,
|
||||
1,
|
||||
rec_ray.achternaam,
|
||||
rec_ray.voornaam,
|
||||
v_email)
|
||||
RETURNING prs_perslid_key
|
||||
INTO v_perslid_key;
|
||||
|
||||
IF v_perslid_key IS NOT NULL
|
||||
THEN
|
||||
csun_set_kenmerk ('PRS',
|
||||
1120,
|
||||
v_perslid_key,
|
||||
rec_ray.rayonl_persnr,
|
||||
0);
|
||||
|
||||
fac.trackaction ('PRSUPD',
|
||||
v_perslid_key,
|
||||
4,
|
||||
NULL,
|
||||
'Kostenplaats CSU -> '
|
||||
|| rec_ray.rayonl_persnr);
|
||||
END IF;
|
||||
|
||||
-- 3) Naam en tussenvoegsels opschonen (zoals je al had)
|
||||
v_achternaam := rec_ray.achternaam;
|
||||
v_tussenv := '';
|
||||
|
||||
@@ -9221,10 +9245,10 @@ BEGIN
|
||||
SET prs_perslid_naam = v_achternaam,
|
||||
prs_perslid_tussenvoegsel = v_tussenv
|
||||
WHERE prs_perslid_key = v_perslid_key;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
-- 4) Afdeling op basis van BU (oude logica, maar nu met rec_ray.bu)
|
||||
SELECT prs_afdeling_key
|
||||
INTO v_afdeling_key
|
||||
FROM prs_afdeling a,
|
||||
@@ -9240,15 +9264,20 @@ BEGIN
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
fac.imp_writelog (
|
||||
NULL,
|
||||
|
||||
fac.writelog ('CSUN_UPDATE_AFASPROJECT',
|
||||
'E',
|
||||
'Afdeling van Rayonleider kan niet gevonden worden ( Rayonleider:'
|
||||
rec_ray.rayonl_mail
|
||||
|| 'Afdeling van Rayonleider kan niet gevonden worden (Rayonleider: '
|
||||
|| rec_ray.voornaam
|
||||
|| ' - '
|
||||
|| ' '
|
||||
|| rec_ray.achternaam
|
||||
|| ')',
|
||||
'');
|
||||
|| ', mail: '
|
||||
|| v_email
|
||||
|| ')'
|
||||
|| v_errormsg,
|
||||
v_error_hint);
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
@@ -9260,7 +9289,7 @@ BEGIN
|
||||
1);
|
||||
END LOOP;
|
||||
|
||||
DELETE prs_perslidwerkplek
|
||||
DELETE prs_perslidwerkplek
|
||||
WHERE prs_perslidwerkplek_key IN
|
||||
(SELECT pwpg.prs_perslidwerkplek_key
|
||||
FROM prs_v_perslidwerkplek_gegevens pwpg,
|
||||
@@ -9274,7 +9303,7 @@ BEGIN
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM alg_onrgoedkenmerk a_proj,
|
||||
alg_onrgoedkenmerk a_ray
|
||||
alg_onrgoedkenmerk a_mail
|
||||
WHERE a_proj.alg_onrgoed_key =
|
||||
l.alg_locatie_key
|
||||
AND a_proj.alg_onrgoed_niveau = 'L'
|
||||
@@ -9283,24 +9312,16 @@ BEGIN
|
||||
AND a_proj.alg_kenmerk_key = 1942
|
||||
AND a_proj.alg_onrgoedkenmerk_waarde
|
||||
IS NOT NULL
|
||||
AND a_ray.alg_onrgoed_key =
|
||||
AND a_mail.alg_onrgoed_key =
|
||||
a_proj.alg_onrgoed_key
|
||||
AND a_ray.alg_onrgoed_niveau = 'L'
|
||||
AND a_ray.alg_onrgoedkenmerk_verwijder
|
||||
AND a_mail.alg_onrgoed_niveau = 'L'
|
||||
AND a_mail.alg_onrgoedkenmerk_verwijder
|
||||
IS NULL
|
||||
AND a_ray.alg_kenmerk_key = 1955
|
||||
AND (SELECT pk.prs_kenmerklink_waarde
|
||||
FROM prs_kenmerklink pk
|
||||
WHERE pk.prs_kenmerklink_verwijder
|
||||
IS NULL
|
||||
AND pk.prs_kenmerk_key = 1120
|
||||
AND p.prs_perslid_key =
|
||||
pk.prs_link_key
|
||||
AND pk.prs_kenmerklink_niveau =
|
||||
'P') LIKE
|
||||
'%'
|
||||
|| a_ray.alg_onrgoedkenmerk_waarde
|
||||
|| '%'));
|
||||
AND a_mail.alg_kenmerk_key = 2140
|
||||
AND a_mail.alg_onrgoedkenmerk_waarde
|
||||
IS NOT NULL
|
||||
AND LOWER(a_mail.alg_onrgoedkenmerk_waarde) =
|
||||
LOWER(p.prs_perslid_email)));
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
@@ -9308,11 +9329,12 @@ EXCEPTION
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (
|
||||
NULL,
|
||||
|
||||
fac.writelog ('CSUN_UPDATE_AFASPROJECT',
|
||||
'E',
|
||||
'Fout tijdens importeren van onroerend goed (locatie en gebouw) ',
|
||||
v_errormsg);
|
||||
'Fout tijdens csun_update_afasproject: ',
|
||||
oracle_err_mes);
|
||||
|
||||
END csun_update_afasproject;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user