UWVA63431 -- Andover toegangscontrole zaken uit ABS import gehaald
svn path=/Customer/trunk/; revision=48423
This commit is contained in:
@@ -3451,78 +3451,6 @@ SELECT hrmloc.prs_perslid_key,
|
||||
AND imp.status = 'A'
|
||||
ORDER BY 2;
|
||||
|
||||
-- Aanmaken pas-object voor nieuwe medewerkers op Andover-CMS enabled pand.
|
||||
CURSOR abs_pas_mdw
|
||||
IS
|
||||
SELECT DISTINCT p.prs_perslid_key, p.prs_perslid_oslogin
|
||||
FROM prs_v_aanwezigperslid p, prs_v_werkplekperslid_gegevens ps, alg_onrgoedkenmerk ao, prs_kenmerklink pk, uwva_imp_abs uia
|
||||
WHERE p.prs_perslid_aanmaak >= SYSDATE - (3 / 24) -- Afgelopen 3 uur aangemaakt
|
||||
AND p.prs_perslid_key = ps.prs_perslid_key
|
||||
AND ps.prs_werkplek_volgnr = 2 -- HRM-WP
|
||||
AND ps.alg_locatie_key = ao.alg_onrgoed_key
|
||||
AND ao.alg_onrgoed_niveau = 'L'
|
||||
AND ao.alg_kenmerk_key = 1580 -- Toegangscontrole systeem
|
||||
AND ao.alg_onrgoedkenmerk_waarde = 28809 -- Andover-CMS
|
||||
AND p.prs_perslid_key = pk.prs_link_key
|
||||
AND pk.prs_kenmerk_key = 1232 -- ABS-ID
|
||||
AND pk.prs_kenmerklink_waarde = uia.id
|
||||
AND SUBSTR (uia.empnum, 1, 1) IN ('C', 'I', 'E', 'F', 'D', 'K', 'W')
|
||||
--AND p.prs_perslid_key NOT IN (SELECT ins_alg_ruimte_key
|
||||
-- FROM ins_deel
|
||||
-- WHERE ins_srtdeel_key = 258998)
|
||||
AND NOT EXISTS (SELECT 1 -- Niet al een NIET VERWIJDERDE pas!
|
||||
FROM ins_v_aanwezigdeel
|
||||
WHERE ins_srtdeel_key = 259000 -- Toegangspas Andover
|
||||
AND ins_alg_ruimte_type = 'P'
|
||||
AND ins_alg_ruimte_key = p.prs_perslid_key)
|
||||
ORDER BY 1;
|
||||
|
||||
-- Aanmaken pas-object voor bestaande medewerkers op Andover-CMS enabled pand (verhuisd).
|
||||
CURSOR abs_pas_mdw_bestaand
|
||||
IS
|
||||
SELECT DISTINCT p.prs_perslid_key, p.prs_perslid_oslogin
|
||||
FROM prs_v_aanwezigperslid p, prs_perslidwerkplek pw, prs_v_werkplekperslid_gegevens ps, alg_onrgoedkenmerk ao, prs_kenmerklink pk, uwva_imp_abs uia
|
||||
WHERE p.prs_perslid_aanmaak < SYSDATE - (3 / 24) -- Eerder al eens aangemaakt
|
||||
AND p.prs_perslid_key = pw.prs_perslid_key
|
||||
AND pw.prs_perslidwerkplek_volgnr = 2 -- HRM-WP
|
||||
AND pw.prs_perslidwerkplek_aanmaak >= SYSDATE - (3 / 24) -- Afgelopen 3 uur aangemaakt
|
||||
AND pw.prs_perslidwerkplek_key = ps.prs_perslidwerkplek_key
|
||||
AND ps.alg_locatie_key = ao.alg_onrgoed_key
|
||||
AND ao.alg_onrgoed_niveau = 'L'
|
||||
AND ao.alg_kenmerk_key = 1580 -- Toegangscontrole systeem
|
||||
AND ao.alg_onrgoedkenmerk_waarde = 28809 -- Andover-CMS
|
||||
AND p.prs_perslid_key = pk.prs_link_key
|
||||
AND pk.prs_kenmerk_key = 1232 -- ABS-ID
|
||||
AND pk.prs_kenmerklink_waarde = uia.id
|
||||
AND SUBSTR (uia.empnum, 1, 1) IN ('C', 'I', 'E', 'F', 'D', 'K', 'W')
|
||||
--AND p.prs_perslid_key NOT IN (SELECT ins_alg_ruimte_key
|
||||
-- FROM ins_deel
|
||||
-- WHERE ins_srtdeel_key = 258998)
|
||||
AND NOT EXISTS (SELECT 1 -- Niet al een NIET VERWIJDERDE pas!
|
||||
FROM ins_v_aanwezigdeel
|
||||
WHERE ins_srtdeel_key = 259000 -- Toegangspas Andover
|
||||
AND ins_alg_ruimte_type = 'P'
|
||||
AND ins_alg_ruimte_key = p.prs_perslid_key)
|
||||
ORDER BY 1;
|
||||
|
||||
-- Deactiveren/blokkeren extra actieve pas(sen) van medewerkers; alleen de nieuwste/hoogste ins_deel_key blijft behouden/actief.
|
||||
-- NB. Medewerkers die verhuizen naar een pand zonder Andover behouden gewoon hun pas.
|
||||
-- NB. Passen met status Vermist of Defect worden niet door ABS-import geblokkeerd.
|
||||
CURSOR abs_pas_disable
|
||||
IS
|
||||
SELECT i.ins_deel_key, p.prs_perslid_key, 'Dubbele pas' aanduiding
|
||||
FROM ins_v_aanwezigdeel i, prs_perslid p
|
||||
WHERE i.ins_srtdeel_key = 259000 -- Toegangspas Andover
|
||||
AND i.ins_alg_ruimte_type = 'P'
|
||||
AND i.ins_alg_ruimte_key = p.prs_perslid_key
|
||||
AND EXISTS (SELECT 1 -- Er bestaat een nieuwere pas
|
||||
FROM ins_v_aanwezigdeel
|
||||
WHERE ins_srtdeel_key = 259000
|
||||
AND ins_alg_ruimte_type = 'P'
|
||||
AND ins_alg_ruimte_key = i.ins_alg_ruimte_key
|
||||
AND ins_deel_key > i.ins_deel_key)
|
||||
ORDER BY 1;
|
||||
|
||||
v_prs_omschr VARCHAR2 (150);
|
||||
v_perslid prs_perslid%ROWTYPE;
|
||||
v_perslid_key NUMBER (10);
|
||||
@@ -4303,60 +4231,6 @@ BEGIN
|
||||
'Persoon verwijderd.',
|
||||
v_prs_omschr);
|
||||
ELSE
|
||||
FOR rec IN (
|
||||
SELECT i.ins_deel_key, i.ins_deel_omschrijving, ik.ins_kenmerkdeel_waarde uitgifte, 'Uitdienst' aanduiding
|
||||
FROM ins_v_aanwezigdeel i, ins_v_aanwezigkenmerkdeel ik
|
||||
WHERE i.ins_srtdeel_key = 259000 -- Toegangspas Andover
|
||||
AND i.ins_alg_ruimte_type = 'P'
|
||||
AND i.ins_alg_ruimte_key = v_perslid_key
|
||||
AND i.ins_deel_key = ik.ins_deel_key
|
||||
AND ik.ins_kenmerk_key = 502) -- Uitgifte
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Blokkeren pas NIET gelukt';
|
||||
|
||||
-- Ophalen passtatus voordat deze op Geblokkeerd wordt gezet (v_deelstat) tbv. logging.
|
||||
SELECT f.fac_usrdata_omschr
|
||||
INTO v_deelstat
|
||||
FROM fac_usrdata f, ins_kenmerkdeel ik
|
||||
WHERE f.fac_usrdata_key = ik.ins_kenmerkdeel_waarde
|
||||
AND ik.ins_kenmerk_key = 489
|
||||
AND ik.ins_deel_key = rec.ins_deel_key;
|
||||
|
||||
-- Status-kenmerk op Geblokkeerd zetten.
|
||||
UPDATE ins_kenmerkdeel
|
||||
SET ins_kenmerkdeel_waarde = '29875' -- Geblokkeerd
|
||||
WHERE ins_kenmerk_key = 489 AND ins_deel_key = rec.ins_deel_key;
|
||||
|
||||
fac.trackaction ('INSUPD', rec.ins_deel_key, NULL, NULL, 'Status gewijzigd: ' || v_deelstat || ' --> Geblokkeerd');
|
||||
|
||||
IF rec.uitgifte = '29742' -- Nog Uitgegeven?
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Toegangspas ' || rec.ins_deel_omschrijving || ' geblokkeerd voor medewerker met key ' || TO_CHAR (v_perslid_key), rec.aanduiding);
|
||||
ELSE
|
||||
v_errormsg := 'Verwijderen pas NIET gelukt';
|
||||
|
||||
UPDATE ins_deel
|
||||
SET ins_deel_verwijder = SYSDATE,
|
||||
ins_deel_vervaldatum = SYSDATE
|
||||
WHERE ins_deel_key = rec.ins_deel_key;
|
||||
|
||||
fac.trackaction ('INSDEL', rec.ins_deel_key, NULL, NULL, NULL);
|
||||
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Toegangspas ' || rec.ins_deel_omschrijving || ' verwijderd voor medewerker met key ' || TO_CHAR (v_perslid_key), rec.aanduiding);
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'W', v_errormsg, rec.aanduiding);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
v_errorhint := 'Actuele verplichtingen zoeken';
|
||||
-- Controleer of er ACTUELE verplichtingen zijn
|
||||
SELECT COUNT (*)
|
||||
@@ -4745,57 +4619,6 @@ BEGIN
|
||||
SET prs_perslid_ingids = DECODE (rec_upd.employeetype, 'K', NULL, 1)
|
||||
WHERE prs_perslid_key = v_perslid.prs_perslid_key;
|
||||
|
||||
-- Heractiveren van eventuele inactieve pas.
|
||||
BEGIN
|
||||
v_errormsg := 'Heractiveren pas NIET gelukt';
|
||||
|
||||
SELECT MAX (i.ins_deel_key)
|
||||
INTO v_deelkey
|
||||
FROM ins_deel i -- Ook een verwijderde pas kan worden gereanimeerd!
|
||||
WHERE i.ins_srtdeel_key = 259000 -- Toegangspas Andover
|
||||
AND i.ins_alg_ruimte_type = 'P'
|
||||
AND i.ins_alg_ruimte_key = v_perslid.prs_perslid_key
|
||||
AND NOT EXISTS (SELECT 1 -- Geen defecte/vermiste pas
|
||||
FROM ins_v_aanwezigkenmerkdeel
|
||||
WHERE ins_kenmerkdeel_waarde IN ('29874', '29877') -- Defect/Vermist
|
||||
AND ins_kenmerk_key = 489 -- Status
|
||||
AND ins_deel_key = i.ins_deel_key);
|
||||
|
||||
IF v_deelkey IS NOT NULL
|
||||
THEN
|
||||
UPDATE ins_deel
|
||||
SET ins_deel_actief = 1,
|
||||
ins_deel_verwijder = NULL
|
||||
WHERE ins_deel_key = v_deelkey;
|
||||
|
||||
-- Ophalen passtatus voordat deze op Actief wordt gezet (v_deelstat) tbv. logging.
|
||||
SELECT f.fac_usrdata_omschr, i.ins_deel_omschrijving
|
||||
INTO v_deelstat, v_deeloms
|
||||
FROM fac_usrdata f, ins_kenmerkdeel ik, ins_deel i
|
||||
WHERE TO_CHAR (f.fac_usrdata_key) = ik.ins_kenmerkdeel_waarde
|
||||
AND ik.ins_kenmerk_key = 489
|
||||
AND ik.ins_deel_key = i.ins_deel_key
|
||||
AND i.ins_deel_key = v_deelkey;
|
||||
|
||||
-- Ook Status-kenmerk op Actief zetten.
|
||||
UPDATE ins_kenmerkdeel
|
||||
SET ins_kenmerkdeel_waarde = '29873' -- Actief
|
||||
WHERE ins_kenmerk_key = 489 AND ins_deel_key = v_deelkey;
|
||||
|
||||
fac.trackaction ('INSUPD', v_deelkey, NULL, NULL, 'Object geheractiveerd, status: ' || v_deelstat || ' --> Actief');
|
||||
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Toegangspas ' || v_deeloms || ' geheractiveerd voor medewerker met key ' || TO_CHAR (v_perslid.prs_perslid_key), 'Heractiveren');
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'W', v_errormsg, '');
|
||||
END;
|
||||
|
||||
v_errormsg := 'Persoon wordt gereactiveerd.';
|
||||
fac.imp_writelog (p_import_key, 'I', v_errormsg, v_prs_omschr);
|
||||
END IF;
|
||||
@@ -6019,186 +5842,6 @@ BEGIN
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- Nieuw pas-object aanmaken en toekennen aan nieuwe medewerker (werkzaam op een Andover-CMS enabled pand).
|
||||
FOR rec IN abs_pas_mdw
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Aanmaken pas nieuwe medewerker NIET gelukt';
|
||||
|
||||
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
|
||||
|
||||
INSERT INTO ins_deel (ins_deel_module,
|
||||
ins_srtdeel_key,
|
||||
ins_alg_ruimte_key,
|
||||
ins_alg_ruimte_type,
|
||||
ins_deel_omschrijving,
|
||||
ins_deel_actief)
|
||||
VALUES ('INS',
|
||||
259000, -- Toegangspas
|
||||
rec.prs_perslid_key,
|
||||
'P',
|
||||
'XXXX' || TO_CHAR (v_count),
|
||||
1) -- Actief
|
||||
RETURNING ins_deel_key, ins_deel_omschrijving
|
||||
INTO v_deelkey, v_deeloms;
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (489, -- Status
|
||||
29873, -- Actief
|
||||
v_deelkey);
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (490, -- Template
|
||||
29072, -- Medewerker
|
||||
v_deelkey);
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (501, -- Sitecode
|
||||
29879, -- 171
|
||||
v_deelkey);
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (502, -- Uitgifte
|
||||
29739, -- Aangemaakt
|
||||
v_deelkey);
|
||||
|
||||
fac.trackaction ('INSNEW', v_deelkey, NULL, NULL, NULL);
|
||||
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Toegangspas ' || v_deeloms || ' aangemaakt voor medewerker met key ' || TO_CHAR (rec.prs_perslid_key), 'Pas nieuwe medewerker');
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'W', v_errormsg, 'abs_pas_mdw');
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Nieuw pas-object aanmaken en toekennen aan bestaande medewerker die is verhuisd naar een Andover-CMS enabled pand.
|
||||
FOR rec IN abs_pas_mdw_bestaand
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Aanmaken pas bestaande medewerker NIET gelukt';
|
||||
|
||||
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
|
||||
|
||||
INSERT INTO ins_deel (ins_deel_module,
|
||||
ins_srtdeel_key,
|
||||
ins_alg_ruimte_key,
|
||||
ins_alg_ruimte_type,
|
||||
ins_deel_omschrijving,
|
||||
ins_deel_actief)
|
||||
VALUES ('INS',
|
||||
259000, -- Toegangspas
|
||||
rec.prs_perslid_key,
|
||||
'P',
|
||||
'XXXX' || TO_CHAR (v_count),
|
||||
1) -- Actief
|
||||
RETURNING ins_deel_key, ins_deel_omschrijving
|
||||
INTO v_deelkey, v_deeloms;
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (489, -- Status
|
||||
29873, -- Actief
|
||||
v_deelkey);
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (490, -- Template
|
||||
29072, -- Medewerker
|
||||
v_deelkey);
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (501, -- Sitecode
|
||||
29879, -- 171
|
||||
v_deelkey);
|
||||
|
||||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||||
ins_kenmerkdeel_waarde,
|
||||
ins_deel_key)
|
||||
VALUES (502, -- Uitgifte
|
||||
29739, -- Aangemaakt
|
||||
v_deelkey);
|
||||
|
||||
fac.trackaction ('INSNEW', v_deelkey, NULL, NULL, NULL);
|
||||
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Toegangspas ' || v_deeloms || ' aangemaakt voor medewerker met key ' || TO_CHAR (rec.prs_perslid_key), 'Pas verhuisde medewerker');
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'W', v_errormsg, 'abs_pas_mdw_bestaand');
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Deactiveren/blokkeren extra actieve pas(sen) van medewerkers; alleen de nieuwste/hoogste ins_deel_key blijft behouden/actief.
|
||||
-- NB. Medewerkers die verhuizen naar een pand zonder Andover behouden gewoon hun pas.
|
||||
-- NB. Passen met status Vermist of Defect worden niet door ABS-import geblokkeerd.
|
||||
FOR rec IN abs_pas_disable
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Deactiveren pas NIET gelukt';
|
||||
|
||||
-- Ophalen passtatus voordat deze op Geblokkeeerd wordt gezet (v_deelstat) tbv. logging.
|
||||
SELECT f.fac_usrdata_omschr
|
||||
INTO v_deelstat
|
||||
FROM fac_usrdata f, ins_kenmerkdeel ik
|
||||
WHERE f.fac_usrdata_key = ik.ins_kenmerkdeel_waarde
|
||||
AND ik.ins_kenmerk_key = 489
|
||||
AND ik.ins_deel_key = rec.ins_deel_key;
|
||||
|
||||
-- Status-kenmerk op Geblokkeerd zetten.
|
||||
UPDATE ins_kenmerkdeel
|
||||
SET ins_kenmerkdeel_waarde = '29875' -- Geblokkeerd
|
||||
WHERE ins_kenmerk_key = 489 AND ins_deel_key = rec.ins_deel_key;
|
||||
|
||||
fac.trackaction ('INSUPD', rec.ins_deel_key, NULL, NULL, 'Status gewijzigd: ' || v_deelstat || ' --> Geblokkeerd');
|
||||
|
||||
UPDATE ins_deel
|
||||
SET ins_deel_verwijder = SYSDATE,
|
||||
ins_deel_vervaldatum = SYSDATE
|
||||
WHERE ins_deel_key = rec.ins_deel_key
|
||||
RETURNING ins_deel_omschrijving
|
||||
INTO v_deeloms;
|
||||
|
||||
fac.trackaction ('INSDEL', rec.ins_deel_key, NULL, NULL, NULL);
|
||||
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Toegangspas ' || v_deeloms || ' verwijderd voor medewerker met key ' || TO_CHAR (rec.prs_perslid_key), rec.aanduiding);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'W', v_errormsg, 'abs_pas_disable/' || rec.aanduiding);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO nrbh1
|
||||
FROM fac_gebruikersgroep
|
||||
|
||||
Reference in New Issue
Block a user