1874 lines
97 KiB
Plaintext
1874 lines
97 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.
|
||
|
||
*/
|
||
|
||
var multi = false;
|
||
var cont = (getQParamInt("mld_continue", 0) == 1);
|
||
if (cont)
|
||
var mld_key_arr = getQParamIntArray("mld_key");
|
||
else
|
||
var mld_key = getQParamInt("mld_key", -1);
|
||
var LOCKED_USER_OK = { "xmlnode": "melding", "key": cont ? mld_key_arr[0] : mld_key };
|
||
%>
|
||
<!-- #include file="../Shared/common.inc" -->
|
||
<!-- #include file="../Shared/calendar.inc" -->
|
||
<!-- #include file="../Shared/iface.inc" -->
|
||
<!-- #include file="../Shared/selector.inc" -->
|
||
<!-- #include file="../Shared/afdelingselector.inc" -->
|
||
<!-- #include file="../Shared/persoonselector.inc" -->
|
||
<!-- #include file="../Shared/plaatsselector.inc" -->
|
||
<!-- #include file="../Shared/objectselector.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="mld_flexkenmerk.inc" -->
|
||
<!-- #include file="mld.inc" -->
|
||
|
||
<%
|
||
FCLTHeader.Requires({ plugins: ["suggest", "jQuery", "kenmerk"],
|
||
js: ["../mld/mld_edit_melding.js", "../mld/mld.js", "../fac/faq.js"] })
|
||
|
||
if (cont)
|
||
{
|
||
var cont_mld_key = -1;
|
||
var stdmelding_c_key = -1;
|
||
var srtdisc_c_key = -1;
|
||
if (mld_key_arr.length > 1)
|
||
{
|
||
var tobecontinued = 0;
|
||
var ingesloten = [];
|
||
var this_mld_c;
|
||
var mld_info_c;
|
||
// Bepaal de meldingen in de selectie die ook echt vervolgt kunnen of mogen worden.
|
||
for (var i = 0; i < mld_key_arr.length; i++)
|
||
{
|
||
this_mld_c = mld.func_enabled_melding(mld_key_arr[i]); // Wat heb ik zoal aan rechten op deze specifieke melding
|
||
mld_info_c = mld.mld_melding_info(mld_key_arr[i]);
|
||
lcl.set_dialect(mld_info_c.srtdisc_key, "MLD_SRTDISCIPLINE_KEY");
|
||
if (this_mld_c.canContinue && !mld_info_c.parent_key) // Geen child melding
|
||
{
|
||
if (ingesloten.length === 0)
|
||
{
|
||
cont_mld_key = mld_key_arr[i];
|
||
stdmelding_c_key = mld_info_c.stdm_key;
|
||
srtdisc_c_key = mld_info_c.srtdisc_key;
|
||
}
|
||
ingesloten.push(mld_key_arr[i]);
|
||
tobecontinued++;
|
||
}
|
||
}
|
||
// De laatst gebruikte set_dialect uit de for-lus geldt nu voor de onderstaande code.
|
||
user.anything_todo_or_abort(tobecontinued > 0); // We klagen niet over enkele wel en enkele niet
|
||
multi = tobecontinued > 1;
|
||
if (multi)
|
||
var mld_key = -1; // Nieuwe melding aanmaken die straks als parent voor de meegegeven child meldingen fungeert.
|
||
else
|
||
var mld_key = ingesloten[0];
|
||
}
|
||
else
|
||
{
|
||
var mld_key = mld_key_arr[0];
|
||
cont_mld_key = mld_key_arr[0];
|
||
|
||
var mld_info_c = mld.mld_melding_info(cont_mld_key);
|
||
stdmelding_c_key = mld_info_c.stdm_key;
|
||
srtdisc_c_key = mld_info_c.srtdisc_key;
|
||
}
|
||
|
||
if (getQParamInt("srtdisc") != srtdisc_c_key)
|
||
mld_key = -1;
|
||
}
|
||
|
||
// 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 (minfo)
|
||
autfunction = 'WEB_MLDBAC';
|
||
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);
|
||
// Bij een vervolgmelding moet er ook een kopie gemaakt worden van de orginele melding, als het hetzelfde vakgroeptype betreft => copy = true.
|
||
var copy_or_cont = copy || (cont && mld_key > -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 mld_grouped_key_arr = getQParamKeyArray("mld_grouped_key_arr", []); // Nieuwe melding voor deze gegroepeerde meldingen
|
||
var start_key = getQParamInt("start_key", -1);
|
||
var default_prio = getQParamInt("default_prio", -1); // Afwijkende prioriteit (vanaf het menu meegegeven)
|
||
var ref_key = getQParamInt("ref_key", -1); // In Case Of a new call for a contract
|
||
var ref_type = getQParam("ref_type", ""); // In Case Of a new call for a contract
|
||
// Save initial reference name
|
||
var lreferenceName = "";
|
||
if (ref_key > -1)
|
||
lreferenceName = getReferenceNameReferentie(ref_key, ref_type);
|
||
|
||
var mld_copy_key = -1;
|
||
if (copy_or_cont && !multi)
|
||
{
|
||
mld_copy_key = mld_key;
|
||
mld_key = -1;
|
||
}
|
||
|
||
var mld_defaultstdmelding = -1;
|
||
var disc_key = -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.
|
||
// Als ik alleen canChangeKenmerkBlok rechten heb mag ik alleen de kenmerken in het toegewezen kenmerk blok wijzigen. De algemene kenemerken mogen dan niet gewijzigd worden.
|
||
// Daarom heb je bij de bepaling van de readonly parameters altijd this_mld.canChange rechten nodig.
|
||
// Alleen bij bestaande meldingen kun je canChangeKenmerkBlok rechten hebben. Bij nieuwe meldingen heb je dus canChange rechten.
|
||
user.auth_required_or_abort(this_mld.canChange || this_mld.canChangeKenmerkBlok);
|
||
}
|
||
else // Nieuwe melding
|
||
{
|
||
var srtdisc_key = getQParamInt("srtdisc"); // Deze is gegarandeerd
|
||
var this_mld = mld.func_enabled_mld(srtdisc_key, "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 def_aanvrager_key = getQParamInt("prs_key", -1);
|
||
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_defaultstdmelding_key = getQParamInt("mld_defaultstdmelding", -1);
|
||
var mld_ins_discipline_key = getQParamInt("mld_ins_discipline_key", -1);
|
||
var mld_omschr = getQParam("txt" , "");
|
||
var mld_onderwerp = getQParam("onderwerp" , act_oms);
|
||
var disc_key = getQParamInt("disc", -1);
|
||
var isurl_disc = (disc_key != -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 sql = "SELECT COUNT (*) cnt"
|
||
+ " FROM mld_stdmelding stdm, mld_discipline md "
|
||
+ " WHERE stdm.mld_ins_discipline_key = md.ins_discipline_key "
|
||
+ " AND stdm.mld_stdmelding_verwijder IS NULL "
|
||
+ " AND md.ins_discipline_verwijder IS NULL "
|
||
+ " AND mld_stdmelding_thirdparty = 0 "
|
||
+ " AND md.ins_srtdiscipline_key = " + srtdisc_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
var lAllThirdparty = (oRs("cnt").Value == 0);
|
||
oRs.close();
|
||
|
||
var res_key = null;
|
||
var rsv_ruimte_volgnr = null;
|
||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
|
||
var cnt_key = getQParamInt("cnt_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;
|
||
|
||
/*
|
||
Does there exist;
|
||
1: A vakgroep which can be a team
|
||
2: A vakgroep which can have a team
|
||
*/
|
||
var sql = "SELECT 1"
|
||
+ " FROM DUAL"
|
||
+ " WHERE EXISTS"
|
||
+ " (SELECT 1"
|
||
+ " FROM mld_disc_params dp1, mld_discipline d1"
|
||
+ " WHERE d1.ins_discipline_key = dp1.mld_ins_discipline_key"
|
||
+ " AND d1.ins_discipline_verwijder IS NULL"
|
||
+ " AND BITAND (dp1.mld_disc_params_srtgroep, 2) = 2)" // Is team?
|
||
+ " AND EXISTS"
|
||
+ " (SELECT 1"
|
||
+ " FROM mld_disc_params dp2, mld_discipline d2"
|
||
+ " WHERE d2.ins_discipline_key = dp2.mld_ins_discipline_key"
|
||
+ " AND d2.ins_discipline_verwijder IS NULL"
|
||
+ " AND BITAND (dp2.mld_disc_params_srtgroep, 4) = 4)" // Has team?
|
||
+ " AND ROWNUM <= 1";
|
||
var oRs = Oracle.Execute(sql);
|
||
var canUseTeams = !oRs.EoF;
|
||
oRs.Close();
|
||
|
||
sql = "";
|
||
// INITIALISATIE MET DE INITIEEL WEER TE GEVEN GEGEVENS
|
||
if (lBestaandeMelding)
|
||
{ // ================================ Bestaande melding ===========================================
|
||
|
||
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_key);
|
||
|
||
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_key;
|
||
oRs = Oracle.Execute(sql);
|
||
var disc_with_startdatum = oRs("startdatum").Value == 1;
|
||
oRs.Close();
|
||
|
||
var ins_srtdiscipline_kostenklant = stdm_info.ins_srtdiscipline_kostenklant || 0;
|
||
if (frontend)
|
||
stdm_info.hide_kostenplaats = (ins_srtdiscipline_kostenklant & 2) == 2;
|
||
else
|
||
stdm_info.hide_kostenplaats = (ins_srtdiscipline_kostenklant & 8) == 8;
|
||
}
|
||
else
|
||
{ // ================================ Nieuwe melding ==============================================
|
||
// Bepaal wat vereiste defaults
|
||
var 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,
|
||
meldbron_key: (meldbron_key > 0 ? meldbron_key : S("mld_meldbron_key")),
|
||
afdeling_key: -1,
|
||
place_key: -1,
|
||
stdm_key: multi || cont ? -1 : mld_defaultstdmelding_key,
|
||
act_key: act_key,
|
||
einddatum: einddatum,
|
||
melddatum: new Date(),
|
||
mld_ordernr: "",
|
||
remark: "",
|
||
mld_status: -1,
|
||
mld_status_str: "",
|
||
deladdress_key: -1,
|
||
mprio: (default_prio > 0 ? default_prio : 3), // Afwijkende prio van menuoptie of 'Normaal'
|
||
frontendprio: false,
|
||
alg_onrgoed_niveau: "",
|
||
module: -1,
|
||
kpnverplicht: false,
|
||
disc_key: multi || cont ? -1 : disc_key,
|
||
srtdisc_key: srtdisc_key,
|
||
kostenpl_key: -1,
|
||
loc_key: loc_key,
|
||
bld_key: bld_key,
|
||
flr_key: flr_key,
|
||
room_key: room_key,
|
||
cnt_key: cnt_key,
|
||
rsv_ruimte_key: rsv_ruimte_key,
|
||
res_key: res_key,
|
||
rsv_ruimte_volgnr: rsv_ruimte_volgnr,
|
||
respijt: 0,
|
||
publiek: 0,
|
||
naam_ext: "",
|
||
email_ext: "",
|
||
tel_ext: "",
|
||
startkey: cont ? cont_mld_key : start_key // Bij vervolgmelding de start key zetten of de start key die is meegegeven.
|
||
}
|
||
if (mld_melding.stdm_key > 0)
|
||
{
|
||
var stdm_info = mld.mld_stdmeldinginfo(mld_melding.stdm_key);
|
||
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 || (cont && this_mld.canBOwrite));
|
||
}
|
||
else
|
||
var stdm_info = { mld_stdmelding_key: -1,
|
||
ins_srtinst: [],
|
||
kanverwijzen: 0,
|
||
prioriteiten: [], // Je weet nog niet of de nieuwe melding meerdere prioriteiten kent
|
||
planbaar: 0, // Je weet nog niet of de nieuwe melding planbaar is
|
||
planbaarfe: 1 // 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
|
||
|
||
// 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;
|
||
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";
|
||
}
|
||
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(sm.mld_stdmelding_planbaar) planbaar,"
|
||
+ " MIN(sm.mld_stdmelding_planbaar) planbaarmin,"
|
||
+ " MAX(sm.mld_stdmelding_planbaarfe) planbaarfe,"
|
||
+ " MIN(sm.mld_stdmelding_planbaarfe) planbaarfemin"
|
||
+ " FROM ins_srtdiscipline isd, "
|
||
+ " mld_discipline md, "
|
||
+ " mld_disc_params mdp, "
|
||
+ " mld_stdmelding sm"
|
||
+ " WHERE isd.ins_srtdiscipline_key = " + mld_melding.srtdisc_key
|
||
+ " 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"
|
||
+ " AND mld_stdmelding_verwijder IS NULL"
|
||
+ " AND (mld_stdmelding_vervaldatum IS NULL OR mld_stdmelding_vervaldatum > SYSDATE)"
|
||
// Als er een default stdmelding is meegegeven dan daar alleen naar kijken (JGL: Zit het dan niet al in stdm_info?)
|
||
+ (mld_defaultstdmelding_key > 0
|
||
? " AND sm.mld_stdmelding_key = " + mld_defaultstdmelding_key
|
||
: "");
|
||
oRs = Oracle.Execute(sql);
|
||
mld_melding.kpnverplicht = (oRs("kpnverplicht").Value == 1); // Voor alle vakgroepen verplicht
|
||
var mandaat_eigen_kp = S("prs_dep_default_kpn") > 0 || oRs("eigen_kp").Value == 1; // Voor alle vakgroepen gemandateerd op eigen kp [dat is strikt genomen S("prs_dep_default_kpn") & 5) > 0]
|
||
var disc_with_startdatum = oRs("startdatum").Value == 1;
|
||
|
||
if (mld_melding.stdm_key > 0)
|
||
{
|
||
// Hebben we hem al
|
||
}
|
||
else if (oRs("planbaar").Value == oRs("planbaarmin").Value && oRs("planbaarfe").Value == oRs("planbaarfemin").Value)
|
||
{
|
||
stdm_info.planbaar = oRs("planbaar").Value;
|
||
stdm_info.planbaarfe = oRs("planbaarfe").Value;
|
||
}
|
||
oRs.Close();
|
||
|
||
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"
|
||
+ ", ins_srtdiscipline_mldgroup"
|
||
+ " FROM ins_srtdiscipline"
|
||
+ " WHERE ins_srtdiscipline_key = " + mld_melding.srtdisc_key;
|
||
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.ins_srtdiscipline_mldgroup = oRs("ins_srtdiscipline_mldgroup").Value;
|
||
if (frontend)
|
||
{
|
||
stdm_info.hide_kostenplaats = (oRs("kostenklant").Value & 2) == 2;
|
||
mld_melding.mld_kk = (oRs("kostenklant").Value & 1) == 1? 1 : 0; // Kan ook 2 zijn voor onzichtbaar.
|
||
}
|
||
else
|
||
{
|
||
stdm_info.hide_kostenplaats = (oRs("kostenklant").Value & 8) == 8;
|
||
mld_melding.mld_kk = (oRs("kostenklant").Value & 4) == 4? 1 : 0; // Kan ook 8 zijn voor onzichtbaar.
|
||
}
|
||
// Bij vervolgen (cont) kunnen alle vakgroepen en stdmeldingen gekozen worden.
|
||
// De ALG, INS en BES gegevens worden clientside getoond. Initieel moeten ze allemaal aanwezig zijn.
|
||
mld_melding.prefix = oRs("prefix").Value;
|
||
mld_melding.alg_level = alg_level;
|
||
mld_melding.show_alg = cont || alg_level > 0;
|
||
mld_melding.show_ins = cont || oRs("ins_srtdiscipline_ins").Value == 1;
|
||
mld_melding.show_bes = cont || oRs("ins_srtdiscipline_bes").Value > 0;
|
||
mld_melding.afleveradres_verplicht = 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") || def_aanvrager_key > 0))
|
||
|| frontend
|
||
|| (multi) // Bij multi vervolgmelding is de user de melder (als multi dan is cont (automatische) ook true).
|
||
|| (!this_mld.canFOwrite && !this_mld.canBOwrite && this_mld.canFEwrite)
|
||
? (def_aanvrager_key > 0 ? def_aanvrager_key : user_key)
|
||
: -1);
|
||
}
|
||
mld_melding.perslid_key_voor = S("mld_allow_for_others") == 2 ? "" : 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;
|
||
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({ "withcurrent": true });
|
||
mld_melding.bld_key = melder_obj.alg_gebouw_key({ "withcurrent": true });
|
||
mld_melding.flr_key = melder_obj.alg_verdieping_key({ "withcurrent": true });
|
||
mld_melding.room_key = melder_obj.alg_ruimte_key({ "withcurrent": true });
|
||
}
|
||
|
||
// Plaats velden die niet zichtbaar zijn leeg maken.
|
||
switch (mld_melding.alg_level)
|
||
{ // Zonder break;
|
||
case 2: mld_melding.bld_key = -1;
|
||
case 3: mld_melding.flr_key = -1;
|
||
case 4: mld_melding.room_key = -1;
|
||
}
|
||
|
||
if (melder_obj)
|
||
{
|
||
if (multi)
|
||
mld_melding.kostenpl_key = user.prs_kostenplaats_key();
|
||
else if (/* TODO: overwegen kpnverplicht && */ mandaat_eigen_kp != 0 && mld_melding.mld_kk == 1)
|
||
{ // default kostenplaats
|
||
mld_melding.kostenpl_key = melder_obj.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_key = multi? user.mld_adres_key() : prs_info.mld_adres_key;
|
||
}
|
||
}
|
||
mld_melding.show_eigen_kp = false;
|
||
mld_melding.show_start_date = false;
|
||
} // if/else (lBestaandeMelding)
|
||
|
||
if (mld_melding.meldbron_key)
|
||
{
|
||
var sql = "SELECT mld_meldbron_kiesbaar"
|
||
+ " FROM mld_meldbron"
|
||
+ " WHERE mld_meldbron_key = " + mld_melding.meldbron_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
if (!oRs.eof)
|
||
mld_melding.meldbron_kiesbaar = oRs("mld_meldbron_kiesbaar").Value;
|
||
oRs.Close();
|
||
}
|
||
|
||
if (copy_or_cont && !multi)
|
||
{ // Haal de globale variabele op met alle mld_melding informatie voor gegevens die ik wil overnemen uit de bestaande melding.
|
||
this_mld_copy = mld.func_enabled_melding(mld_copy_key); // Wat heb ik zoal aan rechten op deze specifieke melding
|
||
mld_melding_copy = mld.mld_melding_info(mld_copy_key);
|
||
|
||
mld_melding.srtinst_verplichtstatus = mld_melding_copy.srtinst_verplichtstatus;
|
||
mld_melding.mld_ins_discipline_key = mld_melding_copy.mld_ins_discipline_key;
|
||
mld_melding.melder_key = mld_melding_copy.melder_key;
|
||
mld_melding.kostenpl_key = mld_melding_copy.kostenpl_key;
|
||
mld_melding.mld_kk = mld_melding_copy.mld_kk;
|
||
mld_melding.disc_key = mld_melding_copy.disc_key;
|
||
mld_melding.stdm_key = mld_melding_copy.stdm_key;
|
||
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_key = mld_melding_copy.deladdress_key;
|
||
mld_melding.mld_omschr = mld_melding_copy.mld_omschr;
|
||
mld_melding.remark = mld_melding_copy.remark;
|
||
mld_melding.behandel_key = mld_melding_copy.behandel_key;
|
||
mld_melding.behandel_key2 = mld_melding_copy.behandel_key2;
|
||
mld_melding.mld_onderwerp = mld_melding_copy.mld_onderwerp;
|
||
mld_melding.room_obj_arr = mld_melding_copy.room_obj_arr;
|
||
if (cont && (stdm_info.canholdthirdparty == 1 || lAllThirdparty))
|
||
{
|
||
mld_melding.naam_ext = mld_melding_copy.naam_ext;
|
||
mld_melding.email_ext = mld_melding_copy.email_ext;
|
||
mld_melding.tel_ext = mld_melding_copy.tel_ext;
|
||
}
|
||
}
|
||
|
||
lcl.set_dialect(mld_melding.srtdisc_key, "MLD_SRTDISCIPLINE_KEY");
|
||
|
||
/* ================================ Initiele gegevens bepaald ==================================== */
|
||
|
||
%>
|
||
<html>
|
||
<head>
|
||
<% FCLTHeader.Generate(); %>
|
||
<script type="text/javascript">
|
||
|
||
var ref_key = <%=ref_key%>;
|
||
var ref_type = "<%=safe.jsstring(ref_type)%>";
|
||
var lreferenceName = "<%=safe.jsstring(lreferenceName)%>";
|
||
var faq_max_results_mld = "<%=S("faq_max_results_mld")%>";
|
||
var mld_key = <%=mld_key%>;
|
||
var act_key = <%=mld_melding.act_key ? mld_melding.act_key : -1%>;
|
||
var ins_key = <%=ins_key%>;
|
||
var mld_def_loc = <%=(mld_key > 0 || copy_or_cont && !multi || getQParamInt("loc_key", -1) > -1 || getQParamInt("rsv_ruimte_key", -1) > -1 || ins_has_loc) ? 1 : 0%>;
|
||
var mld_status = <%=mld_melding.mld_status%>;
|
||
var mprio = <%=mld_melding.mprio%>;
|
||
var srtdisc_key = <%=mld_melding.srtdisc_key%>;
|
||
var disc_key = <%=mld_melding.disc_key%>;
|
||
var alg_onrgoed_niveau = "<%=mld_melding.alg_onrgoed_niveau%>";
|
||
var perslidkey = <%=perslidkey%>;
|
||
var def_kenmerk_link_key = <%=def_kenmerk_link_key%>;
|
||
var user_kpkey = <%=user.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()%>;
|
||
|
||
// The next two are used in toggleBehandelteam()
|
||
var show_abh = (<%=(this_mld.canBOwrite) ? 1 : 0%> == 1);
|
||
// Always set default behandelteam if initially empty and the field is hidden (so you can't specifically set it) - Or if it's a new MLD
|
||
var alwaysSetBht = (<%=(!(mld_melding.mld_ins_discipline_key > 0) && (lNieuweMelding || !this_mld.canBOwrite)) ? 1 : 0%> == 1);
|
||
|
||
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%>;
|
||
var mld_kk = <%= mld_melding.mld_kk? 1 : 0 %> == 1;
|
||
var copy = <%= mld_copy_key > 0 ? 1 : 0 %>; // (copy_or_cont && !multi)
|
||
var cont_stdm = "<%=stdmelding_c_key || "-1"%>";
|
||
var mld_copy_key = <%=mld_copy_key%>;
|
||
var melder_key = <%=mld_melding.melder_key%>;
|
||
var mld_processing_group_all = <%=S("mld_processing_group_all")%> == 1;
|
||
var prsautlevel = <%=(this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel) || 9%>;
|
||
var loc_key = <%=mld_melding.loc_key%>;
|
||
|
||
// 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);
|
||
|
||
<% if (copy_or_cont) { %>
|
||
function make_attachments_readonly()
|
||
{
|
||
$("input[type=button][isbijlage=1]", "td.flexvalue").attr({readonly: true, disabled: true }).addClass("btn_disabled"); // Make attachment buttons readonly and disabled when copying call
|
||
}
|
||
<% } %>
|
||
|
||
$(function()
|
||
{
|
||
$('#issuer_search').change(function() { sgLoc.setValue($('#locatiekey').val(), $('#locatie').val(), true, true); });
|
||
$('textarea').resize(function () { FcltMgr.resized(window) } );
|
||
$('textarea').autogrow();
|
||
if (alg_onrgoed_niveau == "H")
|
||
$('#mldAlg').hide();
|
||
<% if (lNieuweMelding) { %>
|
||
FcltMgr.setTitle("<%=safe.jsstring(mld_melding.srtdisc_oms)%>", { hot: true });
|
||
onChangeMeldbron();
|
||
<% }
|
||
if (copy_or_cont) { %>
|
||
make_attachments_readonly();
|
||
<% } %>
|
||
});
|
||
|
||
function cadShowdiscfn()
|
||
{
|
||
var disc_arr = [];
|
||
if (stdm_info.ins_srtinst)
|
||
{
|
||
for (var i = 0; i < stdm_info.ins_srtinst.length; i++)
|
||
{
|
||
if (stdm_info.ins_srtinst[i].ins_srtinstallatie_niveau == "D")
|
||
disc_arr.push(stdm_info.ins_srtinst[i].ins_srtinstallatie_key);
|
||
}
|
||
}
|
||
return disc_arr;
|
||
};
|
||
|
||
function cadShowgrpfn()
|
||
{
|
||
var grp_arr = [];
|
||
if (stdm_info.ins_srtinst)
|
||
{
|
||
for (var i = 0; i < stdm_info.ins_srtinst.length; i++)
|
||
{
|
||
if (stdm_info.ins_srtinst[i].ins_srtinstallatie_niveau == "G")
|
||
grp_arr.push(stdm_info.ins_srtinst[i].ins_srtinstallatie_key);
|
||
}
|
||
}
|
||
return grp_arr;
|
||
}
|
||
|
||
function cadShowsrtfn()
|
||
{
|
||
var srt_arr = [];
|
||
if (stdm_info.ins_srtinst)
|
||
{
|
||
for (var i = 0; i < stdm_info.ins_srtinst.length; i++)
|
||
{
|
||
if (stdm_info.ins_srtinst[i].ins_srtinstallatie_niveau == "S")
|
||
srt_arr.push(stdm_info.ins_srtinst[i].ins_srtinstallatie_key);
|
||
}
|
||
}
|
||
return srt_arr;
|
||
}
|
||
|
||
function cadShowthemafn()
|
||
{
|
||
var thema_key = (stdm_info.cad_thema_key ? stdm_info.cad_thema_key : -1);
|
||
return thema_key;
|
||
};
|
||
|
||
function cadCallbackInsfn(ins_key)
|
||
{
|
||
var prs_key = ($("#personFor").length > 0? $("#personFor").val() : $("#person").val());
|
||
var stdmld_key = $("#stdm").val();
|
||
|
||
$.getJSON("../mld/get_mld_info_ajax.asp",
|
||
{ req_info: "get_object_by_key",
|
||
ins_key: ins_key,
|
||
alg_key: $("#verdiepingkey").val(),
|
||
alg_niveau: "V",
|
||
prs_key: prs_key,
|
||
stdmld_key: stdmld_key
|
||
},
|
||
function(data, ins_key)
|
||
{
|
||
for (i in data)
|
||
{
|
||
if ("omschrijving" in data[i])
|
||
{
|
||
$("#r_objs_button").val(L("lcl_mld_objects") + " (" + data.length + ")");
|
||
|
||
_toggleObjectPicker(0);
|
||
$("#r_objs").append($(document.createElement("option")).attr("value", data[i].key).attr("uitvoertijd", data[i].uitvoertijd).text(data[i].omschrijving));
|
||
if (typeof sgObject != "undefined") // setTimeout zodat de onChangeAlg klaar is (met evt. leeg maken van objectSelector)
|
||
setTimeout(function () { sgObject.setValue(data[i].key, data[i].omschrijving); }, 1);
|
||
|
||
if (mld_key < 0 && mld_object_filled_in_alert == 1)
|
||
FcltMgr.alert(L("lcl_mld_object_filled_in"));
|
||
// Vul nu ook de plaatsgegevens behorend bij dit object in, voor zover dit mogelijk is.
|
||
if (data[i].alg_ruimte_type == "R")
|
||
{ // setValue(key, txt, doonChange, checkExist, extraParam, lastTry);
|
||
// lastTry is true zodat suggestbox wordt leeggemaakt indien waarde niet voorkomt (en niet de laatst waarde wordt getoond)
|
||
window.cadPickedObject = true;
|
||
sgRoom.setValue(data[i].alg_ruimte_key, data[i].alg_ruimte_nr, true, true, null, true);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
// 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");
|
||
}
|
||
|
||
<% OVERRULELAYOUT("mld_edit_melding", { "isnew": !(mld_key > 0), "urole": urole }); %>
|
||
|
||
</script>
|
||
</head>
|
||
<body class="editmode">
|
||
<%
|
||
SUBFRAME_START();
|
||
var buttons = [];
|
||
buttons.push ({ title: L("lcl_submit"), icon: "fa-fclt-save", action:"mld_submit()", singlepress: true, id:"btn_mld_submit" });
|
||
// 26-11-2020 14:28:26/PF deze functionaliteit mag hier best weg, zit ook in showmode en werkt alleen voor bestaande meldingen, dus weg ermee
|
||
if (false && 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: "fa-lightbulb-on", title: L("lcl_mld_similarcalls"), action: goegel });
|
||
}
|
||
if (mld_key > 0 || mld_melding.act_key == -1) {
|
||
buttons.push ({ title: L("lcl_cancel"), icon: "fa-fclt-cancel", action:"mld_cancel()" });
|
||
}
|
||
|
||
IFRAMER_HEADER(
|
||
(mld_melding.act_key > 0 ? (L("lcl_mld_frame_algemeen_actie") + " " + mld_melding.act_key)
|
||
: (lBestaandeMelding ? L("lcl_complain") + " " + (mld_melding.prefix != null ? mld_melding.prefix : "") + mld_key : L("lcl_mld_new"))), buttons);
|
||
if (mld_melding.locked_user_key && mld_melding.locked_user_key != user_key)
|
||
{
|
||
var other = new Perslid(mld_melding.locked_user_key);
|
||
SIMPLE_BLOCK_START(); %>
|
||
<div class="warning"><%=L("lcl_mld_melding_locked").format(safe.html(other.naam()), toTimeString(mld_melding.locked_date))%></div><%
|
||
SIMPLE_BLOCK_END();
|
||
}
|
||
%>
|
||
<form id="u2" name="u2"
|
||
action="mld_edit_melding_save.asp"
|
||
method="post"
|
||
onsubmit='mld_submit();return false'>
|
||
<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="mld_copy" value="<%=(copy ? 1 : 0)%>">
|
||
<input type="hidden" name="mld_continue" value="<%=(cont ? 1 : 0)%>">
|
||
<input type="hidden" name="mld_copy_key" value="<%=(cont ? cont_mld_key : mld_copy_key)%>">
|
||
<% if (multi) { %>
|
||
<input type="hidden" name="child_arr" value="<%=mld_key_arr.join(",")%>">
|
||
<% } %>
|
||
|
||
<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 of het is vervolgen, dan de startkey doorgeven.
|
||
if (mld_melding.startkey > 0)
|
||
{ %>
|
||
<input type="hidden" name="start_key" id="start_key" value="<%=mld_melding.startkey%>">
|
||
<% }
|
||
// 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%>">
|
||
<% }
|
||
// Als er 'te-groeperen-meldingen' zijn meegegeven, dan deze doorgeven.
|
||
if (mld_grouped_key_arr.length)
|
||
{ %>
|
||
<input type="hidden" name="mld_grouped_key_arr" id="mld_grouped_key_arr" value="<%=mld_grouped_key_arr.join(",")%>">
|
||
<% }
|
||
}
|
||
|
||
if (lBestaandeMelding)
|
||
{ %>
|
||
<input type="hidden" name="mld_key" value="<%=mld_key%>">
|
||
<input type="hidden" name="srtdisc" value="<%=mld_melding.srtdisc_key%>">
|
||
<%
|
||
}
|
||
if (mld_melding.rsv_ruimte_key > 0)
|
||
{ %>
|
||
<input type="hidden" name="rsv_ruimte_key" id="rsv_ruimte_key" value="<%=mld_melding.rsv_ruimte_key%>">
|
||
<%
|
||
}
|
||
if (mld_melding.cnt_key > 0)
|
||
{ %>
|
||
<input type="hidden" name="cnt_key" id="cnt_key" value="<%=mld_melding.cnt_key%>">
|
||
<%
|
||
}
|
||
|
||
function injectAdresselector()
|
||
{
|
||
FCLTadresselector("del_address", "sgAdres",
|
||
{ adresKey: mld_melding.deladdress_key,
|
||
label: L("lcl_delivery_address"),
|
||
emptyOption: "",
|
||
filtercode: "A",
|
||
autlevel: (this_mld.authparams(autfunction)? this_mld.authparams(autfunction).ALGreadlevel : 9),
|
||
readonly: (mld_melding.deladdress_key > 0 && mld_key > 0 && !this_mld.canAflChange),
|
||
required: mld_melding.afleveradres_verplicht
|
||
});
|
||
}
|
||
|
||
/* Global variables (spanning multiple BLOCK's) */
|
||
var personEditable = (mld_key > 0 && this_mld.canPersChange) || (mld_key < 0 && !frontend);
|
||
var personForExist = (S("mld_allow_for_others") == 1 || S("mld_allow_for_others") == 2) &&
|
||
(mld_key < 0 || this_mld.canKostChange || mld_melding.melder_key != mld_melding.perslid_key_voor) && !cont;
|
||
/* \Global variables */
|
||
|
||
/* In deze functie staan alle blokken */
|
||
function writeBlock(id)
|
||
{
|
||
if (blockPrinted[id])
|
||
return true;
|
||
|
||
if (id == "mldCaller")
|
||
{
|
||
var personForEditable = (mld_key > 0 && this_mld.canKostChange) || (mld_key < 0);
|
||
if (((S("mld_allow_for_others") == 1 || S("mld_allow_for_others") == 2) && (personForEditable || (mld_melding.melder_key != mld_melding.perslid_key_voor))) ||
|
||
!frontend || !stdm_info.hide_kostenplaats || mld_melding.kostenpl_key > 0 || S("mld_use_department") == 1)
|
||
{
|
||
// 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(id, L("lcl_mld_aanvragergegevens"), {icon: (mld_melding.wfstep > 0 && mld_melding.startkey != mld_key ? "fa-diagram-project" : "fa-user")});
|
||
var urlAdd = [];
|
||
if (mld.useAlgScope("A")) {
|
||
if (mld_melding.alg_level >= 2) {
|
||
urlAdd.push({urlParam: "loc_key", field: "locatiekey", init: mld_melding.loc_key});
|
||
}
|
||
}
|
||
var hasPersonFor = (S("mld_allow_for_others") == 1 || S("mld_allow_for_others") == 2) &&
|
||
(personForEditable || (mld_melding.melder_key != mld_melding.perslid_key_voor)) && !cont;
|
||
FCLTpersoonselector("person",
|
||
"sgPerson",
|
||
{ perslidKey: cont && (multi || frontend) ? user_key : mld_melding.melder_key,
|
||
label: L("lcl_mld_name"),
|
||
readonly: !personEditable,
|
||
urlAdd: (!hasPersonFor && fronto ? urlAdd : null),
|
||
moreinfo: (backo || fronto),
|
||
onChange: "onChangeMelder",
|
||
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
|
||
extracode: "AK",
|
||
extraParamField: "prs_afd_key",
|
||
required: personEditable
|
||
});
|
||
// Melding voor (aanpasbaar bij nieuwe meldingen en bij bestaande meldingen als de kostenplaats ook aanpasbaar is)
|
||
if (hasPersonFor)
|
||
{ // 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,
|
||
urlAdd: urlAdd,
|
||
moreinfo: !frontend,
|
||
required: true,
|
||
onChange: "GetSetCallInfo"
|
||
});
|
||
}
|
||
|
||
if (S("mld_use_department") == 1)
|
||
{
|
||
FCLTafdelingselector("sgDept", "sgDept",
|
||
{ departmentKey: mld_melding.afdeling_key || -1,
|
||
label: L("lcl_mld_afdeling"),
|
||
autlevel: authparams.PRSwritelevel,
|
||
filtercode: "INCL",
|
||
readonly: (mld_key > 0 && !this_mld.canDeptChange),
|
||
required: true,
|
||
suppressJustOne: true,
|
||
moreinfo: !frontend
|
||
});
|
||
%>
|
||
<script>
|
||
$(function()
|
||
{
|
||
if (mld_key == -1)
|
||
{
|
||
GetSetCallInfo($("#person").val()); // Geeft afdeling ook initiele waarde afhankelijk van de aanvrager.
|
||
}
|
||
});
|
||
</script>
|
||
<%
|
||
}
|
||
|
||
if (!stdm_info.hide_kostenplaats && !stdm_info.is_kto_antwoord)
|
||
{
|
||
var urlAdd_account = [{ urlParam: "prs_key", field: (frontend && S("mld_allow_for_others") == 1 && S("prs_dep_default_kpn_voor") == 1? "personFor" : "person") },
|
||
{ urlParam: "showeigenkp", field: "eigenkp" }];
|
||
if (frontend && !mld_melding.mld_kk)
|
||
{ // Indien frontend en kostenklant vinkje is uit, dan moet alleen de kostenplaats van het geselecteerde gebouw gekozen kunnen worden.
|
||
// LET OP!: Persoon hoeft niet gemandateerd te zijn voor deze kostenplaats.
|
||
// De kostenplaats van het geselecteerde gebouw wordt meegegeven aan de FCLTkostenplaatsselector
|
||
// zodat alleen deze kostenplaats als resultaat opgeleverd gaat worden.
|
||
urlAdd_account.push({ urlParam: "kp_key", field: "account_bld" });
|
||
}
|
||
|
||
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: urlAdd_account,
|
||
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 (frontend && !mld_melding.mld_kk)
|
||
{ // Indien frontend en kostenklant vinkje is uit, dan moet alleen de kostenplaats van het geselecteerde gebouw gekozen kunnen worden.
|
||
// LET OP!: Persoon hoeft niet gemandateerd te zijn voor deze kostenplaats.
|
||
// De kostenplaats van het gekozen gebouw wordt in een hidden input veld opgeslagen/bijgehouden.
|
||
// Deze wordt meegegeven aan de FCLTkostenplaatsselector.
|
||
var sqlg = "SELECT g.prs_kostenplaats_key"
|
||
+ " FROM alg_gebouw g"
|
||
+ " WHERE g.alg_gebouw_key = " + mld_melding.bld_key;
|
||
var oRsg = Oracle.Execute(sqlg);
|
||
%>
|
||
<input type="hidden" id="account_bld" name="account_bld" value="<%=!oRsg.eof? oRsg("prs_kostenplaats_key").Value : -1%>">
|
||
<% oRsg.Close();
|
||
}
|
||
|
||
if (S("show_ordernr") != 0)
|
||
{
|
||
RWFIELDTR("ordernr", "fldshort", L("lcl_mld_inf_Ordernr"), mld_melding.mld_ordernr, {readonly: (mld_key > 0 && !this_mld.canKostChange), maxlength: 30});
|
||
}
|
||
}
|
||
|
||
if (!frontend) // Deze velden nooit voor frontend laten zien
|
||
if (lBestaandeMelding || mld_defaultstdmelding_key > -1 || lAllThirdparty)
|
||
{
|
||
if ((lNieuweMelding || this_mld.canChange) && (stdm_info.canholdthirdparty == 1 || lAllThirdparty))
|
||
{
|
||
RWFIELDTR("naam_ext", "fld", L("lcl_mld_naam_ext"), mld_melding.naam_ext, {maxlength: 60});
|
||
RWFIELDTR("email_ext", "fld", L("lcl_mld_email_ext"), mld_melding.email_ext, {maxlength: 100});
|
||
RWFIELDTR("tel_ext", "fld", L("lcl_mld_tel_ext"), mld_melding.tel_ext, {maxlength: 20});
|
||
}
|
||
else
|
||
{
|
||
ROFIELDTR("naam_ext", L("lcl_mld_naam_ext"), mld_melding.naam_ext, {suppressEmpty: true});
|
||
ROFIELDTR("email_ext", L("lcl_mld_email_ext"), mld_melding.email_ext, {suppressEmpty: true});
|
||
ROFIELDTR("tel_ext", L("lcl_mld_tel_ext"), mld_melding.tel_ext, {suppressEmpty: true});
|
||
}
|
||
}
|
||
BLOCK_END();
|
||
}
|
||
else
|
||
{ %>
|
||
<input type="hidden" id="person" name="person" value="<%=user_key%>">
|
||
<input type="hidden" id="prs_afd_key" name="prs_afd_key" value="<%=user.prs_afdeling_key()%>">
|
||
<% }
|
||
|
||
// Een FE kan niet togglen
|
||
// Als bij nieuwe meldingen de persoon 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 && mld_key < 0 && mld_melding.melder_key > 0 && !copy_or_cont)
|
||
{
|
||
%>
|
||
<script type="text/javascript">
|
||
$(function()
|
||
{
|
||
onChangeMelder(<%=mld_melding.melder_key%>);
|
||
});
|
||
</script>
|
||
<%
|
||
}
|
||
} // \mldCaller
|
||
else if (id == "mldMelding")
|
||
{
|
||
BLOCK_START(id, L("lcl_mld_categorie"), {icon: "fa-tag"});
|
||
|
||
ROFIELDTR("fld", L("lcl_vakgroup_type"), mld_melding.srtdisc_oms);
|
||
// 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 vakg_readonly = !cont && (disc_key > 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));
|
||
var urlAdd = [];
|
||
if (mld.useAlgScope("D"))
|
||
{ // Alleen plaats velden die zichtbaar zijn meegeven.
|
||
switch (mld_melding.alg_level)
|
||
{ // Zonder break;
|
||
case 5: urlAdd.push({urlParam: "roomkey", field: "ruimtekey", init: mld_melding.room_key});
|
||
case 4: urlAdd.push({urlParam: "flrkey", field: "verdiepingkey", init: mld_melding.flr_key});
|
||
case 3: urlAdd.push({urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key});
|
||
case 2: urlAdd.push({urlParam: "lockey", field: "locatiekey", init: mld_melding.loc_key});
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (mld_melding.alg_level == 5)
|
||
// Plaats is zichtbaar. I.v.m. ruimtefuncties de ruimte key meegeven.
|
||
urlAdd.push({urlParam: "roomkey", field: "ruimtekey", init: mld_melding.room_key});
|
||
}
|
||
|
||
FCLTdisciplineselector("disc",
|
||
"sgDisc",
|
||
{ label: L("lcl_vakgroup"),
|
||
disc_key: mld_melding.disc_key,
|
||
module: "MLDP",
|
||
perslidKey: (lBestaandeMelding ? mld_melding.melder_key : user_key),
|
||
autfunctionKey: (canUseTeams && vakg_readonly? -1 : authparams.autfunctionkey), // Dan mag ik alles zien (readonly, zie: func_enabled)
|
||
autRW: "W",
|
||
srtdisc_key: mld_melding.srtdisc_key,
|
||
ins_key_arr: ins_key > 0? [ins_key] : [],
|
||
urlAdd: urlAdd,
|
||
onChange: ((frontend && S("mld_selector_mode") == 1) ? null : "onChangeVakgroep"),
|
||
extraParamField: "eigenkp",
|
||
extracode: "K",
|
||
ref_type: ref_type,
|
||
readonly: vakg_readonly,
|
||
dohide: (frontend && (S("mld_selector_mode") == 2)? true : false),
|
||
required: (mld_key < 0 || this_mld.canVakgChange),
|
||
filtercode: (frontend ? "FE" : (mld_grouped_key_arr.length ? "MG" : ((fronto && (mld_key < 0) || cont) ? "VD" : ""))),
|
||
moreinfo: !vakg_readonly && !frontend && (user.checkAutorisation("WEB_FAQUSE", true) || user.checkAutorisation("WEB_FAQFOF", true)) // !readonly && rechten
|
||
});
|
||
|
||
urlAdd.push({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.
|
||
|| (frontend && S("mld_selector_mode") == 2 && isurl_disc) // Als frontend en setting mld_selector_mode =2 en disc_key via url, dan stdmelding wel afhankelijk van discipline.
|
||
)
|
||
urlAdd.push({urlParam: "disc_key", field: "disc"});
|
||
var stdm_readonly = ((mld_defaultstdmelding_key > 0 && !cont) || (mld_key > 0 && !this_mld.canStdmChange) || (lBestaandeMelding && stdm_info.slabewaken && mld_melding.respijt != 0));
|
||
var res =
|
||
FCLTstdmeldingselector("stdm",
|
||
"sgStdm",
|
||
{ label: L("lcl_complain"),
|
||
stdmelding_key: mld_melding.stdm_key,
|
||
autfunctionKey: (canUseTeams && stdm_readonly ? -1 : authparams.autfunctionkey), // Dan mag ik alles zien (readonly, zie: func_enabled)
|
||
srtdisc_key: mld_melding.srtdisc_key,
|
||
ins_key_arr: ins_key > 0? [ins_key] : [],
|
||
ref_type: ref_type,
|
||
readonly: stdm_readonly,
|
||
urlAdd: urlAdd,
|
||
onChange: "onChangeStdMelding",
|
||
extraParamField: "priomatrix",
|
||
extracode: "PM",
|
||
initOnChange: (mld_key < 0 && (!copy_or_cont || multi)), // Geen initialisatie van sgonChange (ingevulde einddatum niet aanpassen aan de uitvoertijd) bij bestaande meldingen. Voor copy_or_cont gebeurt het hieronder clientside.
|
||
required: (mld_key < 0 || this_mld.canStdmChange),
|
||
filtercode: (frontend? "FE" : null),
|
||
moreinfo: !stdm_readonly &&
|
||
(user.checkAutorisation("WEB_FAQUSE", true) || user.checkAutorisation("WEB_FAQFOF", true)) && // !readonly && rechten
|
||
!frontend
|
||
});
|
||
|
||
if (res.stdmelding_key > 0 && !(mld_melding.stdm_key>0))
|
||
{ // We hebben er wel eentje maar hadden er geen
|
||
mld_melding.stdm_key = res.stdmelding_key;
|
||
stdm_info = mld.mld_stdmeldinginfo(mld_melding.stdm_key);
|
||
}
|
||
|
||
if (copy_or_cont && !multi)
|
||
{
|
||
%>
|
||
<script type="text/javascript">
|
||
$(function()
|
||
{ // InitOnChange is bij copy_or_cont (kopieren en vervolgen) altijd false omdat anders de objecten leeg werden gemaakt.
|
||
// Daarom hier onChangeStdMelding maar aanroepen met copy_or_cont = true waardoor de objecten niet worden verwijderd..
|
||
onChangeStdMelding(<%=mld_melding.stdm_key%>, "", {copy: true});
|
||
});
|
||
</script>
|
||
<%
|
||
}
|
||
|
||
if (lBestaandeMelding)
|
||
{
|
||
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_key, mld_melding.stdm_key, -1, mld_melding.afdeling_key, -1);
|
||
for (i in faq_info.fixed_faq)
|
||
{
|
||
faq_info.fixed_faq[i].safe_answer = safe.fclthtml(faq_info.fixed_faq[i].answer);
|
||
faq_info.fixed_faq[i].safe_answer2 = safe.fclthtml(faq_info.fixed_faq[i].answer2);
|
||
}
|
||
}
|
||
%>
|
||
<input type="hidden" name="canholdthirdparty" id="canholdthirdparty" value="<%=stdm_info.canholdthirdparty%>">
|
||
<input type="hidden" name="alg_onrgoed_obj_niveau" id="alg_onrgoed_obj_niveau" value="">
|
||
<input type="hidden" name="prsafdobj" id="prsafdobj" value="">
|
||
<input type="hidden" id="suggest_alg_niveau" value="">
|
||
|
||
<script type="text/javascript">
|
||
$(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 $() ) 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(JSON.parse(JSONdataStdm), false); // Tweede parameter stdmChanged voorkomt einddatum aanpassing bij bestaande meldingen
|
||
show_fixed_faq("mldFaq", -1, JSON.parse(JSONdataFaq), faq_max_results_mld);
|
||
}
|
||
togglePriomatrix();
|
||
|
||
// Set correct values onLoad (setTimeout so that sgObject has been initiated)
|
||
setTimeout(function() { setSuggestUrlAdd("<%=stdm_info.alg_onrgoed_niveau%>", "<%=stdm_info.alg_onrgoed_obj_niveau%>"); }, 1);
|
||
});
|
||
</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_key
|
||
// Als er een default stdmelding is meegegeven dan daar alleen naar kijken
|
||
+ (mld_defaultstdmelding_key > 0
|
||
? " AND sm.mld_stdmelding_key = " + mld_defaultstdmelding_key
|
||
: "")
|
||
+ " 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();
|
||
}
|
||
%>
|
||
<input type="hidden" name="kto_type" id="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 (hide_prio)
|
||
{ %>
|
||
<input type="hidden" name="prio" id="prio" value="<%=mld_melding.mprio%>">
|
||
<% }
|
||
else
|
||
{
|
||
var sqlprio = null;
|
||
if (mld_melding.stdm_key > 0)
|
||
{
|
||
sqlprio = "";
|
||
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"));
|
||
}
|
||
sqlprio += union
|
||
+ " SELECT " + stdm_info.prioriteiten[i].key
|
||
+ ", " + safe.quoted_sql(priotxt)
|
||
+ " FROM DUAL";
|
||
union = " UNION";
|
||
}
|
||
}
|
||
|
||
var canPrioChangeFOBO = (this_mld.canFOwrite? 1 : 0);
|
||
var canPrioChange = (stdm_info.planbaarfe == 0 && (this_mld.canFOwrite || (this_mld.canFEwrite && stdm_info.frontendprio && (mld_key < 0 || mld_melding.mld_status == 1 || mld_melding.mld_status == 2)))? 1 : 0);
|
||
|
||
// De prioriteitenmatrix indien aangegeven is dat dat moet EN als ALLE denkbare prioriteiten 1 t/m gedefinieerd zijn
|
||
// Als dat niet het geval is zouden er gaten ontstaan en wordt het enigszins onvoorspelbaar, dus dan maar niet.
|
||
if (mld_key < 0 || (mld_key > 0 && canPrioChangeFOBO && (stdm_info.prioriteiten[1] && stdm_info.prioriteiten[2] && stdm_info.prioriteiten[4]) && stdm_info.priomatrix > 0))
|
||
{
|
||
var urgentiesql= [];
|
||
for (var i = 1; i <= 3; i++)
|
||
{
|
||
urgentiesql.push("SELECT " + i + ", " + safe.quoted_sql(L("lcl_mld_urgentie" + i)) + "||' - '|| " + safe.quoted_sql(L("lcl_mld_urgentie" + i + "_info")) + " tt FROM DUAL");
|
||
}
|
||
FCLTselector("urgentie",
|
||
urgentiesql.join(" UNION ") + " ORDER BY 1",
|
||
{ initKey: mld_melding.murgentie,
|
||
label: L("lcl_mld_matrixlabelprefix")+L("lcl_mld_urgentie"),
|
||
emptyOption: L("lcl_select_urgentie"),
|
||
readonly: (mld_key > 0 && !canPrioChange),
|
||
onChange: "onChangeImpactOrUrgentie(0)",
|
||
trclass: "tr_priomatrix"
|
||
});
|
||
|
||
var impactsql= [];
|
||
for (var i = 1; i <= 3; i++)
|
||
{
|
||
impactsql.push("SELECT " + i + ", " + safe.quoted_sql(L("lcl_mld_impact" + i)) + "||' - '|| " + safe.quoted_sql(L("lcl_mld_impact" + i + "_info")) + " tt FROM DUAL");
|
||
}
|
||
FCLTselector("impact",
|
||
impactsql.join(" UNION ") + " ORDER BY 1",
|
||
{ initKey: mld_melding.mimpact,
|
||
label: L("lcl_mld_matrixlabelprefix")+L("lcl_mld_impact"),
|
||
emptyOption: L("lcl_select_impact"),
|
||
readonly: (mld_key > 0 && !canPrioChange),
|
||
onChange: "onChangeImpactOrUrgentie(0)",
|
||
trclass: "tr_priomatrix"
|
||
});
|
||
}
|
||
FCLTselector("prio",
|
||
sqlprio,
|
||
{ initKey: mld_melding.mprio,
|
||
label: L("lcl_mld_urg"),
|
||
readonly: (mld_key > 0 && !canPrioChange),
|
||
onChange: "onChangePrioriteit()",
|
||
trclass: "tr_prio"
|
||
});
|
||
} %>
|
||
<script type="text/javascript">
|
||
var hide_prio = <%=hide_prio? 1 : 0%> == 1;
|
||
</script>
|
||
|
||
<%
|
||
if (lNieuweMelding && mld_defaultstdmelding_key == -1 && !lAllThirdparty)
|
||
{
|
||
RWFIELDTR("naam_ext", "fld", L("lcl_mld_naam_ext"), mld_melding.naam_ext, {maxlength: 60});
|
||
RWFIELDTR("email_ext", "fld", L("lcl_mld_email_ext"), mld_melding.email_ext, {maxlength: 100});
|
||
RWFIELDTR("tel_ext", "fld", L("lcl_mld_tel_ext"), mld_melding.tel_ext, {maxlength: 20});
|
||
%>
|
||
<script type="text/javascript">
|
||
$(function()
|
||
{
|
||
$("#naam_ext, #email_ext, #tel_ext").closest("tr").hide();
|
||
FcltMgr.resized();
|
||
});
|
||
</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()%>">
|
||
<% }
|
||
var actiondate_is_today = (mld_melding.actiedatum? mld_melding.actiedatum.midnight().getTime() == new Date().midnight().getTime() : false);
|
||
FCLTcalendar( "actiondate",
|
||
{ label : L("lcl_mld_actiondate"),
|
||
datum : mld_melding.actiedatum,
|
||
minDate : (frontend ? mld_melding.actiedatum : null),
|
||
timeField : !frontend || (frontend && stdm_info.planbaar == 0 && stdm_info.planbaarfe == 0), // 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 : "onChangeActiondate();",
|
||
readonly : frontend || (mld_key > 0 && !this_mld.canWriteDatums),
|
||
trclass : "tractiondate" + (actiondate_is_today? " today" : ""),
|
||
trhidden : !stdm_info.show_actiedatum, // De hele tr moet hidden en niet alleen het inputveld als in FE mode readonly
|
||
volgnr : 2,
|
||
initEmpty : mld_melding.actiedatum == null,
|
||
initTimeEmpty: mld_melding.actiedatum == null
|
||
});
|
||
|
||
// 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 == 2 || (stdm_info.planbaar == 0 && stdm_info.planbaarfe == 0 && 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 == 0 && stdm_info.planbaarfe == 0), // 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 : 3,
|
||
addClass : (mld_melding.rsv_ruimte_key > 0? "mldres" : null) // Als de melding onder een reservering valt dan addClass toevoegen.
|
||
});
|
||
BLOCK_END();
|
||
} // \mldMelding
|
||
else if (id == "mldAlg")
|
||
{
|
||
if (mld_melding.show_alg)
|
||
{
|
||
BLOCK_START(id, L("lcl_plaatsgegevens"), {icon: "fa-map-marker"});
|
||
if (personEditable && !(mld_key > 0 && !this_mld.canPlaatsChange)) // Show checkbox when editable and not readonly
|
||
{
|
||
// Check if there are any users with other rights then -1 or 9 for the selected srtdisc
|
||
// HSLE#74760 fac_v_webgebruiker is zuiverder maar fac_groeprechten is veel sneller
|
||
sql = "SELECT fac_gebruiker_alg_level_read"
|
||
+ " FROM fac_groeprechten w, fac_functie f, ins_tab_discipline otd"
|
||
+ " WHERE fac_functie_code = 'WEB_MLDUSE'"
|
||
+ " AND w.fac_functie_key = f.fac_functie_key"
|
||
+ " AND fac_gebruiker_alg_level_read > -1" // Alleen als scope beperking
|
||
+ " AND ins_srtdiscipline_key = " + mld_melding.srtdisc_key
|
||
+ " AND w.ins_discipline_key = otd.ins_discipline_key"
|
||
+ " AND ins_discipline_verwijder IS NULL"
|
||
oRs = Oracle.Execute(sql);
|
||
if (!oRs.EOF)
|
||
RWCHECKBOXTR("issuer_search", "fldissuersearch", L("lcl_mld_issuer_search"), true, {boxfirst: true, twocols: true});
|
||
oRs.Close();
|
||
}
|
||
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(true);",
|
||
onGebCascade: "getObjectInfo(true);",
|
||
onVerCascade: "getObjectInfo(true);",
|
||
onRuiCascade: "getObjectInfo(true);",
|
||
moreinfo: (this_mld.canBOwrite || this_mld.canFOwrite) && !frontend,
|
||
readonly: (mld_key > 0 && !this_mld.canPlaatsChange),
|
||
filtercode: mld_melding.alg_level <= 2 ? null : "FACMLD", /*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,
|
||
cadDwgX: mld_melding.dwgx,
|
||
cadDwgY: mld_melding.dwgy,
|
||
cadShowdiscfn: true,
|
||
cadShowgrpfn: true,
|
||
cadShowsrtfn: true,
|
||
cadShowthemafn: true,
|
||
cadCallbackInsfn: "cadCallbackInsfn",
|
||
requiredlevel: 2,
|
||
urlAdd: [{ urlParam: "stdm_key", field: "stdm" },
|
||
{ urlParam: "person_key", field: "person" },
|
||
{ urlParam: "personfor_key", field: "personFor" },
|
||
{ urlParam: "issuer_search", field: "issuer_search" }]
|
||
}); // Minstens locatie
|
||
|
||
if (mld_melding.show_bes && mld.nextBlock() == "mldBes")
|
||
{
|
||
injectAdresselector();
|
||
blockPrinted["mldBes"] = true; // Zorgt ervoor dat het mldBes block overgeslagen wordt
|
||
}
|
||
BLOCK_END();
|
||
}
|
||
} // \mldAlg
|
||
else if (id == "mldBes")
|
||
{
|
||
if (mld_melding.show_bes)
|
||
{
|
||
BLOCK_START(id, L("lcl_aflevergegevens"), {icon: "fa-address-card"});
|
||
injectAdresselector();
|
||
BLOCK_END();
|
||
}
|
||
} // \mldBes
|
||
else if (id == "mldInfo")
|
||
{
|
||
// Inzicht is inmiddels dat dit geen relevante info is indien nieuwe melding.
|
||
// Echter het externnr moet wel ingevuld kunnen worden als mld_meldbron_key=5.
|
||
var sql = "SELECT SUM(CASE WHEN BITAND(mld_meldbron_kiesbaar, 1) = 1 THEN 1 ELSE 0 END) kiesbaar"
|
||
+ " , SUM(CASE WHEN BITAND(mld_meldbron_kiesbaar, 2) = 2 THEN 1 ELSE 0 END) externnr"
|
||
+ " FROM mld_meldbron"
|
||
+ " WHERE mld_meldbron_verwijder IS NULL"
|
||
+ " AND ( BITAND(mld_meldbron_kiesbaar, 1) = 1"
|
||
+ " OR mld_meldbron_key = " + S("mld_meldbron_key")
|
||
+ " )";
|
||
var oRs = Oracle.Execute(sql);
|
||
var aantalKiesbaar = oRs("kiesbaar").Value;
|
||
var aantalExternnr = oRs("externnr").Value;
|
||
oRs.Close();
|
||
var hasKiesbareMeldbron = lNieuweMelding && fronto && aantalKiesbaar > 0;
|
||
var isNieuwExtern = (lNieuweMelding && (((mld_melding.meldbron_kiesbaar & 2) == 2) || aantalExternnr > 0) && (urole == "bo" || urole == "fo") );
|
||
var hasMldFlags = ((urole == "bo" || urole == "fo") && S("mld_melding_flags") > 0);
|
||
if (lBestaandeMelding || hasMldFlags || hasKiesbareMeldbron || isNieuwExtern)
|
||
{
|
||
BLOCK_START(id, L("lcl_mld_behandeling"), {icon: "fa-clock"});
|
||
if (hasKiesbareMeldbron)
|
||
{
|
||
var sqlbron = "SELECT mld_meldbron_key"
|
||
+ " , " + lcl.xsqla('mld_meldbron_omschrijving', 'mld_meldbron_key')
|
||
+ " , CASE WHEN BITAND(mld_meldbron_kiesbaar, 2) = 2"
|
||
+ " THEN 1 ELSE 0"
|
||
+ " END isextern"
|
||
+ " FROM mld_meldbron"
|
||
+ " WHERE mld_meldbron_verwijder IS NULL"
|
||
+ " AND BITAND(mld_meldbron_kiesbaar, 1) = 1"
|
||
+ " ORDER BY mld_meldbron_omschrijving";
|
||
FCLTselector("meldbron",
|
||
sqlbron,
|
||
{ initKey: mld_melding.meldbron_key,
|
||
label: L("mld_meldbron"),
|
||
extraParamValue: "isextern",
|
||
onChange: "onChangeMeldbron()"
|
||
});
|
||
}
|
||
|
||
if (isNieuwExtern)
|
||
{
|
||
RWFIELDTR("externnr", "fld", L("lcl_mld_externr"), mld_melding.externnr, {maxlength: 30});
|
||
}
|
||
|
||
if (lBestaandeMelding)
|
||
{
|
||
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_mld_status"), mld_melding.mld_status_str);
|
||
ROFIELDTR("flddatetime", L("lcl_mld_closedate"), toDateTimeString(mld_melding.afmelddatum, false, false, true), { suppressEmpty: true});
|
||
|
||
var urlAdd = [{ urlParam: "prs_key", field: "person", init: mld_melding.melder_key },
|
||
{ urlParam: "disc_key", field: "disc", init: mld_melding.disc_key }];
|
||
if (mld_melding.show_alg)
|
||
urlAdd.push({ urlParam: "loc_key", field: "locatiekey", init: mld_melding.loc_key });
|
||
if (mld_melding.primaire_behandelaar != 0)
|
||
{
|
||
FCLTpersoonselector("sBehandel",
|
||
"sgBehandelaar",
|
||
{ perslidKey: mld_melding.behandel_key,
|
||
label: L("lcl_mld_behandelaar"),
|
||
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
|
||
urlAdd: urlAdd,
|
||
suppressEmpty: true,
|
||
readonly: !this_mld.canAfhandChange,
|
||
required: (mld_melding.primaire_behandelaar == 2),
|
||
filtercode: (mld_melding.mld_status == 0 ? "BEHF" : "BEHB")
|
||
});
|
||
}
|
||
if (this_mld.canChange && mld_melding.canbepublished)
|
||
RWCHECKBOXTR("publiek", "fldafr", L("lcl_mld_publiek"), mld_melding.publiek);
|
||
|
||
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});
|
||
|
||
if (this_mld.canChange && ((mld_melding.meldbron_kiesbaar & 2) == 2))
|
||
RWFIELDTR("externnr", "fld", L("lcl_mld_externr"), mld_melding.externnr, {maxlength: 30});
|
||
else
|
||
ROFIELDTR("fld", L("lcl_mld_externr"), mld_melding.externnr, {suppressEmpty: true});
|
||
|
||
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", "fld", 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, { "html": "onChange='onChangeAfgerond(this)'" });
|
||
|
||
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 sqla = [];
|
||
for (var i = 0; i < S("mld_melding_flags"); i++)
|
||
{
|
||
sqla.push("SELECT " + i + ", " + safe.quoted_sql(L("lcl_mld_flag" + i)) + " FROM DUAL");
|
||
}
|
||
FCLTselector("mldflag",
|
||
sqla.join(" UNION ALL "),
|
||
{ initKey: mld_melding.flag,
|
||
label: L("lcl_mld_flags"),
|
||
flag: mld_melding.flag,
|
||
readonly: lBestaandeMelding && !this_mld.canChange
|
||
});
|
||
}
|
||
BLOCK_END();
|
||
}
|
||
} // \mldInfo
|
||
else if (id == "mldProcessing")
|
||
{
|
||
if (canUseTeams)
|
||
{
|
||
var hideSelectors = !this_mld.canBOwrite;
|
||
var initHideProcessingBlock = lNieuweMelding || hideSelectors || !(mld_melding.srtgroep & 4); // Voor cost is deze waarde altijd true (lNieuweMelding is true).
|
||
BLOCK_START(id, L("lcl_mld_processing_details"), {icon: "fa-wrench", hidden: initHideProcessingBlock});
|
||
var urlAdd = [{ urlParam: "disc", field: "disc", init: mld_melding.disc_key }];
|
||
FCLTdisciplineselector( "mld_ins_discipline",
|
||
"sgDisc",
|
||
{ idadd: 2,
|
||
label: L("mld_processing_group"),
|
||
disc_key: mld_melding.mld_ins_discipline_key,
|
||
module: "MLDB",
|
||
perslidKey: (lBestaandeMelding? mld_melding.melder_key : user_key),
|
||
autfunctionKey: -1, // Alles is toegestaan! authparams.autfunctionkey,
|
||
srtdisc_key: S("mld_processing_group_all") ? null : mld_melding.srtdisc_key,
|
||
onChange: "onChangeBehandelteam",
|
||
hidden: hideSelectors,
|
||
urlAdd: urlAdd,
|
||
noJustOne: true,
|
||
required: false,
|
||
moreinfo: !(mld_key > 0 && !this_mld.canAfhandChange) &&
|
||
(user.checkAutorisation("WEB_FAQUSE", true) || user.checkAutorisation("WEB_FAQFOF", true)) && // !readonly && rechten
|
||
!frontend
|
||
});
|
||
|
||
var urlAdd = [{ urlParam: "prs_key", field: "person", init: mld_melding.melder_key },
|
||
{ urlParam: "disc_key", field: "mld_ins_discipline", init: mld_melding.mld_ins_discipline_key }];
|
||
if (mld_melding.show_alg)
|
||
urlAdd.push({urlParam: "loc_key", field: "locatiekey", init: mld_melding.loc_key});
|
||
|
||
FCLTpersoonselector("sBehandel2",
|
||
"sgBehandelaar",
|
||
{ perslidKey: mld_melding.behandel2_key,
|
||
idadd: 2,
|
||
label: L("lcl_mld_processor"),
|
||
//autlevel: niet van toepassing op BH2F en BH2B
|
||
urlAdd: urlAdd,
|
||
hidden: hideSelectors,
|
||
filtercode: (mld_melding.mld_status == 0? "BH2F" : "BH2B")
|
||
});
|
||
|
||
BLOCK_END();
|
||
}
|
||
} // \mldProcessing
|
||
else if (id == "mldFaq")
|
||
{
|
||
BLOCK_START(id, L("lcl_faq_kennisbank"), { hidden: true, icon:"fa-book" });
|
||
// Hier komen vaste aanwijzingen
|
||
BLOCK_END();
|
||
} // \mldFaq
|
||
else if (id == "mldIns")
|
||
{
|
||
var show_obj_fld = false;
|
||
// Als het objecten veld zichtbaar moet zijn, dan moet in ieder geval gelden:
|
||
// 1) Bij het vakgroeptype moet "Objectgegevens" op "Ja" staan,
|
||
// 2) Bij de melding (stdmelding) moet in het blok "Objectgegevens",
|
||
// a) De setting "Plaatsobjecten" niet op "Geen plaatsgebonden objecten" staan of
|
||
// b) De setting "Organisatieobjecten" niet op "Geen Afdeling of Persoon" staan.
|
||
if (mld_melding.show_ins && (stdm_info.alg_onrgoed_obj_niveau != "" || stdm_info.prsafdobj > 0))
|
||
{ // Is er een object meegegeven of zijn er objecten te tonen?
|
||
var thereAreObjects = ins_key > 0;
|
||
var thereAreMultipleObjects = false;
|
||
var org_mld_key = (copy_or_cont && !multi ? mld_copy_key : mld_key);
|
||
if (!thereAreObjects && org_mld_key > 0)
|
||
{
|
||
sql = "SELECT m.ins_deel_key"
|
||
+ " FROM mld_melding_object m"
|
||
+ " WHERE m.mld_melding_key = " + org_mld_key
|
||
+ " ORDER BY m.ins_deel_key";
|
||
oRs = Oracle.Execute(sql);
|
||
thereAreObjects = !oRs.Eof;
|
||
if (thereAreObjects)
|
||
{
|
||
oRs.moveNext();
|
||
thereAreMultipleObjects = !oRs.Eof;
|
||
}
|
||
oRs.close();
|
||
}
|
||
|
||
// Als de objecten knop aanwezig is of er zijn geselecteerde objecten te tonen dan objectenblok tonen.
|
||
var objparams = { module: "M",
|
||
mld_key: mld_key,
|
||
ins_key: ins_key,
|
||
canPlaatsChange: copy_or_cont && !multi? this_mld_copy.canPlaatsChange : this_mld.canPlaatsChange,
|
||
canClose: copy_or_cont && !multi? this_mld_copy.canClose : this_mld.canClose,
|
||
hasMultiObj: thereAreMultipleObjects,
|
||
init_obj_key: (mld_melding.room_obj_arr && mld_melding.room_obj_arr.length == 1? mld_melding.room_obj_arr[0].ins_key : -1),
|
||
srtinst_verplichtstatus: mld_melding.srtinst_verplichtstatus,
|
||
aantalobj: 0,
|
||
thereAreObjects: thereAreObjects,
|
||
disableobjects: true,
|
||
onclickobj: "mld_melding_object()" };
|
||
|
||
var status_ojb_verplicht = -1;
|
||
if (mld_key > 0)
|
||
{
|
||
// Als een object verplicht is bij afmelden en niet is ingevuld, dan moet ik een object kunnen invullen als ik ook afmeld rechten heb.
|
||
sql = "SELECT sm.ins_srtinst_verplichtstatus"
|
||
+ " FROM mld_melding m"
|
||
+ " , mld_stdmelding sm"
|
||
+ " WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key"
|
||
+ " AND m.mld_melding_key = " + mld_key;
|
||
oRs = Oracle.Execute(sql);
|
||
status_ojb_verplicht = oRs("ins_srtinst_verplichtstatus").Value;
|
||
oRs.Close();
|
||
}
|
||
|
||
show_obj_fld = (ins_key < 0 && (mld_key <= 0 || this_mld.canPlaatsChange)) || (thereAreObjects && (lNieuweMelding || this_mld.canChange)) || (this_mld.canClose && status_ojb_verplicht == 5);
|
||
} // if (mld_melding.show_ins)
|
||
|
||
var show_any_ref = (mld_melding.rsv_ruimte_key && mld_melding.res_key) // Reservering referentie
|
||
|| mld_melding.cnt_key > 0 // Contract Referentie
|
||
|| (stdm_info.kanverwijzen == 0 && mld_melding.kto_type) // Overige referentie
|
||
|| stdm_info.kanverwijzen; // Referentie edit-veld
|
||
var show_groepering = stdm_info.ins_srtdiscipline_mldgroup & 2;
|
||
var show_rel_block = (lNieuweMelding || this_mld.canChange) && ((mld_key > -1 && show_obj_fld) || show_any_ref || show_groepering);
|
||
%>
|
||
<script type="text/javascript">
|
||
var show_any_ref = (<%=show_any_ref? 1 : 0%> == 1);
|
||
var show_groepering = (<%=show_groepering? 1 : 0%> == 1);
|
||
</script>
|
||
<%
|
||
BLOCK_START(id, L("lcl_gerelateerdeobjecten"), { icon: "fa-hand-point-right", hidden: !show_rel_block });
|
||
if (show_obj_fld)
|
||
mld.generate_relobject_editblock(copy_or_cont && !multi? mld_copy_key : mld_key, objparams);
|
||
|
||
if (mld_melding.rsv_ruimte_key && mld_melding.res_key)
|
||
mld.referentielink("R", mld_melding.rsv_ruimte_key, L("lcl_mld_with_res"));
|
||
|
||
if (mld_melding.cnt_key > 0)
|
||
mld.referentielink("C", mld_melding.cnt_key, L("lcl_mld_with_cnt"));
|
||
|
||
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"));
|
||
|
||
FCLTreferentieselector( "ref_key",
|
||
"sgRef",
|
||
{ label: L("lcl_reference"),
|
||
referenceKey: stdm_info.kanverwijzen? (mld_melding.kto_key || ref_key) : -1,
|
||
referenceType: (mld_melding.kto_type || ref_type), // De waarde komt standaard in het extraParamField field ref_type.
|
||
excludemldkey: mld_key > 0? mld_key: null,
|
||
hidden: !stdm_info.kanverwijzen,
|
||
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_key },
|
||
{ urlParam: "filtercode", field: "filtercode", init: ((stdm_info.kanverwijzen==128)?"M" :"O") }]
|
||
});
|
||
|
||
// Naar een groeperende nieuwere melding
|
||
if (stdm_info.ins_srtdiscipline_mldgroup & 2)
|
||
{
|
||
FCLTreferentieselector( "mldgroup_key",
|
||
"sgmldgroup",
|
||
{ label: (mld_melding.mldgroup_key || -1) > -1 ? mld.mld_prefix(mld_melding.mldgroup_key, "ins_srtdiscipline_omschrijving") : L("lcl_mldgroup_key"),
|
||
referenceKey: mld_melding.mldgroup_key || -1,
|
||
omitRefType: true, // Het veld "Kto_type" weglaten.
|
||
referenceType: "M", // Deze parameter is nog nodig om de juiste huidige referentie op te halen.
|
||
excludemldkey: mld_key > 0? mld_key: null,
|
||
filtercode: "MGO"
|
||
});
|
||
}
|
||
BLOCK_END();
|
||
} // \mldIns
|
||
else if (id == "mldOmschrijving")
|
||
{
|
||
// Geen omschrijving indien mld_stdmelding_freetext == 0 en mld_stdmelding_subject == 0
|
||
BLOCK_START(id, L("lcl_txt"), { wide: true, icon: "fa-comment-lines", hidden: (mld_melding.freetext == 0 && mld_melding.subject == 0) });
|
||
|
||
var oms_readonly = !(this_mld.canOmsChange || mld_key < 0) || txtreado;
|
||
if (S("mld_omschrijving_restrict_edit") == 1)
|
||
oms_readonly = oms_readonly || !((S("mld_rejected_is_open") == 1 && mld_melding.mld_status == 1) || mld_melding.mld_status == 2 || mld_melding.mld_status == -1);
|
||
|
||
// Short subject
|
||
if (mld_melding.subject != 0 /* Onzichtbaar */ && !(mld_melding.subject == 3 && mld_key < 0) /* AI will generate */ && !(oms_readonly && !mld_melding.mld_onderwerp))
|
||
{
|
||
RWFIELDTR("melding_onderwerp",
|
||
"fld" + ((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: 200, readonly: oms_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'", readonly: oms_readonly, bb_codes: true, maxlength: S("mld_melding_oms_maxlen") });
|
||
}
|
||
BLOCK_END();
|
||
} // \mldOmschrijving
|
||
else if (id == "mldFlex")
|
||
{
|
||
var prsautlevel = (this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel);
|
||
// Als ik geen PRS-schrijfrechten op de melding heb, maar ik ben wel blokbehandelaar, dan mag ik gewoon iedereen uit mijn team kiezen. Niet optimaal, maar goed genoeg voor nu
|
||
if ((!prsautlevel || prsautlevel == 9) && this_mld.canChangeKenmerkBlok) {
|
||
prsautlevel = -1;
|
||
}
|
||
|
||
var flexParams = {stdm_arr: mld_melding.stdm_key > 0? [mld_melding.stdm_key] : [],
|
||
mld_key: mld_copy_key > 0? mld_copy_key : mld_key,
|
||
copy: mld_copy_key > 0,
|
||
prs_key: perslidkey,
|
||
act_key: mld_melding.act_key,
|
||
reado: (mld_key > 0 && !(this_mld.canFlexChange || this_mld.canChangeKenmerkBlok)), // Bij alleen canChangeKenmerkBlok rechten dan ook check in isReadonly.
|
||
canFlexChange: this_mld.canFlexChange,
|
||
showConfidential: mld_copy_key > 0? this_mld_copy.canViewConfidential : this_mld.canViewConfidential,
|
||
melder_key: mld_melding.melder_key,
|
||
srtdisc: S("mld_processing_group_all")? [] : [mld_melding.srtdisc_key],
|
||
disc: mld_melding.disc_key, // Initiele waarde primaire Vakgroep/Behandelteam.
|
||
prsautlevel: prsautlevel,
|
||
show_alg: mld_melding.show_alg,
|
||
loc_key: mld_melding.loc_key,
|
||
this_mld: this_mld
|
||
};
|
||
generateFlexKenmerkBlock (flexParams);
|
||
} // \mldFlex
|
||
else if (id == "mldAfhandel")
|
||
{
|
||
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 afh_rw = this_mld.canAfhandChange && S("mld_afhandeling_restrict_edit") == 0;
|
||
if (S("mld_afrond_canremark") == true)
|
||
afh_rw = true;
|
||
var buttons = [];
|
||
if (authFaq && afh_rw && 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: "fa-books", title: L("lcl_faq_kennisbank"), action: openKB });
|
||
}
|
||
|
||
BLOCK_START(id, L("lcl_behandelgegevens"), { buttons: buttons, icon: "fa-check" });
|
||
RWTEXTAREATR( "remark",
|
||
"fldtxt",
|
||
L("lcl_mld_inf_Opmerking"),
|
||
mld_melding.remark,
|
||
{ html: "rows='3' cols='40'", readonly: !afh_rw });
|
||
BLOCK_END();
|
||
}
|
||
}
|
||
} // \mldAfhandel
|
||
else
|
||
return false;
|
||
return true;
|
||
} // \writeBlock
|
||
|
||
mld.writeBlocks();
|
||
IFACE.FORM_END();
|
||
%>
|
||
</form>
|
||
<% SUBFRAME_END(); %>
|
||
</body>
|
||
</html>
|
||
<% ASPPAGE_END(); %>
|