1190 lines
59 KiB
Plaintext
1190 lines
59 KiB
Plaintext
<%@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.
|
||
|
||
*/ %>
|
||
|
||
<!-- #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 mld_key = getQParamInt("mld_key", -1);
|
||
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_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;
|
||
}
|
||
else
|
||
{ // ================================ Nieuwe melding ==============================================
|
||
// Bepaal wat vereiste defaults
|
||
mld_melding = { mld_key: -1,
|
||
mld_omschr: mld_omschr, // 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 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)
|
||
{
|
||
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);",
|
||
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 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 JSONdata = '(<%=safe.jsstring(JSON.stringify(stdm_info))%>)';
|
||
// 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('(' + JSONdata + ')'), false); // Tweede parameter stdmChanged voorkomt einddatum aanpassing bij bestaande meldingen
|
||
});
|
||
</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;
|
||
/* sql = "SELECT ma.mld_adres_key"
|
||
+ " , ma.mld_adres_naam"
|
||
+ " , ma.mld_adres_upper"
|
||
+ " FROM mld_v_afleveradres ma"
|
||
+ ((mld_key == -1 || this_mld.canAflChange) && ALGreadlevel >= 0 // Voor nieuwe melding bestaat canAflChange niet.
|
||
? " WHERE ma.alg_locatie_key IN (SELECT alg_locatie_key FROM fac_v_my_locations"
|
||
+ " WHERE prs_perslid_key = " + user_key
|
||
+ " AND niveau = " + ALGreadlevel + ")"
|
||
: "")
|
||
+ " ORDER BY mld_adres_upper";
|
||
FCLTselector("del_address", sql,
|
||
{ label: L("lcl_delivery_address"),
|
||
initKey: mld_melding.deladdress,
|
||
emptyOption: "",
|
||
readonly: (mld_key > 0 && !this_mld.canAflChange),
|
||
required: true
|
||
}
|
||
);
|
||
*/
|
||
FCLTadresselector("del_address", "sgAdres",
|
||
{
|
||
label: L("lcl_delivery_address"),
|
||
adresKey: mld_melding.deladdress,
|
||
emptyOption: "",
|
||
filtcode: "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();
|
||
}
|
||
ROFIELDTR("fld", L("lcl_mld_meldbron_nr"), mld_melding.meldbron_nr, {suppressEmpty: true});
|
||
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)
|
||
{
|
||
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});
|
||
|
||
if (this_mld.canSLAChange)
|
||
RWCHECKBOXTR("indult", "fldafr", L("lcl_mld_indult"), mld_melding.indult);
|
||
}
|
||
if (this_mld.canAfrond)
|
||
RWCHECKBOXTR("afgerond", "fldafr", L("lcl_mld_afgerond"), mld_melding.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")%>>
|
||
<%
|
||
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 = [];
|
||
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_rw = this_mld.canOmsChange && S("mld_omschrijving_restrict_edit") == 0;
|
||
// Short subject
|
||
if (mld_melding.subject != 0)
|
||
{
|
||
RWFIELDTR("melding_onderwerp",
|
||
"fld" + ((mld_melding.subject == 2 && (oms_rw || mld_key < 0) && !txtreado)? " required" : ""), /* prepared, 3=future value */
|
||
L("lcl_mld_subject"),
|
||
mld_melding.mld_onderwerp,
|
||
{maxlength: 60, html: (!(oms_rw || mld_key < 0) || txtreado? " readonly" : "")})
|
||
|
||
}
|
||
|
||
if (mld_melding.freetext != 0)
|
||
{
|
||
// Complaint text description
|
||
RWTEXTAREATR("melding_omschrijving",
|
||
"fldtxt" + ((mld_melding.freetext == 2 && (oms_rw || mld_key < 0) && !txtreado)? " required" : ""),
|
||
L("lcl_mld_inf_Omschrijving"),
|
||
mld_melding.mld_omschr,
|
||
{html: "rows='5'" + (!(oms_rw || mld_key < 0) || txtreado? " readonly" : "")});
|
||
|
||
}
|
||
BLOCK_END();
|
||
|
||
if (S("mld_flexcolumns") == 3)
|
||
gen_flex(2); // dan hier....
|
||
|
||
if (lBestaandeMelding && (this_mld.canBOwrite || this_mld.canFOwrite))
|
||
{
|
||
// 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 });
|
||
|
||
if (S("mld_afhandeling_restrict_edit") == 0 || mld_melding.remark)
|
||
{
|
||
var afh_rw = this_mld.canAfhandChange && S("mld_afhandeling_restrict_edit") == 0;
|
||
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>
|