Functie iamContact() iets cachen, scheelt heel veel queries

svn path=/Website/trunk/; revision=33512
This commit is contained in:
Jos Groot Lipman
2017-04-18 10:48:05 +00:00
parent 908af56a3a
commit 2567edd8e3

View File

@@ -3321,7 +3321,7 @@ mld = {setmeldingstatus:
// Al ik een contactpersoon ben dan heb ik alleen rechten om mijn eigen opdrachten van mijn eigen bedrijf te zien/wijzigen
mresult.iamContact = mld.iamContact(); // Ben ik een contactpersoon?
mresult.iamBedrijfContact = false; // Aan bedrijf toegekend en ik ben contactpersoon van dat bedrijf? Bijv. vertaaldiensten UWVA
if (!uitv_intern) // Extern Bedrijf.
if (mresult.iamContact && !uitv_intern) // Extern Bedrijf.
{ // Ik ga er van uit dat je NIET als vervanger van een contactpersoon van een ander bedrijf wordt aangewezen.
mresult.iamBedrijfContact = mld.iamContact(uitv_key); // Ben ik contactpersoon van het uitvoerende bedrijf?
}
@@ -3789,8 +3789,12 @@ mld = {setmeldingstatus:
// Ben ik contactpersoon van *een* bedrijf (maakt niet uit welke)
// of specifiek van bedrijf_key
_user_is_contact: null, // Caching versie zonder bedrijf voor performance
iamContact: function _iamContact(bedrijf_key)
{
if (!bedrijf_key && mld._user_is_contact !== null)
return mld._user_is_contact;
var sql = "SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + user_key
@@ -3800,6 +3804,8 @@ mld = {setmeldingstatus:
var oRs = Oracle.Execute(sql);
var isEof = oRs.Eof;
oRs.Close();
if (!bedrijf_key)
mld._user_is_contact = !isEof;
return !isEof;
},