AADS#32133: Vervolgvraag AADS#32035 over dienstniveaus.

svn path=/Website/trunk/; revision=31382
This commit is contained in:
Maykel Geerdink
2016-11-08 10:13:45 +00:00
parent 3dc0c190e0
commit a0a05f65cb
5 changed files with 69 additions and 24 deletions

View File

@@ -683,7 +683,9 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
var urlAdd;
if ((S("mld_edit_layout") == 1)) // Plaats gegevens worden voor de discipline/stdmelding gegevens getoond. Stdmelding afhankelijk van dienstlocatie maken. Daarom locatie en gebouw meegeven.
urlAdd = [{urlParam: "lockey", field: "locatiekey", init: mld_melding.loc_key},
{urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key}];
{urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key},
{urlParam: "flrkey", field: "verdiepingkey", init: mld_melding.flr_key},
{urlParam: "roomkey", field: "ruimtekey", init: mld_melding.room_key}];
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_vakgroup"),
@@ -714,6 +716,8 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
{
urlAdd.push({urlParam: "lockey", field: "locatiekey", init: mld_melding.loc_key});
urlAdd.push({urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key});
urlAdd.push({urlParam: "flrkey", field: "verdiepingkey", init: mld_melding.flr_key});
urlAdd.push({urlParam: "foomkey", field: "ruimtekey", init: mld_melding.room_key});
}
var res =

View File

@@ -36,6 +36,8 @@ var module = getQParam("module");
var ins_key = getQParamInt("ins_key", -1);
var loc_key = getQParamInt("lockey", -1);
var bld_key = getQParamInt("bldkey", -1);
var flr_key = getQParamInt("flrkey", -1);
var room_key = getQParamInt("roomkey", -1);
var extracode = getQParam("extracode", "");
var perslidKey = getQParamInt("perslidKey"); // Voor wie is de melding
var filtcode = getQParam("filtcode", "");
@@ -75,6 +77,8 @@ var params = { autfunctionKey: autfunctionKey,
ins_key: ins_key,
loc_key: loc_key,
bld_key: bld_key,
flr_key: flr_key,
room_key: room_key,
perslidKey: perslidKey };
var sql = "";

View File

@@ -32,6 +32,8 @@ var disc_key = getQParamInt("disc_key", -1);
var ins_key = getQParamInt("ins_key", -1);
var loc_key = getQParamInt("lockey", -1);
var bld_key = getQParamInt("bldkey", -1);
var flr_key = getQParamInt("flrkey", -1);
var room_key = getQParamInt("roomkey", -1);
var extracode = getQParam("extracode", "");
var perslidKey = getQParamInt("perslidKey", user_key); // Voor wie is de melding
var show_expired = (getQParamInt("show_expired", 0) == 1); // Vervallen stdmeldingen ook tonen
@@ -44,6 +46,8 @@ var filt_params = { disc_key: disc_key,
ins_key: ins_key,
loc_key: loc_key,
bld_key: bld_key,
flr_key: flr_key,
room_key: room_key,
perslidKey: perslidKey,
autfunctionKey: autfunctionKey,
show_expired: show_expired

View File

@@ -131,20 +131,35 @@ function getFiltClauseDiscipline(pfiltcode, params)
}
if (S("mld_edit_layout") == 1 && params.loc_key > 0 && params.bld_key > 0)
if (S("mld_edit_layout") == 1 && params.loc_key > 0) // Als de bld_key, flr_key of room_key is meegegeven is ook de loc_key meegegeven.
{ // Plaats gegevens worden voor de discipline/stdmelding gegevens getoond. Discipline en stdmelding afhankelijk van dienstlocatie maken.
lfiltClause.where += " AND (sm.mld_stdmelding_vereisdienst = 0"
+ " OR"
+ " (sm.mld_stdmelding_vereisdienst = 1 AND"
+ " EXISTS (SELECT bdl.prs_bedrijf_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " , prs_v_aanwezigbedrijf b"
+ " WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key"
+ " AND bdl.prs_dienst_key = sm.prs_dienst_key"
+ " AND ( (bdl.alg_gebouw_key = " + params.bld_key
+ " OR bdl.alg_gebouw_key IS NULL)"
+ " AND (bdl.alg_locatie_key = " + params.loc_key
+ " OR bdl.alg_locatie_key IS NULL)))))";
lfiltClause.where += " AND EXISTS (SELECT COALESCE (NULL"
+ (params.room_key > 0? " , ar.mld_dienstniveau_key" : "")
+ (params.flr_key > 0? " , av.mld_dienstniveau_key" : "")
+ (params.bld_key > 0? " , ag.mld_dienstniveau_key" : "")
+ " , al.mld_dienstniveau_key"
+ " ) mld_dienstniveau_key"
+ " FROM"
+ (params.room_key > 0? " alg_ruimte ar," : "")
+ (params.flr_key > 0? " alg_verdieping av," : "")
+ (params.bld_key > 0? " alg_gebouw ag," : "")
+ " alg_locatie al,"
+ " mld_dienstpakket dp"
+ " WHERE"
+ (params.room_key > 0? " ar.alg_ruimte_key = " + params.room_key
+ " AND ar.alg_verdieping_key = av.alg_verdieping_key AND" : "")
+ (params.flr_key > 0? " av.alg_verdieping_key = " + params.flr_key
+ " AND av.alg_gebouw_key = ag.alg_gebouw_key AND" : "")
+ (params.bld_key > 0? " ag.alg_gebouw_key = " + params.bld_key
+ " AND ag.alg_locatie_key = al.alg_locatie_key AND" : "")
+ " al.alg_locatie_key = " + params.loc_key
+ " AND COALESCE (NULL"
+ (params.room_key > 0? " , ar.mld_dienstniveau_key" : "")
+ (params.flr_key > 0? " , av.mld_dienstniveau_key" : "")
+ (params.bld_key > 0? " , ag.mld_dienstniveau_key" : "")
+ " , al.mld_dienstniveau_key"
+ " ) = dp.mld_dienstniveau_key"
+ " )"
}
return lfiltClause;
}

View File

@@ -91,17 +91,35 @@ function getFiltClauseStdmelding(pfiltcode, params, init)
}
if (S("mld_edit_layout") == 1 && params.loc_key > 0 && params.bld_key > 0)
if (S("mld_edit_layout") == 1 && params.loc_key > 0) // Als de bld_key, flr_key of room_key is meegegeven is ook de loc_key meegegeven.
{ // Plaats gegevens worden voor de discipline/stdmelding gegevens getoond. Discipline en stdmelding afhankelijk van dienstlocatie maken.
lfiltClause.where += " AND EXISTS (SELECT bdl.prs_bedrijf_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " , prs_v_aanwezigbedrijf b"
+ " WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key"
+ " AND bdl.prs_dienst_key = sm.prs_dienst_key"
+ " AND ( (bdl.alg_gebouw_key = " + params.bld_key
+ " OR bdl.alg_gebouw_key IS NULL)"
+ " AND (bdl.alg_locatie_key = " + params.loc_key
+ " OR bdl.alg_locatie_key IS NULL)))";
lfiltClause.where += " AND EXISTS (SELECT COALESCE (NULL"
+ (params.room_key > 0? " , ar.mld_dienstniveau_key" : "")
+ (params.flr_key > 0? " , av.mld_dienstniveau_key" : "")
+ (params.bld_key > 0? " , ag.mld_dienstniveau_key" : "")
+ " , al.mld_dienstniveau_key"
+ " ) mld_dienstniveau_key"
+ " FROM"
+ (params.room_key > 0? " alg_ruimte ar," : "")
+ (params.flr_key > 0? " alg_verdieping av," : "")
+ (params.bld_key > 0? " alg_gebouw ag," : "")
+ " alg_locatie al,"
+ " mld_dienstpakket dp"
+ " WHERE"
+ (params.room_key > 0? " ar.alg_ruimte_key = " + params.room_key
+ " AND ar.alg_verdieping_key = av.alg_verdieping_key AND" : "")
+ (params.flr_key > 0? " av.alg_verdieping_key = " + params.flr_key
+ " AND av.alg_gebouw_key = ag.alg_gebouw_key AND" : "")
+ (params.bld_key > 0? " ag.alg_gebouw_key = " + params.bld_key
+ " AND ag.alg_locatie_key = al.alg_locatie_key AND" : "")
+ " al.alg_locatie_key = " + params.loc_key
+ " AND COALESCE (NULL"
+ (params.room_key > 0? " , ar.mld_dienstniveau_key" : "")
+ (params.flr_key > 0? " , av.mld_dienstniveau_key" : "")
+ (params.bld_key > 0? " , ag.mld_dienstniveau_key" : "")
+ " , al.mld_dienstniveau_key"
+ " ) = dp.mld_dienstniveau_key"
+ " )"
}
return lfiltClause;