RWSN#40827 Contractmodule geavanceerd zoeken uitbreiden

svn path=/Website/trunk/; revision=41164
This commit is contained in:
Erik Groener
2019-02-26 10:23:10 +00:00
parent 307844085f
commit ae47788e81
3 changed files with 59 additions and 23 deletions

View File

@@ -78,7 +78,7 @@ function generateFlexKenmerkCode(params)
var disc_key = loRs("ins_discipline_key").value; var disc_key = loRs("ins_discipline_key").value;
} }
sql = "SELECT k.cnt_kenmerk_key kenmerk_key, " sql = "SELECT DISTINCT " + (advanced?"k.cnt_srtkenmerk_key":"k.cnt_kenmerk_key") + " kenmerk_key, "
+ lcl.xsql('t.cnt_srtkenmerk_omschrijving', 't.cnt_srtkenmerk_key') +" kenmerk_omschrijving, " + lcl.xsql('t.cnt_srtkenmerk_omschrijving', 't.cnt_srtkenmerk_key') +" kenmerk_omschrijving, "
+ " t.cnt_srtkenmerk_kenmerktype kenmerk_kenmerktype, " + " t.cnt_srtkenmerk_kenmerktype kenmerk_kenmerktype, "
+ " t.fac_kenmerkdomein_key kenmerkdomein_key, " + " t.fac_kenmerkdomein_key kenmerkdomein_key, "
@@ -108,15 +108,49 @@ function generateFlexKenmerkCode(params)
+ " FROM cnt_srtkenmerk t" + " FROM cnt_srtkenmerk t"
+ ", cnt_kenmerk k" + ", cnt_kenmerk k"
+ ", cnt_discipline s" + ", cnt_discipline s"
+ " WHERE s.ins_discipline_key = " + disc_key + " WHERE k.cnt_srtcontract_key = s.ins_discipline_key"
+ " AND k.cnt_srtcontract_key = s.ins_discipline_key" + " AND k.cnt_kenmerk_verwijder IS NULL"
+ " AND k.cnt_kenmerk_verwijder IS NULL" + " AND k.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
+ " AND k.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key" + " AND t.cnt_srtkenmerk_verwijder IS NULL"
+ " AND t.cnt_srtkenmerk_verwijder IS NULL" + (disc_key > 0
? " AND s.ins_discipline_key = " + disc_key
: "")
+ (!this_cnt.canMANread? " AND cnt_kenmerk_volgnummer >= 100" : "") + (!this_cnt.canMANread? " AND cnt_kenmerk_volgnummer >= 100" : "")
+ (!this_cnt.canUSEread? " AND cnt_kenmerk_volgnummer <= 100" : "") + (!this_cnt.canUSEread? " AND cnt_kenmerk_volgnummer <= 100" : "");
+ " ORDER BY k.cnt_kenmerk_volgnummer"
+ ", UPPER("+lcl.xsql('t.cnt_srtkenmerk_omschrijving', 't.cnt_srtkenmerk_key')+")"; if (advanced) // Nog harder de dubbelen er uit filteren. Een kenmerk kan bijvoorbeeld bij verschillende
{ // objectsoorten een ander volgnummer hebben en dat interesseert ons echt niet.
sql = "SELECT kenmerk_key, "
+ " MIN(kenmerk_omschrijving) kenmerk_omschrijving, "
+ " MIN(kenmerk_kenmerktype ) kenmerk_kenmerktype, "
+ " MIN(kenmerkdomein_key ) kenmerkdomein_key, "
+ " MIN(kenmerk_lengte ) kenmerk_lengte, "
+ " MIN(kenmerk_dec ) kenmerk_dec, "
+ " MIN(kenmerk_nmin ) kenmerk_nmin, "
+ " MIN(kenmerk_nmax ) kenmerk_nmax, "
+ " MIN(kenmerk_systeem ) kenmerk_systeem, "
+ " MIN(kenmerk_waarde ) kenmerk_waarde, "
+ " MIN(kenmerk_volgnr ) kenmerk_volgnr, "
+ " MIN(kenmerk_dimensie ) kenmerk_dimensie, "
+ " MIN(kenmerk_hint ) kenmerk_hint, "
+ " MIN(kenmerk_default ) kenmerk_default, "
+ " MIN(otherpath ) otherpath, "
+ " MIN(kenmerk_verplicht ) kenmerk_verplicht, "
+ " MIN(kenmerk_groep ) kenmerk_groep, "
+ " MIN(kenmerk_toonbaar ) kenmerk_toonbaar, "
+ " MIN(kenmerk_uniek ) kenmerk_uniek,"
+ " MIN(kenmerk_regexp ) kenmerk_regexp"
+ " FROM (" + sql + ")"
+ " GROUP BY kenmerk_key"
+ " ORDER BY kenmerk_volgnr"
+ " , UPPER (kenmerk_omschrijving)"
}
else
{
sql += " ORDER BY k.cnt_kenmerk_volgnummer"
+ ", UPPER(" + lcl.xsql("t.cnt_srtkenmerk_omschrijving", "t.cnt_srtkenmerk_key") + ")";
}
var trn = 0; var trn = 0;

View File

@@ -39,6 +39,7 @@
<!-- #include file="../Shared/persoonselector.inc" --> <!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" --> <!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" --> <!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/xd.inc" --> <!-- #include file="../Shared/xd.inc" -->
<!-- #include file="../Shared/kostensoortselector.inc" --> <!-- #include file="../Shared/kostensoortselector.inc" -->
@@ -159,12 +160,6 @@ var authparams = user.checkAutorisation(autfunction, true) || {};
{ %> { %>
function myModal(init) function myModal(init)
{ {
if ($('#disc').val() == -1)
{
FcltMgr.alert(L("lcl_cnt_nosrttype_selected"));
return;
}
var key = $('#disc').val(); var key = $('#disc').val();
var url = "load_kenmerk.asp?disc=" + $('#disc').val() var url = "load_kenmerk.asp?disc=" + $('#disc').val()
+ "&advanced=1"; + "&advanced=1";

View File

@@ -183,20 +183,22 @@ function getKenmerkSql(pmodule, pkeyColumn, prequestForm)
{ {
// add_b blijft true trouwens // add_b blijft true trouwens
// Bij INS bevat kk een ins_srtkenmerk_key, niet een ins_kenmerk_key zoals de rest. // Bij INS bevat kk een ins_srtkenmerk_key, niet een ins_kenmerk_key zoals de rest.
// Dat is zo geregeld in INS/ins_flexkenmerk.inc // Dat is zo geregeld in INS/ins_flexkenmerk.inc
// We moeten nu wel de tabel ins_kenmerk er bij slepen // We moeten nu wel de tabel ins_kenmerk er bij slepen
// Zelfde truc ook voor MLD // Zelfde truc ook voor MLD
where = "(" + ((ko == "IS NULL") ? " NOT " : "") where = "(" + ((ko == "IS NULL") ? " NOT " : "")
+ " EXISTS (SELECT 'x'" + " EXISTS (SELECT 'x'"
+ " FROM " + ktable + " FROM " + ktable
+ (pmodule == "INS"? ", ins_kenmerk ik":"") + (pmodule == "INS"? ", ins_kenmerk ik":"")
+ (pmodule == "MLD"? ", mld_kenmerk mk":"") + (pmodule == "MLD"? ", mld_kenmerk mk":"")
+ (pmodule == "CNT"? ", cnt_kenmerk ck":"")
+ " WHERE " + " WHERE "
+ (pmodule == "INS"? " ik.ins_srtkenmerk_key = " + kk + " AND ik.ins_kenmerk_key = ins_kenmerkdeel.ins_kenmerk_key":"") + (pmodule == "INS"? " ik.ins_srtkenmerk_key = " + kk + " AND ik.ins_kenmerk_key = ins_kenmerkdeel.ins_kenmerk_key":"")
+ (pmodule == "MLD"? " mk.mld_srtkenmerk_key = " + kk + " AND mk.mld_kenmerk_key = "+ktable+".mld_kenmerk_key":"") + (pmodule == "MLD"? " mk.mld_srtkenmerk_key = " + kk + " AND mk.mld_kenmerk_key = "+ktable+".mld_kenmerk_key":"")
+ (pmodule != "INS" && pmodule != "MLD" ? pmodule.toLowerCase() + "_kenmerk_key = " + kk:"") + (pmodule == "CNT"? " ck.cnt_srtkenmerk_key = " + kk + " AND ck.cnt_kenmerk_key = "+ktable+".cnt_kenmerk_key":"")
+ (pmodule != "INS" && pmodule != "MLD" && pmodule != "CNT" ? pmodule.toLowerCase() + "_kenmerk_key = " + kk:"")
+ " AND " + (add_c ? "((" : "") + tablekey2 + " = " + tableref + "." + tablekey; + " AND " + (add_c ? "((" : "") + tablekey2 + " = " + tableref + "." + tablekey;
if (add_c) if (add_c)
@@ -220,9 +222,11 @@ function getKenmerkSql(pmodule, pkeyColumn, prequestForm)
+ " FROM " + ktable + " FROM " + ktable
+ (pmodule == "INS"? ", ins_kenmerk ik":"") + (pmodule == "INS"? ", ins_kenmerk ik":"")
+ (pmodule == "MLD"? ", mld_kenmerk mk":"") + (pmodule == "MLD"? ", mld_kenmerk mk":"")
+ (pmodule == "CNT"? ", cnt_kenmerk ck":"")
+ " WHERE " + " WHERE "
+ (pmodule == "INS"? " ik.ins_srtkenmerk_key = " + kk + " AND ik.ins_kenmerk_key = ins_kenmerkdeel.ins_kenmerk_key":"") + (pmodule == "INS"? " ik.ins_srtkenmerk_key = " + kk + " AND ik.ins_kenmerk_key = ins_kenmerkdeel.ins_kenmerk_key":"")
+ (pmodule == "MLD"? " mk.mld_srtkenmerk_key = " + kk + " AND mk.mld_kenmerk_key = "+ktable+".mld_kenmerk_key":"") + (pmodule == "MLD"? " mk.mld_srtkenmerk_key = " + kk + " AND mk.mld_kenmerk_key = "+ktable+".mld_kenmerk_key":"")
+ (pmodule == "CNT"? " ck.cnt_srtkenmerk_key = " + kk + " AND ck.mld_kenmerk_key = "+ktable+".cnt_kenmerk_key":"")
+ (pmodule != "INS" && pmodule != "MLD" ? pmodule.toLowerCase() + "_kenmerk_key = " + kk:"") + (pmodule != "INS" && pmodule != "MLD" ? pmodule.toLowerCase() + "_kenmerk_key = " + kk:"")
+ " AND " + where1 + " " + where2 + " AND " + where1 + " " + where2
+ andALG + andPRS + andALG + andPRS
@@ -235,16 +239,19 @@ function getKenmerkSql(pmodule, pkeyColumn, prequestForm)
// voor filter Geen Waarde zou ook nog: Wel een record maar met een NULL waarde kunnen gelden // voor filter Geen Waarde zou ook nog: Wel een record maar met een NULL waarde kunnen gelden
// die nemen we ook nog mee. Alleen bij "Gevuld" (verwerkt in 'where') hoeven we niet verder naar de waarden te kijken // die nemen we ook nog mee. Alleen bij "Gevuld" (verwerkt in 'where') hoeven we niet verder naar de waarden te kijken
// in alle andere gevallen komt hier de conditie 'kenmerk=waarde' erbij // in alle andere gevallen komt hier de conditie 'kenmerk=waarde' erbij
if (ko != "IS NOT NULL") { if (ko != "IS NOT NULL")
{
sql_k +=((add_b || add_c) ? " OR " : "") sql_k +=((add_b || add_c) ? " OR " : "")
+ " " + tableref + "." + tablekey + " IN (SELECT " + tablekey2 + " " + tableref + "." + tablekey + " IN (SELECT " + tablekey2
+ " FROM " + ktable + " FROM " + ktable
+ (pmodule == "INS"? ", ins_kenmerk ik":"") + (pmodule == "INS"? ", ins_kenmerk ik":"")
+ (pmodule == "MLD"? ", mld_kenmerk mk":"") + (pmodule == "MLD"? ", mld_kenmerk mk":"")
+ (pmodule == "CNT"? ", cnt_kenmerk ck":"")
+ " WHERE " + " WHERE "
+ (pmodule == "INS"? " ik.ins_srtkenmerk_key = " + kk + " AND ik.ins_kenmerk_key = ins_kenmerkdeel.ins_kenmerk_key":"") + (pmodule == "INS"? " ik.ins_srtkenmerk_key = " + kk + " AND ik.ins_kenmerk_key = ins_kenmerkdeel.ins_kenmerk_key":"")
+ (pmodule == "MLD"? " mk.mld_srtkenmerk_key = " + kk + " AND mk.mld_kenmerk_key = "+ktable+".mld_kenmerk_key":"") + (pmodule == "MLD"? " mk.mld_srtkenmerk_key = " + kk + " AND mk.mld_kenmerk_key = "+ktable+".mld_kenmerk_key":"")
+ (pmodule != "INS" && pmodule != "MLD" ? pmodule.toLowerCase() + "_kenmerk_key = " + kk:"") + (pmodule == "CNT"? " ck.cnt_srtkenmerk_key = " + kk + " AND ck.cnt_kenmerk_key = "+ktable+".cnt_kenmerk_key":"")
+ (pmodule != "INS" && pmodule != "MLD" && pmodule != "CNT" ? pmodule.toLowerCase() + "_kenmerk_key = " + kk:"")
+ " AND " + where1 + " " + where2 + " AND " + where1 + " " + where2
+ andALG + andPRS + andALG + andPRS
+ where3 + where4 + where3 + where4