PCHD#39386: AiAi fin_search_list.asp - ORA-00936: Ontbrekende uitdrukking.

svn path=/Website/branches/v2016.3/; revision=32727
This commit is contained in:
Maykel Geerdink
2017-02-07 10:10:54 +00:00
parent 1b2d13c40e
commit a89f202665

View File

@@ -342,7 +342,7 @@ function fin_list (params)
// 4) Als type (mld-cnt-bes) niet bekend/gekozen is, dan moet ik volledig rechten hebben
// sql4 = " (f.mld_opdr_key IS NOT NULL OR f.cnt_contract_key IS NOT NULL OR f.bes_bestelopdr_key IS NOT NULL)";
sql += "AND (" + sql1a + " OR " + sql1b + " OR " + sql2 + " OR " + sql3 + ")";
sql += " AND (" + sql1a + " OR " + sql1b + " OR " + sql2 + " OR " + sql3 + ")";
}
// Als bld_key een geldige waarde heeft, hebben loc_key en dis_key ook een geldige waarde
@@ -367,55 +367,62 @@ function fin_list (params)
}
oRsd.Close();
}
// Als alleen dis_key bekend is dan zoeken voor alle loc_key bij deze 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)
if (loc_key_arr.length > 0)
{
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 + ")";
// Als alleen dis_key bekend is dan zoeken voor alle loc_key bij deze 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(",") + ")"
+ " UNION"
+ " SELECT cnt_contract_key"
+ " FROM cnt_v_contract_locatie_geg cl"
+ " WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
sql += "AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
}
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(",") + ")"
+ " UNION"
+ " SELECT cnt_contract_key"
+ " FROM cnt_v_contract_locatie_geg cl"
+ " WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
sql += "AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
// Er is geen enkele locatie die bij het gekozen district hoort. Dan kunnen er ook geen resultaten zijn.
sql += " AND 1=0";
}
if (verantw_key)
@@ -469,7 +476,7 @@ function fin_list (params)
+ " AND (g.prs_perslid_key_verantw = " + verantw_key
+ " OR g.prs_perslid_key_verantw2 = " + verantw_key + ")))"
sql += "AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
sql += " AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
}
if (finnum) // mag fin_key of fin_factuur_nr zijn