FCLT#55779 Nieuwe meldingen registreren t/m min verplicht niveau op Mobile

svn path=/Website/trunk/; revision=40816
This commit is contained in:
Alex Tiehuis
2019-02-06 12:17:23 +00:00
parent 0fbb107376
commit 3533d25414
2 changed files with 119 additions and 7 deletions

View File

@@ -88,7 +88,7 @@ if (mld_key == -1)
}
// Optioneel:
var ins_key = getQParamInt("ins_key", -1); // test 5009 Het kan zijn dat ik vanuit de lijst deze meekrijg om een nieuwe aan te maken
var ruimte_key = getQParamInt("ruimte_key", -1); // Het kan zijn dat ik vanuit de lijst deze meekrijg om een nieuwe aan te maken
var ruimte_key = getQParamInt("ruimte_key", getQParamInt("roo_key", -1)); // Het kan zijn dat ik vanuit de lijst deze meekrijg om een nieuwe aan te maken
addSubheader = (ins_key > -1 || ruimte_key > -1);
if (ruimte_key==-1 && ins_key > -1)
{
@@ -119,10 +119,10 @@ if (mld_key == -1)
var alg_level = this_stdmelding.ins_srtdiscipline_alglevel;
// Deze zijn niet waarschijnlijk meegegeven, maar de defaultwaarde is ook al handig
var locatie_key = getQParamInt("locatie_key", -1); // Locatie
var gebouw_key = getQParamInt("gebouw_key", -1); // Gebouw, kan -1 zijn, dan niet gebruiken
var verdieping_key = getQParamInt("verdieping_key", -1);
var ruimte_key = getQParamInt("ruimte_key", -1);
var locatie_key = getQParamInt("locatie_key", getQParamInt("loc_key", -1)); // Locatie
var gebouw_key = getQParamInt("gebouw_key", getQParamInt("bld_key", -1)); // Gebouw, kan -1 zijn, dan niet gebruiken
var verdieping_key = getQParamInt("verdieping_key", getQParamInt("flr_key", -1));
var ruimte_key = getQParamInt("ruimte_key", getQParamInt("roo_key", -1));
if (locatie_key < 0 && gebouw_key < 0 && verdieping_key < 0 && ruimte_key < 0)
{ // Geen waarden meegegeven. Neem eigen werklocatie die hoort bij de srtdiscipline van de stdmelding.
// Restrict level to mobile_alg_level setting (LGV)

View File

@@ -22,6 +22,8 @@
<!-- #include file="../shared/common.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="./iface.inc" -->
<!-- #include file="../shared/suggest/stdmeldingFilter.inc" -->
@@ -33,17 +35,36 @@ var qrc = getQParamInt("qrc", 0) != 0;
var action = getQParam("action", "");
var urole = getQParamSafe("urole", "");
var stdm_keys = getQParamIntArray("stdm_keys", []);
var objPlaats = {
loc_key: -1,
bld_key: -1,
flr_key: -1,
parms: function() {
return (objPlaats.loc_key > 0 ? "&loc_key="+objPlaats.loc_key : "") +
(objPlaats.bld_key > 0 ? "&bld_key="+objPlaats.bld_key : "") +
(objPlaats.flr_key > 0 ? "&flr_key="+objPlaats.flr_key : "");
}
};
if (urole == "")
{
// Voorlopig bepalen wat de urole is, voor gebruik in autfunction.
urole = (user.has("WEB_MLDFOF") ? "fo" : "fe");
}
var transitParam = buildTransitParam(["mld_key", "action", "disc", "srtdisc", "ins_key", "locatie_key", "gebouw_key", "verdieping_key", "ruimte_key", "meldbronkey", "deelsrtcont_key"] );
var transitParam = buildTransitParam(["mld_key", "action", "disc", "srtdisc", "ins_key", "loc_key", "bld_key", "flr_key", "roo_key", "meldbronkey", "deelsrtcont_key"] );
var sql = "SELECT COALESCE(MIN(fac_gebruiker_alg_level_write), 9) writelevel"
+ " FROM fac_v_webgebruiker g, fac_functie f "
+ " WHERE g.fac_functie_key = f.fac_functie_key "
+ " AND f.fac_functie_code = " + safe.quoted_sql("MLD_FOF")
+ " AND g.prs_perslid_key = " + user_key;
var oRs = Oracle.Execute(sql);
var autlevel = oRs("writelevel").Value; // Pas op: kan ook '0' zijn (regio)
oRs.Close();
// Verplicht:
var disc_key = getQParamInt("disc", -1);
var srtdisc_key = getQParamInt("srtdisc", -1);
var stdm_key = getQParamInt("stdm", -1);
// Optioneel
var ins_key = getQParamInt("ins_key", -1); // test UWVA:11525 Het kan zijn dat ik vanuit de lijst deze meekrijg om een nieuwe aan te maken
@@ -55,6 +76,57 @@ if (user.has("WEB_MLDUSE")) autfunction.push("WEB_MLDUSE"); // voor urole=fe en
if (srtdisc_key > 0)
lcl.set_dialect(srtdisc_key, "MLD_SRTDISCIPLINE_KEY");
// determine required level through mld_stdmelding
var stdm_info = stdm_key > 0 ? mld.mld_stdmeldinginfo(stdm_key) : "";
var requiredlevel = -1;
if (stdm_info == "")
{
var next_asp = "melding_new.asp"; // until disc_key is present
}
else
{
if (!stdm_info.ins_srtdiscipline_alg)
{
var next_asp = "melding.asp"; // no place selection required, back without place selected
else
{
var next_asp = "plaatsselector.asp"; // via place selector
switch (stdm_info.alg_onrgoed_niveau)
{
case "L" : requiredlevel = 2; break;
case "G" : requiredlevel = 3; break;
case "V" : requiredlevel = 4; break;
case "R" : requiredlevel = 5; break;
}
// Determine user's workplace
var thisUser = prs.prs_perslid(user_key, { withWL: true })
var alg_level = -1; // location
if (thisUser.werklocatie)
{
if (thisUser.werklocatie.alg_verdieping_key && thisUser.werklocatie.alg_verdieping_key > 0)
alg_level = 4; // floor
else if (thisUser.werklocatie.alg_gebouw_key && thisUser.werklocatie.alg_gebouw_key > 0)
alg_level = 3; // building
else if (thisUser.werklocatie.alg_locatie_key && thisUser.werklocatie.alg_locatie_key > 0)
alg_level = 2; // location
}
// determine how to handle place selection
var startlevel = 2; // location
if (S("mld_mobile_place_handler") == "2")
{ // autofill user's workplace up to required level
switch (requiredlevel)
{
case 5:
case 4: if (alg_level >= 4) { objPlaats.flr_key = thisUser.werklocatie.alg_verdieping_key; }
case 3: if (alg_level >= 3) { objPlaats.bld_key = thisUser.werklocatie.alg_gebouw_key; }
case 2: if (alg_level >= 2) { objPlaats.loc_key = thisUser.werklocatie.alg_locatie_key; }
}
}
if (alg_level >= requiredlevel) { var next_asp = "melding.asp"; }
}
}
%>
<html>
<head>
@@ -62,8 +134,48 @@ if (srtdisc_key > 0)
<script type="text/javascript">
function mld_new(disc_key, stdm_key, urole)
{
window.location.href = "melding.asp?disc_key="+disc_key+"&stdm_key=" + stdm_key + "<%=safe.jsstring(transitParam)%>&urole=" + urole;
<% if (next_asp == "melding.asp")
{
%>
var purl = "melding.asp"
+ "?mld_key=-1"
+ "&disc_key="+disc_key
+ "&stdm_key=" + stdm_key
+ "<%=safe.jsstring(objPlaats.parms())%>"
+ "&urole=" + urole
<%
}
else
{
%>
var purl = "?mld_key=-1"
+ "&disc_key=" + disc_key
+ "&stdm_key=" + stdm_key
+ "&urole=" + urole
purl = "<%=next_asp%>"
+ "?act_key=<%=getQParamInt("act_key", -1)%>" // fac_activiteit_key voor geplande meldingen.
+ "&disc=" + disc_key
+ "&stdm=" + stdm_key
+ "&filtCode=FAC"
+ "<%=safe.jsstring(objPlaats.parms())%>"
+ "&autlevel=-1"
+ "&startlevel=<%=startlevel%>"
+ "&eindlevel=<%=requiredlevel%>"
+ "&return_to=<%=safe.url("melding.asp")%>" + encodeURIComponent(purl);
<%
}
%>
window.location.href = purl;
}
<%
if ((next_asp == "plaatsselector.asp" || next_asp == "melding.asp") && disc_key > 0)
{
%>
mld_new("<%=disc_key%>", "<%=stdm_key%>", "<%=urole%>");
<%
}
%>
</script>
</head>
<body>