FSN#39825: AiAi HSLE in SuggestPerslid.
svn path=/Website/branches/v2016.3/; revision=33127
This commit is contained in:
@@ -76,70 +76,80 @@ function getFiltClausePersoon(pfiltcode, params)
|
||||
break;
|
||||
case 'BEHF': // Mogelijke behandelaar (voor toekenning)
|
||||
// Dat is: als ik FO ben: fo-collegas
|
||||
var afd_key = new Perslid(params.prs_key).prs_afdeling_key();
|
||||
// Let op: *mijn* rechten (params.autlevel) doen niet ter zake. Het gaat om de rechten van de collega
|
||||
lfiltClause = " AND p.prs_perslid_key IN"
|
||||
+ " (SELECT prs_perslid_key"
|
||||
+ " FROM fac_v_webgebruiker g, fac_functie f"
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND g.ins_discipline_key = " + params.disc_key
|
||||
+ " AND (g.fac_gebruiker_prs_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write = 0"
|
||||
+ " AND d.prs_bedrijf_key = (SELECT aa.prs_bedrijf_key"
|
||||
+ " FROM prs_v_afdeling aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key + "))"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write > 0"
|
||||
+ " AND p.prs_afdeling_key IN "
|
||||
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key IN"
|
||||
+ " (SELECT aa.prs_afdeling_elder_key"
|
||||
+ " FROM prs_v_afdeling_familie aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key
|
||||
+ " AND aa.niveau = g.fac_gebruiker_prs_level_write))"
|
||||
+ " ))";
|
||||
if (params.loc_key > 0)
|
||||
lfiltClause += " AND (g.fac_gebruiker_alg_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND " + params.loc_key + " IN "
|
||||
+ " (SELECT alg_locatie_key FROM fac_v_my_locations "
|
||||
+ " WHERE prs_perslid_key = p.prs_perslid_key"
|
||||
+ " AND niveau = fac_gebruiker_alg_level_write)"
|
||||
+ " ))";
|
||||
lfiltClause +=" AND fac_functie_code = 'WEB_MLDFOF') ";
|
||||
if (params.prs_key > 0)
|
||||
{
|
||||
var afd_key = new Perslid(params.prs_key).prs_afdeling_key();
|
||||
// Let op: *mijn* rechten (params.autlevel) doen niet ter zake. Het gaat om de rechten van de collega
|
||||
lfiltClause = " AND p.prs_perslid_key IN"
|
||||
+ " (SELECT prs_perslid_key"
|
||||
+ " FROM fac_v_webgebruiker g, fac_functie f"
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND g.ins_discipline_key = " + params.disc_key
|
||||
+ " AND (g.fac_gebruiker_prs_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write = 0"
|
||||
+ " AND d.prs_bedrijf_key = (SELECT aa.prs_bedrijf_key"
|
||||
+ " FROM prs_v_afdeling aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key + "))"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write > 0"
|
||||
+ " AND p.prs_afdeling_key IN "
|
||||
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key IN"
|
||||
+ " (SELECT aa.prs_afdeling_elder_key"
|
||||
+ " FROM prs_v_afdeling_familie aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key
|
||||
+ " AND aa.niveau = g.fac_gebruiker_prs_level_write))"
|
||||
+ " ))";
|
||||
if (params.loc_key > 0)
|
||||
lfiltClause += " AND (g.fac_gebruiker_alg_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND " + params.loc_key + " IN "
|
||||
+ " (SELECT alg_locatie_key FROM fac_v_my_locations "
|
||||
+ " WHERE prs_perslid_key = p.prs_perslid_key"
|
||||
+ " AND niveau = fac_gebruiker_alg_level_write)"
|
||||
+ " ))";
|
||||
lfiltClause +=" AND fac_functie_code = 'WEB_MLDFOF') ";
|
||||
}
|
||||
else
|
||||
lfiltClause = " AND 1 = 0";
|
||||
break;
|
||||
case 'BEHB': // Mogelijke behandelaar (voor toekenning)
|
||||
// Dat is: als ik BO ben de bo-collegas.
|
||||
var afd_key = new Perslid(params.prs_key).prs_afdeling_key(); // afdeling van de melder!
|
||||
// Let op: *mijn* rechten (params.autlevel) doen niet ter zake. Het gaat om de rechten van de collega
|
||||
lfiltClause = " AND p.prs_perslid_key IN"
|
||||
+ " (SELECT prs_perslid_key"
|
||||
+ " FROM fac_v_webgebruiker g, fac_functie f"
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND g.ins_discipline_key = " + params.disc_key
|
||||
+ " AND (g.fac_gebruiker_prs_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write = 0"
|
||||
+ " AND d.prs_bedrijf_key = (SELECT aa.prs_bedrijf_key"
|
||||
+ " FROM prs_v_afdeling aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key + "))"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write > 0"
|
||||
+ " AND p.prs_afdeling_key IN "
|
||||
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key IN"
|
||||
+ " (SELECT aa.prs_afdeling_elder_key"
|
||||
+ " FROM prs_v_afdeling_familie aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key
|
||||
+ " AND aa.niveau = g.fac_gebruiker_prs_level_write))"
|
||||
+ " ))";
|
||||
if (params.loc_key > 0)
|
||||
lfiltClause += " AND (g.fac_gebruiker_alg_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND EXISTS"
|
||||
+ " (SELECT alg_locatie_key FROM fac_v_my_locations fl"
|
||||
+ " WHERE prs_perslid_key = p.prs_perslid_key"
|
||||
+ " AND niveau = fac_gebruiker_alg_level_write"
|
||||
+ " AND fl.alg_locatie_key = " + params.loc_key + ")"
|
||||
+ " ))";
|
||||
lfiltClause +=" AND (fac_functie_code = 'WEB_MLDBOF' OR fac_functie_code = 'WEB_MLDBO2')) ";
|
||||
if (params.prs_key > 0)
|
||||
{
|
||||
var afd_key = new Perslid(params.prs_key).prs_afdeling_key(); // afdeling van de melder!
|
||||
// Let op: *mijn* rechten (params.autlevel) doen niet ter zake. Het gaat om de rechten van de collega
|
||||
lfiltClause = " AND p.prs_perslid_key IN"
|
||||
+ " (SELECT prs_perslid_key"
|
||||
+ " FROM fac_v_webgebruiker g, fac_functie f"
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND g.ins_discipline_key = " + params.disc_key
|
||||
+ " AND (g.fac_gebruiker_prs_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write = 0"
|
||||
+ " AND d.prs_bedrijf_key = (SELECT aa.prs_bedrijf_key"
|
||||
+ " FROM prs_v_afdeling aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key + "))"
|
||||
+ " OR (g.fac_gebruiker_prs_level_write > 0"
|
||||
+ " AND p.prs_afdeling_key IN "
|
||||
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key IN"
|
||||
+ " (SELECT aa.prs_afdeling_elder_key"
|
||||
+ " FROM prs_v_afdeling_familie aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key
|
||||
+ " AND aa.niveau = g.fac_gebruiker_prs_level_write))"
|
||||
+ " ))";
|
||||
if (params.loc_key > 0)
|
||||
lfiltClause += " AND (g.fac_gebruiker_alg_level_write = -1"
|
||||
+ " OR (g.fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND EXISTS"
|
||||
+ " (SELECT alg_locatie_key FROM fac_v_my_locations fl"
|
||||
+ " WHERE prs_perslid_key = p.prs_perslid_key"
|
||||
+ " AND niveau = fac_gebruiker_alg_level_write"
|
||||
+ " AND fl.alg_locatie_key = " + params.loc_key + ")"
|
||||
+ " ))";
|
||||
lfiltClause +=" AND (fac_functie_code = 'WEB_MLDBOF' OR fac_functie_code = 'WEB_MLDBO2')) ";
|
||||
}
|
||||
else
|
||||
lfiltClause = " AND 1 = 0";
|
||||
break;
|
||||
case 'FING': // externe partijen toegang tot facilitor
|
||||
lfiltClause = " AND p.prs_perslid_key IN ("
|
||||
@@ -321,26 +331,31 @@ function getFiltClausePersoon(pfiltcode, params)
|
||||
break;
|
||||
case 'SUBS': // Vervangers
|
||||
var pkey = params.prs_key;
|
||||
var bdr_key = new Perslid(pkey).afdeling().prs_bedrijf_key();
|
||||
var afd_key = new Perslid(pkey).prs_afdeling_key();
|
||||
if (S("prs_collegas_used") == 0) // Bedrijf niveau zit niet in prs_v_afdeling_familie
|
||||
if (params.prs_key > 0)
|
||||
{
|
||||
var bdr_key = new Perslid(pkey).afdeling().prs_bedrijf_key();
|
||||
var afd_key = new Perslid(pkey).prs_afdeling_key();
|
||||
if (S("prs_collegas_used") == 0) // Bedrijf niveau zit niet in prs_v_afdeling_familie
|
||||
{
|
||||
lfiltClause += " AND p.prs_afdeling_key IN"
|
||||
+ " (SELECT a.prs_afdeling_key FROM prs_v_afdeling a"
|
||||
+ " WHERE a.prs_bedrijf_key = " + bdr_key + " )"
|
||||
}
|
||||
|
||||
// PRS autorisatie
|
||||
if (S("prs_collegas_used") > 0) // Efficiente versie van FAC_V_MY_PRS_AFDELINGEN_WRITE
|
||||
{
|
||||
lfiltClause +=" AND p.prs_afdeling_key IN "
|
||||
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key IN"
|
||||
+ " (SELECT aa.prs_afdeling_elder_key"
|
||||
+ " FROM prs_v_afdeling_familie aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key
|
||||
+ " AND aa.niveau = " + S("prs_collegas_used") + "))"
|
||||
}
|
||||
// PRS autorisatie
|
||||
if (S("prs_collegas_used") > 0) // Efficiente versie van FAC_V_MY_PRS_AFDELINGEN_WRITE
|
||||
{
|
||||
lfiltClause +=" AND p.prs_afdeling_key IN "
|
||||
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key IN"
|
||||
+ " (SELECT aa.prs_afdeling_elder_key"
|
||||
+ " FROM prs_v_afdeling_familie aa"
|
||||
+ " WHERE aa.prs_afdeling_key = " + afd_key
|
||||
+ " AND aa.niveau = " + S("prs_collegas_used") + "))"
|
||||
}
|
||||
}
|
||||
else
|
||||
lfiltClause = " AND 1 = 0";
|
||||
break;
|
||||
default: __Log("KIES JUISTE FILTERCODE!!!");
|
||||
lfiltClause = " AND 1 = 2";
|
||||
|
||||
Reference in New Issue
Block a user