FCLT#83231 Individuele vervangers moeten blijven werken ongeacht prs_collegas_groep

svn path=/Website/trunk/; revision=64640
This commit is contained in:
Erik Groener
2024-05-14 13:22:45 +00:00
parent e0620c5f89
commit dd065c81f5

View File

@@ -1504,12 +1504,14 @@ Perslid.prototype._require_prs_collegas = function __require_prs_collegas()
this._prs_collegas = [];
this._prs_collegas[this._prs_perslid_key] = true;
var sql = "SELECT prs_perslid_key"
+ " , 0 isgroep"
+ " FROM prs_collega"
+ " WHERE prs_perslid_key_alt = " + this._prs_perslid_key;
if (S("prs_collegas_groep") > 0)
{
sql += " UNION ALL"
+ " SELECT prs_perslid_key "
+ " SELECT prs_perslid_key"
+ " , 1 isgroep"
+ " FROM fac_gebruikersgroep fgg "
+ " WHERE EXISTS "
+ " (SELECT 1 "
@@ -1522,7 +1524,7 @@ Perslid.prototype._require_prs_collegas = function __require_prs_collegas()
var oRs = Oracle.Execute(sql);
while (!oRs.Eof)
{
this._prs_collegas[oRs("prs_perslid_key").Value]=true;
this._prs_collegas[oRs("prs_perslid_key").Value]=oRs("isgroep").Value;
oRs.MoveNext();
}
oRs.Close();
@@ -1548,15 +1550,23 @@ Perslid.prototype.hasCollegas = function (prs_key)
Perslid.prototype.collegakeylist = function ()
{
this._require_prs_collegas();
var prsKeys = [];
for (var prs_key in this._prs_collegas)
var vervangerKeys = [];
var groepKeys = [];
for (var i=0; i<this._prs_collegas.length; i++)
{
prsKeys.push(prs_key);
switch (this._prs_collegas[i])
{
case 0: vervangerKeys.push(i); break; // vervangers bij persoon
case 1: groepKeys.push(i); break; // vervangers in autorisatiegroepen
// geen default: voor alle andere i=prs_perslid_key is er geen waarde.
}
}
if (S("prs_collegas_groep") > 0 && prsKeys.length > S("prs_collegas_groep"))
var prsKeys = vervangerKeys.concat(groepKeys); // alle vervangers
if (S("prs_collegas_groep") > 0 && groepKeys.length > S("prs_collegas_groep"))
{
__Log("Te veel vervangers gedefinieerd ({0}). Alle vervangers worden genegeerd.".format(prsKeys.length), "#FF0000");
return String(this._prs_perslid_key); // Dan negeren we alle collega's
__Log("Te veel groepsvervangers gedefinieerd ({0}). Alle groepsvervangers worden genegeerd.".format(groepKeys.length), "#FF0000");
var prsKeys = vervangerKeys.concat(this._prs_perslid_key); // Dan negeren we alleen groepsvervangers
}
return prsKeys.join(", ");
}