906 lines
41 KiB
Plaintext
906 lines
41 KiB
Plaintext
<%@language = "javascript" %>
|
||
<% /*
|
||
$Revision$
|
||
$Id$
|
||
|
||
File: mld_edit_melding.asp
|
||
Description: Bekijk/wijzig melding (Mobile version)
|
||
Parameters: mld_key voor bestaande melding
|
||
mld_key=-1 voor nieuwe melding, en dan
|
||
stdm_key
|
||
ins_key
|
||
ruimte_key
|
||
-
|
||
rest optioneel
|
||
|
||
Nog niet helemaal uitgekristalliseerd hoe de stdm geslecteerd en gefilterd kan worden, handigst
|
||
Note:
|
||
Je kunt en moet eenkostenplaats invullen:
|
||
- als bij vakgroeptype Defaultwaarde kosten klant "Standaard Aan" is
|
||
- als bij Vakgroep Kostenplaats verplicht aangevinkt is
|
||
*/
|
||
var mld_key = getQParamInt("mld_key",-1);
|
||
var LOCKED_USER_OK = { "xmlnode": "melding", "key": mld_key };
|
||
|
||
%>
|
||
|
||
<!-- #include file="../Shared/common.inc" -->
|
||
<!-- #include file="../Shared/selector.inc" -->
|
||
<!-- #include file="../Shared/persoonselector.inc" -->
|
||
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
|
||
<!-- #include file="../Shared/get_objecten_sql.inc" -->
|
||
<!-- #include file="./resultset_table.inc" -->
|
||
<!-- #include file="../mld/mld.inc" -->
|
||
<!-- #include file="../mld/mld_flexkenmerk.inc" -->
|
||
<!-- #include file="./mobile.inc" -->
|
||
<!-- #include file="./iface.inc" -->
|
||
|
||
|
||
<%
|
||
FCLTHeader.Requires({ js: [rooturl+"/appl/pda/modernizr-3.3.0.custom.min.js"] });
|
||
FCLTHeader.Requires({plugins: ["suggest"]});
|
||
|
||
var action = getQParam("action", "");
|
||
var qrc = getQParamInt("qrc", 0) != 0;
|
||
var meldbron_key = getQParamInt("meldbronkey", 7); // 7 = mobile
|
||
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1);
|
||
var urole = getQParamSafe("urole", "fe");
|
||
var mld_info = {};
|
||
var plaats_key = -1;
|
||
var plaats_niveau = "";
|
||
var ins_keys_arr = [];
|
||
var ins_name_arr = [];
|
||
var addSubheader = false;
|
||
|
||
var autfunction = (urole=="fe" ? "WEB_MLDUSE" : "WEB_MLDFOF");
|
||
var fronto = (urole=="fo");
|
||
var frontend = (urole=="fe");
|
||
|
||
|
||
// Mogelijke parameters voor toevoegen only
|
||
if (mld_key == -1)
|
||
{
|
||
// Verplicht:
|
||
var stdm_key = getQParamInt("stdm_key", -1);
|
||
if (stdm_key == -1) {
|
||
Server.Transfer("melding_new.asp"); // Ga maar eerst stdmelding kiezen
|
||
}
|
||
// 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
|
||
addSubheader = (ins_key > -1 || ruimte_key > -1);
|
||
if (ruimte_key==-1 && ins_key > -1)
|
||
{
|
||
// Als ik een object heb kan ik zelf de plaats precies bepalen (ruimte; TODO of terrein)
|
||
var sql = " SELECT alg_ruimte_key,"
|
||
+ " alg_verdieping_key,"
|
||
+ " alg_gebouw_key,"
|
||
+ " alg_terreinsector_key," // doen we nog niets mee
|
||
+ " alg_locatie_key,"
|
||
+ " ins_deel_omschrijving,"
|
||
+ lcl.xsqla('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_key')
|
||
+ " FROM ins_v_deel_gegevens d, ins_srtdeel sd"
|
||
+ " WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key"
|
||
+ " AND d.ins_deel_key = " + ins_key;
|
||
|
||
var oRs = Oracle.Execute(sql);
|
||
var locatie_key = oRs("alg_locatie_key").value;
|
||
var gebouw_key = oRs("alg_gebouw_key").value;
|
||
var verdieping_key = oRs("alg_verdieping_key").value;
|
||
ruimte_key = oRs("alg_ruimte_key").value;
|
||
|
||
var ins_name = oRs("ins_srtdeel_omschrijving").value+ " " +oRs("ins_deel_omschrijving").value;
|
||
oRs.Close();
|
||
}
|
||
else
|
||
{
|
||
var this_stdmelding = mld.mld_stdmeldinginfo(stdm_key);
|
||
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);
|
||
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.
|
||
var locatie_key = (alg_level >= 2 ? user.alg_locatie_key({withcurrent:true}) : -1);
|
||
var gebouw_key = (alg_level >= 3 ? user.alg_gebouw_key({withcurrent:true}) : -1);
|
||
var verdieping_key = (alg_level >= 4 ? user.alg_verdieping_key({withcurrent:true}) : -1);
|
||
var ruimte_key = (alg_level >= 5 ? user.alg_ruimte_key({withcurrent:true}) : -1);
|
||
}
|
||
else if (ruimte_key > 0)
|
||
{ // Bepaald bovenliggende waarden
|
||
var sql = "SELECT alg_locatie_key"
|
||
+ " , alg_gebouw_key"
|
||
+ " , alg_verdieping_key"
|
||
+ " FROM alg_v_allonroerendgoed aog"
|
||
+ " WHERE aog.alg_onroerendgoed_keys = " + ruimte_key
|
||
+ " AND aog.alg_type = 'R'";
|
||
var oRs = Oracle.Execute(sql);
|
||
var locatie_key = oRs("alg_locatie_key").value;
|
||
var gebouw_key = oRs("alg_gebouw_key").value;
|
||
var verdieping_key = oRs("alg_verdieping_key").value;
|
||
}
|
||
else if (verdieping_key > 0)
|
||
{ // Bepaald bovenliggende waarden
|
||
var sql = "SELECT alg_locatie_key"
|
||
+ " , alg_gebouw_key"
|
||
+ " FROM alg_v_allonroerendgoed aog"
|
||
+ " WHERE aog.alg_onroerendgoed_keys = " + verdieping_key
|
||
+ " AND aog.alg_type = 'V'";
|
||
var oRs = Oracle.Execute(sql);
|
||
var locatie_key = oRs("alg_locatie_key").value;
|
||
var gebouw_key = oRs("alg_gebouw_key").value;
|
||
}
|
||
else if (gebouw_key > 0)
|
||
{ // Bepaald bovenliggende waarden
|
||
var sql = "SELECT alg_locatie_key"
|
||
+ " FROM alg_v_allonroerendgoed aog"
|
||
+ " WHERE aog.alg_onroerendgoed_keys = " + gebouw_key
|
||
+ " AND aog.alg_type = 'G'";
|
||
var oRs = Oracle.Execute(sql);
|
||
var locatie_key = oRs("alg_locatie_key").value;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (mld_key > -1)
|
||
{
|
||
// BESTAANDE MELDING
|
||
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding
|
||
user.auth_required_or_abort(this_mld.canReadAny);
|
||
mld_info = mld.mld_melding_info(mld_key);
|
||
|
||
sql = "SELECT l.alg_locatie_code||"
|
||
+ "NVL2(g.alg_gebouw_code,'-'||g.alg_gebouw_code,'') ||"
|
||
+ "NVL2(g.alg_verdieping_code,'-'||g.alg_verdieping_code,'') ||"
|
||
+ "NVL2(g.alg_ruimte_nr,'-'||g.alg_ruimte_nr,'')||"
|
||
+ "NVL2(g.alg_terreinsector_code,'-'||g.alg_terreinsector_code,'') plaatscode"
|
||
+ ", alg_onroerendgoed_omschrijving plaats "
|
||
+ ", g.alg_ruimte_key"
|
||
+ ", g.alg_onroerendgoed_keys"
|
||
+ ", g.alg_type"
|
||
+ " FROM "
|
||
+ " mld_melding m"
|
||
+ ", alg_v_allonrgoed_gegevens g"
|
||
+ ", alg_locatie l"
|
||
+ " WHERE mld_melding_key = " + mld_key
|
||
+ " AND m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys(+)"
|
||
+ " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)";
|
||
|
||
var oRs = Oracle.Execute(sql);
|
||
|
||
var plaats_string = oRs("plaatscode").value ? oRs("plaatscode").value+" "+(oRs("plaats").value||"") : "";
|
||
var stdm_key = mld_info.stdm;
|
||
var stdm_info = mld.mld_stdmeldinginfo(mld_info.stdm);
|
||
if (oRs("alg_ruimte_key").value)
|
||
ruimte_key = oRs("alg_ruimte_key").value; // kan ik aan de ruimtebutton meegeven
|
||
plaats_key = oRs("alg_onroerendgoed_keys").value;
|
||
plaats_niveau = oRs("alg_type").value;
|
||
oRs.Close();
|
||
|
||
// Haal gerelateerde objecten op.
|
||
sql = "SELECT d.ins_deel_key"
|
||
+ " , d.ins_deel_omschrijving"
|
||
+ " , sd.ins_srtdeel_omschrijving"
|
||
+ " FROM mld_melding_object mo"
|
||
+ " , ins_deel d"
|
||
+ " , ins_srtdeel sd"
|
||
+ " WHERE mo.ins_deel_key = d.ins_deel_key"
|
||
+ " AND d. ins_srtdeel_key = sd.ins_srtdeel_key"
|
||
+ " AND mo.mld_melding_key = " + mld_key;
|
||
var oRso = Oracle.Execute(sql);
|
||
while (!oRso.eof)
|
||
{
|
||
ins_keys_arr.push(oRso("ins_deel_key").value);
|
||
ins_name_arr.push(oRso("ins_srtdeel_omschrijving").value+ " " +oRso("ins_deel_omschrijving").value);
|
||
oRso.MoveNext();
|
||
}
|
||
oRso.Close();
|
||
}
|
||
else
|
||
{
|
||
// NIEUWE MELDING Stdm_Key is ondertussen gegarandeerd
|
||
mld_info.stdm = stdm_key;
|
||
var melder_obj = user;
|
||
|
||
// Bepaal de gedetailleerdste plaats die mobiel bekend is of meegegeven.
|
||
plaats_key = ruimte_key;
|
||
plaats_niveau = "R";
|
||
if (plaats_key == -1) {plaats_key = verdieping_key; plaats_niveau = "V";}
|
||
if (plaats_key == -1) {plaats_key = gebouw_key; plaats_niveau = "G";}
|
||
if (plaats_key == -1) {plaats_key = locatie_key; plaats_niveau = "L";}
|
||
|
||
if (plaats_niveau == 'L')
|
||
sql = "SELECT l.alg_locatie_code plaatscode"
|
||
+ " , l.alg_locatie_plaats plaats"
|
||
+ " FROM alg_locatie l"
|
||
+ " WHERE l.alg_locatie_key = " + plaats_key;
|
||
else
|
||
sql = "SELECT l.alg_locatie_code||"
|
||
+ " NVL2(g.alg_gebouw_code,'-'||g.alg_gebouw_code,'') ||"
|
||
+ " NVL2(g.alg_verdieping_code,'-'||g.alg_verdieping_code,'') ||"
|
||
+ " NVL2(g.alg_ruimte_nr,'-'||g.alg_ruimte_nr,'')||"
|
||
+ " NVL2(g.alg_terreinsector_code,'-'||g.alg_terreinsector_code,'') plaatscode"
|
||
+ ", alg_onroerendgoed_omschrijving plaats "
|
||
+ " FROM alg_v_allonrgoed_gegevens g"
|
||
+ ", alg_locatie l"
|
||
+ " WHERE g.alg_onroerendgoed_keys = " + plaats_key
|
||
+ " AND g.alg_type = " + safe.quoted_sql(plaats_niveau)
|
||
+ " AND g.alg_locatie_key = l.alg_locatie_key";
|
||
var oRs = Oracle.Execute(sql);
|
||
var plaats_string = !oRs.Eof && oRs("plaatscode").value? oRs("plaatscode").value + " " + oRs("plaats").value : "";
|
||
|
||
var stdm_info = mld.mld_stdmeldinginfo(mld_info.stdm);
|
||
mld_info.srtdisc = stdm_info.ins_srtdiscipline_key;
|
||
mld_info.show_ins = stdm_info.ins_srtdiscipline_ins;
|
||
mld_info.srtinst_verplicht = stdm_info.srtinst_verplicht;
|
||
|
||
var mandaat_eigen_kp = S("prs_dep_default_kpn") || stdm_info.show_eigen_kp == 1; // voor alle vakgroepen gemandateerd op eigen kp
|
||
|
||
mld_info.mld_kk = stdm_info.ins_srtdiscipline_kostenklant;
|
||
mld_info.prefix = stdm_info.ins_srtdiscipline_prefix;
|
||
|
||
if (mandaat_eigen_kp == 1 && mld_info.mld_kk == 1)
|
||
mld_info.kostenpl_key = melder_obj.afdeling().prs_kostenplaats_key() || -1;
|
||
|
||
mld_info.mld_stdmelding_omschrijving = stdm_info.stdmelding_omschrijving ;
|
||
mld_info.srtdisc_oms = stdm_info.srtdisc_oms;
|
||
mld_info.ins_discipline_omschrijving = stdm_info.discipline_omschrijving;
|
||
|
||
this_mld = mld.func_enabled_mld(mld_info.srtdisc, "S"); // wat mag ik zoal op een nieuwe melding
|
||
mld_info.melder_key = (( fronto )
|
||
|| frontend
|
||
|| (!this_mld.canFOwrite && !this_mld.canBOwrite && this_mld.canFEwrite)
|
||
? user_key
|
||
: -1);
|
||
}
|
||
var subject = (mld_key > -1
|
||
? (mld_info.prefix || "")+ mld_key + " " + mld_info.mld_stdmelding_omschrijving
|
||
: L("lcl_mobile_new").format(mld_info.mld_stdmelding_omschrijving )
|
||
);
|
||
|
||
var subjectSubheader = "";
|
||
if (addSubheader)
|
||
{
|
||
if (ins_key > -1)
|
||
subjectSubheader = L("lcl_mobile_about").format(ins_name);
|
||
else if (ruimte_key > -1)
|
||
subjectSubheader = L("lcl_mobile_at").format(plaats_string);
|
||
}
|
||
|
||
var editKostenplaats = (stdm_info.ins_srtdiscipline_kostenklant==1 && stdm_info.kpnverplicht);
|
||
|
||
|
||
// TODO lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
|
||
|
||
%>
|
||
<html>
|
||
<head>
|
||
<% FCLTMHeader.Generate({title: subject }); %>
|
||
<style>
|
||
.remove-upload {
|
||
xdisplay: block!important;
|
||
}
|
||
</style>
|
||
<script type="text/javascript">
|
||
var timerID=null;
|
||
function delayed(delay, fn)
|
||
{
|
||
if (timerID) clearTimeout(timerID);
|
||
timerID = setTimeout(fn, delay);
|
||
}
|
||
|
||
function mld_accept()
|
||
{
|
||
if (!validateForm("meld"))
|
||
return false;
|
||
|
||
// E<>rst accepteren, dan saven. Ander heb je met BOF maar zonder FOF een probleem
|
||
$.post( "<%=rooturl%>/appl/mld/mld_accept_save.asp?mld_key=<%=mld_key%>"
|
||
, $("[name=meld]").serialize()
|
||
<% if (this_mld.canChange) { %>
|
||
, McltCallbackAndThen(function ()
|
||
{
|
||
$.post( $("form[name=meld]")[0].action
|
||
, $("[name=meld]").serialize()
|
||
, McltCallbackRefresh
|
||
, "json");
|
||
})
|
||
, "json");
|
||
<% } else { %>
|
||
, McltCallbackRefresh
|
||
, "json");
|
||
<% } %>
|
||
return false;
|
||
};
|
||
|
||
function mld_close()
|
||
{
|
||
if (!validateForm("meld"))
|
||
return false;
|
||
|
||
$.post( $("form[name=meld]")[0].action
|
||
, $("[name=meld]").serialize()
|
||
, FcltCallbackAndThen(function ()
|
||
{
|
||
$.post( "<%=rooturl%>/appl/mld/mld_close_save.asp?mld_key=<%=mld_key%>"
|
||
, $("[name=meld]").serialize()
|
||
, McltCallbackRefresh
|
||
, "json");
|
||
})
|
||
, "json");
|
||
return false;
|
||
};
|
||
|
||
function mld_submit_callback(json)
|
||
{
|
||
if (json.doublecheck)
|
||
{
|
||
alert("<%=L("lcl_mld_already_registered")%>");
|
||
return;
|
||
}
|
||
|
||
if (json.success)
|
||
{
|
||
if (json.mld_key > 0 && !json.opdr_key) // Na opslaan opdracht niet nog een keer de melding weergeven.
|
||
<% if (qrc) { %>
|
||
alert("<%=L("lcl_pda_mld_call_confirm")%>");
|
||
McltCallbackClose(json);
|
||
<% } else { %>
|
||
jqToast(L("lcl_mobile_data_saved")); // ' onder nummer ... '
|
||
<% } %>
|
||
|
||
<% if (mld_key < 0)
|
||
{ %>
|
||
if (json.autoorder)
|
||
{
|
||
var data = { mld_key: json.mld_key,
|
||
urole: "fe",
|
||
autoorder: 1 };
|
||
<% protectRequest.dataToken("data"); %>
|
||
$.post("<%=rooturl%>/appl/mld/mld_edit_opdr_save.asp",
|
||
data,
|
||
McltCallbackAndThenAlways(function () { mld_submit_callback({success: true, mld_key: json.mld_key }) }),
|
||
"json");
|
||
|
||
verynew="0"; // zo nieuw zijn we niet meer.
|
||
}
|
||
else
|
||
<% } %>
|
||
{
|
||
<% if (qrc) { %>
|
||
// Waarschijnlijk QR-code op koffieautomaat. Niet naar andere schermen springen.
|
||
$("input[name=mld_key]").val(json.mld_key);
|
||
<% } else if (mld_key < 0){ %>
|
||
// Nieuwe melding aangemaakt. Altijd complete reload, we hebben nu een mld_key namelijk
|
||
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?mld_key=" + json.mld_key;
|
||
<% } else { %>
|
||
// Opslaan button geklikt. Er hoeft niet gerefreshed te worden. Er kan direct weer gewijzigd worden (Afhandeling)
|
||
<% } %>
|
||
}
|
||
}
|
||
};
|
||
|
||
function mld_submit()
|
||
{
|
||
if (!validateForm("meld"))
|
||
return false;
|
||
// Als er een object gekozen is moet de ruimte_key daarvan ook in de formparams worden opgeslagen voor betere plaatsbepaling van de melding.
|
||
var rtyp = $("#r_objs :selected").attr("ins_alg_ruimte_type");
|
||
if (rtyp=="R")
|
||
{
|
||
var rkey = $("#r_objs :selected").attr("ins_alg_ruimte_key") || -1;
|
||
$("#ruimtekey").val(rkey);
|
||
}
|
||
// TODO: Wat met doublecheck
|
||
// Misschien automatisch forcesave of juist alert dat probleem al gemeld is?
|
||
// 5.2.2 Gold D: inderdaad vooralsnog forcesafe
|
||
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json");
|
||
return true;
|
||
}
|
||
|
||
function mld_forward()
|
||
{
|
||
window.location.href = "<%=rooturl%>/appl/pda/melding_new.asp?mld_key=<%=mld_key%>&action=forward";
|
||
}
|
||
|
||
function PasteFromSelectbox()
|
||
{
|
||
if ($("#stdremark :selected").val() > -1)
|
||
{
|
||
$("#remark").focus();
|
||
var PastedText = $("#stdremark :selected")[0].getAttribute("afmeldtekstoms");
|
||
$("#remark").val($("#remark").val() + ($("#remark").val() != ""? "\n" : "") + PastedText);
|
||
}
|
||
}
|
||
|
||
function mld_forward_cancel()
|
||
{
|
||
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?mld_key=<%=mld_key%>";
|
||
}
|
||
|
||
function mld_forward_submit()
|
||
{
|
||
if (!validateForm("u2"))
|
||
return false;
|
||
|
||
$.post($("form[name=meld_fwd]")[0].action,
|
||
$("[name=meld_fwd]").serialize(),
|
||
mld_forward_submit_callback,
|
||
"json");
|
||
return true;
|
||
}
|
||
|
||
function mld_forward_submit_callback(jdata)
|
||
{
|
||
// Moet er voor de melding met een nieuwe stdmelding automatisch een opdracht aangemaakt worden?
|
||
if (jdata.autoorder)
|
||
{
|
||
var data = { mld_key: <%=mld_key%>,
|
||
message: jdata.message || jdata.toaster,
|
||
autoorder: 1
|
||
};
|
||
<% protectRequest.dataToken("data"); %>
|
||
$.post("<%=rooturl%>/appl/mld/mld_edit_opdr_save.asp",
|
||
data,
|
||
McltCallbackAndThenAlways(afsluiten),
|
||
"json");
|
||
}
|
||
else
|
||
afsluiten(jdata);
|
||
}
|
||
|
||
function afsluiten(jdata)
|
||
{ // Sluit onszelf.
|
||
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?mld_key=<%=mld_key%>";
|
||
}
|
||
|
||
</script>
|
||
</head>
|
||
<body>
|
||
<div>
|
||
<%
|
||
if (action != "forward")
|
||
{
|
||
PAGE_START({id: "page-1-"+mld_key});
|
||
HEADER({title: safe.html(subject), back:!qrc, home: !qrc, datatheme: (1||mld_info.melder_key==user_key ? jQFrontEndTheme : null) });
|
||
if (addSubheader)
|
||
HEADER({title: safe.html(subjectSubheader), datatheme: jQHeaderTheme});
|
||
CONTENT_START();
|
||
|
||
// Altijd forcesave omdat we geen doublecheck aankunnen
|
||
%>
|
||
<form name="meld" id="meld" action="<%=rooturl%>/appl/mld/mld_edit_melding_save.asp" method="post">
|
||
<input type="hidden" name="mld_key" value="<%=mld_key%>">
|
||
<input type="hidden" name="forcesave" id="forcesave" value="0">
|
||
<input type="hidden" name="parent_key" id="parent_key" value="-1">
|
||
<input type="hidden" name="urole" value="<%=mld_key > 0? "bo" : "fe"%>">
|
||
<input type="hidden" name="stdm" value="<%=mld_info.stdm%>">
|
||
<%
|
||
if (mld_key == -1)
|
||
{ // Nieuw, maar deze velden kunnen we zelf verzinnen
|
||
if (!fronto)
|
||
{
|
||
%>
|
||
<input type="hidden" name="person" value="<%=user_key%>">
|
||
<%
|
||
}
|
||
%>
|
||
<input type="hidden" name="locatiekey" value="<%=locatie_key%>">
|
||
<input type="hidden" name="gebouwkey" value="<%=gebouw_key%>">
|
||
<input type="hidden" name="verdiepingkey" value="<%=verdieping_key%>">
|
||
<input type="hidden" name="ruimtekey" id="ruimtekey" value="<%=ruimte_key%>">
|
||
<input type="hidden" name="meldbronkey" value="<%=meldbron_key%>">
|
||
<input type="hidden" name="deelsrtcont_key" value="<%=deelsrtcont_key%>">
|
||
<%
|
||
}
|
||
else
|
||
{ // Voor bestaande melding moet de start en einddatum mee worden gegeven aan mld_edit_melding_save
|
||
// om te voorkomen dat deze daar gevuld worden met default sysdate.
|
||
%>
|
||
<input type="hidden" name="startdate" value="<%=mld_info.melddatum.getTime()%>">
|
||
<input type="hidden" name="enddate" value="<%=mld_info.einddatum.getTime()%>">
|
||
<%
|
||
}
|
||
|
||
if (mld_key > -1) // bestaande
|
||
{
|
||
BLOCK_START({collapsed: true, title: (mld_info.mld_onderwerp == null ? L("lcl_mld_frame_algemeen") : mld_info.mld_onderwerp)});
|
||
var prs_melder = new Perslid(mld_info.melder_key);
|
||
ROFIELD("fld", L("lcl_caller") , prs_melder.naam(), { moreinfo: "tel:"+(prs_melder.prs_perslid_mobiel()||prs_melder.prs_perslid_telefoonnr()) });
|
||
|
||
if (S("mld_num_prefix_mode") == 1 && mld_info.kostenpl_key > 0 && !editKostenplaats)
|
||
{
|
||
var sql = "SELECT k.prs_kostenplaats_key kpkey"
|
||
+ " , " + S("prs_kpn_string") + " kpstring"
|
||
+ " FROM prs_kostenplaats k"
|
||
+ " WHERE k.prs_kostenplaats_key = " + mld_info.kostenpl_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
ROFIELD("fld", L("lcl_mld_inf_Kostenplaats"), oRs("kpstring").Value);
|
||
oRs.Close();
|
||
}
|
||
|
||
ROFIELD("fld", L("lcl_mld_date_time") , toDateTimeString(mld_info.melddatum));
|
||
ROFIELD("fld", L("lcl_vakgroup") , (mld_info.prefix ? mld_info.prefix+"-" : "") + mld_info.ins_discipline_omschrijving);
|
||
BLOCK_END();
|
||
}
|
||
else // nieuwe, alleen voor FO
|
||
{
|
||
if (fronto && !this_mld.canReadFEOnly)
|
||
{
|
||
var personEditable = (mld_key > 0 && this_mld.canPersChange) || (mld_key < 0 && this_mld.canFOwrite);
|
||
FCLTpersoonselector("person",
|
||
"sgPerson",
|
||
{ perslidKey: mld_info.melder_key,
|
||
xxlabel: L("lcl_mld_name"),
|
||
fieldNameKey: "person",
|
||
readonly: !personEditable,
|
||
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
|
||
required: personEditable
|
||
});
|
||
}
|
||
}
|
||
|
||
if (mld_info.show_ins && stdm_info.alg_onrgoed_obj_niveau)
|
||
{
|
||
if (ins_key > 0 && mld_key < 0)
|
||
{ // Nieuwe melding waarbij het object bekend is: via qrc-code
|
||
%><input type="hidden" name="has_r_objs" value="1">
|
||
<input type="hidden" name="r_objs" value="<%=ins_key%>">
|
||
<%
|
||
}
|
||
else if (ins_name_arr.length < 2 && (mld_key < 0 || this_mld.canPlaatsChange)) // Meerdere objecten bewerken ondersteunen we niet.
|
||
{
|
||
%><input type="hidden" name="has_r_objs" value="1"><%
|
||
var sql = get_objecten_sql(plaats_key, plaats_niveau, user_key, null, mld_info.stdm);
|
||
var tsql = "SELECT count(*) aantal FROM (" + sql + ")";
|
||
var toRs = Oracle.Execute(tsql);
|
||
var aantalObj = toRs("aantal").value;
|
||
toRs.close();
|
||
var EmptyOption = true;
|
||
if (aantalObj > 0 || mld_info.srtinst_verplicht)
|
||
{
|
||
if (aantalObj && mld_info.srtinst_verplicht)
|
||
EmptyOption = false;
|
||
FCLTselector( "r_objs"
|
||
, sql
|
||
, { initKey: ins_keys_arr.length?ins_keys_arr[0]:-1
|
||
, label: L("lcl_gerelateerdeobjecten")
|
||
, mobile: true
|
||
, extraParamValue: "ins_alg_ruimte_key,ins_alg_ruimte_type"
|
||
, emptyOption: (EmptyOption ? L("lcl_select_object") : null)
|
||
, required: mld_info.srtinst_verplicht
|
||
}
|
||
);
|
||
}
|
||
}
|
||
else if (ins_name_arr.length)
|
||
ROFIELD("fld", L("lcl_gerelateerdeobjecten"), ins_name_arr.join("\n"), {multi: ins_name_arr.length > 1});
|
||
}
|
||
|
||
if (editKostenplaats) {
|
||
|
||
FCLTkostenplaatsselector("account",
|
||
"sgAccount",
|
||
user_key,
|
||
{ kostenplaatsKey: mld_info.kostenpl_key || -1,
|
||
xxxlabel: L("lcl_mld_inf_Kostenplaats"),
|
||
extracode: "M",
|
||
filtercode: "AA",
|
||
required: true
|
||
});
|
||
}
|
||
else
|
||
{
|
||
%> <input type="hidden" name="account" id="sgAccount" value="<%=mld_info.kostenpl_key || -1 %>">
|
||
<%
|
||
}
|
||
|
||
if (mld_key > -1)
|
||
{
|
||
ROFIELD("fld", L("lcl_place"), plaats_string, {suppressEmpty: true} );
|
||
|
||
var oms_readonly = !(this_mld.canOmsChange);
|
||
if (S("mld_omschrijving_restrict_edit") == 1)
|
||
oms_readonly = oms_readonly || !(mld_info.mld_status == 2 || mld_info.mld_status == 3);
|
||
|
||
if ((stdm_info.subject != 0) && !(oms_readonly && !mld_info.mld_onderwerp))
|
||
{
|
||
RWFIELD("melding_onderwerp", L("lcl_mld_subject"), mld_info.mld_onderwerp
|
||
, { pclass: ((stdm_info.subject == 2 && (this_mld.canOmsChange || mld_key < 0))? " required" : "")
|
||
, readonly: (oms_readonly ? true : false)
|
||
}
|
||
);
|
||
}
|
||
|
||
ROFIELD("fld", L("lcl_txt") , mld_info.mld_omschr, {multi: true});
|
||
|
||
if (mld_info.mprio != 3) {
|
||
ROFIELD("attention", L("lcl_mld_urg") , mld.getpriotext(mld_info.mprio));
|
||
}
|
||
if (mld_info.behandel_key)
|
||
{
|
||
var prs_behandelaar = new Perslid(mld_info.behandel_key);
|
||
ROFIELD((mld_info._behandel_key != user_key ?"attention":"fld"), L("lcl_mld_behandelaar") , prs_behandelaar.naam(), {suppressEmpty: true });
|
||
}
|
||
|
||
generateFlexKenmerkBlock ({
|
||
fnpre : function () {},
|
||
fnpost : "",
|
||
stdm_arr : [mld_info.stdm],
|
||
mld_key : mld_key,
|
||
prs_key : user_key,
|
||
reado : (mld_key > 0 && !this_mld.canFlexChange),
|
||
mobile : true
|
||
});
|
||
}
|
||
else // Nieuwe
|
||
{
|
||
if (stdm_info.subject != 0)
|
||
{
|
||
RWFIELD("melding_onderwerp", L("lcl_mld_subject"), mld_info.mld_onderwerp
|
||
, { pclass: ((stdm_info.subject == 2 && (this_mld.canOmsChange || mld_key < 0))? " required" : "") }
|
||
);
|
||
}
|
||
|
||
if (stdm_info.freetext > 0)
|
||
RWFIELD("melding_omschrijving", L("lcl_txt"), "", {multi: true, pclass: (stdm_info.freetext==2 ? "required" : "") });
|
||
|
||
generateFlexKenmerkBlock ({
|
||
fnpre : function () {},
|
||
fnpost : "",
|
||
stdm_arr : [mld_info.stdm],
|
||
mld_key : mld_key,
|
||
prs_key : user_key,
|
||
reado : (mld_key > 0 && !this_mld.canFlexChange),
|
||
mobile : true
|
||
});
|
||
}
|
||
|
||
// filter
|
||
if ((this_mld.canBOWrite || this_mld.canFOwrite) && (S("mld_melding_flags") > 0))
|
||
{
|
||
var mldflagnr = mld_info.flag || 0;
|
||
sql = "";
|
||
for (var i=0; i<S("mld_melding_flags"); i++)
|
||
{
|
||
sql += "SELECT "+i+","+safe.quoted_sql(L("lcl_mld_flag"+i))+" FROM DUAL" + (i<(parseInt(S("mld_melding_flags"))-1)?" UNION ALL ":"");
|
||
}
|
||
FCLTselector("mldflag",
|
||
sql,
|
||
{ initKey: mld_info.flag,
|
||
label: L("lcl_mld_flags"),
|
||
mobile: true
|
||
});
|
||
}
|
||
|
||
if (mld_key > -1)
|
||
{
|
||
if (this_mld.canAfhandChange)
|
||
{
|
||
sql = "SELECT COUNT(*) aantal"
|
||
+ " FROM mld_afmeldtekst"
|
||
+ " WHERE mld_stdmelding_key IS NULL"
|
||
+ " OR mld_stdmelding_key = " + mld_info.stdm
|
||
oRs2 = Oracle.Execute(sql);
|
||
if (oRs2("aantal").value > 0)
|
||
{
|
||
sql = "SELECT mld_afmeldtekst_key"
|
||
+ " , " + lcl.xsqla('mld_afmeldtekst_naam', 'mld_afmeldtekst_key')
|
||
+ " , " + lcl.xsql('mld_afmeldtekst_omschrijving', 'mld_afmeldtekst_key') + " afmeldtekstoms"
|
||
+ " FROM mld_afmeldtekst"
|
||
+ " WHERE mld_stdmelding_key IS NULL"
|
||
+ " OR mld_stdmelding_key = " + mld_info.stdm
|
||
+ " ORDER BY 2";
|
||
FCLTselector("stdremark",
|
||
sql,
|
||
{ label: L("lcl_mld_inf_std_opm"),
|
||
initKey: -1,
|
||
emptyOption: "",
|
||
extraParamValue: "afmeldtekstoms",
|
||
onChange: "PasteFromSelectbox()",
|
||
mobile: true});
|
||
}
|
||
|
||
if (S("mld_afhandeling_restrict_edit") == 0 || mld_info.remark)
|
||
{
|
||
var afh_rw = this_mld.canAfhandChange && S("mld_afhandeling_restrict_edit") == 0;
|
||
if (afh_rw)
|
||
RWFIELD("remark", L("lcl_mld_inf_Opmerking"), mld_info.remark, {multi: true});
|
||
else
|
||
ROFIELD("fld", L("lcl_mld_inf_Opmerking"), mld_info.remark);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (mld_info.parent_key) // gekoppelde melding verwijst naar de parent voor afhandeling
|
||
{
|
||
var sprefix = mld.mld_prefix(mld_info.parent_key);
|
||
var params = { moreinfo: rooturl+"/appl/pda/melding.asp?mld_key=" + mld_info.parent_key, disabled: true};
|
||
ROFIELD("fld", L("lcl_mld_completion_in"), sprefix + mld_info.parent_key, params);
|
||
}
|
||
else
|
||
ROFIELD("fld", L("lcl_mld_inf_Opmerking"), mld_info.remark);
|
||
|
||
}
|
||
}
|
||
|
||
// TODO: moeten we dit nog wel doen?
|
||
// Zijn er nog lopende opdrachten?
|
||
var canCloseOpdr = [];
|
||
var sqlC = "SELECT o.mld_opdr_key"
|
||
+ " FROM mld_opdr o"
|
||
+ " WHERE o.mld_melding_key = " + mld_key
|
||
+ " AND o.mld_statusopdr_key NOT IN (1, 6, 7, 9)"
|
||
var oRsC = Oracle.Execute(sqlC);
|
||
while (!oRsC.eof)
|
||
{ // Voor elke opdracht controleren of deze afgemeld mogen worden
|
||
var this_opdr = mld.func_enabled_opdracht(oRsC("mld_opdr_key").value);
|
||
if (!this_opdr.canClose)
|
||
{ // Geen autorisatie om alle opdracht af te melden-->dan geen enkele
|
||
canCloseOpdr = [];
|
||
break;
|
||
}
|
||
canCloseOpdr.push(oRsC("mld_opdr_key").value);
|
||
oRsC.MoveNext();
|
||
}
|
||
|
||
if (mld_key > -1)
|
||
{
|
||
// Controleer of dit soort meldingen een BES component heeft of gedefinieerde MLD opdrachttypes.
|
||
// Bovendien hebben deze frames pas zin als de status minstens Geaccepteerd is
|
||
// (Alleen BO mag aanmaken, kan dat gelijk na invoer doen, maar zo niet dan eerst accepteren)
|
||
var mfe = mld.func_enabled_melding(mld_key); // heb ik uberhaubt leesrechten
|
||
var showbes = false;
|
||
var showord = false;
|
||
var ordzichtbaarfe = false;
|
||
if (mld_info.mld_status >= 4 )
|
||
{ // niet afgewezen(1), ingevoerd(2) of ingezien(3)
|
||
showbes = mld_info.show_bes; // Heeft voor een gegeven (srt)discipline een vaste waarde
|
||
// De opdrachttypes behorende bij de srtdiscipline of bij de discipline
|
||
sql = "SELECT mto.mld_typeopdr_zichtbaarfe"
|
||
+ " FROM ins_srtdiscipline sd"
|
||
+ " , mld_discipline d"
|
||
+ " , mld_typeopdr_srtdiscipline tsd"
|
||
+ " , mld_typeopdr mto"
|
||
+ " WHERE tsd.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
|
||
+ " AND tsd.ins_discipline_key IS NULL"
|
||
+ " AND sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key"
|
||
+ " AND tsd.mld_typeopdr_key = mto.mld_typeopdr_key"
|
||
+ " AND d.ins_discipline_key = " + mld_info.disc
|
||
+ " UNION ALL"
|
||
+ " SELECT mto.mld_typeopdr_zichtbaarfe"
|
||
+ " FROM ins_srtdiscipline sd"
|
||
+ " , mld_discipline d"
|
||
+ " , mld_typeopdr_srtdiscipline tsd"
|
||
+ " , mld_typeopdr mto"
|
||
+ " WHERE tsd.ins_discipline_key = d.ins_discipline_key"
|
||
+ " AND tsd.ins_discipline_key IS NOT NULL" // overbodig, maar wel duidelijk verschil met eerste clause
|
||
+ " AND sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key"
|
||
+ " AND tsd.mld_typeopdr_key = mto.mld_typeopdr_key"
|
||
+ " AND d.ins_discipline_key = " + mld_info.disc
|
||
+ " ORDER BY 1 DESC"; // zodat echte waarden eerder komen dan de null-waarden
|
||
ooRs = Oracle.Execute(sql);
|
||
if (!ooRs.eof)
|
||
showord = true;
|
||
while (!ooRs.eof)
|
||
{ // Alle opdrachttypes doorlopen. Wellicht zit er een opdrachttype bij die wel door de fe zichtbaar is en die mogelijk opdrachten bevat die de fe mag zien.
|
||
ordzichtbaarfe = ordzichtbaarfe || (ooRs("mld_typeopdr_zichtbaarfe").value == 1 && mld_info.melder_key == user_key); // Het moet ook mijn eigen melding zijn
|
||
ooRs.MoveNext();
|
||
}
|
||
ooRs.Close(); // de overige records interesseren me in het geheel niet, ik weet al genoeg.
|
||
}
|
||
|
||
// Heeft men voldoende rechten om naar opdrachten te gaan?
|
||
var opdr_page = "";
|
||
var hasParent = mld_info.parent_key != null; // dan geen opdrachten of bestellingen
|
||
if (!hasParent && mfe.canReadAny) // Mocht ik geen leesrechten hebben, dan ook de opdrachten en bestellingen niet tonen.
|
||
{
|
||
var this_opdr = mld.func_enabled_mld(mld_info.disc, "D"); // wat mag ik zoal op een nieuwe melding
|
||
if ((this_opdr.canORDBOFread) && showord)
|
||
{
|
||
opdr_page = rooturl+"/appl/pda/orders_list.asp?mld_key="+mld_key+"&urole=" + (this_opdr.canORDBOFread? "bo" : urole);
|
||
}
|
||
}
|
||
}
|
||
|
||
CONTROLGROUP_START()
|
||
if (this_mld.canChange || mld_key == -1) {
|
||
BUTTON((mld_key>-1 ? L("lcl_submit") : L("lcl_newsubmit")), {click: "mld_submit()", dataicon: "refresh", singlepress: (mld_key == -1) });
|
||
}
|
||
if (mld_key > -1) {
|
||
if (this_mld.canAccept) {
|
||
BUTTON(L("lcl_mld_accept"), {click: "mld_accept()", dataicon: "check"});
|
||
}
|
||
if (this_mld.canClose) {
|
||
BUTTON(L("lcl_close"), {click: "mld_close()", dataicon: "check"});
|
||
}
|
||
if (this_mld.canForward || this_mld.canFixMelding) { // bo2bo
|
||
BUTTON( (this_mld.canForward ? L("lcl_forward") : L("lcl_fixmelding")), {click: "mld_forward()", dataicon: "forward"});
|
||
}
|
||
var tsql = "SELECT COUNT(ins_deel_key) FROM mld_melding_object WHERE mld_melding_object_verwijder IS NULL AND mld_melding_key = " + mld_key;
|
||
toRs = Oracle.Execute(tsql);
|
||
if (toRs(0).value>0) {
|
||
if (toRs(0).value==1)
|
||
{
|
||
tsql = "SELECT ins_deel_key FROM mld_melding_object WHERE mld_melding_object_verwijder IS NULL AND mld_melding_key = " + mld_key;
|
||
toRs1 = Oracle.Execute(tsql);
|
||
BUTTON(L("lcl_mobile_objecten")+" ("+toRs(0).value+")", {linkid: rooturl+"/appl/pda/ins_deel.asp?ins_key="+toRs1("ins_deel_key").value, dataicon: "info", dataajax: "false"});
|
||
}
|
||
else
|
||
BUTTON(L("lcl_mobile_objecten")+" ("+toRs(0).value+")", {linkid: rooturl+"/appl/pda/ins_list.asp?mld_key="+mld_key, dataicon: "info", dataajax: "false"});
|
||
}
|
||
trackinglines = mobile.hastrackingpage('melding', mld_key);
|
||
if (trackinglines>0) {
|
||
BUTTON(L("lcl_history"), {linkid: "#mld-2-"+mld_key, dataicon: "bullets"});
|
||
}
|
||
if (mfe.canReadNotes) { // Heb ik rechten om notities te zien
|
||
var tsql = "SELECT COUNT(*) FROM mld_melding_note n WHERE n.mld_melding_key = " + mld_key;
|
||
toRs = Oracle.Execute(tsql);
|
||
BUTTON(L("lcl_mld_frame_notes")+" ("+toRs(0).value+")", {linkid: rooturl+"/appl/pda/notitie.asp?node=melding&urole="+urole+"&key="+mld_key, dataicon: "comment", dataajax: "false"});
|
||
}
|
||
if (ruimte_key > -1 && user.checkAutorisation( "WEB_ALGUSE", true)) {
|
||
BUTTON(L("lcl_room"), {linkid: rooturl+"/appl/pda/ruimte.asp?ruimte_key="+ruimte_key, dataicon: "info", dataajax: "false"});
|
||
}
|
||
if (opdr_page != "") {
|
||
var tsql = "SELECT COUNT(*) FROM mld_opdr o WHERE o.mld_melding_key = " + mld_key
|
||
+ " AND o.mld_statusopdr_key IN (4, 5, 8)"; // zelfde als die in orders_list worden getoond
|
||
toRs = Oracle.Execute(tsql);
|
||
BUTTON(L("lcl_mobile_opdrachten")+" ("+toRs(0).value+")", {linkid: opdr_page, dataicon: "action", dataajax: "false"});
|
||
}
|
||
}
|
||
CONTROLGROUP_END()
|
||
IFACE.FORM_END();
|
||
%>
|
||
</form>
|
||
<%
|
||
CONTENT_END();
|
||
FOOTER();
|
||
PAGE_END()
|
||
if (mld_key > -1)
|
||
{
|
||
if (trackinglines>0) {
|
||
PAGE_START({id: "mld-2-"+mld_key})
|
||
mobile.trackingpage('melding', mld_key, (mld_info.prefix || "")+ mld_key);
|
||
PAGE_END();
|
||
}
|
||
}
|
||
}
|
||
|
||
if (action == "forward")
|
||
{
|
||
var stdm_key = getQParamInt("stdm_key", -1);
|
||
var disc_key = getQParamInt("srtdisc", -1);
|
||
|
||
PAGE_START({id: "mld-4-"+mld_key});
|
||
HEADER({title: L("lcl_mld_forward_mld").format((mld_info.prefix || "") + mld_key), back:!qrc });
|
||
CONTENT_START();
|
||
%>
|
||
<form name="meld_fwd" id="meld_fwd" action="<%=rooturl%>/appl/mld/mld_forward_save.asp?mld_key=<%=mld_key%>" method="post">
|
||
<input type="hidden" name="disc" id="disc" value="<%=disc_key%>">
|
||
<input type="hidden" name="stdm" id="stdm" value="<%=stdm_key%>">
|
||
<%
|
||
ROFIELD("fld", L("lcl_vakgroup"), stdm_info.discipline_omschrijving);
|
||
ROFIELD("fld", L("lcl_complain"), stdm_info.stdmelding_omschrijving);
|
||
ROFIELD("fld", "", mld_info.remark); // De opmerking/afhandeling die er al stond...
|
||
RWFIELD("opmerk", L("lcl_mld_inf_Opmerking"), "", {multi: true, pclass: ((S("mld_forward_opm_flags") & 1) == 1? " required" : "")});
|
||
|
||
CONTROLGROUP_START()
|
||
BUTTON(this_mld.canForward ? L("lcl_forward") : L("lcl_fixmelding"), {click: "mld_forward_submit()", dataicon: "check"} );
|
||
BUTTON(L("lcl_cancel"), {click: "mld_forward_cancel()", dataicon: "back"} );
|
||
CONTROLGROUP_END()
|
||
IFACE.FORM_END();
|
||
%>
|
||
</form>
|
||
<%
|
||
CONTENT_END();
|
||
FOOTER();
|
||
PAGE_END();
|
||
}
|
||
%>
|
||
</div>
|
||
</body>
|
||
</html>
|