HEIN#88521: Filterprobleem in fiatteren facturen tabblad, toont alle locaties.
svn path=/Website/branches/v2025.1/; revision=68706
This commit is contained in:
@@ -598,17 +598,39 @@ function fin_list (params)
|
||||
if (kpgrp_key_arr)
|
||||
sql += " AND kpg.prs_kostenplaatsgrp_key IN (" + kpgrp_key_arr.join(", ") + ")";
|
||||
|
||||
// Als bld_key een geldige waarde heeft, hebben loc_key, dis_key en reg_key ook een geldige waarde
|
||||
if (reg_key)
|
||||
// Het eindlevel van de FCLTplaatsselector is Gebouw(3).
|
||||
// Het startlevel kan gekozen zijn (Regio(0), District(1), Locatie(1) of Gebouw(3)).
|
||||
// Dus als bld_key een geldige waarde heeft, wil niet zeggen dat loc_key, dis_key en reg_key ook een geldige waarde hebben.
|
||||
var dis_key_arr = [];
|
||||
var loc_key_arr = [];
|
||||
|
||||
if (bld_key)
|
||||
{ // Zoek de locatie die bij het gekozen gebouw hoort.
|
||||
sqlb = "SELECT l.alg_locatie_key"
|
||||
+ " FROM alg_locatie l"
|
||||
+ " , alg_gebouw g"
|
||||
+ " WHERE l.alg_locatie_key = g.alg_locatie_key"
|
||||
+ " AND g.alg_gebouw_key = " + bld_key;
|
||||
var oRsb = Oracle.Execute(sqlb);
|
||||
while (!oRsb.eof)
|
||||
{
|
||||
loc_key_arr.push(oRsb("alg_locatie_key").Value);
|
||||
oRsb.MoveNext();
|
||||
}
|
||||
oRsb.Close();
|
||||
}
|
||||
else if (loc_key)
|
||||
{
|
||||
loc_key_arr.push(loc_key);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dis_key_arr = [];
|
||||
if (dis_key)
|
||||
{
|
||||
dis_key_arr.push(dis_key);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Zoek alle districtn die bij het gekozen regio horen.
|
||||
else if (reg_key)
|
||||
{ // Zoek alle districtn die bij het gekozen regio horen.
|
||||
sqld = "SELECT alg_district_key"
|
||||
+ " FROM alg_district"
|
||||
+ " WHERE alg_regio_key = " + reg_key;
|
||||
@@ -621,12 +643,7 @@ function fin_list (params)
|
||||
oRsd.Close();
|
||||
}
|
||||
|
||||
var loc_key_arr = [];
|
||||
if (loc_key)
|
||||
{
|
||||
loc_key_arr.push(loc_key);
|
||||
}
|
||||
else
|
||||
if (dis_key_arr.length > 0)
|
||||
{
|
||||
// Zoek alle locaties die bij het gekozen regio/district horen.
|
||||
sqld = "SELECT alg_locatie_key"
|
||||
@@ -640,58 +657,59 @@ function fin_list (params)
|
||||
}
|
||||
oRsd.Close();
|
||||
}
|
||||
}
|
||||
|
||||
if (loc_key_arr.length > 0)
|
||||
if (loc_key_arr.length > 0)
|
||||
{
|
||||
// Als alleen reg_key en/of dis_key bekend is dan zoeken voor alle loc_key bij deze reg_key en/of dis_key.
|
||||
// 1) Het afleveradres van de locatie van de bestelling (bld_key is niet bekend/gedefinieerd)
|
||||
sql1 = " (f.bes_bestelopdr_key IS NOT NULL "
|
||||
+ " AND bo.mld_adres_key_lev IN ("
|
||||
+ "SELECT m.mld_adres_key"
|
||||
+ " FROM mld_v_afleveradres m"
|
||||
+ " WHERE m.alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
||||
|
||||
// 2) De plaats van de bijbehorende melding van de opdracht
|
||||
sql2 = " (f.mld_opdr_key IS NOT NULL "
|
||||
+ " AND EXISTS (SELECT m.mld_melding_key"
|
||||
+ " FROM alg_v_allonroerendgoed onrg"
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)"
|
||||
+ " AND onrg.alg_locatie_key IN (" + loc_key_arr.join(",") + ")"
|
||||
+ (bld_key
|
||||
? " AND ( (onrg.alg_gebouw_key = " + bld_key + ")"
|
||||
+ " OR (onrg.alg_terreinsector_key = " + bld_key + ")"
|
||||
+ " )"
|
||||
: "")
|
||||
+ " ))";
|
||||
|
||||
// Locatie/gebouw scope van het contract
|
||||
sql3 = " (c.cnt_contract_key IN"
|
||||
+ " (SELECT cnt_contract_key"
|
||||
+ " FROM cnt_v_aanwezigcontract_plaats"
|
||||
+ " WHERE (cnt_alg_plaats_code = 'L' AND cnt_alg_plaats_key IN (" + loc_key_arr.join(",") + "))";
|
||||
if (bld_key)
|
||||
{
|
||||
// Als alleen reg_key en/of dis_key bekend is dan zoeken voor alle loc_key bij deze reg_key en/of dis_key.
|
||||
// 1) Het afleveradres van de locatie van de bestelling (bld_key is niet bekend/gedefinieerd)
|
||||
sql1 = " (f.bes_bestelopdr_key IS NOT NULL "
|
||||
+ " AND bo.mld_adres_key_lev IN ("
|
||||
+ "SELECT m.mld_adres_key"
|
||||
+ " FROM mld_v_afleveradres m"
|
||||
+ " WHERE m.alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
||||
|
||||
// 2) De plaats van de bijbehorende melding van de opdracht
|
||||
sql2 = " (f.mld_opdr_key IS NOT NULL "
|
||||
+ " AND EXISTS (SELECT m.mld_melding_key"
|
||||
+ " FROM alg_v_allonroerendgoed onrg"
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)"
|
||||
+ " AND onrg.alg_locatie_key IN (" + loc_key_arr.join(",") + ")"
|
||||
+ (bld_key
|
||||
? " AND ( (onrg.alg_gebouw_key = " + bld_key + ")"
|
||||
+ " OR (onrg.alg_terreinsector_key = " + bld_key + ")"
|
||||
+ " )"
|
||||
: "")
|
||||
+ " ))";
|
||||
|
||||
// Locatie/gebouw scope van het contract
|
||||
sql3 = " (c.cnt_contract_key IN"
|
||||
+ " (SELECT cnt_contract_key"
|
||||
+ " FROM cnt_v_aanwezigcontract_plaats"
|
||||
+ " WHERE (cnt_alg_plaats_code = 'L' AND cnt_alg_plaats_key IN (" + loc_key_arr.join(",") + "))";
|
||||
if (bld_key)
|
||||
{
|
||||
sql3 += " OR (cnt_alg_plaats_code = 'G' AND cnt_alg_plaats_key = " + bld_key + ")"
|
||||
+ " OR (cnt_alg_plaats_code = 'T' AND cnt_alg_plaats_key = " + bld_key + ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
sql3 += " OR (cnt_alg_plaats_code = 'G' AND cnt_alg_plaats_key IN "
|
||||
+ " (SELECT alg_gebouw_key FROM alg_v_aanweziggebouw WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + "))"
|
||||
+ " OR cnt_alg_plaats_code = 'T' AND cnt_alg_plaats_key IN "
|
||||
+ " (SELECT alg_terreinsector_key FROM alg_v_aanwezigterreinsector WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
||||
}
|
||||
sql3 += " UNION"
|
||||
+ " SELECT cnt_contract_key"
|
||||
+ " FROM cnt_v_aanwezigcontract_object co"
|
||||
+ " , ins_v_aanwezigdeel ad"
|
||||
+ " WHERE cnt_ins_deel_key = ad.ins_deel_key AND ad.ins_alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
||||
|
||||
sql += "AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
|
||||
sql3 += " OR (cnt_alg_plaats_code = 'G' AND cnt_alg_plaats_key = " + bld_key + ")"
|
||||
+ " OR (cnt_alg_plaats_code = 'T' AND cnt_alg_plaats_key = " + bld_key + ")";
|
||||
}
|
||||
else
|
||||
// Er is geen enkele locatie die bij het gekozen district hoort. Dan kunnen er ook geen resultaten zijn.
|
||||
sql += " AND 1=0";
|
||||
{
|
||||
sql3 += " OR (cnt_alg_plaats_code = 'G' AND cnt_alg_plaats_key IN "
|
||||
+ " (SELECT alg_gebouw_key FROM alg_v_aanweziggebouw WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + "))"
|
||||
+ " OR cnt_alg_plaats_code = 'T' AND cnt_alg_plaats_key IN "
|
||||
+ " (SELECT alg_terreinsector_key FROM alg_v_aanwezigterreinsector WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
||||
}
|
||||
sql3 += " UNION"
|
||||
+ " SELECT cnt_contract_key"
|
||||
+ " FROM cnt_v_aanwezigcontract_object co"
|
||||
+ " , ins_v_aanwezigdeel ad"
|
||||
+ " WHERE cnt_ins_deel_key = ad.ins_deel_key AND ad.ins_alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
||||
|
||||
sql += "AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
|
||||
}
|
||||
else if (reg_key > 0 || dis_key > 0)
|
||||
{ // Er is geen enkele locatie die bij het gekozen regio en/of district hoort. Dan kunnen er ook geen resultaten zijn.
|
||||
sql += " AND 1=0";
|
||||
}
|
||||
|
||||
if (verantw_key)
|
||||
|
||||
Reference in New Issue
Block a user