FCLT#55825 performance opdrachtenlijst

svn path=/Website/branches/v2018.2/; revision=40293
This commit is contained in:
Jos Groot Lipman
2018-12-19 13:45:06 +00:00
parent 34d694dbd7
commit 450251f5fe

View File

@@ -711,29 +711,46 @@ mld = {setmeldingstatus:
return einddatum;
},
hasAlgUitvoertijd: -1, // unknown
getbedrijfuitvoertijd:
function _getbedrijfuitvoertijd(bedrijf_key, melding_key)
{
var sql, oRs, uitvoertijd, result = mld.mld_melding_info(melding_key);
sql = "SELECT bdl.prs_bdl_t_uitvoertijd.tijdsduur tijdsduur, bdl.prs_bdl_t_uitvoertijd.eenheid eenheid"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_bedrijf_key = " + bedrijf_key
+ " AND bdl.prs_dienst_key = " + result.dienst_key;
// Als in de tabel de alg_gebouw_key en/of alg_locatie_key NULL is dan levert het bedrijf de dienst op ALLE gebouwen en/of locaties.
if (result.bld_key > 0)
if (mld.hasAlgUitvoertijd == -1) // Zijn er specifieke uitvoertijden voor gebouwen?
{
sql += " AND ((bdl.alg_gebouw_key = " + result.bld_key + " OR bdl.alg_gebouw_key IS NULL) AND"
+ " (bdl.alg_locatie_key = " + result.loc_key + " OR bdl.alg_locatie_key IS NULL)" + ")";
var sql = "SELECT COUNT(*) cnt"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_bdl_t_uitvoertijd.tijdsduur IS NOT NULL";
var oRs = Oracle.Execute(sql)
mld.hasAlgUitvoertijd = oRs("cnt").Value;
oRs.Close()
}
else if (result.loc_key > 0) // <20>berhaupt plaatsgegevens?
{
sql += " AND (bdl.alg_locatie_key = " + result.loc_key + " OR bdl.alg_locatie_key IS NULL)";
}
sql += " AND bdl.prs_bdl_t_uitvoertijd.tijdsduur > 0";
oRs = Oracle.Execute(sql);
if (oRs.Eof)
var sql, oRs, uitvoertijd;
var hasSpecifiek = false;
if (mld.hasAlgUitvoertijd > 0) // Kijken of er een specifieke uitvoertijd voor ons gebouw is
{
var result = mld.mld_melding_info(melding_key); // deze is 'duur' dus zo weinig mogelijk uitvoeren
sql = "SELECT bdl.prs_bdl_t_uitvoertijd.tijdsduur tijdsduur, bdl.prs_bdl_t_uitvoertijd.eenheid eenheid"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_bedrijf_key = " + bedrijf_key
+ " AND bdl.prs_dienst_key = " + result.dienst_key;
// Als in de tabel de alg_gebouw_key en/of alg_locatie_key NULL is dan levert het bedrijf de dienst op ALLE gebouwen en/of locaties.
if (result.bld_key > 0)
{
sql += " AND ((bdl.alg_gebouw_key = " + result.bld_key + " OR bdl.alg_gebouw_key IS NULL) AND"
+ " (bdl.alg_locatie_key = " + result.loc_key + " OR bdl.alg_locatie_key IS NULL)" + ")";
}
else if (result.loc_key > 0) // <20>berhaupt plaatsgegevens?
{
sql += " AND (bdl.alg_locatie_key = " + result.loc_key + " OR bdl.alg_locatie_key IS NULL)";
}
sql += " AND bdl.prs_bdl_t_uitvoertijd.tijdsduur > 0";
oRs = Oracle.Execute(sql);
var hasSpecifiek = !oRs.Eof;
}
if (!hasSpecifiek)
{
sql = "SELECT b.prs_bedrijf_t_uitvoertijd.tijdsduur tijdsduur"
+ " , b.prs_bedrijf_t_uitvoertijd.eenheid eenheid"