WTCA#52410 NACHTWERK-export (en rapportages) tbv. toegang huurders

svn path=/Customer/trunk/; revision=37931
This commit is contained in:
Maarten van der Heide
2018-05-16 15:59:29 +00:00
parent 3fd11ba3d8
commit e0d6851450

View File

@@ -197,8 +197,171 @@ AS
END;
/
-- WTCA#52410: Controle-rapportage H- en UV-inrichting.
CREATE OR REPLACE VIEW wtca_v_relatie_controle
(
fclt_f_controle,
controle_ref
)
AS
SELECT 'H-afdeling leeg', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT 'H-afdeling zonder logins', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND p.prs_afdeling_key = a.prs_afdeling_key)
--UNION ALL
--SELECT DISTINCT 'H-afdeling met logins niet gelinkt aan H-relatie', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
-- FROM prs_afdeling a, prs_v_aanwezigperslid ap
-- WHERE a.prs_afdeling_verwijder IS NULL
-- AND a.prs_bedrijf_key = 61 -- Huurders
-- AND a.prs_afdeling_parentkey IS NULL
-- AND a.prs_afdeling_key = ap.prs_afdeling_key
-- AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
-- AND NOT EXISTS
-- (SELECT 1
-- FROM prs_contactpersoon cp, prs_bedrijf b, prs_perslid p
-- WHERE cp.prs_contactpersoon_verwijder IS NULL
-- AND cp.prs_bedrijf_key = b.prs_bedrijf_key
-- AND b.prs_bedrijf_verwijder IS NULL
-- AND cp.prs_perslid_key = p.prs_perslid_key
-- AND p.prs_afdeling_key = ap.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'H-afdeling gelinkt aan H-relatie via persoon zonder login', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NULL
AND EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT DISTINCT 'H-relatie gelinkt aan H-afdeling via verwijderde persoon', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || cp.prs_contactpersoon_naam
FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
UNION ALL
SELECT DISTINCT 'H-afdeling niet dezelfde naam als gelinkte H-relatie', a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND UPPER (a.prs_afdeling_omschrijving) != TRIM (b.prs_bedrijf_naam_upper)
UNION ALL
SELECT 'UV-afdeling leeg', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 341 -- UV
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT 'UV-afdeling zonder logins', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 341 -- UV
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'UV-afdeling met logins niet gelinkt aan UV-relatie', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 341 -- UV
AND a.prs_afdeling_key = ap.prs_afdeling_key
AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b, prs_perslid p
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = ap.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'UV-afdeling gelinkt aan UV-relatie via persoon zonder login', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 341 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NULL
AND EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT DISTINCT 'UV-relatie gelinkt aan UV-afdeling via verwijderde persoon', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || cp.prs_contactpersoon_naam
FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 341 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
UNION ALL
SELECT DISTINCT 'UV-afdeling niet dezelfde naam als gelinkte UV-relatie', a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 341 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND UPPER (a.prs_afdeling_omschrijving) != TRIM (b.prs_bedrijf_naam_upper);
-- Dummy export NACHTWERK!
/* Formatted on 26-5-2016 11:05:50 (QP5 v5.136.908.31019) */
-- WTCA#52410: Automatisch toevoegen/verwijderen H-relaties (incl. contactpersoon).
CREATE OR REPLACE PROCEDURE wtca_select_nachtwerk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
@@ -206,19 +369,62 @@ AS
-- transportdatum-tot en alleen als status=Geaccepteerd!
CURSOR c_mldafm
IS
SELECT '[' || TO_CHAR (m.mld_melding_key) || '] ' aanduiding, m.mld_melding_key
SELECT '[' || TO_CHAR (m.mld_melding_key) || '] ' aanduiding,
m.mld_melding_key
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k
WHERE m.mld_stdmelding_key IN (3923, 3924) -- Verhuis en transport aanvragen
AND m.mld_melding_status = 4 -- Geaccepteerd
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 406 -- Transportdatum-tot
AND FAC.count_work_days (fac.safe_to_date (km.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), SYSDATE) >= 4
AND m.mld_melding_status = 4 -- Geaccepteerd
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 406 -- Transportdatum-tot
AND fac.count_work_days (fac.safe_to_date (km.mld_kenmerkmelding_waarde, 'dd-mm-yyyy'), SYSDATE) >= 4
ORDER BY m.mld_melding_key;
CURSOR c_huurderrel_new
IS
SELECT '[' || a.prs_afdeling_omschrijving || '] ' aanduiding,
a.prs_afdeling_key, a.prs_afdeling_naam, a.prs_afdeling_omschrijving,
MIN (ap.prs_perslid_key) prs_perslid_key,
COUNT ( * ) aantal
FROM prs_afdeling a, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = ap.prs_afdeling_key
AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b, prs_perslid p
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key)
GROUP BY '[' || a.prs_afdeling_omschrijving || '] ',
a.prs_afdeling_key, a.prs_afdeling_naam, a.prs_afdeling_omschrijving;
CURSOR c_huurderrel_del
IS
SELECT DISTINCT '[' || b.prs_bedrijf_naam || '] ' aanduiding,
b.prs_bedrijf_key, b.prs_bedrijf_naam
FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_bedrijf_key NUMBER;
v_count NUMBER;
BEGIN
v_count := 0;
@@ -228,7 +434,7 @@ BEGIN
FOR rec IN c_mldafm
LOOP
BEGIN
v_errormsg := 'Fout bij auto-afmelden';
v_errormsg := 'Fout auto-afmelden';
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL);
v_count := v_count + 1;
@@ -244,6 +450,102 @@ BEGIN
END LOOP;
fac.writelog (p_applname, 'S', 'Verhuis en transport aanvragen/#afgemeld: ' || TO_CHAR (v_count), '');
v_count := 0;
FOR rec IN c_huurderrel_new
LOOP
BEGIN
v_errormsg := 'Fout toevoegen H-relatie';
INSERT INTO prs_bedrijf (prs_bedrijf_naam,
prs_bedrijf_opmerking,
prs_bedrijf_uitvoerende,
prs_bedrijf_huurder)
VALUES (rec.prs_afdeling_omschrijving,
'Automatisch aangemaakt',
NULL,
1)
RETURNING prs_bedrijf_key
INTO v_bedrijf_key;
v_errormsg := 'Fout toevoegen H-contactpersoon';
INSERT INTO prs_contactpersoon (prs_contactpersoon_naam,
prs_contactpersoon_tussenv,
prs_contactpersoon_voorletters,
prs_contactpersoon_voornaam,
prs_contactpersoon_telefoon_1,
prs_contactpersoon_telefoon_2,
prs_contactpersoon_email,
prs_contactpersoon_functie,
prs_contactpersoon_opmerking,
prs_bedrijf_key,
prs_perslid_key)
SELECT SUBSTR (p.prs_perslid_naam, 1, 30), -- 30 voor cp!
p.prs_perslid_tussenvoegsel,
SUBSTR (p.prs_perslid_voorletters, 1, 10), -- 10 voor cp!
p.prs_perslid_voornaam,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
SUBSTR (p.prs_perslid_email, 1, 50), -- 50 voor cp!
--sp.prs_srtperslid_omschrijving,
'NIET VERWIJDEREN: Huurder-account!',
NULL,
v_bedrijf_key,
p.prs_perslid_key
FROM prs_perslid p, prs_srtperslid sp
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_key = rec.prs_perslid_key;
COMMIT;
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'H-relaties/#toegevoegd: ' || TO_CHAR (v_count), '');
v_count := 0;
FOR rec IN c_huurderrel_del
LOOP
BEGIN
v_errormsg := 'Fout vervallen H-relatie';
UPDATE prs_bedrijf
SET prs_bedrijf_naam = SUBSTR ('VERVALLEN:' || prs_bedrijf_naam, 1, 60)
WHERE prs_bedrijf_key = rec.prs_bedrijf_key;
v_errormsg := 'Fout toevoegen H-contactpersoon';
UPDATE prs_contactpersoon
SET prs_contactpersoon_verwijder = SYSDATE
WHERE prs_bedrijf_key = rec.prs_bedrijf_key;
COMMIT;
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'H-relaties/#vervallen: ' || TO_CHAR (v_count), '');
EXCEPTION
WHEN OTHERS
THEN
@@ -254,6 +556,95 @@ EXCEPTION
END wtca_select_nachtwerk;
/
-- WTCA#52410: Toegang huurders.
CREATE OR REPLACE VIEW wtca_v_rap_toegang_huurders
(
huurder,
achternaam,
voornaam,
voorletters,
contract,
access_main_entrance,
key_pickup
)
AS -- H-relaties
SELECT x.prs_bedrijf_naam,
TRIM(cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam),
cp.prs_contactpersoon_voornaam,
cp.prs_contactpersoon_voorletters,
DECODE (kl1.prs_kenmerklink_waarde, '81', 'Ja', '82', 'Nee', NULL) contract,
DECODE (kl2.prs_kenmerklink_waarde, '1', 'Ja', 'Nee') access_main_entrance,
DECODE (kl1.prs_kenmerklink_waarde, '81', DECODE (kl3.prs_kenmerklink_waarde, '1', 'Ja', 'Nee'), 'Nvt') key_pickup
FROM (SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam, cp.prs_perslid_key
FROM prs_afdeling a, prs_v_aanwezigperslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 61 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL) x
LEFT JOIN
prs_contactpersoon cp
ON x.prs_bedrijf_key = cp.prs_bedrijf_key
LEFT JOIN
prs_v_aanwezigkenmerklink kl1
ON x.prs_perslid_key = kl1.prs_link_key
AND kl1.prs_kenmerklink_niveau = 'P'
AND kl1.prs_kenmerk_key = 1048 -- Contract
LEFT JOIN
prs_v_aanwezigkenmerklink kl2
ON cp.prs_contactpersoon_key = kl2.prs_link_key
AND kl2.prs_kenmerklink_niveau = 'C'
AND kl2.prs_kenmerk_key = 1440 -- Access main entrance
LEFT JOIN
prs_v_aanwezigkenmerklink kl3
ON cp.prs_contactpersoon_key = kl3.prs_link_key
AND kl3.prs_kenmerklink_niveau = 'C'
AND kl3.prs_kenmerk_key = 1441 -- Key pickup
WHERE cp.prs_perslid_key IS NULL -- Alleen contactpersonen zonder account!
UNION ALL -- UV-relaties
SELECT x.prs_bedrijf_naam,
TRIM(cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam),
cp.prs_contactpersoon_voornaam,
cp.prs_contactpersoon_voorletters,
DECODE (kl1.prs_kenmerklink_waarde, '81', 'Ja', '82', 'Nee', NULL) contract,
DECODE (kl2.prs_kenmerklink_waarde, '1', 'Ja', 'Nee') access_main_entrance,
DECODE (kl1.prs_kenmerklink_waarde, '81', DECODE (kl3.prs_kenmerklink_waarde, '1', 'Ja', 'Nee'), 'Nvt') key_pickup
FROM (SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam, cp.prs_perslid_key
FROM prs_afdeling a, prs_v_aanwezigperslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 341 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL) x
LEFT JOIN
prs_contactpersoon cp
ON x.prs_bedrijf_key = cp.prs_bedrijf_key
LEFT JOIN
prs_v_aanwezigkenmerklink kl1
ON x.prs_perslid_key = kl1.prs_link_key
AND kl1.prs_kenmerklink_niveau = 'P'
AND kl1.prs_kenmerk_key = 1048 -- Contract
LEFT JOIN
prs_v_aanwezigkenmerklink kl2
ON cp.prs_contactpersoon_key = kl2.prs_link_key
AND kl2.prs_kenmerklink_niveau = 'C'
AND kl2.prs_kenmerk_key = 1440 -- Access main entrance
LEFT JOIN
prs_v_aanwezigkenmerklink kl3
ON cp.prs_contactpersoon_key = kl3.prs_link_key
AND kl3.prs_kenmerklink_niveau = 'C'
AND kl3.prs_kenmerk_key = 1441 -- Key pickup
;
/* Formatted on 5-1-2011 16:38:28 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wtca_v_stdmld_lijst
(