Files
Facilitor/APPL/MLD/mld_edit_melding.asp
Maykel Geerdink 9637fa154e SGGR#46887: AiAi EOF BOF in mld_close_confirm.asp.
svn path=/Website/branches/v2017.2/; revision=35765
2017-10-19 14:14:06 +00:00

1219 lines
61 KiB
Plaintext
Raw Blame History

<%@language = "javascript" %>
<%
/* $Revision$
$Id$
File: mld_edit_melding.asp
Description: Muteerscherm voor meldingen
Merk op dat het voor zowel toevoegen als wijzigen gebruikt wordt.
Parameters: mld_melding_key
Context:
Note: De lcl-textcontextswitcher is srtdisc=ins_srtdiscipline_key
Deze is dus verplicht dus kan lcl.set_dialect worden aangeroepen.
*/
var mld_key = getQParamInt("mld_key", -1);
var LOCKED_USER_OK = { "xmlnode": "melding", "key": mld_key };
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/adresselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/stdmeldingselector.inc" -->
<!-- #include file="../Shared/referentieselector.inc" -->
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="mld_flexkenmerk.inc" -->
<!-- #include file="mld.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery", "kenmerk"],
js: ["../mld/mld_edit_melding.js", "jquery.timepicker-table.js"],
css: ["timePicker-table.css"] })
// AUTORISATIEPARAMETERS
var urole = getQParamSafe("urole");
var fronto = urole == "fo";
var backo = urole == "bo";
var minfo = urole == "mi";
var frontend = (!fronto & !backo & !minfo);
var autfunction = '';
if (fronto)
autfunction = 'WEB_MLDFOF';
else if (backo)
autfunction = 'WEB_MLDBOF'; // twijfel - PF
else
autfunction = 'WEB_MLDUSE';
var authparams = user.checkAutorisation(autfunction); // Dit is nog ongeacht de melding
// de melding waar het over gaat
var copy = (getQParamInt("mld_copy", 0) == 1);
var ins_key = getQParamInt("ins_key", -1); // nieuwe melding op dit object?
var fromkb = getQParamInt("fromkb", 0) == 1; // Ik kom vanuit kennisbank
var meldbron_key = getQParamInt("meldbronkey", -1);
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // nieuwe melding bij deze taak
var start_key = getQParamInt("start_key", -1);
// cache.whenTrue(mld_key == -1 && !copy && ins_key == -1);
var mld_copy_key = -1;
if (copy)
{
mld_copy_key = mld_key;
mld_key = -1;
}
var mld_defaultstdmelding = -1;
var disc = -1;
var withFutureRes = false;
if (mld_key > 0)
{
var this_mld = mld.func_enabled_melding(mld_key); // wat mag ik zoal op deze melding
// Ik moet in ieder geval kunnen wijzigen in de edit mode
user.auth_required_or_abort(this_mld.canChange);
}
else // Nieuwe melding
{
var srtdisc = getQParamInt("srtdisc"); // Deze is gegarandeerd
var this_mld = mld.func_enabled_mld(srtdisc, "S"); // wat mag ik zoal op een nieuwe melding
// Liefst wil ik hier urole afhankelijk zijn maar dan is straks FCLTdisciplineselector misschien wel leeg
// en zijn we nog verder van huis
user.auth_required_or_abort(urole=='fe'?this_mld.canFEwrite:this_mld.canFOwrite); // Dit is nog ongeacht de melding
var act_key = getQParamInt("act_key", -1); // fac_activiteit_key voor geplande meldingen.
var act_oms = "";
if (act_key > 0)
{
var sql = "SELECT fac_activiteit_omschrijving"
+ " FROM fac_activiteit"
+ " WHERE fac_activiteit_key = " + act_key;
oRs = Oracle.Execute(sql);
act_oms = oRs("fac_activiteit_omschrijving").Value;
}
var mld_omschr = getQParam("txt" , act_oms);
var mld_onderwerp = getQParam("onderwerp" , "");
var mld_defaultstdmelding = getQParamInt("mld_defaultstdmelding", -1);
var disc = getQParamInt("disc", -1);
var loc_key = getQParamInt("loc_key", -1);
var bld_key = getQParamInt("bld_key", -1);
var flr_key = -1;
var room_key = -1;
var einddatum = new Date();
var res_key = null;
var rsv_ruimte_volgnr = null;
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
if (rsv_ruimte_key > 0)
{
var sql = "SELECT COALESCE(rr.alg_ruimte_key, arg.alg_ruimte_key) alg_ruimte_key"
+ " , arg.alg_ruimte_aanduiding"
+ " , ogb.alg_locatie_key"
+ " , ogb.alg_gebouw_key"
+ " , ogb.alg_verdieping_key"
+ " , rr.res_rsv_ruimte_van"
+ " , rr.res_reservering_key"
+ " , rr.res_rsv_ruimte_volgnr"
+ " , rr.res_rsv_ruimte_contact_key"
+ " FROM res_rsv_ruimte rr"
+ " , res_ruimte_opstelling ro"
+ " , res_v_alg_ruimte_gegevens arg"
+ " , alg_v_onrgoed_boom ogb"
+ " WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key(+)"
+ " AND ro.res_ruimte_key = arg.res_ruimte_key(+)"
+ " AND COALESCE(rr.alg_ruimte_key, arg.alg_ruimte_key) = ogb.alg_ruimte_key"
+ " AND res_rsv_ruimte_key = " + rsv_ruimte_key
+ " ORDER BY arg.alg_ruimte_aanduiding";
oRs = Oracle.Execute(sql);
loc_key = oRs("alg_locatie_key").Value;
bld_key = oRs("alg_gebouw_key").Value;
flr_key = oRs("alg_verdieping_key").Value;
room_key = oRs("alg_ruimte_key").Value;
var res_begin = new Date(oRs("res_rsv_ruimte_van").Value);
einddatum = (res_begin < new Date()? new Date() : res_begin); // Einddatum melding is begintijd reservering.
res_key = oRs("res_reservering_key").Value;
rsv_ruimte_volgnr = oRs("res_rsv_ruimte_volgnr").Value;
withFutureRes = res_begin > new Date();
contact_key = oRs("res_rsv_ruimte_contact_key").Value;
}
}
// Default person for flexfields, can be used from deeplink (e-mail notification)
var def_kenmerk_link_key = getQParamInt("def_kenmerk_link_key", -1);
// Is the default from cust.inc overruled by the caller?
var perslidkey = (def_kenmerk_link_key == -1? user_key : def_kenmerk_link_key);
var txtreado = (getQParamInt("txtreado" , 0) == 1); // Als txtreado gedefinieerd is, dan is het omschrijving veld niet te editten
// LOCALE VARIABELEN
var lBestaandeMelding = (mld_key != -1);
var lNieuweMelding = !lBestaandeMelding;
var sql = "";
// INITIALISATIE MET DE INITIEEL WEER TE GEVEN GEGEVENS
if (lBestaandeMelding)
{ // ================================ Bestaande melding ===========================================
// Set status before selection (was after), so we select it
if (this_mld.canBOwrite)
{
/* FSN#15158/PF 13-2-2009 14:42:01 */
// Zetten van de status op ingezien en afhandelen van de tracking.
mld.setmeldingstatus(mld_key, 3);
}
var mld_melding = mld.mld_melding_info(mld_key); // Globale variabele met alle mld_melding informatie
var stdm_info = mld.mld_stdmeldinginfo(mld_melding.stdm);
if (!mld_melding.locked_user_key || mld_melding.locked_user_key == user_key)
{
mld.lock(mld_key);
mld_melding.locked_user_key = user_key;
}
// Controleer of wat discipline-settings toch altijd gelijk zijn, daar kunnen we voordeel mee doen
// Merk op dat we nog scherper zouden kunnen controleren als we autorisatie meenemen. Vooralsnog niet
sql = "SELECT MAX(COALESCE(mdp.mld_disc_params_startdatum, 0)) startdatum"
+ " FROM mld_discipline md, "
+ " mld_disc_params mdp"
+ " WHERE mdp.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_srtdiscipline_key = " + mld_melding.srtdisc;
oRs = Oracle.Execute(sql);
var disc_with_startdatum = oRs("startdatum").Value == 1;
var alg_key_arr = [];
if (mld_melding.bld_key && mld_melding.bld_key != -1) alg_key_arr.push(mld_melding.bld_key);
if (mld_melding.flr_key && mld_melding.flr_key != -1) alg_key_arr.push(mld_melding.flr_key);
if (mld_melding.room_key && mld_melding.room_key != -1) alg_key_arr.push(mld_melding.room_key);
var faq_info = mld.faq_info(mld_melding.loc_key, alg_key_arr, mld_melding.disc, mld_melding.stdm, -1);
}
else
{ // ================================ Nieuwe melding ==============================================
// Bepaal wat vereiste defaults
mld_melding = { mld_key: -1,
mld_omschr: mld_omschr, // De tekst tonen in de omschrijving, vanuit deeplink
mld_onderwerp: mld_onderwerp, // De tekst tonen in de omschrijving, vanuit deeplink
melder_key: rsv_ruimte_key > 0? contact_key : null,
place: -1,
stdm: mld_defaultstdmelding,
act_key: act_key,
einddatum: einddatum,
melddatum: new Date(),
mld_ordernr: "",
remark: "",
mld_status: -1,
mld_status_str: "",
deladdress: -1,
mprio: 3, // 'Normaal'
frontendprio: false,
alg_onrgoed_niveau: "",
module: -1,
kpnverplicht: false,
disc: disc,
srtdisc: srtdisc,
kostenpl_key: -1,
loc_key: loc_key,
bld_key: bld_key,
flr_key: flr_key,
room_key: room_key,
rsv_ruimte_key: rsv_ruimte_key,
res_key: res_key,
rsv_ruimte_volgnr: rsv_ruimte_volgnr,
respijt: 0
}
if (mld_melding.stdm > 0)
{
var stdm_info = mld.mld_stdmeldinginfo(mld_melding.stdm);
var this_mld = mld.func_enabled_mld(stdm_info.ins_discipline_key, "D"); // Ik weet het nog nauwkeuriger dan ik dacht
user.auth_required_or_abort(urole=='fe'?this_mld.canFEwrite:this_mld.canFOwrite);
}
else
var stdm_info = { mld_stdmelding_key: -1,
kanverwijzen: 0,
planbaar: true // Je weet nog niet of de nieuwe melding planbaar is. Wijzigen tot het niet meer mag.
};
// is dit een KTO deeplink?
mld_melding.kto_type = getQParam("kto_type", null); // M/R/B
if (mld_melding.kto_type)
{
mld_melding.kto_key = getQParamInt("kto_key");
stdm_info.is_kto_antwoord = true; // Dat weet ik zeker
var sql;
// vul mld_melding.mld_omschr ook. Doorgaans zal freetext=0 zijn en is deze tekst nooit in showmode zichtbaar.
// hij komt echter wel in meldingoverzichten terug en is dan wel fijn
// >> dan moet je dus in mld_list ipv de description deze tekst verzinnen indien het een KTO is
switch(mld_melding.kto_type)
{
case "M": //mld_melding.mld_omschr = L("lcl_mld_kto") + " " + L("lcl_complain") + " " + mld.mld_prefix(mld_melding.kto_key) + mld_melding.kto_key;
sql = "SELECT prs_perslid_key, prs_perslid_key_voor"
+ " FROM mld_melding"
+ " WHERE mld_melding_key = " + mld_melding.kto_key;
break;
case "B": //mld_melding.mld_omschr = L("lcl_mld_kto") + " " + L("lcl_bes_bestelling") + " " + S("bes_bestelling_prefix") + mld_melding.kto_key;
sql = "SELECT prs_perslid_key, prs_perslid_key_voor"
+ " FROM bes_bestelling"
+ " WHERE bes_bestelling_key = " + mld_melding.kto_key;
break;
case "R": //mld_melding.mld_omschr = L("lcl_mld_kto") + " " + L("lcl_reservation") + " " + rnum;
sql = "SELECT res_reservering_key, res_rsv_ruimte_volgnr"
+ " FROM res_rsv_ruimte"
+ " WHERE res_rsv_ruimte_key = " + mld_melding.kto_key;
var oRs = Oracle.Execute(sql);
var rnum = oRs("res_reservering_key").Value + "/" + oRs("res_rsv_ruimte_volgnr").Value;
sql = "SELECT res_rsv_ruimte_contact_key prs_perslid_key,"
+ " res_rsv_ruimte_host_key prs_perslid_key_voor"
+ " FROM res_rsv_ruimte"
+ " WHERE res_rsv_ruimte_key = " + mld_melding.kto_key;
break;
default: // only for robustness
sql = "SELECT prs_perslid_key, prs_perslid_key_voor FROM mld_melding WHERE 1=0";
}
var oRs = Oracle.Execute(sql);
user.auth_required_or_abort(!oRs.eof && (user.isCollega(oRs("prs_perslid_key").Value) || user.isCollega(oRs("prs_perslid_key_voor").Value)));
}
// Controleer of wat discipline-settings toch altijd gelijk zijn, daar kunnen we voordeel mee doen
// Merk op dat we nog scherper zouden kunnen controleren als we autorisatie meenemen. Vooralsnog niet
sql = "SELECT MIN(COALESCE(mdp.mld_disc_params_eigen_kp, 0)) eigen_kp,"
+ " MIN(COALESCE(md.ins_discipline_kpnverplicht, 0)) kpnverplicht,"
+ " MAX(COALESCE(mdp.mld_disc_params_startdatum, 0)) startdatum,"
+ " MAX(COALESCE(sm.mld_stdmelding_planbaar, 0)) planbaar"
+ " FROM ins_srtdiscipline isd, "
+ " mld_discipline md, "
+ " mld_disc_params mdp, "
+ " mld_stdmelding sm"
+ " WHERE isd.ins_srtdiscipline_key = " + mld_melding.srtdisc
+ " AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
+ " AND mdp.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_discipline_key = sm.mld_ins_discipline_key"
// Als er een default stdmelding is meegegeven dan daar alleen naar kijken (JGL: Zit het dan niet al in stdm_info?)
+ (mld_defaultstdmelding > 0
? " AND sm.mld_stdmelding_key = " + mld_defaultstdmelding
: "");
oRs = Oracle.Execute(sql);
mld_melding.kpnverplicht = (oRs("kpnverplicht").Value == 1); // voor alle vakgroepen verplicht
var mandaat_eigen_kp = S("prs_dep_default_kpn") || oRs("eigen_kp").Value == 1; // voor alle vakgroepen gemandateerd op eigen kp
var disc_with_startdatum = oRs("startdatum").Value == 1;
if (mld_melding.stdm > 0)
{
// hebben we hem al
}
else
stdm_info.planbaar = oRs("planbaar").Value > 0;
sql = "SELECT COALESCE(ins_srtdiscipline_kostenklant, 0) kostenklant"
+ ", ins_srtdiscipline_prefix prefix"
+ ", " + lcl.xsqla('ins_srtdiscipline_omschrijving', 'ins_srtdiscipline_key')
+ ", ins_srtdiscipline_alg"
+ ", ins_srtdiscipline_ins"
+ ", ins_srtdiscipline_bes"
+ " FROM ins_srtdiscipline"
+ " WHERE ins_srtdiscipline_key = " + mld_melding.srtdisc;
oRs = Oracle.Execute(sql);
var alg_level = 0;
switch (oRs("ins_srtdiscipline_alg").Value)
{
case 1: alg_level = 5; break; // Ruimte
case 3: alg_level = 4; break; // Verdieping
case 5: alg_level = 3; break; // Gebouw
case 7: alg_level = 2; break; // Locatie
default: alg_level = 0; // niet tonen
}
stdm_info.hide_kostenplaats_fe = oRs("kostenklant").Value == 2;
mld_melding.mld_kk = oRs("kostenklant").Value == 1? 1 : 0; // Kan ook 2 zijn voor onzichtbaar.
mld_melding.prefix = oRs("prefix").Value;
mld_melding.alg_level = alg_level;
mld_melding.show_alg = alg_level > 0;
mld_melding.show_ins = oRs("ins_srtdiscipline_ins").Value == 1;
mld_melding.show_bes = oRs("ins_srtdiscipline_bes").Value == 1;
mld_melding.srtdisc_oms = oRs("ins_srtdiscipline_omschrijving").Value;
oRs.close();
if (rsv_ruimte_key < 0)
mld_melding.melder_key = (( fronto && S("mld_fo_default_user"))
|| frontend
|| (!this_mld.canFOwrite && !this_mld.canBOwrite && this_mld.canFEwrite)
? user_key
: -1);
mld_melding.perslid_key_voor = mld_melding.melder_key;
var melder_obj;
if (mld_melding.melder_key == user_key)
melder_obj = user;
else
if (mld_melding.melder_key == -1)
melder_obj = null;
else
melder_obj = new Perslid(mld_melding.melder_key);
if (ins_key > 0) // automatisch ruimte kiezen
{
var ins_has_loc = false;
var sql = "SELECT alg_locatie_key,"
+ " alg_gebouw_key,"
+ " alg_verdieping_key,"
+ " alg_ruimte_key"
+ " FROM ins_deel isd, alg_v_allonroerendgoed alg"
+ " WHERE ins_deel_key = " + ins_key
+ " AND alg_onroerendgoed_keys = isd.ins_alg_ruimte_key"
+ " AND isd.ins_alg_ruimte_type = 'R'"
oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
ins_has_loc = true;
mld_melding.loc_key = oRs("alg_locatie_key").Value;
mld_melding.bld_key = oRs("alg_gebouw_key").Value;
mld_melding.flr_key = oRs("alg_verdieping_key").Value;
mld_melding.room_key = oRs("alg_ruimte_key").Value;
}
}
if (mld_melding.loc_key == -1 && melder_obj) // FO komt soms leeg binnen
{
mld_melding.loc_key = melder_obj.alg_locatie_key();
mld_melding.bld_key = melder_obj.alg_gebouw_key();
mld_melding.flr_key = melder_obj.alg_verdieping_key();
mld_melding.room_key = melder_obj.alg_ruimte_key();
}
if (melder_obj)
{
if (/* TODO: overwegen kpnverplicht && */ mandaat_eigen_kp == 1 && mld_melding.mld_kk == 1)
mld_melding.kostenpl_key = melder_obj.afdeling().prs_kostenplaats_key() || -1;
if (mld_melding.show_bes)
{
var prs_info = new prs.prs_perslid(mld_melding.melder_key, { withAflever: true });
mld_melding.deladdress = prs_info.mld_adres_key;
}
}
mld_melding.show_eigen_kp = false;
mld_melding.show_start_date = false;
} // if/else (lBestaandeMelding)
if (copy)
{ // Haal de globale variabele op met alle mld_melding informatie
// voor gegevens die ik wil overnemen uit de bestaande melding.
var mld_melding_copy = mld.mld_melding_info(mld_copy_key);
mld_melding.melder_key = mld_melding_copy.melder_key;
mld_melding.kostenpl_key = mld_melding_copy.kostenpl_key;
mld_melding.disc = mld_melding_copy.disc;
mld_melding.stdm = mld_melding_copy.stdm;
mld_melding.mprio = mld_melding_copy.mprio;
mld_melding.loc_key = mld_melding_copy.loc_key;
mld_melding.bld_key = mld_melding_copy.bld_key;
mld_melding.flr_key = mld_melding_copy.flr_key;
mld_melding.room_key = mld_melding_copy.room_key;
mld_melding.deladdress = mld_melding_copy.deladdress;
mld_melding.mld_omschr = mld_melding_copy.mld_omschr;
mld_melding.behandel_key = mld_melding_copy.behandel_key;
mld_melding.remark = mld_melding_copy.remark;
mld_melding.mld_onderwerp = mld_melding_copy.mld_onderwerp;
}
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
// ================================ initiele gegevens bepaald ====================================
%>
<html>
<head>
<% function generatePlaatsselectorBlock(params)
{
autfunction = params.autfunction;
this_mld = params.this_mld;
mld_melding = params.mld_melding;
frontend = params.frontend;
BLOCK_START("mldAlg", L("lcl_plaatsgegevens"));
FCLTplaatsselector(this_mld.authparams(autfunction) && this_mld.authparams(autfunction).ALGwritelevel,
{ locatiekey: mld_melding.loc_key,
gebouwkey: mld_melding.bld_key,
verdiepingkey: mld_melding.flr_key,
ruimtekey: mld_melding.room_key,
terrein: true,
onLocChange: "onChangeLocatie(true);",
onGebChange: "onChangeGebouw(true);",
onVerChange: "onChangeVerdieping();",
onRuiChange: "onChangeRuimte();",
onLocCascade: "getObjectInfo('L');",
onGebCascade: "getObjectInfo('G');",
onVerCascade: "getObjectInfo('V');",
onRuiCascade: "getObjectInfo('R');",
moreinfo: (this_mld.canBOwrite || this_mld.canFOwrite) && !frontend,
readonly: (mld_key > 0 && !this_mld.canPlaatsChange),
filtercode: mld_melding.alg_level <= 2 ? null : "FAC", /*strict genomen alleen voor FE/FO, maar readonly maakt dit vanzelf goed toch? */
suppressEmpty: true,
eindlevel: (mld_melding.alg_level ? mld_melding.alg_level : 2), // Minimaal Locatie
cadSelect: true,
cadShowdiscfn: "cadShowdiscfn",
requiredlevel: 2,
urlAdd: [{urlParam: "stdm_key", field: "stdm"}]
}); // minstens locatie
BLOCK_END();
}
FCLTHeader.Generate(); %>
<script type="text/javascript">
var mld_key = <%=mld_key%>;
var act_key = <%=mld_melding.act_key ? mld_melding.act_key : -1%>;
var ins_key = <%=ins_key%>;
var ins_has_loc = <%=ins_has_loc ? 1 : 0%> == 1;
var mld_status = <%=mld_melding.mld_status%>;
var mprio = <%=mld_melding.mprio%>;
var srtdisc = <%=mld_melding.srtdisc%>;
var perslidkey = <%=perslidkey%>;
var def_kenmerk_link_key = <%=def_kenmerk_link_key%>;
var user_kpkey = <%=user.afdeling().prs_kostenplaats_key() || -1%>;
var user_kpnaam = "<%=safe.jsstring(user.afdeling().kpn_naam())%>";
var user_kpmodule = "<%=user.afdeling().kpn_module()%>";
var user_afd_key = <%=user.prs_afdeling_key()%>;
var show_alg = (<%=mld_melding.show_alg? 1 : 0%> == 1);
var show_bes = (<%=mld_melding.show_bes? 1 : 0%> == 1);
var show_ins = (<%=mld_melding.show_ins? 1 : 0%> == 1);
var frontend = (<%=frontend? 1 : 0%> == 1);
var mld_allow_for_others = <%=S("mld_allow_for_others")%>;
var mld_show_endtime = <%=S("mld_show_endtime")%>;
var mld_show_start_date = <%=mld_melding.show_start_date? 1 : 0%>;
var mld_selector_mode = <%= S("mld_selector_mode") %>;
var mld_object_filled_in_alert = <%= S("mld_object_filled_in_alert") %>;
var startOfWorkDay = parseFloat("<%=safe.jsfloat(S("fac_t_startofworkday"))%>");
var endOfWorkDay = parseFloat("<%=safe.jsfloat(S("fac_t_endofworkday"))%>");
var withFutureRes = <%=withFutureRes? 1 : 0%> == 1;
var fromkb = <%=fromkb? 1 : 0%> == 1;
var melddatum = <%=mld_melding.melddatum.getTime()%>;
var alg_level = <%=mld_melding.alg_level%>;
// Voor bestaande meldingen
var canFlexChange = (<%=this_mld.canFlexChange? 1 : 0%> == 1);
// Voor nieuwe en bestaande meldingen
// Heb ik als FO, BO en FE enige write rechten?
// Bestaande melding: Voor de geselecteerde discipline
// Nieuwe melding: Voor een van de disciplines binnen de srtdiscipline
var canFOwrite = (<%=this_mld.canFOwrite? 1 : 0%> == 1);
var canBOwrite = (<%=this_mld.canBOwrite? 1 : 0%> == 1);
var canFEwrite = (<%=this_mld.canFEwrite? 1 : 0%> == 1);
jQuery(document).ready(function()
{
$('textarea').resize(function () { FcltMgr.resized(window) } );
$('textarea').autogrow();
<% if (lNieuweMelding) { %>
FcltMgr.setTitle("<%=safe.jsstring(stdm_info.srtdisc_oms)%>", { hot: true });
<% } %>
});
function PasteFromClipboard()
{
$("#remark").focus();
var PastedText = $("#remark")[0].createTextRange();
PastedText.execCommand("Paste");
}
function cadShowdiscfn()
{
if (stdm_info.ins_srtinst_niveau == "D")
return stdm_info.ins_srtinst_key;
return -1;
};
// Meestal unlocken we gewoon in showmode die er achteraan komt
// maar soms wordt het tabblad daarvoor al gesloten. Dan komen
// we hier langs.
function onCloseHot()
{
var data = { mld_key: <%=mld_key%> };
<% protectRequest.dataToken("data"); %>
jQuery.ajaxSetup({async: false}); // Anders faalt o.a. bij IE9 de $.post bij afsluiten
$.post("mld_unlock.asp",
data,
FcltCallback,
"json");
}
</script>
</head>
<body id="editbody">
<%
var buttons = [{ title: L("lcl_submit"), icon: "opslaan.png", action:"mld_submit()", singlepress: true, id:"btn_mld_submit"},
{ title: L("lcl_cancel"), icon: "undo.png", action:"mld_cancel()" }];
IFRAMER_HEADER((mld_melding.act_key > 0? L("lcl_mld_frame_algemeen_actie") + " " + mld_melding.act_key: L("lcl_mld_frame_algemeen")), buttons);
if (mld_melding.locked_user_key && mld_melding.locked_user_key != user_key)
{
var other = new Perslid(mld_melding.locked_user_key);
%> <div class="warning"><%=L("lcl_mld_melding_locked").format(safe.html(other.naam()), toTimeString(mld_melding.locked_date))%></div><%
}
%>
<div id="edit">
<form id="u2" name="u2"
action="mld_edit_melding_save.asp"
method="post"
onsubmit='mld_submit();return false'>
<div class='leftcontainer'>
<input type="hidden" name="urole" id="urole" value="<%=urole%>">
<input type="hidden" name="fac_activiteit_key" value="<%=mld_melding.act_key%>">
<input type="hidden" name="forcesave" id="forcesave" value="0">
<input type="hidden" name="parent_key" id="parent_key" value="-1">
<%
if (lNieuweMelding)
{
// Als er een meldbron_key is meegegeven, dan deze doorgeven.
if (meldbron_key > 0)
{ %>
<input type="hidden" name="meldbronkey" id="meldbronkey" value="<%=meldbron_key%>">
<% }
// Als er een start_key is meegegeven, dan deze doorgeven.
if (start_key > 0)
{ %>
<input type="hidden" name="start_key" id="start_key" value="<%=start_key%>">
<% }
// Als er een deelsrtcont_key is meegegeven, dan deze doorgeven.
if (deelsrtcont_key > 0)
{ %>
<input type="hidden" name="deelsrtcont_key" id="deelsrtcont_key" value="<%=deelsrtcont_key%>">
<% }
}
if (lBestaandeMelding)
{ %>
<input type="hidden" name="mld_key" value="<%=mld_key%>">
<input type="hidden" name="srtdisc" value="<%=mld_melding.srtdisc%>">
<% }
if (mld_melding.rsv_ruimte_key > 0)
{ %>
<input type="hidden" name="rsv_ruimte_key" id="rsv_ruimte_key" value="<%=mld_melding.rsv_ruimte_key%>">
<% }
function gen_flex(kolommen) // ik weet nog niet waar
{ %>
<div id='mldFlexList'><% // Wrapper div voor dynamisch herladen
generateFlexKenmerkBlock ({stdm_arr: mld_melding.stdm > 0?[mld_melding.stdm]:[],
mld_key: mld_copy_key > 0? mld_copy_key : mld_key,
copy: mld_copy_key > 0? 1 : null,
prs_key: perslidkey,
act_key: mld_melding.act_key,
reado: (mld_key > 0 && !this_mld.canFlexChange),
flexcolumns: kolommen
});
%></div><%
}
var personForEditable = (mld_key > 0 && this_mld.canKostChange) || (mld_key < 0);
var personForExist = false;
if ((S("mld_allow_for_others") == 1 && (personForEditable || (mld_melding.melder_key != mld_melding.perslid_key_voor))) ||
!frontend || !stdm_info.hide_kostenplaats_fe || mld_melding.kostenpl_key > 0)
{
// Alleen de fo kan de user wijzigen, en dan nog alleen als nog niet verder in behandeling
// Dat is: readonly als afgewezen of minstens geaccepteerd
BLOCK_START("mldCaller" , L("lcl_mld_aanvragergegevens"));
var personEditable = (mld_key > 0 && this_mld.canPersChange) || (mld_key < 0 && !frontend);
FCLTpersoonselector("person",
"sgPerson",
{ perslidKey: mld_melding.melder_key,
label: L("lcl_mld_name"),
fieldNameKey: "person",
readonly: !personEditable,
moreinfo: (backo || fronto),
onChange: "onChangeMelder",
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
required: personEditable
});
// Melding voor (aanpasbaar bij nieuwe meldingen en bij bestaande meldingen als de kostenplaats ook aanpasbaar is)
if (S("mld_allow_for_others") == 1 && (personForEditable || (mld_melding.melder_key != mld_melding.perslid_key_voor)))
{ // Melding voor
FCLTpersoonselector("personFor",
"sgPersonFor",
{ perslidKey: mld_melding.perslid_key_voor,
label: L("lcl_mld_call_for"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
readonly: !personForEditable,
moreinfo: !frontend,
required: true,
onChange: "GetSetCallInfo"
});
personForExist = true;
}
if (!stdm_info.is_kto_antwoord)
{
FCLTkostenplaatsselector("account",
"sgAccount",
mld_melding.melder_key,
{ kostenplaatsKey: mld_melding.kostenpl_key || -1,
label: (urole == "fe")?L("lcl_mld_inf_Kostenplaats"):L("lcl_mld_inf_Kostenklant"),
extraParamField: "kmodule",
extracode: "M",
filtercode: "AA", // Alleen actieve kostenplaatsen kunnen selecteren "All Active". Huidige waarde als initi<74>le waarde kan bij kostenplaatsen altijd.
urlAdd: [{ urlParam: "prs_key", field: (frontend && S("mld_allow_for_others") == 1 && S("prs_dep_default_kpn_voor") == 1? "personFor" : "person") }, { urlParam: "showeigenkp", field: "eigenkp" }],
readonly: (mld_key > 0 && !this_mld.canKostChange),
kptoggle: { ischecked: (mld_melding.mld_kk == 1),
readonly: (mld_key > 0 && !this_mld.canKostChange),
onChange: "onChangeKostenklant();",
hidden: (urole == "fe") },
required: (!(mld_key > 0 && !this_mld.canKostChange)? mld_melding.kpnverplicht : false)
});
if (S("show_ordernr") != 0)
{
RWFIELDTR("ordernr", "fldordernr", L("lcl_mld_inf_Ordernr"), mld_melding.mld_ordernr, {readonly: (mld_key > 0 && !this_mld.canKostChange), maxlength: 30});
}
}
ROFIELDTR("hidden", null, mld_melding.show_eigen_kp? 1 : 0);
BLOCK_END();
}
else
{ %>
<input type="hidden" id="person" name="person" value="<%=user_key%>">
<% }
// Een FE kan niet togglen
// Als bij nieuwe meldingen de peroon initieel wordt ingevuld dan de OnChange van de persoon suggestbox uitvoeren,
// maar bij een melding bij Reservering niet, dan hebben we die gegevens juist al bepaald en overgenomen
if (rsv_ruimte_key < 0) {
%>
<script type="text/javascript">
jQuery(document).ready(function()
{
if (<%=mld_key%> < 0 && <%=mld_melding.melder_key%> > 0)
onChangeMelder(<%=mld_melding.melder_key%>);
});
</script>
<%
}
if (mld_melding.show_alg && S("mld_edit_layout") == 1)
{
generatePlaatsselectorBlock({autfunction: autfunction,
this_mld: this_mld,
mld_melding: mld_melding,
frontend: frontend
})
}
BLOCK_START("mldMelding", L("lcl_mld_categorie"));
// Setting mld_selector_mode:
// Selector mode vakgroep/melding voor de frontend.
// 0 = (=default) vakgroep en melding (beide eerst te kiezen)
// 1 = vakgroep readonly
// 2 = alleen melding
var eindlevel = (mld_melding.alg_level ? mld_melding.alg_level : 2);
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}]
if (eindlevel >= 3)
urlAdd.push({urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key});
if (eindlevel >= 4)
urlAdd.push({urlParam: "flrkey", field: "verdiepingkey", init: mld_melding.flr_key});
if (eindlevel >= 5)
urlAdd.push({urlParam: "roomkey", field: "ruimtekey", init: mld_melding.room_key});
}
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_vakgroup"),
disc_key: mld_melding.disc,
module: "MLD",
perslidKey: (lBestaandeMelding ? mld_melding.melder_key : user_key),
autfunctionKey: authparams.autfunctionkey,
autRW: "W",
srtdisc_key: mld_melding.srtdisc,
ins_key: ins_key,
urlAdd: urlAdd,
onChange: ((frontend && S("mld_selector_mode") == 1)? null : "onChangeVakgroep"),
extraParamField: "eigenkp",
extracode: "K",
readonly: disc > 0 || ((mld_key > 0 && !this_mld.canVakgChange) || stdm_info.is_kto_antwoord) || (frontend && (S("mld_selector_mode") == 1 || S("mld_selector_mode") == 2) || (lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt > 0)), // of moet je dat dan in de canchange opnemen?
dohide: (frontend && (S("mld_selector_mode") == 2)? true : false),
required: (mld_key < 0 || this_mld.canVakgChange),
filtercode: (frontend? "FE" : ((fronto && (mld_key < 0)) ? "VD" : "")),
moreinfo: !(disc > 0 || ((mld_key > 0 && !this_mld.canVakgChange) || stdm_info.is_kto_antwoord) || (frontend && (S("mld_selector_mode") == 1 || S("mld_selector_mode") == 2)) || (lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt > 0)) &&
(user.checkAutorisation("WEB_FAQUSE", true) || user.checkAutorisation("WEB_FAQFOF", true)) && // !readonly && rechten
!frontend
});
var urlAdd = [{urlParam: "perslidKey", field: "person", init: mld_melding.melder_key}];
if (!frontend || (S("mld_selector_mode") != 2)) // Als frontend en setting mld_selector_mode twee is, dan is de discipline niet zichtbaar en moet de stdmelding er niet van afhankelijk zijn.
urlAdd.push({urlParam: "disc_key", field: "disc"});
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.push({urlParam: "lockey", field: "locatiekey", init: mld_melding.loc_key});
if (eindlevel >= 3)
urlAdd.push({urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key});
if (eindlevel >= 4)
urlAdd.push({urlParam: "flrkey", field: "verdiepingkey", init: mld_melding.flr_key});
if (eindlevel >= 5)
urlAdd.push({urlParam: "roomkey", field: "ruimtekey", init: mld_melding.room_key});
}
var res =
FCLTstdmeldingselector("stdm",
"sgStdm",
{ label: L("lcl_complain"),
stdmelding_key: mld_melding.stdm,
autfunctionKey: authparams.autfunctionkey,
srtdisc_key: mld_melding.srtdisc,
ins_key: ins_key,
readonly: (mld_defaultstdmelding > 0 || (mld_key > 0 && !this_mld.canStdmChange) || (lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt > 0)),
urlAdd: urlAdd,
onChange: "onChangeStdMelding",
extraParamField: "aantal_kbitems",
extracode: "KB",
initOnChange: (mld_key < 0), // Geen initialisatie van sgonChange (ingevulde einddatum niet aanpassen aan de uitvoertijd) bij bestaande meldingen
required: (mld_key < 0 || this_mld.canStdmChange),
filtercode: (frontend? "FE" : null),
moreinfo: !(mld_defaultstdmelding > 0 || (mld_key > 0 && !this_mld.canStdmChange) || (lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt > 0)) &&
(user.checkAutorisation("WEB_FAQUSE", true) || user.checkAutorisation("WEB_FAQFOF", true)) && // !readonly && rechten
!frontend
});
if (res.stdmelding_key > 0 && !(mld_melding.stdm>0))
{ // We hebben er wel eentje maar hadden er geen
mld_melding.stdm = res.stdmelding_key;
stdm_info = mld.mld_stdmeldinginfo(mld_melding.stdm);
}
%>
<input type="hidden" name="alg_onrgoed_obj_niveau" id="alg_onrgoed_obj_niveau" value="">
<!-- Scripts... -->
<script type="text/javascript">
jQuery(document).ready(function()
{
var JSONdataStdm = '(<%=safe.jsstring(JSON.stringify(stdm_info))%>)';
var JSONdataFaq = '(<%=safe.jsstring(JSON.stringify(faq_info?faq_info.fixed_faq:null))%>)';
// FSN#20381: Moet gedefinieerd worden na definitie FCLTkostenplaatsselector zodat sgAccount (ook jQuery(document).ready()) gedefinieerd is
if (mld_key > 0) // Alleen voor bestaande meldingen uitvoeren. Voor nieuwe meldingen zorgt initOnChange van de stdmeldingselector voor de aanroep.
{
process_stdm_info(eval('(' + JSONdataStdm + ')'), false); // Tweede parameter stdmChanged voorkomt einddatum aanpassing bij bestaande meldingen
show_fixed_faq(-1, eval('(' + JSONdataFaq + ')'));
}
});
</script>
<%
var hide_prio = false;
if (frontend)
{
// Alle meldingen waar ik (frontend) prio zou mogen aangeven.
sql = " SELECT mld_stdmelding_key"
+ " FROM mld_stdmelding sm"
+ " , mld_v_aanwezigdiscipline md"
+ " , mld_disc_params dp"
+ " WHERE sm.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_discipline_key = dp.mld_ins_discipline_key"
+ " AND mld_stdmelding_verwijder is NULL"
+ " AND sm.mld_stdmelding_notfrontend = 0"
+ " AND dp.mld_disc_params_frontendprio = 1"
// Vervallen stdmeldingen worden niet getoond, dus ook niet meenemen
+ " AND (sm.mld_stdmelding_vervaldatum IS NULL OR"
+ " sm.mld_stdmelding_vervaldatum > SYSDATE)"
+ " AND ( sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur IS NOT NULL"
+ " OR sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur IS NOT NULL"
+ " OR sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur IS NOT NULL)"
+ " AND md.ins_srtdiscipline_key = " + mld_melding.srtdisc
// Als er een default stdmelding is meegegeven dan daar alleen naar kijken
+ (mld_defaultstdmelding > 0
? " AND sm.mld_stdmelding_key = " + mld_defaultstdmelding
: "")
+ " AND md.ins_discipline_key IN (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker"
+ " WHERE fac_functie_key = " + authparams.autfunctionkey
+ " AND fac_gebruiker_prs_level_write < 9"
+ " AND fac_gebruiker_alg_level_write < 9"
+ " AND prs_perslid_key = " + user_key + ")"
oRs = Oracle.Execute(sql);
// Prioriteiten niet zichtbaar als ik het nergens mag aangeven
hide_prio = (oRs.Eof);
oRs.close();
}
if (hide_prio)
{ %>
<input type="hidden" name="prio" id="prio" value="<%=mld_melding.mprio%>">
<% }
else
{
var sql = null;
if (mld_melding.stdm > 0)
{
sql = "";
var union = "";
for (var i in stdm_info.prioriteiten)
{
var priotxt = stdm_info.prioriteiten[i].text;
if (__Logging > 0)
{
priotxt += " **";
priotxt += stdm_info.prioriteiten[i].uitvoertijd + " " + (stdm_info.prioriteiten[i].eenheid == 'D'? L("lcl_mld_days") : L("lcl_mld_hours"));
}
sql += union
+ " SELECT " + stdm_info.prioriteiten[i].key
+ ", " + safe.quoted_sql(priotxt)
+ " FROM DUAL";
union = " UNION";
}
}
FCLTselector("prio",
sql,
{ initKey: mld_melding.mprio,
label: L("lcl_mld_urg"),
readonly: (mld_key > 0 && !this_mld.canPrioChange),
onChange: "onChangePrioriteit()"
});
} %>
<script type="text/javascript">
var hide_prio = <%=hide_prio? 1 : 0%> == 1;
</script>
<% // Is er binnen de mogelijkheden *geen enkele* vakgroep (discipline) met een startdatum? Dan de startdatum niet tonen.
if (disc_with_startdatum)
{ // Wordt mogelijk dynamisch vervangen
FCLTcalendar("startdate",
{ label : L("lcl_mld_startdate"),
datum : mld_melding.melddatum,
minFuture : (frontend ? 0 : -1),
onChange: "onChangeStartdatum();",
readonly: !this_mld.canWriteDatums && mld_melding.show_start_date, // als hij verborgen is hoeftie niet readonly
required: true,
trhidden: mld_key > 0 && !mld_melding.show_start_date, // De hele tr moet hidden en niet alleen het inputveld
volgnr: 1,
nofollow: true
});
// We hebben hier het veld startdate nodig voor de functie get_mld_info_ajax(calc_einddatum, ..)
// Ook als deze readonly is, dus dan alsnog toevoegen. Let op: startdate MOET een integer zijn!
if (!this_mld.canWriteDatums && mld_melding.show_start_date)
{
%>
<input type="hidden" name="startdate" id="startdate" value="<%=mld_melding.melddatum.valueOf()%>">
<%
}
}
else
{ // Startdatum moet wel opvraagbaar zijn i.v.m. berekening einddatum.
%>
<input type="hidden" name="startdate" id="startdate" value="<%=mld_melding.melddatum.valueOf()%>">
<%
}
// Einddatum verborgen als FE een melding invoert en toch readonly is.
// Readonly gebeurd dynamisch in functie processEinddatum(...) in mld_edit_melding.js.
// In FE mode staat de melding (stdmelding) en daarmee ook de planbaarheid vast (readonly).
var einddatumHidden = !stdm_info.planbaar && frontend && mld_key < 0;
// Wordt mogelijk dynamisch vervangen
FCLTcalendar("enddate",
{ label : L("lcl_mld_enddate"),
datum : mld_melding.einddatum,
minDate : (frontend ? mld_melding.einddatum : null),
timeField: !frontend || (frontend && !stdm_info.planbaar), // Bij FE dus afh van Planbaar eind(datum+tijd) wel/niet in te vullen, anderen (FO en zo) kunnen eind(datum+tijd) altijd invullen.
timeStep : 15, // TODO: Is nog wel erg hard. Zie ook mld_edit_melding.js
startTime: S("fac_t_startofworkday"),
endTime : S("fac_t_endofworkday"),
onChange: "onChangeEnddate();",
readonly: mld_key > 0 && !this_mld.canWriteDatums,
required: true,
trclass: "trenddate",
trhidden: einddatumHidden, // De hele tr moet hidden en niet alleen het inputveld als in FE mode readonly
volgnr: 2,
addClass: (mld_melding.rsv_ruimte_key > 0? "mldres" : null) // Als de melding onder een reservering valt dan addClass toevoegen.
});
BLOCK_END();
if (mld_melding.show_bes)
{
BLOCK_START("mldBes", L("lcl_aflevergegevens"));
var ALGreadlevel = this_mld.authparams(autfunction)? this_mld.authparams(autfunction).ALGreadlevel : 9;
FCLTadresselector("del_address", "sgAdres",
{
label: L("lcl_delivery_address"),
adresKey: mld_melding.deladdress,
emptyOption: "",
filtercode: "A",
autlevel: ALGreadlevel,
readonly: (mld_key > 0 && !this_mld.canAflChange),
required: true
}) ;
BLOCK_END();
}
if (mld_melding.show_alg && S("mld_edit_layout") == 0)
{
generatePlaatsselectorBlock({autfunction: autfunction,
this_mld: this_mld,
mld_melding: mld_melding,
frontend: frontend
})
}
%></div><% // div.leftcontainer, de rest staat rechts
// Inzicht is inmiddels dat dit geen relevante info is indien nieuwe melding
if (lBestaandeMelding || (urole == "fo" && S("mld_melding_flags") > 0))
{
BLOCK_START("mldInfo", (lBestaandeMelding ? L("lcl_complain") + " " + (mld_melding.prefix != null? mld_melding.prefix : "") + mld_key : L("lcl_mld_new")));
if (lBestaandeMelding)
{
var urlAdd = [{urlParam: "prs_key", field: "person", init: mld_melding.melder_key},
{urlParam: "disc_key", field: "disc", init: mld_melding.disc}];
if (mld_melding.show_alg)
urlAdd.push({urlParam: "loc_key", field: "locatiekey", init: mld_melding.loc_key});
FCLTpersoonselector("sBehandel",
"sgBehandelaar",
{ perslidKey: mld_melding.behandel_key,
label: L("lcl_mld_behandelaar"),
fieldNameKey : "sBehandel_key",
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
readonly: !this_mld.canAfhandChange,
filtercode: (mld_melding.mld_status == 0 ? "BEHF" : "BEHB")
});
if (!mld_melding.show_start_date) { // alleen dan is de melddatum de invoerdatum; in het andere geval staat-ie elders al
ROFIELDTR("fld", L("lcl_mld_date_time"), toDateTimeString(mld_melding.melddatum));
}
ROFIELDTR("fld", L("lcl_vakgroup_type"), mld_melding.srtdisc_oms);
if (mld_melding.meldbron_key != S("mld_meldbron_key")) { // niet lastigvallen met defaultwaarde
sql = "SELECT "+lcl.xsqla('mld_meldbron_omschrijving', 'mld_meldbron_key')
+ " FROM mld_meldbron"
+ " WHERE mld_meldbron_key = " + mld_melding.meldbron_key;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_meldbron"), oRs("mld_meldbron_omschrijving").Value);
oRs.close();
if (mld_melding.meldbron_key == 10 && mld_melding.kto_type == 'T')
{
sql = "SELECT dsc.ins_deelsrtcontrole_freezecost"
+ " FROM ins_deelsrtcontrole dsc"
+ " WHERE dsc.ins_deelsrtcontrole_key = " + mld_melding.kto_key;
oRs = Oracle.Execute(sql);
// De controle moet aanwezig zijn.
ROFIELDTR("fld", L("lcl_mld_frozen_costs") + "&nbsp;" + L("lcl_valutasign"), oRs("ins_deelsrtcontrole_freezecost").Value, {suppressEmpty: true});
oRs.close();
}
}
ROFIELDTR("fld", L("lcl_mld_meldbron_nr"), mld_melding.meldbron_nr, {suppressEmpty: true});
if (false) // TODO when?
RWFIELDTR("externnr", "fld", L("lcl_mld_externr"), mld_melding.externnr, {maxlength: 30});
else
ROFIELDTR("fld", L("lcl_mld_externr"), mld_melding.externnr, {suppressEmpty: true});
var params = {};
if (!frontend || !S("mld_hide_fe_tracking"))
params = { infoPointer: { Url: "appl/shared/status_info.asp?mld_key=" + mld_key + "&urole=" + urole,
Title: L("lcl_status_details") + " " + mld_key
}
}
ROFIELDTR("fld", L("lcl_mld_status"), mld_melding.mld_status_str, params);
if (mld_melding.rsv_ruimte_key && mld_melding.res_key)
mld.referentielink("R", mld_melding.rsv_ruimte_key, L("lcl_mld_with_res"));
if(stdm_info.kanverwijzen == 0 && mld_melding.kto_type) // Referentie (kanverwijzen > 0) verderop invoerbaar.
mld.referentielink(mld_melding.kto_type, mld_melding.kto_key, L("lcl_mld_kto"));
if (stdm_info.slabewaken && this_mld.canSLAChange)
{
sql = "SELECT 'U', " + safe.quoted_sql(L("lcl_mld_hours")) + " FROM DUAL"
+ " UNION SELECT 'D', " + safe.quoted_sql(L("lcl_mld_days")) + " FROM DUAL"
+ " ORDER BY 2";
// Als de stdmelding wordt aangepast wordt de respijt leeg gemaakt en verwijderd. Bij de volgende edit actie is respijt dan weer te wijzigen.
var selectparams = { fieldName: "dayshours_resp",
sql: sql,
params: { id: "dayshours_resp",
initKey: mld_melding.respijt_eenheid, // Eenheid respijt hetzelfde als stdmelding.
disable: true
}
}
RWFIELDTR("respijt", "fldrespijt", L("lcl_mld_respijt"), mld_melding.respijt? Math.round(mld_melding.respijt * 1000) / 1000 : "", {maxlength: 8, datatype: "float", selector: selectparams});
RWCHECKBOXTR("indult", "fldafr", L("lcl_mld_indult"), mld_melding.indult);
}
if (this_mld.canAfrond)
RWCHECKBOXTR("afgerond", "fldafr", L("lcl_mld_afgerond"), mld_melding.mld_afgerond);
if ((mld_melding.kto_opt & 2) == 2 && mld_melding.kto_verstuurd == null && this_mld.canClose)
RWCHECKBOXTR("ktoself", "fldkto", L("lcl_mld_kto_invite"), mld_melding.kto);
else
ROCHECKBOXTR("fldkto", L("lcl_mld_kto_invite"), mld_melding.kto, { suppressEmpty: true });
}
if ((urole == "bo" || urole == "fo") && (S("mld_melding_flags") > 0))
{
var mldflagnr = mld_melding.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_melding.flag,
label: L("lcl_mld_flags")
});
}
BLOCK_END();
}
BLOCK_START("mldFaq", L("lcl_faq_kennisbank"), { hidden: true });
// hier komen vaste aanwijzingen
BLOCK_END();
BLOCK_START("mldRef", L("lcl_reference"), { hidden: !stdm_info.kanverwijzen}); %>
<input type="hidden" name="kto_type" value="<%=mld_melding.kto_type%>">
<input type="hidden" name="kto_key" value="<%=mld_melding.kto_key%>">
<input type="hidden" name="filtercode" id="filtercode" value=<%=((stdm_info.kanverwijzen==128)?"M" :"O")%>>
<%
if (mld_melding.meldbron_key == 10 && mld_melding.kto_type == 'T')
{ // Taak/Inspectie referentielink readonly tonen.
mld.referentielink(mld_melding.kto_type, mld_melding.kto_key, L("lcl_mld_kto"));
}
else
FCLTreferentieselector("ref_key",
"sgRef",
{ label: L("lcl_reference"),
referenceKey: stdm_info.kanverwijzen? mld_melding.kto_key : -1,
referenceType: mld_melding.kto_type, // De waarde komt standaard in het extraParamField field ref_type.
excludemldkey: mld_key > 0? mld_key: null,
urlAdd: [{urlParam: "prs_key", field: (personForExist? "personFor" : "person"), init: (personForExist? mld_melding.perslid_key_voor : mld_melding.melder_key)},
{urlParam: "stdm_key", field: "stdm", init: mld_melding.stdm},
{urlParam: "filtercode", field: "filtercode", init: ((stdm_info.kanverwijzen==128)?"M" :"O")}]
});
BLOCK_END();
if (S("mld_flexcolumns") == 1)
gen_flex(1); // hier....
if (mld_melding.show_ins)
{ // Is er een object meegegeven of zijn er objecten te tonen?
var thereAreObjects = ins_key > 0;
if (!thereAreObjects && mld_key > 0)
{
var sql = "SELECT m.ins_deel_key"
+ " FROM mld_melding_object m"
+ " WHERE m.mld_melding_key = " + mld_key
+ " ORDER BY m.ins_deel_key";
oRs = Oracle.Execute(sql);
var thereAreObjects = !oRs.Eof;
oRs.close();
}
// Als de objecten knop aanwezig is of er zijn geselecteerde objecten te tonen dan objectenblok tonen.
var objparams = {ins_key: ins_key,
canChange: this_mld.canPlaatsChange,
verplicht: mld_melding.srtinst_verplicht,
aantalobj: 0,
disableobjects: true,
onclickobj: "mld_melding_object()"};
if ((ins_key < 0 && (mld_key <= 0 || this_mld.canPlaatsChange)) || thereAreObjects)
{
BLOCK_START("mldIns", L("lcl_gerelateerdeobjecten"));
mld.generate_relobject_editblock(mld_key, objparams);
BLOCK_END();
}
} // if (mld_melding.show_ins)
if (S("mld_flexcolumns") == 2)
gen_flex(2); // dan hier....
var buttons = [];
if (S("mld_show_search_similar") && (backo || fronto))
{
var goegel = "FcltMgr.openDetail('/appl/mld/mld_search.asp?urole=" + urole + "&chkSelf=1&chkBusy=1&autosearch=1&opl=1"
+ "&searchtekst='+escape($('#melding_omschrijving').val())+'"
+ "&locatie_key='" + "+($('#locatiekey').val()||-1)+" + "'"
+ "&disc=-1', '', '" + L("lcl_mld_similarcalls") + "') ";
if (lBestaandeMelding && (this_mld.canBOwrite || this_mld.canFOwrite))
buttons.push({ icon: "lightbulb.png", title: L("lcl_mld_similarcalls"), action: goegel});
}
BLOCK_START("mldOmschrijving",
L("lcl_txt"),
{ buttons: buttons,
hidden: (mld_melding.freetext == 0 && mld_melding.subject == 0) }); // Geen omschrijving indien mld_stdmelding_freetext == 0 en mld_stdmelding_subject == 0
var oms_readonly = !(this_mld.canOmsChange || mld_key < 0) || txtreado;
if (S("mld_omschrijving_restrict_edit") == 1)
oms_readonly = oms_readonly || !(mld_melding.mld_status == 2 || mld_melding.mld_status == 3 || mld_melding.mld_status == -1);
// Short subject
if ((mld_melding.subject != 0) && !(oms_readonly && !mld_melding.mld_onderwerp))
{
RWFIELDTR("melding_onderwerp",
"fldmldsubject" + ((mld_melding.subject == 2 && (this_mld.canOmsChange || mld_key < 0) && !txtreado)? " required" : ""), /* prepared, 3=future value */
L("lcl_mld_subject"),
mld_melding.mld_onderwerp,
{maxlength: 80, html: (oms_readonly ? " readonly" : "")})
}
if ((mld_melding.freetext != 0) && !(oms_readonly && !mld_melding.mld_omschr))
{
// Complaint text description
RWTEXTAREATR("melding_omschrijving",
"fldtxt" + ((mld_melding.freetext == 2 && (this_mld.canOmsChange || mld_key < 0) && !txtreado)? " required" : ""),
L("lcl_mld_inf_Omschrijving"),
mld_melding.mld_omschr,
{html: "rows='5'" + (oms_readonly ? " readonly" : "")});
}
BLOCK_END();
if (S("mld_flexcolumns") == 3)
gen_flex(2); // dan hier....
if (lBestaandeMelding && (this_mld.canBOwrite || this_mld.canFOwrite))
{
if (S("mld_afhandeling_restrict_edit") == 0 || mld_melding.remark)
{
// Mag ik kennisbank raadplegen en standaard-antwoorden knippen/plakken
var authFaq = (S("faq_enabled")==1) && user.checkAutorisation("WEB_FAQFOF", true);
var buttons = [];
if (authFaq && authFaq.PRSwritelevel<9) // schrijfrechten op WEB_FAQFOF nodig
{
var openKB = "FcltMgr.openDetail('/appl/fac/fac_faq_search.asp?urole="+urole+"&autosearch=1&s='+escape($('#melding_omschrijving').val())"
+ ", '" + L("lcl_faq_kennisbank") + "') ";
buttons.push({ icon: "book_open.png", title: L("lcl_faq_kennisbank"), action: openKB});
buttons.push({ icon: "paste.png", title: L("lcl_mld_paste"), action: "PasteFromClipboard()"});
}
BLOCK_START("mldBehandel", L("lcl_behandelgegevens"), { buttons: buttons });
var afh_rw = this_mld.canAfhandChange && S("mld_afhandeling_restrict_edit") == 0;
if (S("fac_reserved_number1") == 1)
afh_rw = true;
RWTEXTAREATR("remark",
"fldtxt",
L("lcl_mld_inf_Opmerking"),
mld_melding.remark,
{html: "rows='3' cols='40'" + (afh_rw? "": " readonly")});
BLOCK_END();
}
}
IFACE.FORM_END();
%>
</form>
</div> <!-- edit -->
</body>
</html>