NYBU#33748 meldingen bij reservering

svn path=/Website/trunk/; revision=28642
This commit is contained in:
Peter Feij
2016-03-25 16:16:53 +00:00
parent 2f9e60d206
commit 4cea5609a8
2 changed files with 51 additions and 20 deletions

View File

@@ -26,6 +26,7 @@ perform=false; // ???? JGL: MLD.INC gebruikt deze illegaal globaal TODO!
frontend=false;
var ruimte_key = getQParamInt("ruimte_key", -1);
var res_ruimte_key = getQParamInt("res_ruimte_key", -1);
var ins_key = getQParamInt("ins_key", -1);
var self = getQParamInt("self", -1);
var status = getQParamIntArray("status", []);
@@ -38,8 +39,30 @@ var qrc = getQParamInt("qrc", 0) != 0;
var grp_sel = getQParam("grp", "");
var subject = L("lcl_mobile_meldingen");
var ruimteKeyArr = [];
if (ruimte_key > -1)
// Reserveerbare ruimte: bepaal de alg_ruimte(s) en omschrijving
if (res_ruimte_key > -1 && ruimte_key == -1)
{
var sql = "SELECT res_ruimte_nr plaats "
+ " FROM res_ruimte"
+ " WHERE res_ruimte_key = " + res_ruimte_key
var oRs = Oracle.Execute(sql);
subject += " " + oRs("plaats").Value;
var sql = "SELECT alg_ruimte_key "
+ " FROM res_alg_ruimte rag"
+ " WHERE rag.res_ruimte_key = " + res_ruimte_key
+ " AND rag.res_alg_ruimte_verwijder IS NULL";
var oRs = Oracle.Execute(sql);
while (!oRs.eof) {
ruimte_key = oRs("alg_ruimte_key").value; // pak er maar eentje, meestal is het er maar een
ruimteKeyArr.push(oRs("alg_ruimte_key").value);
oRs.MoveNext();
}
}
// Gewone ruimte: bepaal de omschrijving
if (ruimte_key > -1 && res_ruimte_key == -1)
{
var sql = "SELECT aog.alg_gebouw_code || '-' || aog.alg_verdieping_code || '-' || aog.alg_ruimte_nr plaats "
+ " FROM alg_v_onroerendgoed_gegevens aog"
@@ -48,6 +71,7 @@ if (ruimte_key > -1)
subject += " " + oRs("plaats").Value;
}
// Object: bepaal de omschrijving
if (ins_key > -1)
{
var sql = " SELECT ins_deel_omschrijving"
@@ -138,9 +162,13 @@ var authparams = user.checkAutorisation(autfunction);
sqln += " AND mld_melding_parentkey IS NULL"; // child-meldingen hoef ik mobiel niet te zien.
if (ruimte_key > -1)
if (ruimte_key > -1 && ruimteKeyArr.length <= 1)
{
sqln += " AND (l.alg_locatie_key IS NULL OR v.alg_ruimte_key = " + ruimte_key + ")";
sqln += " AND (l.alg_locatie_key IS NULL OR v.alg_ruimte_key = " + ruimte_key + ")"; // PF: ik denk dat plaatsloze meldingen niet getoond hoeven worden als ruimtekey is gegeven, maar het staat er vast niet voor niks
}
if (ruimteKeyArr.length > 1)
{
sqln += " AND v.alg_ruimte_key IN (" + ruimteKeyArr.join(',') + ")";
}
if (ins_key > -1)
{
@@ -194,24 +222,28 @@ var authparams = user.checkAutorisation(autfunction);
// Alleen groepering toepassen indien er 3 of meer vakgroepen zijn en meer dan 10 meldingen.
// Bepaal aantal vakgroepen en aantal meldingen.
var cnt_vakgr = 0; // Aantal vakgroepen.
var cnt_mld = 0; // Aantal meldingen.
var show_vakgroepen = false;
// PF: Dit is wel een hele dure query (net zo als de echte) die je wilt voorkomen wanneer het kan zeg!
// Bijvoorbeeld niet als ik specifieke parameters gebruik, maar liever nog minder vaak
if (ruimte_key == -1 && ins_key == 1) {
var sqln_count = "SELECT COUNT(ins_discipline_omschrijving) nr_vakgr"
+ " , ins_discipline_omschrijving vakgroep"
+ " FROM (" + sqln + ") rec2"
+ " GROUP BY ins_discipline_omschrijving";
var oRs = Oracle.Execute(sqln_count);
var cnt_vakgr = 0; // Aantal vakgroepen.
var cnt_mld = 0; // Aantal meldingen.
while (!oRs.eof)
{
cnt_vakgr++;
cnt_mld += oRs("nr_vakgr").Value;
oRs.MoveNext();
}
var show_vakgroepen = false;
if (cnt_vakgr > 2 && cnt_mld > 10)
show_vakgroepen = true;
}
// @@ PF lijkt me ook niet altijd goed: wat is nou mogelijk zinvol?
// PF: lijkt me ook niet altijd goed: wat is nou mogelijk zinvol?
sqln = "SELECT * FROM (" + sqln + ") rec2"
+ (grp_sel == ""
? ""
@@ -283,7 +315,6 @@ var authparams = user.checkAutorisation(autfunction);
}
PAGE_START();
// TODO Alleen als ik schrijfrechten heb
HEADER({title: subject,
back: !qrc,
addaction: "../pda/melding.asp?mld_key=-1" + (ins_key > -1? "&ins_key=" + ins_key : "") + (ruimte_key > -1? "&ruimte_key=" + ruimte_key : "")});

View File

@@ -568,7 +568,7 @@ else
if (toRs(0).value == 1) { // eentje slechts, dan naar de details; max is vanzelfsprekend die ene
BUTTON(L("lcl_mobile_meldingen")+ " (1)", {linkid: "./melding.asp?mld_key="+toRs(1).value , dataicon: "alert", dataajax: 'false'});
} else if (toRs(0).value > 0) { // meerdere, dan naar lijst
BUTTON(L("lcl_mobile_meldingen")+" ("+toRs(0).value+")", {linkid: "./mld_list.asp?res_rsv_ruimte_key="+rsv_ruimte_key , dataicon: "alert", dataajax: 'false'});
BUTTON(L("lcl_mobile_meldingen")+" ("+toRs(0).value+")", {linkid: "./mld_list.asp?res_ruimte_key="+rsv.ruimtekey , dataicon: "alert", dataajax: 'false'});
}
}