FSN#45087 Objecten koppelen grondig herzien voor performance
svn path=/Website/branches/v2017.3/; revision=37220
This commit is contained in:
@@ -8,69 +8,96 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Vanuit CNT\loadRuimteObjecten.asp is stdmld_key niet in gebruik
|
||||||
|
// Uitsluitend vanuit CNT\loadRuimteObjecten.asp is dept_key in gebruik
|
||||||
function get_objecten_sql(alg_key, alg_niveau, prs_key, dept_key, stdmld_key)
|
function get_objecten_sql(alg_key, alg_niveau, prs_key, dept_key, stdmld_key)
|
||||||
{
|
{
|
||||||
// Het aantal objecten kan ook ingeperkt worden door mld_stdmelding_srtinst.ins_srtinstallatie_key
|
if (dept_key > 0 && stdmld_key > 0)
|
||||||
var sql = "";
|
UNEXEPECTED_get_objecten_sql;
|
||||||
var first_time = true;
|
|
||||||
|
|
||||||
sql = "SELECT msi.ins_srtinstallatie_key"
|
var obj_sqls = [];
|
||||||
+ " , msi.ins_srtinstallatie_niveau"
|
|
||||||
+ " , msm.alg_org_obj_niveau"
|
|
||||||
+ " , msm.mld_stdmelding_prsafdobj"
|
|
||||||
+ " FROM mld_stdmelding msm"
|
|
||||||
+ " , mld_stdmelding_srtinst msi"
|
|
||||||
+ " WHERE msm.mld_stdmelding_key = msi.mld_stdmelding_key(+)"
|
|
||||||
+ " AND msm.mld_stdmelding_key = " + stdmld_key;
|
|
||||||
|
|
||||||
oRs = Oracle.Execute(sql);
|
// Plaatsgebonden objecten
|
||||||
while (!oRs.eof || first_time)
|
var alg_niveau_sql = get_alg_niveau_sql(alg_niveau, alg_key);
|
||||||
|
|
||||||
|
if (stdmld_key > 0) // Melding objecten
|
||||||
{
|
{
|
||||||
var inst_key = -1;
|
var sql = "SELECT msm.alg_org_obj_niveau"
|
||||||
var inst_type = "";
|
+ " , msm.mld_stdmelding_prsafdobj"
|
||||||
var org_obj_niveau = 9;
|
+ " FROM mld_stdmelding msm"
|
||||||
var is_prsafdobj = false;
|
+ " WHERE msm.mld_stdmelding_key = " + stdmld_key;
|
||||||
if (stdmld_key != -1)
|
var oRs = Oracle.Execute(sql);
|
||||||
|
var org_obj_niveau = oRs("alg_org_obj_niveau").Value || 9;
|
||||||
|
var is_prsafdobj = oRs("mld_stdmelding_prsafdobj").Value == 1;
|
||||||
|
oRs.Close();
|
||||||
|
var afdeling_sql = get_afdeling_sql(org_obj_niveau, prs_key, dept_key);
|
||||||
|
var persoon_sql = get_persoon_sql(prs_key, is_prsafdobj)
|
||||||
|
|
||||||
|
// Het aantal objecten kan ook ingeperkt worden door mld_stdmelding_srtinst.ins_srtinstallatie_key
|
||||||
|
var sql = "SELECT msi.ins_srtinstallatie_key"
|
||||||
|
+ " , msi.ins_srtinstallatie_niveau"
|
||||||
|
+ " FROM mld_stdmelding_srtinst msi"
|
||||||
|
+ " WHERE msi.mld_stdmelding_key = " + stdmld_key;
|
||||||
|
var oRs = Oracle.Execute(sql);
|
||||||
|
if (oRs.Eof) // Geen objectsoort beperking
|
||||||
{
|
{
|
||||||
inst_key = (oRs("ins_srtinstallatie_key").Value ? oRs("ins_srtinstallatie_key").Value : -1);
|
obj_sqls = get_stdmelding_sql(alg_niveau_sql, [afdeling_sql, persoon_sql], "");
|
||||||
inst_type = (oRs("ins_srtinstallatie_niveau").Value ? oRs("ins_srtinstallatie_niveau").Value : "");
|
|
||||||
org_obj_niveau = (oRs("alg_org_obj_niveau").Value == null ? 9 : oRs("alg_org_obj_niveau").Value);
|
|
||||||
is_prsafdobj = oRs("mld_stdmelding_prsafdobj").Value == 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var alg_niveau_sql = get_alg_niveau_sql(alg_niveau, alg_key);
|
|
||||||
var gebouw_persoon_sql = get_gebouw_persoon_sql(alg_niveau, alg_key, prs_key);
|
|
||||||
var installatie_where = get_installatie_where(inst_type, inst_key);
|
|
||||||
var obj_niveau_sql = get_obj_niveau_sql(org_obj_niveau, prs_key, dept_key, installatie_where);
|
|
||||||
var afdeling_persoon_sql = get_afdeling_persoon_sql(dept_key, prs_key, installatie_where, is_prsafdobj);
|
|
||||||
var afdelingsobjecten = (org_obj_niveau < 9 || prs_key != -1 || (dept_key && dept_key > 0));
|
|
||||||
|
|
||||||
var melding_sql = get_stdmelding_sql(alg_niveau_sql, obj_niveau_sql, gebouw_persoon_sql, afdeling_persoon_sql, installatie_where, afdelingsobjecten);
|
|
||||||
|
|
||||||
if (first_time)
|
|
||||||
{
|
|
||||||
sql = melding_sql;
|
|
||||||
first_time = false;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sql += " UNION " + melding_sql;
|
var disc_keys = [];
|
||||||
|
var group_keys = [];
|
||||||
|
var srt_keys = [];
|
||||||
|
while (!oRs.eof)
|
||||||
|
{
|
||||||
|
var inst_key = oRs("ins_srtinstallatie_key").Value;
|
||||||
|
var inst_type = oRs("ins_srtinstallatie_niveau").Value;
|
||||||
|
if (inst_key && inst_type) // Onzinnig als ze leeg zijn maar de interface ging het met 2017.3 nog niet tegen
|
||||||
|
{
|
||||||
|
switch (inst_type)
|
||||||
|
{
|
||||||
|
case "D": disc_keys.push(inst_key); break;
|
||||||
|
case "G": group_keys.push(inst_key); break;
|
||||||
|
case "S": srt_keys.push(inst_key); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oRs.MoveNext();
|
||||||
|
}
|
||||||
|
if (disc_keys.length)
|
||||||
|
{
|
||||||
|
var sqls = get_stdmelding_sql(alg_niveau_sql, [afdeling_sql, persoon_sql], " AND g.ins_discipline_key IN ({0})".format(disc_keys.join(", ")));
|
||||||
|
obj_sqls = obj_sqls.concat(sqls);
|
||||||
|
}
|
||||||
|
if (group_keys.length)
|
||||||
|
{
|
||||||
|
var sqls = get_stdmelding_sql(alg_niveau_sql, [afdeling_sql, persoon_sql], " AND s.ins_srtgroep_key IN ({0})".format(group_keys.join(", ")));
|
||||||
|
obj_sqls = obj_sqls.concat(sqls);
|
||||||
|
}
|
||||||
|
if (srt_keys.length)
|
||||||
|
{
|
||||||
|
var sqls = get_stdmelding_sql(alg_niveau_sql, [afdeling_sql, persoon_sql], " AND d.ins_srtdeel_key IN ({0})".format(srt_keys.join(", ")));
|
||||||
|
obj_sqls = obj_sqls.concat(sqls);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (stdmld_key != -1)
|
oRs.Close();
|
||||||
oRs.MoveNext();
|
|
||||||
}
|
}
|
||||||
oRs.Close();
|
else // Contract objecten
|
||||||
|
{
|
||||||
|
var afdeling_sql = (dept_key > 0) ? " ins_alg_ruimte_type = 'A' AND ins_alg_ruimte_key = " + dept_key : "";
|
||||||
|
var persoon_sql = (prs_key > 0) ? " ins_alg_ruimte_type = 'P' AND ins_alg_ruimte_key = " + prs_key : "";
|
||||||
|
|
||||||
|
obj_sqls = get_stdmelding_sql(alg_niveau_sql, [persoon_sql, afdeling_sql], "");
|
||||||
|
}
|
||||||
|
|
||||||
sql += " ORDER BY 2";
|
if (obj_sqls.length)
|
||||||
|
return obj_sqls.join(" UNION ") + " ORDER BY 2";
|
||||||
return sql;
|
else
|
||||||
|
return "SELECT 1 FROM DUAL WHERE 1=0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_afdeling_sql(p_org_obj_niveau, p_prs_key, p_dept_key)
|
||||||
function get_obj_niveau_sql(p_org_obj_niveau, p_prs_key, p_dept_key, p_installatie_where)
|
|
||||||
{
|
{
|
||||||
var v_obj_niveau_sql = "";
|
var v_org_niveau_sql = "";
|
||||||
if (p_org_obj_niveau < 9)
|
if (p_org_obj_niveau < 9)
|
||||||
{ // Autlevel is het afdelingsobjecten niveau (stdmelding.alg_org_obj_niveau) van waaruit objecten gekozen kunnen worden (null=alle, 0=bedrijf, ...., 9=geen).
|
{ // Autlevel is het afdelingsobjecten niveau (stdmelding.alg_org_obj_niveau) van waaruit objecten gekozen kunnen worden (null=alle, 0=bedrijf, ...., 9=geen).
|
||||||
var autlevel = p_org_obj_niveau;
|
var autlevel = p_org_obj_niveau;
|
||||||
@@ -93,16 +120,14 @@ function get_obj_niveau_sql(p_org_obj_niveau, p_prs_key, p_dept_key, p_installat
|
|||||||
else
|
else
|
||||||
var departmentsql = "d.ins_alg_ruimte_key";
|
var departmentsql = "d.ins_alg_ruimte_key";
|
||||||
|
|
||||||
v_obj_niveau_sql = " (ins_alg_ruimte_type = 'A' AND d.ins_alg_ruimte_key IN (" + departmentsql + ")" + p_installatie_where
|
v_org_niveau_sql = " ins_alg_ruimte_type = 'A' AND d.ins_alg_ruimte_key IN (" + departmentsql + ")";
|
||||||
+ " )"
|
|
||||||
+ (p_prs_key != -1 || (p_dept_key && p_dept_key > 0)? " OR" : "");
|
|
||||||
}
|
}
|
||||||
return v_obj_niveau_sql;
|
return v_org_niveau_sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_alg_niveau_sql(p_alg_niveau, p_alg_key)
|
function get_alg_niveau_sql(p_alg_niveau, p_alg_key)
|
||||||
{
|
{
|
||||||
var v_alg_niveau_sql = " (1 = 0)";
|
var v_alg_niveau_sql = "";
|
||||||
if (p_alg_niveau == "R" || p_alg_niveau == "V" || p_alg_niveau == "G" || p_alg_niveau == "L")
|
if (p_alg_niveau == "R" || p_alg_niveau == "V" || p_alg_niveau == "G" || p_alg_niveau == "L")
|
||||||
{
|
{
|
||||||
// In welke ruimtes keuren we objecten goed?
|
// In welke ruimtes keuren we objecten goed?
|
||||||
@@ -131,133 +156,109 @@ function get_alg_niveau_sql(p_alg_niveau, p_alg_key)
|
|||||||
var werkpleksql = "SELECT prs_werkplek_key"
|
var werkpleksql = "SELECT prs_werkplek_key"
|
||||||
+ " FROM prs_werkplek"
|
+ " FROM prs_werkplek"
|
||||||
+ " WHERE prs_alg_ruimte_key IN (" + roomsql + ")";
|
+ " WHERE prs_alg_ruimte_key IN (" + roomsql + ")";
|
||||||
v_alg_niveau_sql = " (ins_alg_ruimte_type = 'R' AND ins_alg_ruimte_key IN (" + roomsql + "))"
|
v_alg_niveau_sql = " ins_alg_ruimte_type = 'R' AND ins_alg_ruimte_key IN (" + roomsql + ")"
|
||||||
+ " OR (ins_alg_ruimte_type = 'W' AND ins_alg_ruimte_key IN (" + werkpleksql + "))"
|
+ " OR ins_alg_ruimte_type = 'W' AND ins_alg_ruimte_key IN (" + werkpleksql + ")"
|
||||||
|
|
||||||
|
if ( p_alg_niveau == "G" )// Gebouw kan ook een Terrein zijn
|
||||||
|
v_alg_niveau_sql += " OR (ins_alg_ruimte_type = 'T' AND ins_alg_ruimte_key = " + p_alg_key + ")";
|
||||||
|
|
||||||
}
|
}
|
||||||
return v_alg_niveau_sql;
|
return v_alg_niveau_sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_gebouw_persoon_sql(p_alg_niveau, p_alg_key, p_prs_key)
|
function get_persoon_sql(p_prs_key, p_is_prsafdobj)
|
||||||
{
|
{
|
||||||
var v_gebouw_persoon = ( p_alg_niveau == "G" // Gebouw kan ook een Terrein zijn
|
if (p_prs_key > 0)
|
||||||
? " OR (ins_alg_ruimte_type = 'T' AND ins_alg_ruimte_key = " + p_alg_key + ")"
|
return " ins_alg_ruimte_type = 'P'"
|
||||||
: ""
|
+ " AND ins_alg_ruimte_key IN"
|
||||||
)
|
+ " ("
|
||||||
+ ( p_prs_key != -1
|
+ ( p_is_prsafdobj
|
||||||
? " OR (ins_alg_ruimte_type = 'P' AND ins_alg_ruimte_key = " + p_prs_key + ")"
|
? "SELECT a.prs_perslid_key"
|
||||||
: ""
|
+ " FROM prs_perslid a"
|
||||||
);
|
+ " WHERE a.prs_afdeling_key IN"
|
||||||
return v_gebouw_persoon;
|
+ " (SELECT af.prs_afdeling_key"
|
||||||
|
+ " FROM prs_v_afdeling_familie af"
|
||||||
|
+ " , prs_afdeling pa"
|
||||||
|
+ " , prs_perslid pp"
|
||||||
|
+ " WHERE af.prs_afdeling_elder_key = pp.prs_afdeling_key"
|
||||||
|
+ " AND pa.prs_afdeling_key = af.prs_afdeling_key"
|
||||||
|
+ " AND pa.prs_afdeling_verwijder IS NULL"
|
||||||
|
+ " AND pp.prs_perslid_key = " + p_prs_key
|
||||||
|
+ " )"
|
||||||
|
: p_prs_key
|
||||||
|
)
|
||||||
|
+ " )"
|
||||||
|
else
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_afdeling_persoon_sql(p_dept_key, p_prs_key, p_installatie_where, p_is_prsafdobj)
|
// Per installatiesoort uit mld_stdmelding_srtinst
|
||||||
|
function get_stdmelding_sql(p_alg_niveau_sql, arr_sql, p_installatie_where)
|
||||||
{
|
{
|
||||||
var v_afdeling_persoon = ( p_dept_key && p_dept_key > 0
|
//var plaatsaanduiding = ( S("prs_wpprefix_objectid") == 1
|
||||||
? " (ins_alg_ruimte_type = 'A' AND ins_alg_ruimte_key = " + p_dept_key + ")" + p_installatie_where
|
// ? " CASE"
|
||||||
: ""
|
// + " WHEN o.prs_werkplek_omschrijving IS NOT NULL"
|
||||||
)
|
// + " THEN ' ' || o.prs_werkplek_omschrijving"
|
||||||
+ ( p_prs_key != -1
|
// + " ELSE ''"
|
||||||
? " (ins_alg_ruimte_type = 'P' AND ins_alg_ruimte_key IN"
|
// + " END"
|
||||||
+ " ("
|
// : "''");
|
||||||
+ ( p_is_prsafdobj
|
|
||||||
? "SELECT a.prs_perslid_key"
|
|
||||||
+ " FROM prs_perslid a"
|
|
||||||
+ " WHERE a.prs_afdeling_key IN"
|
|
||||||
+ " (SELECT af.prs_afdeling_key"
|
|
||||||
+ " FROM prs_v_afdeling_familie af"
|
|
||||||
+ " , prs_afdeling pa"
|
|
||||||
+ " , prs_perslid pp"
|
|
||||||
+ " WHERE af.prs_afdeling_elder_key = pp.prs_afdeling_key"
|
|
||||||
+ " AND pa.prs_afdeling_key = af.prs_afdeling_key"
|
|
||||||
+ " AND pa.prs_afdeling_verwijder IS NULL"
|
|
||||||
+ " AND pp.prs_perslid_key = " + p_prs_key
|
|
||||||
+ " )"
|
|
||||||
: p_prs_key
|
|
||||||
)
|
|
||||||
+ " )"
|
|
||||||
+ " )"
|
|
||||||
+ (p_dept_key && p_dept_key > 0? " OR" : "")
|
|
||||||
: ""
|
|
||||||
);
|
|
||||||
return v_afdeling_persoon;
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_stdmelding_sql(p_alg_niveau_sql, p_obj_niveau_sql, p_gebouw_persoon_sql, p_afdeling_persoon_sql, p_installatie_where, p_afdelingsobjecten)
|
|
||||||
{
|
|
||||||
var plaatsaanduiding = ( S("prs_wpprefix_objectid") == 1
|
|
||||||
? " CASE"
|
|
||||||
+ " WHEN o.prs_werkplek_omschrijving IS NOT NULL"
|
|
||||||
+ " THEN ' ' || o.prs_werkplek_omschrijving"
|
|
||||||
+ " ELSE ''"
|
|
||||||
+ " END"
|
|
||||||
: "''");
|
|
||||||
// JGL: bovenstaande even uitgeschakeld en ins_v_alg_overzicht niet meer joinen
|
// JGL: bovenstaande even uitgeschakeld en ins_v_alg_overzicht niet meer joinen
|
||||||
// !!! Dat joinen nekte de performance namelijk. Bovendien toch overkill voor uitsluitend een prs_werkplek_omschrijving
|
// !!! Dat joinen nekte de performance namelijk. Bovendien toch overkill voor uitsluitend een prs_werkplek_omschrijving
|
||||||
plaatsaanduiding = ", d.ins_deel_omschrijving " /* weggehaald + || plaatsaanduiding */
|
var plaatsaanduiding = ", d.ins_deel_omschrijving " /* weggehaald + || plaatsaanduiding */
|
||||||
+ " || ' (' || " + lcl.xsql("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key")
|
+ " || ' (' || " + lcl.xsql("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key")
|
||||||
+ " || ') ' || d.ins_deel_opmerking deel";
|
+ " || ') ' || d.ins_deel_opmerking deel";
|
||||||
|
|
||||||
var sql = "SELECT d.ins_deel_key"
|
var sqls = [];
|
||||||
+ plaatsaanduiding
|
if (p_alg_niveau_sql)
|
||||||
+ " , d.ins_alg_ruimte_key"
|
|
||||||
+ " , d.ins_alg_ruimte_type"
|
|
||||||
+ " , a.alg_ruimte_nr" // JGL: Ik vermoed dat deze effectief niet gebruikt wordt
|
|
||||||
+ " , CASE"
|
|
||||||
+ " WHEN d.ins_deel_t_uitvoertijd.eenheid = 'U'"
|
|
||||||
+ " THEN d.ins_deel_t_uitvoertijd.tijdsduur / 24"
|
|
||||||
+ " ELSE d.ins_deel_t_uitvoertijd.tijdsduur"
|
|
||||||
+ " END uitvoertijd" // Uitvoertijd in dagen.
|
|
||||||
+ " FROM ins_v_aanwezigdeel d"
|
|
||||||
+ " , alg_v_aanwezigruimte a"
|
|
||||||
+ " , ins_srtdeel s"
|
|
||||||
+ " , ins_srtgroep g"
|
|
||||||
+ " WHERE (" // let op het haakje hier
|
|
||||||
+ p_alg_niveau_sql
|
|
||||||
+ p_gebouw_persoon_sql
|
|
||||||
+ " )" // en het sluithaakje hier
|
|
||||||
+ " AND d.ins_alg_ruimte_key = a.alg_ruimte_key(+)" // outer join voor werkplekken (en locatie-objecten?)
|
|
||||||
+ " AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
|
||||||
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
|
||||||
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
|
|
||||||
+ p_installatie_where;
|
|
||||||
|
|
||||||
// Als persoons key is meegegeven dan niet meer eigen afdeling bepalen.
|
|
||||||
// Eigen afdelings objecten worden nu meegenomen in autorisatie van departmentsql
|
|
||||||
if (p_afdelingsobjecten)
|
|
||||||
{
|
{
|
||||||
sql += " UNION"
|
sqls.push("SELECT d.ins_deel_key"
|
||||||
+ " SELECT d.ins_deel_key"
|
+ plaatsaanduiding
|
||||||
+ plaatsaanduiding
|
+ " , d.ins_alg_ruimte_key"
|
||||||
+ " , d.ins_alg_ruimte_key"
|
+ " , d.ins_alg_ruimte_type"
|
||||||
+ " , d.ins_alg_ruimte_type"
|
+ " , a.alg_ruimte_nr" // gebruikt in mld_edit_melding.js/process_object_info om automatisch de ruimte te kiezen
|
||||||
+ " , NULL alg_ruimte_nr"
|
+ " , CASE"
|
||||||
+ " , CASE"
|
+ " WHEN d.ins_deel_t_uitvoertijd.eenheid = 'U'"
|
||||||
+ " WHEN d.ins_deel_t_uitvoertijd.eenheid = 'U'"
|
+ " THEN d.ins_deel_t_uitvoertijd.tijdsduur / 24"
|
||||||
+ " THEN d.ins_deel_t_uitvoertijd.tijdsduur / 24"
|
+ " ELSE d.ins_deel_t_uitvoertijd.tijdsduur"
|
||||||
+ " ELSE d.ins_deel_t_uitvoertijd.tijdsduur"
|
+ " END uitvoertijd" // Uitvoertijd in dagen.
|
||||||
+ " END uitvoertijd" // Uitvoertijd in dagen.
|
+ " FROM ins_v_aanwezigdeel d"
|
||||||
+ " FROM ins_v_aanwezigdeel d"
|
+ " , alg_v_aanwezigruimte a"
|
||||||
+ " , ins_srtdeel s"
|
+ " , ins_srtdeel s"
|
||||||
+ " , ins_srtgroep g"
|
+ " , ins_srtgroep g"
|
||||||
+ " WHERE (" // let op het haakje hier
|
+ " WHERE (" + p_alg_niveau_sql + " )"
|
||||||
+ p_obj_niveau_sql
|
+ " AND d.ins_alg_ruimte_key = a.alg_ruimte_key(+)" // outer join voor werkplekken (en locatie-objecten?)
|
||||||
+ p_afdeling_persoon_sql
|
+ " AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||||||
+ " )" // en het sluithaakje hier
|
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
||||||
+ " AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
|
||||||
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
+ p_installatie_where);
|
||||||
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return sql;
|
// Nu de objecten zonder plaats-scope
|
||||||
}
|
for (var i in arr_sql)
|
||||||
|
{
|
||||||
|
if (arr_sql[i])
|
||||||
|
sqls.push("SELECT d.ins_deel_key"
|
||||||
|
+ plaatsaanduiding
|
||||||
|
+ " , d.ins_alg_ruimte_key"
|
||||||
|
+ " , d.ins_alg_ruimte_type"
|
||||||
|
+ " , NULL alg_ruimte_nr"
|
||||||
|
+ " , CASE"
|
||||||
|
+ " WHEN d.ins_deel_t_uitvoertijd.eenheid = 'U'"
|
||||||
|
+ " THEN d.ins_deel_t_uitvoertijd.tijdsduur / 24"
|
||||||
|
+ " ELSE d.ins_deel_t_uitvoertijd.tijdsduur"
|
||||||
|
+ " END uitvoertijd" // Uitvoertijd in dagen.
|
||||||
|
+ " FROM ins_v_aanwezigdeel d"
|
||||||
|
+ " , ins_srtdeel s"
|
||||||
|
+ " , ins_srtgroep g"
|
||||||
|
+ " WHERE " + arr_sql[i]
|
||||||
|
+ " AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||||||
|
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
||||||
|
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
|
||||||
|
+ p_installatie_where);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sqls;
|
||||||
function get_installatie_where(p_inst_type, p_inst_key)
|
|
||||||
{
|
|
||||||
var v_inst_where = (p_inst_type == "D" ? " AND g.ins_discipline_key = " + p_inst_key : "")
|
|
||||||
+ (p_inst_type == "G" ? " AND s.ins_srtgroep_key = " + p_inst_key : "")
|
|
||||||
+ (p_inst_type == "S" ? " AND d.ins_srtdeel_key = " + p_inst_key : "");
|
|
||||||
return v_inst_where;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
%>
|
%>
|
||||||
Reference in New Issue
Block a user