FCLT#83231 Individuele vervangers moeten blijven werken ongeacht prs_collegas_groep
svn path=/Website/trunk/; revision=64651
This commit is contained in:
@@ -1501,17 +1501,23 @@ Perslid.prototype._require_prs_collegas = function __require_prs_collegas()
|
||||
{
|
||||
if (!this._prs_collegas)
|
||||
{
|
||||
this._prs_collegas = [];
|
||||
this._prs_collegas = {}; // Object, geen array!
|
||||
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;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.Eof)
|
||||
{
|
||||
this._prs_collegas[oRs("prs_perslid_key").Value]=true;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
if (S("prs_collegas_groep") > 0)
|
||||
{
|
||||
sql += " UNION ALL"
|
||||
+ " SELECT prs_perslid_key"
|
||||
+ " , 1 isgroep"
|
||||
var groepKeys = [];
|
||||
sql = " SELECT prs_perslid_key"
|
||||
+ " FROM fac_gebruikersgroep fgg "
|
||||
+ " WHERE EXISTS "
|
||||
+ " (SELECT 1 "
|
||||
@@ -1520,14 +1526,25 @@ Perslid.prototype._require_prs_collegas = function __require_prs_collegas()
|
||||
+ " AND fgg2.fac_groep_key = fg.fac_groep_key "
|
||||
+ " AND fgg2.prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " AND fg.fac_groep_collega = 1)";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.Eof)
|
||||
{
|
||||
groepKeys.push(oRs("prs_perslid_key").Value);
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
if (groepKeys.length > S("prs_collegas_groep"))
|
||||
{
|
||||
__Log("Te veel groepsvervangers gedefinieerd ({0}). Alle groepsvervangers worden genegeerd.".format(groepKeys.length), "#FF0000");
|
||||
}
|
||||
else
|
||||
{
|
||||
for (var i = 0; i < groepKeys.length; i++)
|
||||
{
|
||||
this._prs_collegas[groepKeys[i]] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.Eof)
|
||||
{
|
||||
this._prs_collegas[oRs("prs_perslid_key").Value]=oRs("isgroep").Value;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
return this._prs_collegas;
|
||||
}
|
||||
@@ -1542,33 +1559,26 @@ Perslid.prototype.isCollega = function (prs_key)
|
||||
Perslid.prototype.hasCollegas = function (prs_key)
|
||||
{
|
||||
this._require_prs_collegas();
|
||||
var lijst = this.collegakeylist();
|
||||
return lijst.indexOf(",") > 0; // Zelf zit je er ook altijd in
|
||||
var lijst = this.collegakeyarray();
|
||||
return lijst.length > 1; // Zelf zit je er ook altijd in
|
||||
}
|
||||
|
||||
// Komma-gescheiden lijst van jezelf en al je collega's
|
||||
Perslid.prototype.collegakeylist = function ()
|
||||
{
|
||||
this._require_prs_collegas();
|
||||
var vervangerKeys = [];
|
||||
var groepKeys = [];
|
||||
for (var i=0; i<this._prs_collegas.length; i++)
|
||||
{
|
||||
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.
|
||||
}
|
||||
}
|
||||
return prototype.collegakeyarray().join(", ");
|
||||
}
|
||||
|
||||
var prsKeys = vervangerKeys.concat(groepKeys); // alle vervangers
|
||||
if (S("prs_collegas_groep") > 0 && groepKeys.length > S("prs_collegas_groep"))
|
||||
// Array) van jezelf en al je collega's
|
||||
Perslid.prototype.collegakeyarray = function ()
|
||||
{
|
||||
this._require_prs_collegas();
|
||||
var prsKeys = [];
|
||||
for (var prs_key in this._prs_collegas)
|
||||
{
|
||||
__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
|
||||
prsKeys.push(prs_key);
|
||||
}
|
||||
return prsKeys.join(", ");
|
||||
return prsKeys;
|
||||
}
|
||||
|
||||
// Is deze gebruiker contactpersoon van *een* bedrijf (maakt niet uit welke)
|
||||
|
||||
Reference in New Issue
Block a user