PCHX#75973 -- Herimplementatie PCH

svn path=/Customer/trunk/; revision=63212
This commit is contained in:
Arthur Egberink
2024-01-17 14:34:30 +00:00
parent 6765ed0567
commit dc06fbf5aa

View File

@@ -780,15 +780,6 @@ IS
AND prs_perslid_wm IS NOT NULL
GROUP BY UPPER (prs_perslid_organisation), UPPER (prs_perslid_wm);
-- Met PCHD#60549 hoeven afdelingen niet meer te worden bijgevoegd.
-- --Bepalen alle afdeling omschrijvingen in het import bestand.
-- CURSOR cdep
-- IS
-- SELECT UPPER(prs_afdeling_naam) prs_afdeling_naam, UPPER (prs_perslid_organisation) prs_perslid_organisation, UPPER (prs_perslid_wm) prs_perslid_wm
-- FROM pchd_imp_prs
-- WHERE prs_perslid_organisation IS NOT NULL AND prs_perslid_wm IS NOT NULL AND prs_afdeling_naam IS NOT NULL
-- GROUP BY UPPER(prs_afdeling_naam), UPPER (prs_perslid_organisation), UPPER (prs_perslid_wm);
CURSOR cperslid
IS
SELECT * FROM pchd_imp_prs;
@@ -1102,99 +1093,6 @@ BEGIN
v_count_tot := 0;
v_count_error := 0;
-- Met PCHD#60549 hoeven afdelingen niet meer te worden bijgevoegd.
-- Toevoegen afdeling
-- FOR recdep IN cdep
-- LOOP
-- BEGIN
-- v_count_tot := v_count_tot + 1;
-- v_aanduiding := recdep.prs_afdeling_naam || ' - ' || recdep.prs_perslid_organisation || ' - ' || recdep.prs_perslid_wm || ' - ';
-- v_errorhint := 'Fout bij bepalen afdeling';
--
-- -- Kijken of de waarde uit de import al voorkomt. Er wordt gecontroleerd op unieke voorkomende afdelingomschrijvingen.
-- -- ??De import is er dus niet op toegerust om meerdere afdelingen te hebben met zelfde omschrijving maar ondere verschillende moeder-afdelingen.
-- v_errorhint := 'Zoek bovenliggende afdeling';
-- SELECT prs_afdeling_key, prs_kostenplaats_key
-- INTO v_afdeling_parentkey, v_kostenplaats_key
-- FROM prs_afdeling pa, prs_bedrijf pb
-- WHERE UPPER (pa.prs_afdeling_omschrijving) = UPPER (recdep.prs_perslid_organisation)
-- AND pa.prs_afdeling_verwijder IS NULL
-- AND pa.prs_bedrijf_key = pb.prs_bedrijf_key
-- AND pb.prs_bedrijf_naam = recdep.prs_perslid_wm;
--
-- SELECT COUNT (*), MAX(prs_afdeling_key)
-- INTO v_count, v_afdeling_key
-- FROM prs_afdeling
-- WHERE UPPER (prs_afdeling_omschrijving) =
-- UPPER (recdep.prs_afdeling_naam)
-- AND prs_afdeling_parentkey = v_afdeling_parentkey
-- AND prs_afdeling_verwijder IS NULL;
--
-- IF (v_count = 0)
-- THEN
-- v_errorhint := 'Fout bij toevoegen afdeling';
-- SELECT prs_s_prs_afdeling_key.nextval
-- INTO v_afdeling_key
-- FROM DUAL;
--
-- INSERT INTO prs_afdeling
-- (prs_afdeling_parentkey,
-- prs_afdeling_key,
-- prs_afdeling_naam,
-- prs_kostenplaats_key,
-- prs_afdeling_omschrijving
-- )
-- VALUES (v_afdeling_parentkey,
-- v_afdeling_key,
-- recdep.prs_perslid_wm || v_afdeling_key,
-- v_kostenplaats_key,
-- recdep.prs_afdeling_naam
-- );
-- ELSIF v_count = 1
-- THEN
-- UPDATE prs_afdeling
-- SET prs_kostenplaats_key = v_kostenplaats_key
-- WHERE prs_afdeling_key = v_afdeling_key;
-- END IF;
-- COMMIT;
-- EXCEPTION
-- WHEN OTHERS
-- THEN
-- v_count_error := v_count_error + 1;
-- oracle_err_num := SQLCODE;
-- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
-- v_errormsg :=
-- 'OTHERS (error '
-- || oracle_err_num
-- || '/'
-- || oracle_err_mes
-- || ')';
-- fac.imp_writelog (p_import_key,
-- 'E',
-- v_aanduiding || v_errormsg,
-- v_errorhint
-- );
-- COMMIT;
-- END;
-- END LOOP;
--
-- fac.imp_writelog (p_import_key,
-- 'S',
-- 'Afdeling: verwerkte regels zonder foutmelding: '
-- || TO_CHAR (v_count_tot - v_count_error),
-- ''
-- );
-- fac.imp_writelog (p_import_key,
-- 'S',
-- 'Afdeling: verwerkte regels met foutmelding: '
-- || TO_CHAR (v_count_error),
-- ''
-- );
-- COMMIT;
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen personen
FOR recperslid IN cperslid
LOOP
@@ -1407,6 +1305,11 @@ BEGIN
COMMIT;
END IF;
-- iedereen wordt toegevoegd aan de Generiek: Klant groep met key 2781
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
SELECT v_perslid_key, 2781 FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep WHERE prs_perslid_key = v_perslid_key AND fac_groep_key = 2781);
EXCEPTION
WHEN OTHERS
THEN
@@ -2512,41 +2415,63 @@ AS
-- projectlocaties (tijdelijke locaties) die als ruimte onder een hoofdlocatie hangen.
CREATE OR REPLACE VIEW pchd_v_locatie_gegevens
AS
SELECT 'Hoofdlocatie' locatietype,
alg_locatie_code,
alg_locatie_omschrijving,
alg_locatie_code hoofd_locatie_code,
alg_locatie_omschrijving hoofd_locatie_omschrijving,
alg_locatie_adres,
alg_locatie_postcode,
alg_locatie_plaats,
alg_locatie_key,
NULL alg_ruimte_key
FROM alg_locatie l
WHERE alg_locatie_verwijder IS NULL
AND COALESCE(alg_locatie_vervaldatum, SYSDATE+1) > SYSDATE
UNION ALL
SELECT 'Projectlocatie',
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_locatie_code,
alg_locatie_omschrijving,
flx.getflex ('ALG',
2101,
alg_ruimte_key,
'R') adres,
flx.getflex ('ALG',
2102,
alg_ruimte_key,
'R') postcode,
flx.getflex ('ALG',
2103,
alg_ruimte_key,
'R') plaats,
alg_locatie_key,
alg_ruimte_key
FROM alg_v_ruimte_gegevens
WHERE alg_srtruimte_key = 241;
SELECT 'Hoofdlocatie' locatietype,
alg_locatie_code,
alg_locatie_omschrijving,
alg_locatie_code hoofd_locatie_code,
alg_locatie_omschrijving hoofd_locatie_omschrijving,
alg_locatie_adres,
alg_locatie_postcode,
alg_locatie_plaats,
alg_locatie_key,
NULL alg_ruimte_key,
(SELECT LISTAGG (DISTINCT prs_kostenplaats_nr, ',') WITHIN GROUP (ORDER BY prs_kostenplaats_nr ASC) AS wmen
FROM alg_kenmerk k,
alg_onrgoedkenmerk aogk,
prs_bedrijf b,
(SELECT prs_link_key, prs_kostenplaats_nr, kp.prs_kostenplaats_key
FROM prs_kostenplaats kp, prs_kenmerklink kl
WHERE fac.safe_to_number (kl.prs_kenmerklink_waarde) = kp.prs_kostenplaats_key
AND kl.prs_kenmerk_key = 1260) wm
WHERE fac.safe_to_number (alg_onrgoedkenmerk_waarde) = b.prs_bedrijf_key
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key
AND alg_kenmerk_omschrijving LIKE 'Werkmaatschappij%'
AND alg_kenmerk_kenmerktype = 'S'
AND alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_key = l.alg_locatie_key
AND b.prs_bedrijf_key = wm.prs_link_key(+)
AND b.prs_bedrijf_intern = 1) wmen
FROM alg_locatie l
WHERE alg_locatie_verwijder IS NULL AND COALESCE (alg_locatie_vervaldatum, SYSDATE + 1) > SYSDATE
UNION ALL
SELECT 'Projectlocatie',
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_locatie_code,
alg_locatie_omschrijving,
flx.getflex ('ALG', 2101, alg_ruimte_key, 'R') adres,
flx.getflex ('ALG', 2102, alg_ruimte_key, 'R') postcode,
flx.getflex ('ALG', 2103, alg_ruimte_key, 'R') plaats,
alg_locatie_key,
alg_ruimte_key,
(SELECT LISTAGG (DISTINCT prs_kostenplaats_nr, ',') WITHIN GROUP (ORDER BY prs_kostenplaats_nr ASC) AS wmen
FROM alg_kenmerk k,
alg_onrgoedkenmerk aogk,
prs_bedrijf b,
(SELECT prs_link_key, prs_kostenplaats_nr, kp.prs_kostenplaats_key
FROM prs_kostenplaats kp, prs_kenmerklink kl
WHERE fac.safe_to_number (kl.prs_kenmerklink_waarde) = kp.prs_kostenplaats_key
AND kl.prs_kenmerk_key = 1260) wm
WHERE fac.safe_to_number (alg_onrgoedkenmerk_waarde) = b.prs_bedrijf_key
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key
AND alg_kenmerk_omschrijving LIKE 'Werkmaatschappij%'
AND alg_kenmerk_kenmerktype = 'S'
AND alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_key = rg.alg_locatie_key
AND b.prs_bedrijf_key = wm.prs_link_key(+)
AND b.prs_bedrijf_intern = 1) wmen
FROM alg_v_ruimte_gegevens rg
WHERE alg_srtruimte_key = 241;
-- detailrapportage als je klikt op een regel in bovenstaande rapport.