HEIN#88521: Filterprobleem in fiatteren facturen tabblad, toont alle locaties.

svn path=/Website/branches/v2025.1/; revision=68706
This commit is contained in:
Maykel Geerdink
2025-04-09 13:20:45 +00:00
parent 3e69fad064
commit b1e035ce4b

View File

@@ -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)