PCHD#53705 Import personen vanuit AD VWS
svn path=/Customer/trunk/; revision=39760
This commit is contained in:
221
PCHD/pchd.sql
221
PCHD/pchd.sql
@@ -105,8 +105,8 @@ AS
|
||||
insr.ins_srtdiscipline_omschrijving,
|
||||
md.ins_discipline_omschrijving,
|
||||
d.alg_district_omschrijving;
|
||||
|
||||
|
||||
|
||||
|
||||
-- draft versie van PPI rapportage voor truckparking
|
||||
CREATE OR REPLACE VIEW pchd_v_rap_mld_truckparking
|
||||
(
|
||||
@@ -158,7 +158,7 @@ AS
|
||||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||||
AND d.ins_srtdiscipline_key = 61;
|
||||
|
||||
|
||||
--PCHD#53705 - Import personen vanuit AD VolkerWessels
|
||||
CREATE OR REPLACE PROCEDURE pchd_import_perslid (p_import_key IN NUMBER)
|
||||
IS
|
||||
@@ -223,7 +223,7 @@ BEGIN
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
||||
-- 03
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
|
||||
-- 04
|
||||
-- 04
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
||||
-- 05
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_wm);
|
||||
@@ -277,13 +277,13 @@ BEGIN
|
||||
AND UPPER (v_prs_perslid_companycode) = 'COMPANYCODE'
|
||||
AND UPPER (v_prs_afdeling_naam) = 'DEPARTMENT'
|
||||
AND UPPER (v_prs_perslid_costcarrier) = 'COSTCARRIER'
|
||||
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTION'
|
||||
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTION'
|
||||
--AND UPPER (v_prs_perslid_managedby) = 'MANAGEDBY'
|
||||
AND UPPER (v_prs_perslid_email) = 'EMAIL'
|
||||
AND UPPER (v_prs_perslid_email) = 'EMAIL'
|
||||
AND UPPER (v_prs_perslid_telefoonnr) = 'PHONENUMBER'
|
||||
AND UPPER (v_prs_perslid_mobiel) = 'MOBILENUMBER'
|
||||
AND UPPER (v_prs_perslid_vestigingsnaam) = 'VESTIGINGSNAAM'
|
||||
AND UPPER (v_prs_perslid_vestigingsnummer) = 'VESTIGINGSNUMMER'
|
||||
AND UPPER (v_prs_perslid_vestigingsnummer) = 'VESTIGINGSNUMMER'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
@@ -379,7 +379,7 @@ BEGIN
|
||||
|| v_prs_perslid_wm
|
||||
|| ']'
|
||||
);
|
||||
v_ongeldig :=1;
|
||||
v_ongeldig :=1;
|
||||
ELSE
|
||||
IF (v_prs_perslid_wm IS NULL)
|
||||
THEN
|
||||
@@ -393,7 +393,7 @@ BEGIN
|
||||
END IF;
|
||||
END IF;
|
||||
COMMIT;
|
||||
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige organisatienaam';
|
||||
v_prs_perslid_organisation := TRIM (v_prs_perslid_organisation);
|
||||
@@ -408,7 +408,7 @@ BEGIN
|
||||
|| v_prs_perslid_organisation
|
||||
|| ']'
|
||||
);
|
||||
v_ongeldig :=1;
|
||||
v_ongeldig :=1;
|
||||
ELSE
|
||||
IF (v_prs_afdeling_naam IS NULL)
|
||||
THEN
|
||||
@@ -422,7 +422,7 @@ BEGIN
|
||||
END IF;
|
||||
END IF;
|
||||
COMMIT;
|
||||
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige afdelingsnaam ';
|
||||
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
|
||||
@@ -437,7 +437,7 @@ BEGIN
|
||||
|| v_prs_afdeling_naam
|
||||
|| ']'
|
||||
);
|
||||
v_ongeldig :=1;
|
||||
v_ongeldig :=1;
|
||||
ELSE
|
||||
IF (v_prs_afdeling_naam IS NULL)
|
||||
THEN
|
||||
@@ -467,7 +467,7 @@ BEGIN
|
||||
|| v_prs_srtperslid_omschrijving
|
||||
|| ']'
|
||||
);
|
||||
v_ongeldig :=1;
|
||||
v_ongeldig :=1;
|
||||
ELSE
|
||||
IF (v_prs_srtperslid_omschrijving IS NULL)
|
||||
THEN
|
||||
@@ -517,8 +517,8 @@ BEGIN
|
||||
);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig e-mailadres';
|
||||
v_prs_perslid_email := TRIM (v_prs_perslid_email);
|
||||
@@ -550,7 +550,7 @@ BEGIN
|
||||
|| v_prs_perslid_oslogin
|
||||
|| ']'
|
||||
);
|
||||
v_ongeldig :=1;
|
||||
v_ongeldig :=1;
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
@@ -575,7 +575,7 @@ BEGIN
|
||||
BEGIN
|
||||
v_errorhint :=
|
||||
'Fout bij toevoegen regel aan importtabel pchd_imp_prs';
|
||||
|
||||
|
||||
INSERT INTO pchd_imp_prs
|
||||
(prs_perslid_naam,
|
||||
prs_perslid_tussenvoegsel,
|
||||
@@ -594,7 +594,7 @@ BEGIN
|
||||
prs_perslid_vestigingsnaam,
|
||||
prs_perslid_vestigingsnummer
|
||||
)
|
||||
VALUES
|
||||
VALUES
|
||||
(v_prs_perslid_naam,
|
||||
v_prs_perslid_tussenvoegsel,
|
||||
v_prs_perslid_voornaam,
|
||||
@@ -690,7 +690,7 @@ IS
|
||||
v_prs_bedrijf_key VARCHAR2 (30);
|
||||
v_prs_afdeling_key VARCHAR2 (30);
|
||||
v_prs_company_key VARCHAR2 (30);
|
||||
v_prs_perslid_costcarrier VARCHAR2 (30);
|
||||
v_prs_perslid_costcarrier VARCHAR2 (30);
|
||||
v_prs_perslid_managedby VARCHAR2 (30);
|
||||
v_prs_perslid_oslogin VARCHAR2 (30);
|
||||
v_prs_perslid_oslogin2 VARCHAR2 (30);
|
||||
@@ -707,35 +707,35 @@ IS
|
||||
SELECT 1
|
||||
FROM prs_kenmerklink km
|
||||
WHERE km.prs_link_key = p.prs_perslid_key
|
||||
AND km.prs_kenmerk_key = 1041 -- Key voor Kenmerk 'Import personen uit AD'. In ACCEPTATIEOMGEVING & BRANCH: 1040 / In PRODUCTIEOMGEVING: 1041
|
||||
AND km.prs_kenmerk_key = 1041 -- Key voor Kenmerk 'Import personen uit AD'. In ACCEPTATIEOMGEVING BRANCH: 1040 / In PRODUCTIEOMGEVING: 1041
|
||||
AND km.prs_kenmerklink_waarde = '1461') -- Key voor waarde "Ja" bij kenmerk 'Import personen uit AD'.)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pchd_imp_prs ip
|
||||
WHERE UPPER(ip.prs_perslid_oslogin) = UPPER(p.prs_perslid_oslogin));
|
||||
|
||||
--Bepalen alle functie omschrijvingen in het import bestand.
|
||||
--Bepalen alle functie omschrijvingen in het import bestand.
|
||||
CURSOR csperslid
|
||||
IS
|
||||
SELECT UPPER(prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
|
||||
FROM pchd_imp_prs
|
||||
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
||||
|
||||
--Bepalen alle wm (werkmaatschappijen) in het import bestand.
|
||||
|
||||
--Bepalen alle wm (werkmaatschappijen) in het import bestand.
|
||||
CURSOR cwm
|
||||
IS
|
||||
SELECT UPPER(prs_perslid_wm) prs_perslid_wm
|
||||
FROM pchd_imp_prs
|
||||
GROUP BY UPPER (prs_perslid_wm);
|
||||
|
||||
--Bepalen alle organisaties in het import bestand.
|
||||
CURSOR corg
|
||||
|
||||
--Bepalen alle organisaties in het import bestand.
|
||||
CURSOR corg
|
||||
IS
|
||||
SELECT UPPER (prs_perslid_organisation) prs_perslid_organisation, UPPER (prs_perslid_companycode) prs_perslid_companycode, UPPER (prs_perslid_wm) prs_perslid_wm
|
||||
FROM pchd_imp_prs
|
||||
GROUP BY UPPER (prs_perslid_organisation), UPPER (prs_perslid_companycode), UPPER (prs_perslid_wm);
|
||||
GROUP BY UPPER (prs_perslid_organisation), UPPER (prs_perslid_companycode), UPPER (prs_perslid_wm);
|
||||
|
||||
--Bepalen alle afdeling omschrijvingen in het import bestand.
|
||||
--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
|
||||
@@ -748,7 +748,7 @@ IS
|
||||
FROM pchd_imp_prs;
|
||||
|
||||
CURSOR cwerkplek
|
||||
IS
|
||||
IS
|
||||
SELECT p.prs_perslid_key, i.prs_perslid_oslogin, ra.alg_ruimte_key
|
||||
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, pchd_imp_prs i, prs_perslid p, prs_afdeling a, prs_ruimteafdeling ra
|
||||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||||
@@ -759,6 +759,7 @@ IS
|
||||
AND UPPER(p.prs_perslid_oslogin) = UPPER(i.prs_perslid_oslogin)
|
||||
AND ra.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND ra.prs_ruimteafdeling_verwijder IS NULL
|
||||
AND ra.alg_ruimte_key = r.alg_ruimte_key
|
||||
AND UPPER(r.alg_ruimte_nr) = 'N.V.T.';
|
||||
|
||||
|
||||
@@ -807,7 +808,7 @@ BEGIN
|
||||
)
|
||||
THEN
|
||||
-- Geldig importbestand wat betreft aantal personen
|
||||
|
||||
|
||||
-- Personen verwijderen/inactiefmaken
|
||||
FOR recdelprs IN cdelprs
|
||||
LOOP
|
||||
@@ -966,7 +967,7 @@ BEGIN
|
||||
END LOOP;
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_error := 0;
|
||||
v_count_error := 0;
|
||||
|
||||
-- Toevoegen bedrijf (wm: werkmaatschappij)
|
||||
FOR recwm IN cwm
|
||||
@@ -1033,8 +1034,8 @@ BEGIN
|
||||
v_count_error := 0;
|
||||
|
||||
-- Toevoegen Organisatie
|
||||
|
||||
FOR recorg IN corg
|
||||
|
||||
FOR recorg IN corg
|
||||
LOOP
|
||||
BEGIN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
@@ -1053,7 +1054,7 @@ BEGIN
|
||||
v_errorhint := 'Fout bij toevoegen organisatie';
|
||||
|
||||
INSERT INTO prs_afdeling
|
||||
(prs_bedrijf_key,
|
||||
(prs_bedrijf_key,
|
||||
prs_afdeling_naam,
|
||||
prs_afdeling_upper,
|
||||
prs_afdeling_omschrijving
|
||||
@@ -1104,7 +1105,7 @@ BEGIN
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_error := 0;
|
||||
|
||||
|
||||
-- Toevoegen afdeling
|
||||
FOR recdep IN cdep
|
||||
LOOP
|
||||
@@ -1113,8 +1114,8 @@ BEGIN
|
||||
v_aanduiding := recdep.prs_afdeling_naam|| ' - ';
|
||||
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.
|
||||
-- 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.
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM prs_afdeling
|
||||
@@ -1126,7 +1127,7 @@ BEGIN
|
||||
THEN
|
||||
v_errorhint := 'Fout bij toevoegen afdeling';
|
||||
INSERT INTO prs_afdeling
|
||||
(prs_afdeling_parentkey,
|
||||
(prs_afdeling_parentkey,
|
||||
prs_afdeling_naam,
|
||||
prs_afdeling_upper,
|
||||
prs_afdeling_omschrijving
|
||||
@@ -1179,7 +1180,7 @@ BEGIN
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_error := 0;
|
||||
|
||||
|
||||
-- Toevoegen personen
|
||||
FOR recperslid IN cperslid
|
||||
LOOP
|
||||
@@ -1232,9 +1233,9 @@ BEGIN
|
||||
v_errorhint := 'Fout bij toevoegen persoon';
|
||||
|
||||
INSERT INTO prs_perslid
|
||||
(prs_perslid_module,
|
||||
(prs_perslid_module,
|
||||
prs_srtperslid_key,
|
||||
prs_afdeling_key,
|
||||
prs_afdeling_key,
|
||||
prs_perslid_voornaam,
|
||||
prs_perslid_naam,
|
||||
prs_perslid_tussenvoegsel,
|
||||
@@ -1243,18 +1244,18 @@ BEGIN
|
||||
prs_perslid_telefoonnr,
|
||||
prs_perslid_mobiel
|
||||
)
|
||||
VALUES ('PRS',
|
||||
VALUES ('PRS',
|
||||
v_srtperslid_key,
|
||||
v_afdeling_key,
|
||||
v_afdeling_key,
|
||||
recperslid.prs_perslid_voornaam,
|
||||
recperslid.prs_perslid_naam,
|
||||
recperslid.prs_perslid_tussenvoegsel,
|
||||
recperslid.prs_perslid_oslogin,
|
||||
recperslid.prs_perslid_email,
|
||||
recperslid.prs_perslid_email,
|
||||
recperslid.prs_perslid_telefoonnr,
|
||||
recperslid.prs_perslid_mobiel
|
||||
);
|
||||
|
||||
|
||||
v_errorhint := 'Fout bij bepalen loginnaam';
|
||||
ELSE
|
||||
IF (v_count > 1)
|
||||
@@ -1287,7 +1288,7 @@ BEGIN
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'Persoon: verwerkte regels zonder foutmelding: '
|
||||
@@ -1308,7 +1309,7 @@ BEGIN
|
||||
-- Nu gaan we bestaande personen bijwerken
|
||||
FOR recperslid IN cperslid
|
||||
LOOP
|
||||
BEGIN
|
||||
BEGIN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_aanduiding :=
|
||||
recperslid.prs_perslid_oslogin
|
||||
@@ -1351,7 +1352,7 @@ BEGIN
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND UPPER (p.prs_perslid_oslogin) = UPPER (recperslid.prs_perslid_oslogin);
|
||||
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM prs_perslid p
|
||||
@@ -1376,10 +1377,28 @@ BEGIN
|
||||
END;
|
||||
END IF;
|
||||
COMMIT;
|
||||
END;
|
||||
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',
|
||||
'Persoon: verwerkte regels zonder foutmelding: '
|
||||
@@ -1396,64 +1415,53 @@ BEGIN
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_error := 0;
|
||||
|
||||
|
||||
-- Nu gaan we de kenmerken bijwerken
|
||||
|
||||
|
||||
FOR recperslid IN cperslid
|
||||
LOOP
|
||||
BEGIN
|
||||
LOOP
|
||||
BEGIN
|
||||
SELECT p.prs_perslid_key
|
||||
INTO v_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE UPPER(recperslid.prs_perslid_oslogin) = UPPER(p.prs_perslid_oslogin);
|
||||
|
||||
DELETE FROM prs_kenmerklink
|
||||
WHERE prs_link_key = v_perslid_key
|
||||
AND prs_kenmerk_key IN (1041, 1060, 1080); --Keys voor kenmerken. In Acceptatie/branche:1040, 1041, 1060 In productie: 1041, 1060 & 1080
|
||||
|
||||
COMMIT;
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk import personen uit AD';
|
||||
|
||||
-- Toevoegen kenmerk "Import personen uit AD'
|
||||
INSERT INTO prs_kenmerklink
|
||||
(prs_link_key,
|
||||
prs_kenmerklink_niveau,
|
||||
prs_kenmerk_key,
|
||||
prs_kenmerklink_waarde)
|
||||
VALUES
|
||||
(v_perslid_key,
|
||||
'P',
|
||||
1041, -- Key voor Kenmerk 'Import personen uit AD'. In ACCEPTATIEOMGEVING & BRANCH: 1040 / In PRODUCTIEOMGEVING: 1041
|
||||
'1461'); -- Waarde "Ja" voor Kenmerk 'Import personen uit AD'.
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk Costcarrier';
|
||||
|
||||
-- Toevoegen kenmerk "Costcarrier'
|
||||
INSERT INTO prs_kenmerklink
|
||||
(prs_link_key,
|
||||
prs_kenmerklink_niveau,
|
||||
prs_kenmerk_key,
|
||||
prs_kenmerklink_waarde)
|
||||
VALUES
|
||||
(v_perslid_key,
|
||||
'P',
|
||||
1060, -- Key voor Kenmerk 'Costcarrier'. In ACCEPTATIEOMGEVING & BRANCH: 1041 / In PRODUCTIEOMGEVING: 1060
|
||||
recperslid.prs_perslid_costcarrier);
|
||||
|
||||
-- Toevoegen kenmerk "Company code'
|
||||
INSERT INTO prs_kenmerklink
|
||||
(prs_link_key,
|
||||
prs_kenmerklink_niveau,
|
||||
prs_kenmerk_key,
|
||||
prs_kenmerklink_waarde)
|
||||
VALUES
|
||||
(v_perslid_key,
|
||||
'P',
|
||||
1080, -- Key voor Kenmerk 'Costcarrier'. In ACCEPTATIEOMGEVING & BRANCH: 1060 / In PRODUCTIEOMGEVING: 1080
|
||||
recperslid.prs_perslid_companycode);
|
||||
END;
|
||||
END LOOP;
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk import personen uit AD';
|
||||
|
||||
-- Toevoegen kenmerk "Import personen uit AD'
|
||||
-- Key voor Kenmerk 'Import personen uit AD': 1041
|
||||
-- Waarde "Ja" voor Kenmerk 'Import personen uit AD'.
|
||||
PRS.upsertkenmerk (1041, v_perslid_key, '1461');
|
||||
|
||||
|
||||
v_errorhint := 'Fout bij toevoegen kenmerk Costcarrier';
|
||||
-- Toevoegen kenmerk "Costcarrier'
|
||||
-- Key voor Kenmerk 'Costcarrier': 1060
|
||||
PRS.upsertkenmerk (1060, v_perslid_key, recperslid.prs_perslid_costcarrier);
|
||||
|
||||
-- Toevoegen kenmerk "Company code'
|
||||
-- Key voor Kenmerk 'Costcarrier': 1080
|
||||
PRS.upsertkenmerk (1080, v_perslid_key, recperslid.prs_perslid_companycode);
|
||||
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;
|
||||
|
||||
-- Iedereen krijgt _default-rol die nog geen groep heeft.
|
||||
FOR recnogroup IN cnogroup
|
||||
@@ -1521,18 +1529,19 @@ BEGIN
|
||||
COMMIT;
|
||||
END IF; -- Geldig importbestand wat betreft aantal inserts
|
||||
COMMIT;
|
||||
|
||||
|
||||
FOR recwerkplek IN cwerkplek
|
||||
LOOP
|
||||
BEGIN
|
||||
prs.movetoruimte (recwerkplek.prs_perslid_key, recwerkplek.alg_ruimte_key, 'R', 0);
|
||||
-- Maximaal <20><>n werkplek per gebouw
|
||||
prs.movetoruimte (recwerkplek.prs_perslid_key, recwerkplek.alg_ruimte_key, 'G', 0);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
END pchd_update_perslid;
|
||||
/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
Reference in New Issue
Block a user