Files
Facilitor/APPL/PDA/melding.asp
2024-05-30 13:29:22 +00:00

2721 lines
127 KiB
Plaintext
Raw Blame History

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: mld_edit_melding.asp
Description: Bekijk/wijzig melding (Mobile version)
Parameters: mld_key voor bestaande melding
mld_key=-1 voor nieuwe melding, en dan
stdm_key
ins_key
ruimte_key
-
rest optioneel
Note:
Je kunt en moet een kostenplaats invullen:
- als bij vakgroeptype Defaultwaarde kosten klant "Standaard Aan" is
- als bij Vakgroep Kostenplaats verplicht aangevinkt is
*/
var mld_key = getQParamInt("mld_key",-1);
var verynew = (getQParamInt("verynew",-1) == 1);
var autobutton = getQParamSafe("autobutton", "");
var LOCKED_USER_OK = { "xmlnode": "melding", "key": mld_key };
var multi = 0, maybeDouble = 0, autoConfirm = 0;
var zoom = getQParamFloat("zoom", 2);
var isvervolg = getQParamInt("mld_continue", 0) == 1;
var mld_start_key = getQParamInt("start_key", -1);
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/adresselector.inc" -->
<!-- #include file="../Shared/afdelingselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/stdmeldingselector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/get_objecten_sql.inc" -->
<!-- #include file="../Shared/status.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="../mld/mld_flexkenmerk.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<%
FCLTHeader.Requires({ js: [ rooturl+"/appl/Localscripts/jquery.timepicker-table.js"
, rooturl+"/appl/mld/mld_edit_melding.js"
] });
FCLTHeader.Requires({ plugins: ["suggest"] });
var quicknoteSetting = S("pda_melding_quick_note");
var action = getQParam("action", "");
var qrc = getQParamInt("qrc", 0) != 0;
var meldbron_key = getQParamInt("meldbronkey", 7); // 7 = mobile
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1);
var urole = getQParamSafe("urole", "");
var caddwgx = getQParamFloat("caddwgx", null); // x co<63>rdinaat van een specifieke plek in de ruimte die gehighlight moet worden.
var caddwgy = getQParamFloat("caddwgy", null); // y co<63>rdinaat van een specifieke plek in de ruimte die gehighlight moet worden.
var opdr_opm = getFParam("opdr_opm", "");
var mld_info = {};
var plaats_key = -1;
var plaats_niveau = "";
var ins_keys_arr = [];
var ins_name_arr = [];
var addSubheader = false;
var addObjectDesc = false;
var lastopdr = (getQParamInt("lastopdr", 0) == 1);
var transitParam = buildTransitParam(["mld_key", "verynew", "lastopdr", "stdmgroepkey", "srtdisc", "disc", "zoom", "start_key"]);
var controleModeArray = [-1, -1, -1]; // De drie controlemoden zijn niet aanwezig (-1);
var remark = "";
urole = autoUrole(urole, { bo: "WEB_MLDBOF", fo: "WEB_MLDFOF", fe: "WEB_MLDUSE" });
var autfunction = (urole=="fe" ? "WEB_MLDUSE" : (urole=="fo" ? "WEB_MLDFOF" : "WEB_MLDBOF"));
var fronto = (urole=="fo");
var frontend = (urole=="fe");
var backo = (urole=="bo");
var tobeclosed = 0;
var ingesloten = [];
var canCloseOpdr = [];
var mldRequireCnt = 0; // Aantal meldingen waarvan minstens <20><>n verplicht kenmerk en/of object niet is ingevuld.
var reqStatusEmptyMelding = [];
var reqStatusEmptyMeldingkey = -1;
var reqStatusEmptyMeldingnr = "";
var futureOpdr = false;
var start_key = -1;
var closeCheckDone = false;
var element_description = ( S("ins_element_description") == ""
? "d.ins_deel_omschrijving || ' (' || " + lcl.xsql("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key") + " || ')' "
: S("ins_element_description")
);
function getAlgKeys(alg_keys)
{
var all_keys = {};
if (alg_keys.roo_key > 0)
{ // Bepaald bovenliggende waarden
var sql = "SELECT alg_locatie_key"
+ " , alg_gebouw_key"
+ " , alg_verdieping_key"
+ " FROM alg_v_allonroerendgoed aog"
+ " WHERE aog.alg_onroerendgoed_keys = " + alg_keys.roo_key
+ " AND aog.alg_type = 'R'";
var oRs = Oracle.Execute(sql);
all_keys.loc_key = oRs("alg_locatie_key").Value;
all_keys.bld_key = oRs("alg_gebouw_key").Value;
all_keys.flr_key = oRs("alg_verdieping_key").Value;
all_keys.roo_key = alg_keys.roo_key;
oRs.Close();
}
else if (alg_keys.flr_key > 0)
{ // Bepaald bovenliggende waarden
var sql = "SELECT alg_locatie_key"
+ " , alg_gebouw_key"
+ " FROM alg_v_allonroerendgoed aog"
+ " WHERE aog.alg_onroerendgoed_keys = " + alg_keys.flr_key
+ " AND aog.alg_type = 'V'";
var oRs = Oracle.Execute(sql);
all_keys.loc_key = oRs("alg_locatie_key").Value;
all_keys.bld_key = oRs("alg_gebouw_key").Value;
all_keys.flr_key = alg_keys.flr_key;
all_keys.roo_key = -1;
oRs.Close();
}
else if (alg_keys.bld_key > 0)
{ // Bepaald bovenliggende waarden
var sql = "SELECT alg_locatie_key"
+ " FROM alg_v_allonroerendgoed aog"
+ " WHERE aog.alg_onroerendgoed_keys = " + alg_keys.bld_key
+ " AND aog.alg_type IN ('G','T')";
var oRs = Oracle.Execute(sql);
all_keys.loc_key = oRs("alg_locatie_key").Value;
all_keys.bld_key = alg_keys.bld_key;
all_keys.flr_key = -1;
all_keys.roo_key = -1;
oRs.Close();
}
else if (alg_keys.loc_key > 0)
{
all_keys.loc_key = alg_keys.loc_key;
all_keys.bld_key = -1;
all_keys.flr_key = -1;
all_keys.roo_key = -1;
}
else
{
all_keys.loc_key = -1;
all_keys.bld_key = -1;
all_keys.flr_key = -1;
all_keys.roo_key = -1;
}
return all_keys;
}
function check_alg_level(alg_keys, stdm)
{
var url = "";
if (!stdm.ins_srtdiscipline_alg || // We horen hier niet
stdm.alg_onrgoed_niveau == "L" && alg_keys.loc_key > -1 || // We zijn al compleet, laad de rest vd pagina
stdm.alg_onrgoed_niveau == "G" && alg_keys.bld_key > -1 ||
stdm.alg_onrgoed_niveau == "V" && alg_keys.flr_key > -1 ||
stdm.alg_onrgoed_niveau == "R" && alg_keys.roo_key > -1 ||
stdm.alg_onrgoed_niveau == "H" || !stdm.alg_onrgoed_niveau) // Een plaats is niet nodig.
{
// geen actie
}
else
{ // Zoek eerst de plaats op t/m het verplichte niveau
var url = "melding_new.asp?stdm=" + stdm.mld_stdmelding_key;
if (alg_keys.loc_key > -1) {
url += "&loc_key=" + alg_keys.loc_key;
}
if (alg_keys.bld_key > -1) {
url += "&bld_key=" + alg_keys.bld_key;
}
if (alg_keys.fl_key > -1) {
url += "&flr_key=" + alg_keys.flr_key;
}
if (alg_keys.ruimte_key > -1) {
url += "&roo_key=" + alg_keys.roo_key;
}
}
return url;
}
// Mogelijke parameters voor toevoegen only
if (mld_key == -1)
{
// Verplicht:
var stdm_key = getQParamInt("stdm_key", -1);
if (stdm_key == -1) {
Server.Transfer("melding_new.asp"); // Ga maar eerst stdmelding kiezen
}
var stdm_info = mld.mld_stdmeldinginfo(stdm_key);
// Optioneel:
var ins_key = getQParamInt("ins_key", -1) // test 5009 Het kan zijn dat ik vanuit de lijst deze meekrijg om een nieuwe aan te maken
var ruimte_key = getQParamInt("ruimte_key", getQParamInt("roo_key", -1)) // Het kan zijn dat ik vanuit de lijst deze meekrijg om een nieuwe aan te maken
addSubheader = (ruimte_key > -1);
addObjectDesc = (ins_key > -1);
if (ruimte_key == -1 && ins_key > -1)
{
// Als ik een object heb kan ik zelf de plaats precies bepalen (ruimte; TODO of terrein)
var sql = "SELECT alg_ruimte_key"
+ " , alg_ruimte_nr"
+ " , d.alg_verdieping_key"
+ " , d.alg_verdieping_code"
+ " , v.alg_verdieping_code verdieping_code"
+ " , d.alg_gebouw_key"
+ " , alg_terreinsector_key" // doen we nog niets mee
+ " , alg_locatie_key"
+ " , " + element_description + " deel"
+ " , " + lcl.xsqla("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key")
+ " FROM ins_v_deel_gegevens d"
+ " , ins_srtdeel s"
+ " , ins_srtgroep g"
+ " , ins_tab_discipline dis"
+ " , alg_verdieping v"
+ " WHERE d.ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
+ " AND g.ins_discipline_key = dis.ins_discipline_key"
+ " AND d.alg_verdieping_key = v.alg_verdieping_key(+)"
+ " AND d.ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var alg_params = { loc_key: oRs("alg_locatie_key").Value
, bld_key: oRs("alg_gebouw_key").Value
, flr_key: (oRs("verdieping_code").Value == null || oRs("verdieping_code").Value.substring(0, 1) == "_" ? -1 : oRs("alg_verdieping_key").Value)
, roo_key: (oRs("alg_ruimte_nr").Value == null || oRs("alg_ruimte_nr").Value.substring(0, 1) == "_" ? -1 : oRs("alg_ruimte_key").Value)
};
var ins_name = oRs("deel").Value;
oRs.Close();
}
else
{
// Deze zijn niet waarschijnlijk meegegeven, maar de defaultwaarde is ook al handig
var alg_params = { loc_key: getQParamInt("locatie_key", getQParamInt("loc_key", -1))
, bld_key: getQParamInt("gebouw_key", getQParamInt("bld_key", -1))
, flr_key: getQParamInt("verdieping_key", getQParamInt("flr_key", -1))
, roo_key: getQParamInt("ruimte_key", getQParamInt("roo_key", -1))
};
alg_params = getAlgKeys(alg_params);
var redirect_url = check_alg_level(alg_params, stdm_info);
if (redirect_url)
{
ASPPAGE_END();
Response.Redirect(redirect_url);
}
}
}
if (mld_key > -1)
{
//Bepaal of melding ook echt afgemeld mag worden
var this_mld = mld.func_enabled_melding(mld_key);
var mld_info = mld.mld_melding_info(mld_key);
if (this_mld.canClose) // Als je mag accepteren mag je ook rejecten <- Dit is dus niet zo (08-2021)
{
// Zijn er nog kenmerken die nu wel verplicht zijn of een object?
var afwezig = mld.hasRequiredStatusEmptyMelding(mld_key, 5); // Melding status "Afgemeld(5)"
if (afwezig.kenm_ontbreekt.length || afwezig.obj_ontbreekt)
{
mldRequireCnt++;
var mldnr = mld.mld_prefix(mld_key) + mld_key;
if (afwezig.kenm_ontbreekt.length)
reqStatusEmptyMelding.push(L("lcl_mld_req_status_empty").format(afwezig.kenm_ontbreekt.join(", "), mldnr) );
if (afwezig.obj_ontbreekt)
reqStatusEmptyMelding.push(L("lcl_mld_req_obj").format(mldnr) );
reqStatusEmptyMeldingkey = mld_key;
reqStatusEmptyMeldingnr = mldnr;
}
// Zijn er nog lopende opdrachten?
var canCloseOpdrOfMld = [];
var sql = "SELECT o.mld_opdr_key"
+ " FROM mld_opdr o"
+ " WHERE o.mld_melding_key IN (" + mld_key + ")"
+ " AND o.mld_statusopdr_key NOT IN (1, 6, 7, 9)";
var oRsOM = Oracle.Execute(sql);
var noOpdrCloseAtAll = false;
futureOpdr = false;
closeCheckDone = true;
while (!oRsOM.eof)
{ // Voor elke opdracht van een melding controleren of deze afgemeld mag worden
var this_opdr = mld.func_enabled_opdracht(oRsOM("mld_opdr_key").Value);
var mld_opdr = this_opdr.mld_opdr;
sql = "SELECT mld_opdr_einddatum"
+ " FROM mld_opdr o"
+ " WHERE o.mld_opdr_key = " + oRsOM("mld_opdr_key").Value;
var oRs = Oracle.Execute(sql);
var mld_opdr_einddatum = oRs("mld_opdr_einddatum").Value != null? new Date(oRs("mld_opdr_einddatum").Value) : null;
var kosten_verplicht_afm = mld_opdr.tonen_totaal && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2));
var opdr_kosten = mld_opdr.t_cost;
// Als Setting S("mld_ord_afmeld_future") niet is gezet (0): Opdrachten waarvan de einddatum in de toekomst ligt mogen niet worden afgemeld.
if (!this_opdr.canClose || (S("mld_ord_afmeld_future") != 1 && (mld_opdr_einddatum && (mld_opdr_einddatum > new Date()))) || (kosten_verplicht_afm && opdr_kosten == 0))
{ // Geen autorisatie om alle opdrachten van een melding af te melden of opdrachten in de toekomst met setting S("mld_ord_afmeld_future") niet gezet-->dan geen enkele van die melding
noOpdrCloseAtAll = true;
if (S("mld_ord_afmeld_future") != 1 && (mld_opdr_einddatum && (mld_opdr_einddatum > new Date())))
futureOpdr = true; // Indien opdrachten in de toekomst en setting S("mld_ord_afmeld_future") niet gezet (0) dan mag je de melding niet afmelden
}
oRs.Close();
canCloseOpdrOfMld.push(oRsOM("mld_opdr_key").Value);
oRsOM.MoveNext();
}
oRsOM.Close();
// Geen autorisatie om alle opdrachten van een melding af te melden of opdrachten in de toekomst met setting S("mld_ord_afmeld_future") niet gezet (0)
// --> dan geen enkele van die melding
if (!noOpdrCloseAtAll)
{
for (var j = 0; j < canCloseOpdrOfMld.length; j++)
{
canCloseOpdr.push(canCloseOpdrOfMld[j]);
}
}
if (!futureOpdr)
{ // Indien opdrachten in de toekomst en setting S("mld_ord_afmeld_future") niet gezet (0) dan mag je de melding niet afmelden
ingesloten.push(mld_key);
tobeclosed++;
}
}
// Als er meerder meldingen zijn waarvan een verplicht kenmerk niet is ingevuld, dan abort en melding.
// Als er 1 melding is waarvan een verplicht kenmerk niet is ingevuld, dan wordt er verderop alleen een melding met twee buttons getoond.
user.anything_todo_or_abort(mldRequireCnt < 2, reqStatusEmptyMelding.join("<br />"));
var canCloseCtr = 0;
for (var i = 0; i < ingesloten.length; i++)
{
if (i == 0) lcl.set_dialect(mld_info.srtdisc_key, "MLD_SRTDISCIPLINE_KEY"); // Neem voor informatie de eerste melding.
var sql = "SELECT dsc.ins_deel_key"
+ " , dsc.ins_srtcontrole_key"
+ " , cdp.ctr_disc_params_controle_type"
+ " , mo.ins_deelsrtcontrole_key"
+ " FROM ins_deelsrtcontrole dsc"
+ " , ins_srtcontrole isc"
+ " , ctr_disc_params cdp"
+ " , mld_melding_object mo"
+ " WHERE dsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
+ " AND isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
+ " AND mo.ins_deelsrtcontrole_key = dsc.ins_deelsrtcontrole_key"
+ " AND mo.mld_melding_key = " + ingesloten[i];
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
// De controle moet aanwezig zijn. Maar een inspectie kan ook verwijderd zijn!
var this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value,
{srtcont_key: oRs("ins_srtcontrole_key").Value,
deelsrtcont_key: oRs("ins_deelsrtcontrole_key").Value,
scen_key: 1
});
if (this_ins.canInspFinishMjb)
{
canCloseCtr++;
controleModeArray[oRs("ctr_disc_params_controle_type").Value - 1] = oRs("ctr_disc_params_controle_type").Value; // Controlemode 2 op de 2de plek van de Array invullen [-1, 2, -1].
}
oRs.MoveNext();
}
oRs.Close();
}
// De -1 waarden in de controlemode Array verwijderen
for (var i = 2; i >= 0; i--)
{
if (controleModeArray[i] == -1) controleModeArray.splice(i, 1);
}
// BESTAANDE MELDING
user.auth_required_or_abort(this_mld.canReadAny);
if(mld_info.remark != null)
remark = mld_info.remark;
var sql = "SELECT l.alg_locatie_code||DECODE(aog.alg_plaatsaanduiding, NULL,'','-'||aog.alg_plaatsaanduiding) plaatscode"
+ ", COALESCE(g.alg_gebouw_adres, l.alg_locatie_adres) ||' '|| l.alg_locatie_plaats adres"
+ ", aog.alg_onroerendgoed_omschrijving plaats "
+ ", aog.alg_ruimte_key"
+ ", m.mld_melding_start_key"
+ ", COALESCE(m.mld_alg_onroerendgoed_keys, m.mld_alg_locatie_key) plaats_key"
+ ", COALESCE(aog.alg_type, CASE WHEN m.mld_alg_locatie_key IS NOT NULL THEN 'L' ELSE NULL END) plaats_niveau"
+ " FROM "
+ " mld_melding m"
+ ", alg_v_allonrgoed_gegevens aog"
+ ", alg_locatie l"
+ ", alg_gebouw g"
+ " WHERE mld_melding_key = " + mld_key
+ " AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)"
+ " AND aog.alg_gebouw_key = g.alg_gebouw_key(+)"
+ " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)";
var oRs = Oracle.Execute(sql);
var plaats_string = oRs("plaatscode").Value ? oRs("plaatscode").Value + " " + (oRs("plaats").Value || "") : "";
var adres_string = oRs("adres").Value ? oRs("adres").Value : "";
var stdm_key = mld_info.stdm_key;
var stdm_info = mld.mld_stdmeldinginfo(stdm_key);
start_key = oRs("mld_melding_start_key").Value
if (oRs("alg_ruimte_key").Value)
ruimte_key = oRs("alg_ruimte_key").Value; // kan ik aan de ruimtebutton meegeven
plaats_key = oRs("plaats_key").Value;
plaats_niveau = oRs("plaats_niveau").Value;
oRs.Close();
// Haal gerelateerde objecten op.
sql = "SELECT d.ins_deel_key"
+ " , " + element_description + " deel"
+ " FROM mld_melding_object mo"
+ " , ins_deel d"
+ " , ins_srtdeel s"
+ " , ins_srtgroep g"
+ " , ins_tab_discipline dis"
+ " WHERE mo.ins_deel_key = d.ins_deel_key"
+ " AND d. ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
+ " AND g.ins_discipline_key = dis.ins_discipline_key"
+ " AND mo.mld_melding_key = " + mld_key;
var oRso = Oracle.Execute(sql);
while (!oRso.eof)
{
ins_keys_arr.push(oRso("ins_deel_key").Value);
ins_name_arr.push(oRso("deel").Value);
oRso.MoveNext();
}
oRso.Close();
}
else
{
// NIEUWE MELDING Stdm_Key is ondertussen gegarandeerd
var melder_obj = user;
// Bepaal de gedetailleerdste plaats die mobiel bekend is of meegegeven.
alg_params.plaats = { key: ruimte_key
, niveau: "R"
}
if (alg_params.plaats.key == -1) {alg_params.plaats.key = alg_params.flr_key; alg_params.plaats.niveau = "V";}
if (alg_params.plaats.key == -1) {alg_params.plaats.key = alg_params.bld_key; alg_params.plaats.niveau = "G";}
if (alg_params.plaats.key == -1) {alg_params.plaats.key = alg_params.loc_key; alg_params.plaats.niveau = "L";}
if (alg_params.plaats.niveau == 'L')
sql = "SELECT l.alg_locatie_code plaatscode"
+ " , l.alg_locatie_adres adres"
+ " , l.alg_locatie_plaats plaats"
+ " FROM alg_locatie l"
+ " WHERE l.alg_locatie_key = " + alg_params.plaats.key;
else
sql = "SELECT l.alg_locatie_code||DECODE(aog.alg_plaatsaanduiding, NULL,'','-'||aog.alg_plaatsaanduiding) plaatscode"
+ ", COALESCE(g.alg_gebouw_adres, l.alg_locatie_adres) ||' '|| l.alg_locatie_plaats adres"
+ ", aog.alg_onroerendgoed_omschrijving plaats "
+ " FROM alg_v_allonrgoed_gegevens aog"
+ ", alg_locatie l"
+ ", alg_gebouw g"
+ " WHERE aog.alg_onroerendgoed_keys = " + alg_params.plaats.key
+ " AND aog.alg_type = " + safe.quoted_sql(alg_params.plaats.niveau)
+ " AND aog.alg_gebouw_key = g.alg_gebouw_key"
+ " AND aog.alg_locatie_key = l.alg_locatie_key";
var oRs = Oracle.Execute(sql);
var plaats_string = !oRs.Eof && oRs("plaatscode").Value? oRs("plaatscode").Value + " " + oRs("plaats").Value : "";
var adres_string = !oRs.Eof && oRs("adres").Value ? oRs("adres").Value : "";
oRs.Close();
this_mld = mld.func_enabled_mld(stdm_info.ins_srtdiscipline_key, "S"); // wat mag ik zoal op een nieuwe melding
var mld_info = { stdm_key: stdm_info.mld_stdmelding_key
, ruimte_key: ruimte_key
, srtdisc_key: stdm_info.ins_srtdiscipline_key
, disc_key: stdm_info.ins_discipline_key
, show_ins: stdm_info.ins_srtdiscipline_ins
, show_res: stdm_info.ins_srtdiscipline_res
, srtinst_verplichtstatus: stdm_info.srtinst_verplichtstatus
, mld_stdmelding_omschrijving: stdm_info.stdmelding_omschrijving
, srtdisc_oms: stdm_info.srtdisc_oms
, ins_discipline_omschrijving: stdm_info.discipline_omschrijving
, kpnverplicht: stdm_info.kpnverplicht
, prefix: stdm_info.ins_srtdiscipline_prefix
, meldbron_key: meldbron_key
, melder_key: ( ( fronto || frontend || (!this_mld.canFOwrite && !this_mld.canBOwrite && this_mld.canFEwrite))
? user_key
: -1)
, deelsrtcont_key: deelsrtcont_key
, loc_key: alg_params.loc_key
, bld_key: alg_params.bld_key
, flr_key: alg_params.flr_key
, roo_key: alg_params.roo_key
};
if (frontend)
mld_info.mld_kk = (stdm_info.ins_srtdiscipline_kostenklant & 1) == 1? 1 : 0;
else
mld_info.mld_kk = (stdm_info.ins_srtdiscipline_kostenklant & 4) == 4? 1 : 0;
var mandaat_eigen_kp = S("prs_dep_default_kpn") || stdm_info.show_eigen_kp == 1; // voor alle vakgroepen gemandateerd op eigen kp
if (mandaat_eigen_kp != 0 && mld_info.mld_kk == 1)
mld_info.kostenpl_key = melder_obj.prs_kostenplaats_key() || -1;
plaats_niveau = getQParamSafe("alg_type", "");
var loc_key = getQParamInt("loc_key", -1);
var bld_key = getQParamInt("bld_key", -1);
var flr_key = getQParamInt("flr_key", -1);
var roo_key = getQParamInt("roo_key", -1);
switch (plaats_niveau)
{
case "L": plaats_key = loc_key; break;
case "B": plaats_key = bld_key; break;
case "V": plaats_key = flr_key; break;
case "R": plaats_key = roo_key; break;
}
}
if (frontend && !mld_info.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_info.bld_key;
var oRsg = Oracle.Execute(sqlg);
mld_info.mld_kostenpl_key = (!oRsg.eof ? oRsg("prs_kostenplaats_key").Value || -1 : -1);
oRsg.Close();
}
var subject = (mld_key > -1
? (mld_info.prefix || "")+ mld_key + " " + mld_info.mld_stdmelding_omschrijving
: L("lcl_mobile_new").format(mld_info.mld_stdmelding_omschrijving )
);
var subjectSubheader = "";
if (addSubheader)
{
subjectSubheader = L("lcl_mobile_at").format(plaats_string);
}
if (frontend)
var editKostenplaats = ((stdm_info.ins_srtdiscipline_kostenklant & 2) != 2 && stdm_info.kpnverplicht); // Kostenplaats verbergen voor FE als ins_srtdiscipline_kostenklant 2 is.
else
var editKostenplaats = ((stdm_info.ins_srtdiscipline_kostenklant & 8) != 8 && stdm_info.kpnverplicht); // Kostenplaats verbergen voor FO/BO als ins_srtdiscipline_kostenklant 8 is.
lcl.set_dialect(stdm_info.ins_srtdiscipline_key, "MLD_SRTDISCIPLINE_KEY");
%>
<html>
<head>
<% FCLTMHeader.Generate({title: subject }); %>
<script type="text/javascript">
var this_mld = JSON.parse("<%=safe.jsstring(JSON.stringify(this_mld))%>");
<% if (getQParamInt("notitie", 0) == 1) { %>
$(function() {
jqToast(L("lcl_mobile_data_saved"));
});
<% } %>
<% if (getQParamInt("melding", 0) == 1) { %>
$(function() {
var toaster_text = (L("lcl_mld_fe_newmelding_confirm") != "" ? L("lcl_mld_fe_newmelding_confirm").format("<%=mld_key%>") : L("lcl_mobile_data_saved"));
jqToast(toaster_text);
});
<% } %>
var frontend = (<%=frontend? 1 : 0%> == 1);
$(function()
{
if (<%=stdm_key%> > 0) // Alleen uitvoeren als de stdmelding bekend is.
window.stdm_info = "<%=safe.jsstring(JSON.stringify(stdm_info))%>";
});
var timerID=null;
function delayed(delay, fn)
{
if (timerID) clearTimeout(timerID);
timerID = setTimeout(fn, delay);
}
<% if (mld_key > -1 && this_mld.canAccept) { %>
function mld_accept_confirm() {
var setting_mld_accept_confirm = <%=S("mld_accept_confirm")?1:0%>;
if (setting_mld_accept_confirm) {
$.mobile.changePage("#accp-4-<%=mld_key%>");
} else {
FcltMgr.confirm("<%=safe.jsstring(L("lcl_mld_accept_1") + (mld_info.prefix || "") + mld_key + L("lcl_mld_accept_2"))%>", {
autoconfirm: "<%autoConfirm%>" || "<%multi%>"
}, function () {
var data = {
mld_key: "<%=mld_key%>",
multi: "<%multi%>",
maybeDouble: "<%maybeDouble%>"
};
protectRequest.dataToken(data);
$.post("<%=rooturl%>/appl/mld/mld_accept_save.asp",
data,
McltCallbackAndThenAlways(mld_submit_callback),
"json");
});
}
return false;
};
<% } %>
<% if (mld_key > -1 && this_mld.canReject) { %>
function mld_reject_confirm() {
$.mobile.changePage("#mrej-5-<%=mld_key%>");
return false;
};
<% } %>
<% if (mld_key > -1 && this_mld.canInstem) { %>
function mld_instem() {
FcltMgr.confirm(L("lcl_mld_ask_instem").format("<%=safe.jsstring(mld_info.prefix + mld_key)%>"), function() {
var data = { mld_key: "<%=mld_key%>",
toaster: 1 };
protectRequest.dataToken(data);
$.post("<%=rooturl%>/appl/mld/mld_instemmen.asp",
data,
McltCallbackAndThenAlways(function() {
setTimeout(function () { window.history.back() }, 2500); // De toaster moet wel goed te zien zijn.
}),
"json");
});
return false;
};
<% } %>
<% if (mld_key > -1 && this_mld.canClose) { %>
function mld_close(verynew)
{
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?mld_key=<%=mld_key%>#close-3-<%=mld_key%>";
return false;
};
<% } %>
<% if (mld_key > -1 && this_mld.canReopen) { %>
function mld_reopen() {
$.mobile.changePage("#reopen-6-<%=mld_key%>");
return false;
};
<% } %>
function mld_continue()
{
$.mobile.changePage("#continue-7-<%=mld_key%>");
return false;
}
function mld_print()
{
FcltMgr.openDetail("/appl/mld/mld_opdr_xml.asp?mld_key=<%=mld_key%>");
return false;
};
// Drie modes
// 1) Dubbele melding van een moedermelding aanmaken (opnieuw laden van save asp met parent_key, maar niet meer controleren op double) [1]
// 2) Nieuwe melding aanmaken (opnieuw laden van save asp, maar niet meer controleren op double) [2]
// 3) Geen melding aanmaken, gewoon terug. [cancel]
function mldDoubleCallback(data, text)
{
if (data.mode == 2) // Eigen melding gewenst
{
iface.button.disable("btn_mld_submit"); // Disable de "Opslaan" button zodat niet nog een keer gesubmit kan worden.
$("#forcesave").val(1);
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json"); // Nu definitief
}
else if (data.mode == 1) // Geklikt op een gelijksoortige melding
{
$("#parent_key").val(data.parent_key);
$("#forcesave").val(1);
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json"); // Nu definitief
}
else
{
$("form", "#mdbl").html(data).trigger('create');
$.mobile.changePage("#mdbl");
}
}
function askdoubleCallback(data, text)
{
if (data.child) // 'Koppelen' gekozen
{
iface.button.disable("btn_mld_submit"); // Disable de "Opslaan" button zodat niet nog een keer gesubmit kan worden.
$("#parent_key").val(data.parent_key);
$("#forcesave").val(1);
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), mld_submit_callback, "json"); // Nu definitief
}
else
{ // Geen melding aanmaken
FcltMgr.closeDetail(window, {cancel: true});
}
}
function mld_submit_callback(json)
{
if (json.doublecheck)
{
var url = "<%=rooturl%>/appl/pda/mld_double.asp?urole=" + json.urole
+ "&stdmelding_key=" + json.stdm_key
+ "&ruimtekey=" + json.ruimtekey
+ "&verdiepingkey=" + json.verdiepingkey
+ "&gebouwkey=" + json.gebouwkey
+ "&locatiekey=" + json.locatiekey
+ "&ins_str=" + json.obj_arr
+ "&save=1";
$.get(url,
{},
McltCallbackAndThenAlways(mldDoubleCallback));
return;
}
if (json.success)
{
<% if (mld_key < 0) { %>
if (json.autoorder)
{
var data = { mld_key: json.mld_key,
urole: "fe",
autoorder: 1 };
<% protectRequest.dataToken("data"); %>
$.post("<%=rooturl%>/appl/mld/mld_edit_opdr_save.asp",
data,
McltCallbackAndThenAlways(mld_submit_callback),
"json");
return; // na opslaan van de opdracht komt vanzelf een nieuwe aanroep van mld_submit_callback
}
<% } %>
<% if (qrc) { %>
// Waarschijnlijk QR-code op koffieautomaat. Niet naar andere schermen springen.
$("input[name=mld_key]").val(json.mld_key);
FcltMgr.alert(L("lcl_pda_mld_call_confirm"));
McltCallbackClose(json);
<% } else if (mld_key > 0) { %>
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?melding=1&mld_key=" + "<%=mld_key%>";
<% } else if (mld_key < 0) { %>
// Nieuwe melding aangemaakt.
var alert_txt = ( $("#melding_onderwerp").val()
? L("lcl_pda_mld_call_thanks").format(json.mld_key, $("#melding_onderwerp").val())
: L("lcl_pda_mld_call_thanks_1").format(json.mld_key)
);
<% if (this_mld.canBOwrite) { %>
// Melding verder behandelen.
alert_txt += "\n" + L("lcl_pda_mld_call_process");
FcltMgr.confirm( alert_txt
, { autoconfirm: false
, fncancel: function() { window.location.href = "<%=rooturl%>/appl/pda/facilitor.asp"; }
}
, function() { window.location.href = "<%=rooturl%>/appl/pda/melding.asp?melding=1&mld_key=" + json.mld_key; }
);
<% } else { %>
// Terug naar home pagina.
FcltMgr.alert(alert_txt);
window.location.href = "<%=rooturl%>/appl/pda/facilitor.asp";
<% } %>
<% } %>
}
};
async function mld_submit()
{
if (!await validateForm("meld"))
return false;
// Als er een object gekozen is moet de ruimte_key daarvan ook in de formparams worden opgeslagen voor betere plaatsbepaling van de melding.
var rtyp = $("#r_objs :selected").attr("ins_alg_ruimte_type");
if (rtyp=="R")
{
var rkey = $("#r_objs :selected").attr("ins_alg_ruimte_key") || -1;
$("#ruimtekey").val(rkey);
}
// TODO: Wat met doublecheck
// Misschien automatisch forcesave of juist alert dat probleem al gemeld is?
// 5.2.2 Gold D: inderdaad vooralsnog forcesafe
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json");
return true;
}
function mld_forward(fwdType)
{
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?mld_key=<%=mld_key%>&action=forward&fwdType="+fwdType;
}
function PasteFromSelectbox()
{
if ($("#stdopmerk :selected").val() > -1)
{
$("#opmerk_close").focus();
var PastedText = $("#stdopmerk :selected")[0].getAttribute("afmeldtekstoms");
$("#opmerk_close").val($("#opmerk_close").val() + ($("#opmerk_close").val() != ""? "\n" : "") + PastedText).trigger("change");
}
}
function mld_forward_cancel()
{
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?mld_key=<%=mld_key%>";
}
async function mld_forward_submit()
{
if (!await validateForm("u2"))
return false;
$.post($("form[name=forwardform]")[0].action,
$("[name=forwardform]").serialize(),
mld_forward_submit_callback,
"json");
return true;
}
function mld_forward_submit_callback(jdata)
{
// Moet er voor de melding met een nieuwe stdmelding automatisch een opdracht aangemaakt worden?
if (jdata.autoorder)
{
var data = { mld_key: <%=mld_key%>,
message: jdata.message || jdata.toaster,
autoorder: 1
};
<% protectRequest.dataToken("data"); %>
$.post("<%=rooturl%>/appl/mld/mld_edit_opdr_save.asp",
data,
McltCallbackAndThenAlways(afsluiten),
"json");
}
else
afsluiten(jdata);
}
function afsluiten(jdata)
{ // Sluit onszelf.
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?mld_key=<%=mld_key%>";
}
function setInitEinddatum(data, textStatus)
{
data.show_enddate_length = $("#show_enddate").length;
var endDate = new Date(data.einddatum);
if ($("#enddate").length)
$("#enddate").val(endDate.getTime());
var endTime = ("0" + endDate.getHours()).slice(-2) + ':' + ("0" + endDate.getMinutes()).slice(-2);
endDate = new Date(endDate);
endDateStr = calendar_names.daysMin[endDate.getDay()] + " " +
padout(endDate.getDate()) + "-" + padout(endDate.getMonth() + 1) + "-" + padout(endDate.getFullYear());
if ($("#show_enddate").attr("type") === "date") { // Deze verwacht YYYY-MM-DD
endDateStr = padout(endDate.getFullYear()) + "-" + padout(endDate.getMonth() + 1) + "-" + padout(endDate.getDate());
}
if ($("#show_enddate").length)
$("#show_enddate").val(endDateStr);
if ($("#time_from_enddate").length)
$("#time_from_enddate").val(endTime);
}
async function mld_close_submit()
{
if (!await validateForm("u2"))
return false;
$.post($("form[name=closeform]")[0].action,
$("[name=closeform]").serialize(),
McltCallbackAndThenAlways(function() {
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?melding=1&mld_key=" + "<%=mld_key%>";
}), "json");
return true; // disable button
}
function ctrcloseToggler(deze)
{
var ctrclose = $(deze).prop('checked');
if (ctrclose)
{
<% for (var i = 0; i < controleModeArray.length; i++)
{ %>
$("#sel_controlemode" + <%=controleModeArray[i]%>).addClass("required");
<% } %>
$("#inscontrolemode").show();
FcltMgr.resized(window);
}
else
{
$("#inscontrolemode").hide();
<% for (var i = 0; i < controleModeArray.length; i++)
{ %>
$("#sel_controlemode" + <%=controleModeArray[i]%>).removeClass("required");
<% } %>
}
}
function onChangeMelder(melder_key)
{
if (melder_key > 0 && typeof sgDept != "undefined" && (<%=mld_key%> < 0 || $("#sgDept").val() == -1))
{
$.getJSON("../prs/get_prs_info_ajax.asp",
{ req_info: "prs_afdeling",
prs_perslid_key: melder_key
},
process_melder_afdeling);
}
}
function process_melder_afdeling(data)
{
if (data.prs_afdeling_key > 0 && data.prs_afdeling_naam != "")
{
sgDept.setValue(data.prs_afdeling_key, data.prs_afdeling_naam, true, true, null, true);
}
}
function mld_opmpaste()
{
$("#opmerk_close").focus();
$("#opmerk_close").val($("#opmerk_close").val() + ($("#opmerk_close").val() != ""? "\n" : "") + "<%=safe.jsstring(opdr_opm)%>");
$("#opmpaste").css("visibility", "hidden"); // Button na invoegen opmerking onzichtbaar maken zodat geen tweede keer toegevoegd kan worden.
}
$(function() {
<% if (opdr_opm != "" && S("mld_add_mldopmerk_on_opdrclose") == 1)
{ %>
mld_opmpaste();
<% } %>
<% if (mld_info.melder_key != user_key) { %>
$("[name='note']").focus(function() {
$("#quickNoteTip").fadeIn();
});
<% }
if (mld_key < 0 && !mld_info.einddatum) { %>
recalcEinddatum();
<% } %>
// recalculate enddate on change of object
$("#r_objs").on("change", function _r_objs_change()
{
recalcEinddatum();
});
});
function call_autobutton()
{
<% if (autobutton.toLowerCase() == "accept" && this_mld.canAccept) { %>
mld_accept_confirm();
<% } %>
}
var mld_key = <%=mld_key%>;
function recalcEinddatum(recalc_always)
{
// Er zijn twee situaties te onderscheiden:
// 1) Startdatum is zichtbaar/wijzigbaar,
// De tijd van de startdatum is altijd de begintijd van de dag (setting "fac_t_startofworkday" bijvoorbeeld 8:00 uur)
// => Startdatum = TRUNC(startdatum) + 8:00 uur
// => Einddatum = TRUNC(startdatum) + 8:00 uur + SLA
// LET OP!!!: Als je deze setting zet dan wordt eigenlijk verondersteld dat de SLA in dagen is en niet in uren.
// Echter als de startdatum vandaag is moet wel voor de begintijd de huidige sysdate tijd genomen worden tijdens het opslaan.
// Anders geldt de acceptatietijd (in uren) onterecht al vanaf het begin van de dag.
// Voor het bepalen/berekenen van de einddatum laten de startdatum gewoon aan het begin van de dag beginnen.
// 2) Startdatum is niet zichtbaar/wijzigbaar
// De tijd van de startdatum is de tijd van de huidige waarde of van de sysdate, COALESCE(huidige waarde, sysdate).
// => Startdatum = COALESCE(huidige waarde, sysdate)
// => Einddatum = COALESCE(huidige waarde, sysdate) + SLA
// Of de startdatum wel of niet zichtbaar/wijzigbaar is, is in te stellen bij vakgroep door de setting "Startdatum te bepalen" (mld_disc_params_startdatum)
var startdate = new Date(parseInt($("#startdate").val(),10));
var sysdate = new Date();
var startOfWorkDay = <%=safe.jsfloat(S("fac_t_startofworkday"))%>;
var startwerkdag_uur = Math.floor(startOfWorkDay);
var startwerkdag_min = (startOfWorkDay - Math.floor(startOfWorkDay)) * 60;
var startdatebegin = new Date(startdate.getFullYear(), startdate.getMonth(), startdate.getDate(), startwerkdag_uur, startwerkdag_min);
if (<%=stdm_info.startdatum? 1 : 0%> == 1)
{ // Situatie 1: Einddatum = TRUNC(startdatum) + 8:00 uur + SLA
// LET OP!!!: Als setting "mld_disc_params_startdatum" is gezet dan wordt eigenlijk verondersteld dat de SLA in dagen is en niet in uren.
// Echter als de startdatum vandaag is moet wel voor de begintijd de huidige sysdate tijd genomen worden tijdens het opslaan.
// Anders geldt de acceptatietijd (in uren) onterecht al vanaf het begin van de dag.
// Voor het bepalen/berekenen van de einddatum laten de startdatum gewoon aan het begin van de dag beginnen.
var startdate_is_today = (startdate.midnight().getTime() == sysdate.midnight().getTime());
startdatum = (startdate_is_today? sysdate.getTime() : startdatebegin.getTime());
}
else
{ // Situatie 2: Einddatum = COALESCE(huidige waarde, sysdate) + SLA
if (mld_key < 0)
var startdatum = sysdate.getTime(); // Nieuwe melding, nu/sysdate
else
var startdatum = startdate.getTime(); // Wijziging melding, huidige opgeslagen waarde
}
var stdm_key = <%=stdm_key%>;
var prio = "<%=mld_info.mprio%>" || 3;
var geb_key = $('#gebouwkey').val();
var rui_key = $('#ruimtekey').val();
// Mobile only has 1 object max
var ins_key = $("#r_objs").val() || -1;
// De voorwaarden of de einddatum opnieuw moet worden berekend zijn voor binnenkomst al afgedwongen.
// Nu kan de database de einddatum bepalen.
var params = { req_info: "calc_einddatum",
startdatum: startdatum,
srtdisc: <%=mld_info.srtdisc_key%>,
disc: <%=mld_info.disc_key%>,
stdm_key: stdm_key,
prio: prio,
geb_key: geb_key,
rui_key: rui_key,
ins_key: ins_key
};
$.getJSON("<%=rooturl%>/appl/mld/get_mld_info_ajax.asp",
params,
setInitEinddatum);
}
// Eventueel automatisch een actie-knop klikken, maar pas nadat het scherm zichtbaar is ivm een confirm tekst.
window.onload=function(){ call_autobutton(); };
</script>
</head>
<body>
<%
if (action != "forward")
{
PAGE_START({id: "page-1-"+mld_key});
HEADER({title: subject, back:!qrc, home: !qrc });
if (addSubheader)
HEADER({title: subject + " " + subjectSubheader, back:!qrc, home: !qrc });
CONTENT_START();
// Altijd forcesave omdat we geen doublecheck aankunnen
%>
<form id="meld" name="meld" action="<%=rooturl%>/appl/mld/mld_edit_melding_save.asp" method="post">
<input type="hidden" name="mld_key" value="<%=mld_key%>">
<input type="hidden" name="forcesave" id="forcesave" value="0">
<input type="hidden" name="parent_key" id="parent_key" value="-1">
<input type="hidden" name="urole" value="<%=mld_key > 0? "bo" : "fe"%>">
<input type="hidden" name="stdm" value="<%=mld_info.stdm_key%>">
<input type="hidden" id="caddwgx" name="caddwgx" value="<%=caddwgx != null? safe.jsfloat(caddwgx) : ""%>">
<input type="hidden" id="caddwgy" name="caddwgy" value="<%=caddwgy != null? safe.jsfloat(caddwgy) : ""%>">
<%
if (mld_key == -1)
{ // Nieuw, maar deze velden kunnen we zelf verzinnen
if (isvervolg)
{
Response.Write("<input type='hidden' id='start_key' name='start_key' value='"+mld_start_key+"'>");
}
if (!fronto)
{
%>
<input type="hidden" id="person" name="person" value="<%=user_key%>">
<%
}
%>
<input type="hidden" name="locatiekey" value="<%=alg_params.loc_key%>">
<input type="hidden" name="gebouwkey" value="<%=alg_params.bld_key%>">
<input type="hidden" name="verdiepingkey" value="<%=alg_params.flr_key%>">
<input type="hidden" name="ruimtekey" id="ruimtekey" value="<%=alg_params.roo_key%>">
<input type="hidden" name="meldbronkey" value="<%=mld_info.meldbron_key%>">
<input type="hidden" name="deelsrtcont_key" value="<%=mld_info.deelsrtcont_key%>">
<% // If can appoint process team && has a default process team
if (stdm_info.srtgroep & 4 && stdm_info.default_ins_disc_key > 0)
{
var sql = "SELECT mld_disc_params_srtgroep"
+ " FROM mld_disc_params mdp"
+ " WHERE mdp.mld_ins_discipline_key = " + stdm_info.default_ins_disc_key;
var oRs = Oracle.Execute(sql);
// If can be a process team
if (!oRs.eof && oRs("mld_disc_params_srtgroep").Value & 2)
{ %>
<input type="hidden" name="mld_ins_discipline" value="<%=stdm_info.default_ins_disc_key%>">
<% }
oRs.Close();
}
}
if (mld_key > -1) // bestaande
{
BLOCK_START({collapsedIcon: "fa fa-plus", expandedIcon: "fa fa-minus", collapsed: true, title: (mld_info.mld_onderwerp == null ? L("lcl_mld_frame_algemeen") : mld_info.mld_onderwerp)});
var prs_melder = new Perslid(mld_info.melder_key);
var melder_params = {};
var tel = prs_melder.prs_perslid_mobiel() || prs_melder.prs_perslid_telefoonnr();
if (tel)
melder_params = { type: "tel", phone_number: tel };
melder_params.withhidden = { "id": "person", "value": mld_info.melder_key};
ROFIELD("fld", L("lcl_caller"), prs_melder.naam(), melder_params);
if (S("mld_num_prefix_mode") == 1 && mld_info.kostenpl_key > 0 && !editKostenplaats)
{
var sql = "SELECT k.prs_kostenplaats_key kpkey"
+ " , " + S("prs_kpn_string") + " kpstring"
+ " FROM prs_kostenplaats k"
+ " WHERE k.prs_kostenplaats_key = " + mld_info.kostenpl_key;
var oRs = Oracle.Execute(sql);
ROFIELD("fld", L("lcl_mld_inf_Kostenplaats"), oRs("kpstring").Value);
oRs.Close();
}
ROFIELD("fld", L("lcl_mld_date_time") , toDateTimeString(mld_info.melddatum));
ROFIELD("fld", L("lcl_vakgroup") , (mld_info.prefix ? mld_info.prefix+"-" : "") + mld_info.ins_discipline_omschrijving);
if (stdm_info.srtgroep & 4 && mld_info.behandel_key > 0)
{
var prs_behandelaar = new Perslid(mld_info.behandel_key);
ROFIELD((mld_info.behandel_key != user_key ?"attention":"fld"), L("lcl_mld_behandelaar"), prs_behandelaar.naam(), { suppressEmpty: true });
}
BLOCK_END();
}
else // nieuwe
{
if (addObjectDesc)
ROFIELD("fld", L("lcl_ins_object"), ins_name);
if (fronto && !this_mld.canReadFEOnly)
{
var personEditable = (mld_key > 0 && this_mld.canPersChange) || (mld_key < 0 && this_mld.canFOwrite);
FCLTpersoonselector("person",
"sgPerson",
{ perslidKey: mld_info.melder_key,
xxlabel: L("lcl_mld_name"),
fieldNameKey: "person",
readonly: !personEditable,
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
required: personEditable,
onChange: "onChangeMelder"
});
}
}
if (mld_info.show_ins && (stdm_info.alg_onrgoed_obj_niveau || stdm_info.prsafdobj))
{
if (ins_key > 0 && mld_key < 0)
{ // Nieuwe melding waarbij het object bekend is: via qrc-code
%><input type="hidden" name="has_r_objs" value="1">
<input type="hidden" name="r_objs" value="<%=ins_key%>">
<%
}
else if (ins_name_arr.length < 2 && (mld_key < 0 || this_mld.canPlaatsChange)) // Meerdere objecten bewerken ondersteunen we niet.
{
%><input type="hidden" name="has_r_objs" value="1"><%
var sql = get_objecten_sql(plaats_key, plaats_niveau, user_key, null, mld_info.stdm_key, {extracode: "UITV"});
var tsql = "SELECT count(*) aantal FROM (" + sql + ")";
var toRs = Oracle.Execute(tsql);
var aantalObj = toRs("aantal").Value;
toRs.close();
var EmptyOption = true;
if (aantalObj > 0 || mld_info.srtinst_verplichtstatus == 2)
{
if (aantalObj == 1 && mld_info.srtinst_verplichtstatus == 2)
EmptyOption = false;
FCLTselector( "r_objs"
, sql
, { initKey: ins_keys_arr.length?ins_keys_arr[0]:-1
, label: L("lcl_gerelateerdeobjecten")
, mobile: true
, extraParamValue: "ins_alg_ruimte_key,ins_alg_ruimte_type,uitvoertijd"
, emptyOption: (EmptyOption ? L("lcl_select_object") : null)
, required: mld_info.srtinst_verplichtstatus == 2
}
);
}
}
else if (ins_name_arr.length)
ROFIELD("fld", L("lcl_gerelateerdeobjecten"), ins_name_arr.join("\n"), {multi: ins_name_arr.length > 1});
}
if (S("mld_use_department") == 1)
{
var dep_key = mld_info.afdeling_key;
if (!dep_key)
{
if (mld_info.melder_key > 0)
dep_key = new Perslid(mld_info.melder_key).prs_afdeling_key();
else
dep_key = user.prs_afdeling_key();
}
FCLTafdelingselector("sgDept", "sgDept",
{ departmentKey: dep_key,
label: L("lcl_mld_afdeling"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
filtercode: "INCL",
readonly: (mld_key > 0 && !this_mld.canDeptChange),
required: true,
suppressJustOne: true
});
}
if (editKostenplaats)
{
var urlAdd_account = [{ urlParam: "prs_key", field: "person" }];
if (frontend && !mld_info.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" });
%>
<input type="hidden" id="account_bld" name="account_bld" value="<%=mld_info.mld_kostenpl_key%>">
<%
}
FCLTkostenplaatsselector("account",
"sgAccount",
mld_info.melder_key,
{ kostenplaatsKey: mld_info.kostenpl_key || -1,
label: (urole == "fe")?L("lcl_mld_inf_Kostenplaats"):L("lcl_mld_inf_Kostenklant"),
showCustomLabel: true,
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),
required: (!(mld_key > 0 && !this_mld.canKostChange)? mld_info.kpnverplicht : false)
});
}
else
{
%>
<input type="hidden" name="account" id="sgAccount" value="<%=mld_info.kostenpl_key || -1 %>">
<% }
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_info.mld_status == 1 || mld_info.mld_status == 2)))? 1 : 0);
if (mld_key > -1)
{
var params = { suppressEmpty: true
, moreinfo: "#info-4-"+mld_key
};
ROFIELD("fld", L("lcl_place"), plaats_string, params);
if (S("mld_print_loc_address")==3) // mag van mij op zich wel standaard eigenlijk
ROFIELD("fld", L("lcl_adress"), adres_string, {suppressEmpty: true} );
var oms_readonly = !(this_mld.canOmsChange);
if (S("mld_omschrijving_restrict_edit") == 1)
oms_readonly = oms_readonly || !(mld_info.mld_status == 2 || mld_info.mld_status == 3);
if ((stdm_info.subject != 0) && !(oms_readonly && !mld_info.mld_onderwerp))
{
RWFIELD("melding_onderwerp", L("lcl_mld_subject"), mld_info.mld_onderwerp
, { pclass: ((stdm_info.subject == 2 && (this_mld.canOmsChange || mld_key < 0))? " required" : "")
, readonly: (oms_readonly ? true : false)
}
);
}
if (mld_info.freetext != 0 && (!oms_readonly || mld_info.mld_omschr))
{
// Complaint text description
RWFIELD("melding_omschrijving", L("lcl_txt"), mld_info.mld_omschr, { multi: true, pclass: (mld_info.freetext == 2 && (this_mld.canOmsChange || mld_key < 0) ? "required" : ""), readonly: oms_readonly });
}
var zichtbaar = (mld_info.fenotes == 1 || mld_info.fenotes == 3 );
if (quicknoteSetting == 1 && this_mld.canChange) {
RWFIELD("note", L("lcl_mld_quick_note_new"), null, {multi: true});
if (mld_info.melder_key != user_key) { %>
<p id="quickNoteTip" style="display: none;"><sup><%=(zichtbaar ? safe.html(L("lcl_fac_ano_intotext1")) + " " + safe.html(L("lcl_mld_zichtbaar_FE")) : safe.html(L("lcl_fac_ano_intotext1")) + " " + safe.html(L("lcl_mld_verborgen_FE")))%></sup></p>
<% }
}
if (mld_info.mprio != 3 && !canPrioChange)
{
ROFIELD("attention", L("lcl_mld_urg"), mld.getpriotext(mld_info.mprio));
}
if (!(stdm_info.srtgroep & 4) && mld_info.behandel_key > 0 && mld_info.primaire_behandelaar != 0)
{
var prs_behandelaar = new Perslid(mld_info.behandel_key);
ROFIELD((mld_info.behandel_key != user_key ?"attention":"fld"), L("lcl_mld_behandelaar"), prs_behandelaar.naam(), { suppressEmpty: true });
}
if (mld_info.mld_ins_discipline_key > 0)
{
ROFIELD("fld", L("mld_processing_group"), (mld_info.mld_srtins_prefix ? mld_info.mld_srtins_prefix + "-" : "") + mld_info.mld_ins_discipline_omschrijving);
}
if (mld_info.behandel2_key > 0)
{
var prs_behandelaar2 = new Perslid(mld_info.behandel2_key);
ROFIELD((mld_info.behandel2_key != user_key ?"attention":"fld"), L("lcl_mld_processor"), prs_behandelaar2.naam(), { suppressEmpty: true });
}
}
else // Nieuwe
{
if (stdm_info.subject != 0)
{
RWFIELD("melding_onderwerp", L("lcl_mld_subject"), mld_info.mld_onderwerp
, { pclass: ((stdm_info.subject == 2 && (this_mld.canOmsChange || mld_key < 0))? " required" : "") }
);
}
if (stdm_info.freetext > 0)
RWFIELD("melding_omschrijving", L("lcl_txt"), "", {multi: true, pclass: (stdm_info.freetext==2 ? "required" : "") });
}
var sql = null;
if (mld_info.stdm_key > 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";
}
}
if(canPrioChange)
{
// 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_info.murgentie,
label: L("lcl_mld_matrixlabelprefix")+L("lcl_mld_urgentie"),
mobile: true,
//titleCol: "tt",
emptyOption: L("lcl_select_urgentie"),
readonly: (mld_key > 0 && !canPrioChange),
onChange: "onChangeImpactOrUrgentie(1)",
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_info.mimpact,
label: L("lcl_mld_matrixlabelprefix")+L("lcl_mld_impact"),
mobile: true,
//titleCol: "tt",
emptyOption: L("lcl_select_impact"),
readonly: (mld_key > 0 && !canPrioChange),
onChange: "onChangeImpactOrUrgentie(1)",
trclass: "tr_priomatrix"
});
}
FCLTselector("prio",
sql,
{ initKey: (mld_key > 0 ? mld_info.mprio : 3),
label: L("lcl_mld_urg"),
mobile: true,
readonly: (mld_key > 0 && !canPrioChange),
onChange: "onChangePrioriteit()",
trclass: "tr_prio"
});
}
if (stdm_info.ins_srtdiscipline_bes > 0) { // Afleveradres
FCLTadresselector("del_address", "sgAdres",
{ adresKey: mld_info.deladdress_key,
label: L("lcl_delivery_address"),
emptyOption: "",
filtercode: "A",
autlevel: (this_mld.authparams(autfunction)? this_mld.authparams(autfunction).ALGreadlevel : 9),
readonly: (mld_info.deladdress_key > 0 && mld_key > 0 && !this_mld.canAflChange),
required: stdm_info.afleveradres_verplicht
});
}
if (mld_key > -1)
{
if (this_mld.canAfhandChange || (!mld_info.parent_key && !start_key))
{
ROFIELD("fld", L("lcl_mld_inf_Opmerking"), mld_info.remark, {suppressEmpty: true, multi: true});
}
else
{
if (mld_info.parent_key) // gekoppelde melding verwijst naar de parent voor afhandeling
{
var sprefix = mld.mld_prefix(mld_info.parent_key);
var params = { moreinfo: rooturl+"/appl/pda/melding.asp?mld_key=" + mld_info.parent_key, disabled: true};
ROFIELD("fld", L("lcl_mld_completion_in"), sprefix + mld_info.parent_key, params);
}
else if (start_key)
{
ROFIELD("fld", L("lcl_mld_inf_Opmerking"), mld_info.remark, { moreinfo: rooturl + "/appl/pda/melding.asp?mld_key=" + start_key });
}
}
if(mld_info.kto_type && mld_info.kto_key > 0)
{
switch(mld_info.kto_type)
{
case "R":
//reservering
ROFIELD("fld", L("lcl_mld_kto"), mld_info.kto_key, { moreinfo: rooturl + "/appl/pda/reservering.asp?rsv_ruimte_key=" + mld_info.kto_key });
break;
case "M":
//melding
ROFIELD("fld", L("lcl_mld_kto"), mld_info.kto_key, { moreinfo: rooturl + "/appl/pda/melding.asp?mld_key=" + mld_info.kto_key });
break;
case "B":
//bestelling
ROFIELD("fld", L("lcl_mld_kto"), mld_info.kto_key, { moreinfo: rooturl + "/appl/pda/bestelling.asp?bes_key=" + mld_info.kto_key });
break;
}
}
if(start_key > 0 && start_key != mld_key)
{
ROFIELD("fld", L("lcl_mld_continue_of"), start_key, { moreinfo: rooturl + "/appl/pda/melding.asp?mld_key=" + start_key });
}
}
FCLTcalendar("startdate",
{ label : L("lcl_mld_startdate"),
datum : mld_info.melddatum,
minFuture : (frontend ? 0 : -1),
readonly : mld_key > 0 && !this_mld.canWriteDatums && stdm_info.startdatum, // als hij verborgen is hoeftie niet readonly
required : true,
trhidden : !stdm_info.startdatum,
volgnr : 1,
mobile : true,
nofollow : true
});
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_info.einddatum,
minDate : (frontend ? mld_info.einddatum : null),
timeField : !frontend || (frontend && !stdm_info.planbaar), // Bij FE dus afh van Planbaar eind(datum+tijd) wel/niet in te vullen, anderen (FO & BO 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"),
readonly : mld_key > 0 && !this_mld.canWriteDatums,
required : true,
trclass : "trenddate",
trhidden : einddatumHidden,
mobile : true,
volgnr : 2
});
generateFlexKenmerkBlock ({stdm_arr : [mld_info.stdm_key],
mld_key : mld_key,
prs_key : user_key,
reado : (mld_key > 0 && !this_mld.canFlexChange),
canDeleteAttachment: mld_info.mld_status != 6,
showConfidential : (mld_key > 1 ? this_mld.canViewConfidential : null),
nameprefix: "page_1_",
serie : mld_key > 0 ? mld_key : 0,
extraserie: true,
mobile : true,
melder_key: mld_info.melder_key,
srtdisc: S("mld_processing_group_all")? [] : [mld_info.srtdisc_key],
disc: mld_info.disc_key, // Initiele waarde primaire Vakgroep/Behandelteam.
prsautlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
hideteams: false,
show_alg: mld_info.show_alg,
loc_key: mld_info.loc_key,
this_mld: this_mld
});
// filter
if ((this_mld.canBOwrite || this_mld.canFOwrite) && (S("mld_melding_flags") > 0))
{
var mldflagnr = mld_info.flag || 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_info.flag,
label: L("lcl_mld_flags"),
mobile: true
});
}
if (!closeCheckDone)
{
// TODO: moeten we dit nog wel doen?
// Zijn er nog lopende opdrachten?
var canCloseOpdr = [];
var sqlC = "SELECT o.mld_opdr_key"
+ " FROM mld_opdr o"
+ " WHERE o.mld_melding_key = " + mld_key
+ " AND o.mld_statusopdr_key NOT IN (1, 6, 7, 9)";
var oRsC = Oracle.Execute(sqlC);
while (!oRsC.eof)
{ // Voor elke opdracht controleren of deze afgemeld mogen worden
var this_opdr = mld.func_enabled_opdracht(oRsC("mld_opdr_key").Value);
if (!this_opdr.canClose)
{ // Geen autorisatie om alle opdracht af te melden-->dan geen enkele
canCloseOpdr = [];
break;
}
canCloseOpdr.push(oRsC("mld_opdr_key").Value);
oRsC.MoveNext();
}
oRsC.Close();
}
if (mld_key > -1)
{
// Controleer of dit soort meldingen een BES component heeft of gedefinieerde MLD opdrachttypes.
// Bovendien hebben deze frames pas zin als de status minstens Geaccepteerd is
// (Alleen BO mag aanmaken, kan dat gelijk na invoer doen, maar zo niet dan eerst accepteren)
var mfe = mld.func_enabled_melding(mld_key); // heb ik uberhaubt leesrechten
var fwdInfo = mld.getFwdType(mld_key, this_mld, mld_info);
var showbes = false;
var showord = false;
var ordzichtbaarfe = false;
if (mld_info.mld_status >= 4 )
{ // niet afgewezen(1), ingevoerd(2) of ingezien(3)
showbes = mld_info.show_bes; // Heeft voor een gegeven (srt)discipline een vaste waarde
// De opdrachttypes behorende bij de srtdiscipline of bij de discipline
sql = "SELECT mto.mld_typeopdr_zichtbaarfe"
+ " FROM ins_srtdiscipline sd"
+ " , mld_discipline d"
+ " , mld_typeopdr_srtdiscipline tsd"
+ " , mld_typeopdr mto"
+ " WHERE tsd.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND tsd.ins_discipline_key IS NULL"
+ " AND sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key"
+ " AND tsd.mld_typeopdr_key = mto.mld_typeopdr_key"
+ " AND d.ins_discipline_key = " + mld_info.disc_key
+ " UNION ALL"
+ " SELECT mto.mld_typeopdr_zichtbaarfe"
+ " FROM ins_srtdiscipline sd"
+ " , mld_discipline d"
+ " , mld_typeopdr_srtdiscipline tsd"
+ " , mld_typeopdr mto"
+ " WHERE tsd.ins_discipline_key = d.ins_discipline_key"
+ " AND tsd.ins_discipline_key IS NOT NULL" // overbodig, maar wel duidelijk verschil met eerste clause
+ " AND sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key"
+ " AND tsd.mld_typeopdr_key = mto.mld_typeopdr_key"
+ " AND d.ins_discipline_key = " + mld_info.disc_key
+ " ORDER BY 1 DESC"; // zodat echte waarden eerder komen dan de null-waarden
ooRs = Oracle.Execute(sql);
if (!ooRs.eof)
showord = true;
while (!ooRs.eof)
{ // Alle opdrachttypes doorlopen. Wellicht zit er een opdrachttype bij die wel door de fe zichtbaar is en die mogelijk opdrachten bevat die de fe mag zien.
ordzichtbaarfe = ordzichtbaarfe || (ooRs("mld_typeopdr_zichtbaarfe").Value == 1 && mld_info.melder_key == user_key); // Het moet ook mijn eigen melding zijn
ooRs.MoveNext();
}
ooRs.Close(); // de overige records interesseren me in het geheel niet, ik weet al genoeg.
}
// Heeft men voldoende rechten om naar opdrachten te gaan?
var opdr_page = "";
var hasParent = mld_info.parent_key != null; // dan geen opdrachten of bestellingen
if (!hasParent && mfe.canReadAny) // Mocht ik geen leesrechten hebben, dan ook de opdrachten en bestellingen niet tonen.
{
var this_opdr = mld.func_enabled_mld(mld_info.aut_disc_arr, "D"); // wat mag ik zoal op een nieuwe melding
if ((this_opdr.canORDBOFread) && showord)
{
opdr_page = rooturl+"/appl/pda/orders_list.asp?mld_key="+mld_key+"&urole=" + (this_opdr.canORDBOFread? "bo" : urole);
}
}
}
CONTROLGROUP_START()
if (this_mld.canChange || mld_key == -1) {
BUTTON((mld_key>-1 ? L("lcl_submit") : L("lcl_newsubmit")), {click: "mld_submit()", dataicon: "fa-fclt-save", singlepress: (mld_key == -1) });
}
if (mld_key > -1) {
if (this_mld.canAccept) {
BUTTON(L("lcl_mld_accept"), {click: "mld_accept_confirm()", dataicon: "fa fa-circle-check"});
}
if (this_mld.canInstem)
BUTTON(L("lcl_instem"), {click:"mld_instem()", dataicon: "fa fa-thumbs-up"});
if (this_mld.canReject) {
BUTTON(L("lcl_mld_reject"), {click: "mld_reject_confirm()", dataicon: (this_mld.canInstem ? "fa fa-thumbs-down" : "fa fa-circle-xmark")});
}
if (this_mld.canClose) {
BUTTON(L("lcl_close"), {click: "mld_close()", dataicon: "fa fa-flag-checkered"});
}
if (this_mld.canReopen) {
BUTTON(L("lcl_mld_reopen"), {click: "mld_reopen()", dataicon: "fa fa-unlock"});
}
if (fwdInfo.fwdType & 1 && (this_mld.canForward || this_mld.canFixMelding)) { // bo2bo
BUTTON(fwdInfo.fwdLabel, {click: "mld_forward(1)", dataicon: (fwdInfo.fwdType == 1 ? "fa fa-arrow-right" : "fa fa-retweet")});
}
if (fwdInfo.fwdType & 2 && this_mld.canForwardTeam) {
BUTTON(L("lcl_mld_forward_team"), {click: "mld_forward(2)", dataicon: "fa fa-arrow-right"});
}
var tsql = "SELECT COUNT(ins_deel_key) FROM mld_melding_object WHERE mld_melding_object_verwijder IS NULL AND mld_melding_key = " + mld_key;
toRs = Oracle.Execute(tsql);
if (toRs(0).Value > 0) {
if (toRs(0).value == 1)
{
var tsql = "SELECT ins_deel_key FROM mld_melding_object WHERE mld_melding_object_verwijder IS NULL AND mld_melding_key = " + mld_key;
var toRs1 = Oracle.Execute(tsql);
BUTTON(L("lcl_mobile_objecten")+" ("+toRs(0).Value + ")", {linkid: rooturl+"/appl/pda/ins_deel.asp?ins_key=" + toRs1("ins_deel_key").Value, dataicon: "fa fa-info", dataajax: "false"});
toRs1.Close();
}
else
BUTTON(L("lcl_mobile_objecten") + " (" + toRs(0).Value + ")", {linkid: rooturl + "/appl/pda/ins_list.asp?mld_key=" + mld_key +"&plaatsfilter=0", dataicon: "fa fa-info", dataajax: "false"});
}
toRs.Close();
if (mld_key > 0 && this_mld.canContinue)
{
var vsql = "SELECT COUNT(*) FROM mld_melding where mld_melding_start_key = " + mld_key;
var voRs = Oracle.Execute(vsql);
BUTTON(L("lcl_mld_continuation_mld") + " ("+voRs(0).Value+")", {click: "mld_continue()", dataicon: "fa fa-diagram-subtask"});
voRs.Close();
}
trackinglines = mobile.hastrackingpage('melding', mld_key);
if (trackinglines>0) {
BUTTON(L("lcl_history"), {linkid: "#mld-2-"+mld_key, dataicon: "fa fa-list"});
}
if (mfe.canReadNotes) { // Heb ik rechten om notities te zien
var tsql = "SELECT COUNT(*) FROM mld_melding_note n WHERE n.mld_melding_key = " + mld_key;
var toRs = Oracle.Execute(tsql);
BUTTON(L("lcl_mld_frame_notes")+" ("+toRs(0).Value + ")", {linkid: rooturl + "/appl/pda/notitie.asp?node=melding&urole=" + urole + "&key=" + mld_key, dataicon: "fa fa-comment", dataajax: "false"});
toRs.Close();
if (!Session("app_build")) {
BUTTON(L("lcl_print"), {click: "mld_print()", dataicon: "fa fa-print"});
}
}
if (ruimte_key > -1 && user.checkAutorisation( "WEB_ALGUSE", true)) {
var rsql = "SELECT 1 from alg_ruimte WHERE alg_ruimte_nr NOT LIKE '\\_%' ESCAPE '\\' and alg_ruimte_key = " + ruimte_key
var roRs = Oracle.Execute(rsql);
if (!roRs.eof) {
BUTTON(L("lcl_room"), {linkid: rooturl + "/appl/pda/ruimte.asp?ruimte_key=" + ruimte_key, dataicon: "fa fa-info", dataajax: "false"});
}
roRs.Close();
}
if (opdr_page != "") {
var tsql = "SELECT COUNT(*) FROM mld_opdr o WHERE o.mld_melding_key = " + mld_key
+ " AND o.mld_statusopdr_key IN (4, 5, 8)"; // zelfde als die in orders_list worden getoond
var toRs = Oracle.Execute(tsql);
BUTTON(L("lcl_mobile_opdrachten") + " ("+toRs(0).Value + ")", {linkid: opdr_page, dataicon: "fa fa-share", dataajax: "false"});
toRs.Close();
}
// future extension. we kennen res_list nog niet mobiel, en gaan die ook niet alleen om deze reden nu maken.
//if (mld_info.show_res) {
// var tsql = "SELECT COUNT(*) FROM res_reservering r WHERE r.mld_melding_key = " + mld_key;
// var toRs = Oracle.Execute(tsql);
// BUTTON(L("lcl_mobile_reserveringen") + " ("+toRs(0).Value + ")", {linkid: rooturl + "/appl/pda/reserveringen.asp?mld_key=" + mld_key, dataicon: "fa fa-calendar", dataajax: "false"});
// toRs.Close();
//}
}
CONTROLGROUP_END()
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
FOOTER();
PAGE_END()
if (mld_key > -1)
{
if (trackinglines>0) {
PAGE_START({id: "mld-2-"+mld_key})
mobile.trackingpage("melding", mld_key, (mld_info.prefix || "")+ mld_key);
PAGE_END();
}
}
}
if (action == "forward")
{
// Wat gaan we doen? (fwdType:)
// 1. Vakgroep wijzigen (= Corrigeren)
// 2. Behandelteam wijzigen (= Doorsturen)
var fwdInfo = mld.getFwdType(mld_key, this_mld, mld_info);
var fwdType = getQParamInt("fwdType", fwdInfo.fwdType);
user.anything_todo_or_abort((fwdType & fwdInfo.fwdType) && (fwdType == 1 || fwdType == 2));
PAGE_START({id: "fwd-2-"+mld_key});
HEADER({title: (fwdType == 1 ? fwdInfo.fwdLabel : L("lcl_mld_forward_team")) + " " + (mld_info.prefix || "") + mld_key, back:!qrc });
CONTENT_START();
%>
<script type="text/javascript">
function onChangeVakgroep(vakgroep_key)
{
// Melding leegmaken
sgStdm.setValue(-1, "", false, false, null, true);
sgStdm.CheckJustOne();
if (typeof sgBehandelaar != "undefined")
{
if (vakgroep_key == -1) // Effici<63>nter
sgBehandelaar.setValue(-1, "", false, false);
else
sgBehandelaar.setValue($("#sBehandel").val(), $("#sBehandel_show").val(), false /*doonChange*/, true /*checkExist*/);
}
}
function onChangeBehandelteam(behandelteam_key)
{
if (typeof sgBehandelaar2 != "undefined")
{
if (behandelteam_key == -1) // Effici<63>nter
sgBehandelaar2.setValue(-1, "", false, false);
else
sgBehandelaar2.setValue($("#sBehandel2").val(), $("#sBehandel2_show").val(), false /*doonChange*/, true /*checkExist*/);
}
}
</script>
<form id="forwardform" name="forwardform" action="<%=rooturl%>/appl/mld/mld_forward_save.asp?mld_key=<%=mld_key%>&fwdType=<%=fwdType%>" method="post">
<%
if (fwdType == 1)
{
// Vakgroep
var urlAdd = [{urlParam: "disc_old", field: "disc_old", init: mld_info.disc_key }];
if (mld.useAlgScope("D"))
{
var eindlevel = (stdm_info.ins_srtdiscipline_alglevel ? stdm_info.ins_srtdiscipline_alglevel : 2);
switch (eindlevel) { // Zonder break;
case 5: urlAdd.push({urlParam: "roomkey", field: "ruimtekey", init: mld_info.room_key});
case 4: urlAdd.push({urlParam: "flrkey", field: "verdiepingkey", init: mld_info.flr_key });
case 3: urlAdd.push({urlParam: "bldkey", field: "gebouwkey", init: mld_info.bld_key });
case 2: urlAdd.push({urlParam: "lockey", field: "locatiekey", init: mld_info.loc_key });
}
}
// Vakgroep
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_vakgroup"),
disc_key: S("mld_forward_auto_fill") ? mld_info.disc_key : -1,
module: "MLDP",
perslidKey: user_key,
behandelteam_key: mld_info.mld_ins_discipline_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: S("mld_forward_all") == 1? -1 : mld_info.srtdisc_key,
urlAdd: urlAdd,
filtercode: this_mld.canForwardKeten? "VDK" : "VD",
onChange: "onChangeVakgroep",
required: true
});
urlAdd.push({urlParam: "disc_key", field: "disc"});
// Standaardmelding
FCLTstdmeldingselector("stdm",
"sgStdm",
{ label: L("lcl_complain"),
perslidKey: user_key,
behandelteam_key: mld_info.mld_ins_discipline_key,
stdmelding_key: S("mld_forward_auto_fill") ? stdm_key : -1,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: (S("mld_forward_all") == 1? -1 : mld_info.srtdisc_key),
urlAdd: urlAdd,
filtercode: this_mld.canForwardKeten? "VDK" : "",
required: true
});
}
else if (fwdType == 2)
{
// Behandelteam
var urlAdd = [{urlParam: "disc", field: "disc" }];
%>
<input type="hidden" id="disc" name="disc" value="<%=mld_info.disc_key%>">
<%
FCLTdisciplineselector("mld_ins_discipline",
"sgDisc",
{ label: L("mld_processing_group"),
disc_key: (S("mld_forward_auto_fill") ? mld_info.mld_ins_discipline_key : -1),
module: "MLDB",
urlAdd: urlAdd,
perslidKey: user_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: (S("mld_processing_group_all") == 1 ? -1 : mld_info.srtdisc_key),
onChange: "onChangeBehandelteam"
});
}
// Behandelaar
if (S("mld_forward_can_assign"))
{
%>
<input type="hidden" id="person" name="person" value="<%=mld_info.melder_key%>">
<%
var urlAdd = [{urlParam: "prs_key", field: "person", init: mld_info.melder_key}];
if (mld_info.show_alg)
{
urlAdd.push({urlParam: "loc_key", field: "loc_key", init: mld_info.loc_key});
%>
<input type="hidden" id="loc_key" name="loc_key" value="<%=mld_info.loc_key%>">
<%
}
if (fwdType == 1)
{
urlAdd.push({urlParam: "disc_key", field: "disc", init: (S("mld_forward_auto_fill") ? mld_info.disc_key : -1)});
if (mld_info.primaire_behandelaar != 0)
{
FCLTpersoonselector("sBehandel",
"sgBehandelaar",
{ perslidKey: (S("mld_forward_auto_fill") ? mld_info.behandel_key : -1),
label: L("lcl_mld_behandelaar"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
readonly: !this_mld.canAfhandChange,
required: (mld_info.primaire_behandelaar == 2),
filtercode: (mld_info.mld_status == 0 ? "BEHF" : "BEHB")
});
}
}
else if (fwdType == 2)
{
urlAdd.push({urlParam: "disc_key", field: "mld_ins_discipline", init: (S("mld_forward_auto_fill") ? mld_info.mld_ins_discipline_key : -1)});
FCLTpersoonselector("sBehandel2",
"sgBehandelaar",
{ idadd: 2,
perslidKey: (S("mld_forward_auto_fill") ? mld_info.behandel2_key : -1),
label: L("lcl_mld_processor"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
readonly: !this_mld.canAfhandChange,
filtercode: (mld_info.mld_status == 0 ? "BH2F" : "BH2B")
});
}
}
if (!stdm_info.hide_kostenplaats && !stdm_info.is_kto_antwoord)
{
var urlAdd_account = [{ urlParam: "prs_key", field: "person" }];
if (frontend && !mld_info.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" });
%>
<input type="hidden" id="account_bld" name="account_bld" value="<%=mld_info.mld_kostenpl_key%>">
<%
}
FCLTkostenplaatsselector("account",
"sgAccount",
mld_info.melder_key,
{ kostenplaatsKey: mld_info.kostenpl_key || -1,
label: (urole == "fe")?L("lcl_mld_inf_Kostenplaats"):L("lcl_mld_inf_Kostenklant"),
showCustomLabel: true,
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),
required: (!(mld_key > 0 && !this_mld.canKostChange)? mld_info.kpnverplicht : false)
});
if (S("show_ordernr") != 0)
{
RWFIELD("ordernr", L("lcl_mld_inf_Ordernr"), mld_info.mld_ordernr, {readonly: (mld_key > 0 && !this_mld.canKostChange), html: 'maxlength="30"'});
}
}
ROFIELD("fld", "", mld_info.remark); // De opmerking/afhandeling die er al stond...
RWFIELD("opmerk_forward", L("lcl_mld_note_new"), "", {name: "opmerk", multi: true, pclass: ((S("mld_forward_opm_flags") & 1) == 1? " required" : "")});
var note_zichtbaarFE = (mld_info.fenotes == 1 || mld_info.fenotes == 3);
// Geef keuze voor wel of niet zichtbaar voor FE
CHB_FIELD("zichtbaarFE", "<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", note_zichtbaarFE);
// We houden het simpel: geen notificatie dmv 'actie bij melder zetten'.
CONTROLGROUP_START()
BUTTON((fwdType == 1 ? fwdInfo.fwdLabel : L("lcl_mld_forward_team")), {click: "mld_forward_submit()", dataicon: "fa-fclt-save"} );
BUTTON(L("lcl_cancel"), {click: "mld_forward_cancel()", dataicon: "fa-fclt-cancel"} );
CONTROLGROUP_END()
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
FOOTER();
PAGE_END();
}
if (mld_key > -1)
{
// Info pagina met plaatsgegevens, vanuit klikken op plaats.
//
PAGE_START({id: "info-4-"+mld_key, dialog: true});
HEADER({title: L("ins_srtdiscipline_alg") , back:!qrc });
CONTENT_START();
var sql = "SELECT COALESCE(g.alg_gebouw_adres, l.alg_locatie_adres) adres"
+ " , l.alg_locatie_plaats"
+ " , l.alg_locatie_code"
+ " , COALESCE(g.alg_gebouw_postcode, l.alg_locatie_postcode) postcode"
+ " , l.alg_locatie_omschrijving"
+ " , l.alg_locatie_verantw"
+ " , l.alg_locatie_verantw_tel"
+ " , o.alg_gebouw_naam"
+ " , o.alg_verdieping_omschrijving"
+ " , o.alg_ruimte_nr"
+ " , o.alg_ruimte_omschrijving"
+ " , o.alg_verdieping_key"
+ " , ct.cad_tekening_key"
+ " , o.alg_ruimte_key"
+ " , msd.cad_thema_key"
+ " , m.mld_melding_dwgx"
+ " , m.mld_melding_dwgy"
+ " FROM alg_v_onroerendgoed_gegevens o"
+ " , alg_locatie l"
+ " , alg_gebouw g"
+ " , mld_melding m"
+ " , mld_stdmelding msd"
+ " , (SELECT cad_tekening_key"
+ " , alg_verdieping_key"
+ " FROM cad_tekening"
+ " WHERE cad_tekening_verwijder IS NULL"
+ " AND cad_tekening_type = 'P') ct"
+ " WHERE m.mld_alg_locatie_key = l.alg_locatie_key"
+ " AND o.alg_onroerendgoed_keys(+) = m.mld_alg_onroerendgoed_keys"
+ " AND o.alg_gebouw_key = g.alg_gebouw_key(+)"
+ " AND o.alg_verdieping_key = ct.alg_verdieping_key(+)"
+ " AND m.mld_stdmelding_key = msd.mld_stdmelding_key"
+ " AND m.mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var info_params = { suppressEmpty: true };
ROFIELD("fld", L("lcl_alg_loc_adres"), oRs("adres").Value, info_params);
ROFIELD("fld", L("lcl_alg_loc_plaats"), oRs("postcode").Value+" "+oRs("alg_locatie_plaats").Value, info_params);
ROFIELD("fld", L("lcl_estate_locatie_man_code"), oRs("alg_locatie_code").Value, info_params);
ROFIELD("fld", L("lcl_estate_locatie_title"), oRs("alg_locatie_omschrijving").Value, info_params);
ROFIELD("fld", L("lcl_estate_gebouw_man_name"), oRs("alg_gebouw_naam").Value, info_params);
ROFIELD("fld", L("lcl_estate_verdieping_man_descr"), oRs("alg_verdieping_omschrijving").Value, info_params);
if (oRs("cad_tekening_key").Value)
{
var ruimte_params = { suppressEmpty: true, moreinfo: rooturl
+ "/appl/pda/plattegrond.asp?verdieping_key=" + oRs("alg_verdieping_key").Value
+ "&ruimte_key=" + oRs("alg_ruimte_key").Value
+ "&mld_key_dwgxy=" + mld_key
+ "&readonly=1"
+ (oRs("mld_melding_dwgx").Value != null && oRs("mld_melding_dwgy").Value != null
? "&caddwgx=" + oRs("mld_melding_dwgx").Value + "&caddwgy=" + oRs("mld_melding_dwgy").Value
: "")
+ (oRs("cad_thema_key").Value > 0
? "&thema_key=" + oRs("cad_thema_key").Value
: "&nothema=1") };
}
else
{
var ruimte_params = info_params;
}
ROFIELD("fld", L("lcl_estate_ruimte_man_nr"), oRs("alg_ruimte_nr").Value, ruimte_params);
ROFIELD("fld", L("lcl_estate_ruimte_man_sort"), oRs("alg_ruimte_omschrijving").Value, info_params);
ROFIELD("fld", L("lcl_estate_locatie_man_verantw"), oRs("alg_locatie_verantw").Value, info_params);
ROFIELD("fld", L("lcl_estate_locatie_man_verantw_tel"), oRs("alg_locatie_verantw_tel").Value, { suppressEmpty: true, type: "tel", phone_number: oRs("alg_locatie_verantw_tel").Value });
}
oRs.Close();
CONTENT_END();
PAGE_END();
//
// *****************************************************
}
if (mld_key > -1 && this_mld.canClose && action != "forward")
{
// scherm: Afmelden melding
PAGE_START({id: "close-3-" + mld_key, dialog: true});
HEADER({title: L("lcl_close") + " " + subject, back: false});
CONTENT_START();
%>
<form id="closeform" name="closeform" action="<%=rooturl%>/appl/mld/mld_close_save.asp?mld_key=<%=mld_key%>" method="post">
<%
var prefix = "";
var oldRemark = "";
var melder_key = -1;
var req = false;
var stdmld_arr = [];
var disc_arr = [];
var canNoti = false;
sql = "SELECT ''"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = 'MLDAFM' AND fac_srtnotificatie_mode > 0";
var oRs = Oracle.Execute(sql);
var canSrtNoti = !oRs.eof;
oRs.Close();
sql = "SELECT DISTINCT std.mld_stdmelding_afmeldtext"
+ " , mm.mld_melding_opmerking"
+ " , sd.ins_srtdiscipline_prefix"
+ " , std.mld_stdmelding_key"
+ " , std.mld_stdmelding_notify"
+ " , md.ins_discipline_key"
+ " , mdp.mld_disc_params_notify"
+ " , mm.prs_perslid_key"
+ " FROM mld_melding mm"
+ " , mld_stdmelding std"
+ " , mld_discipline md"
+ " , mld_disc_params mdp"
+ " , ins_srtdiscipline sd"
+ " WHERE mld_melding_key IN (" + mld_key + ")"
+ " AND mm.mld_stdmelding_key = std.mld_stdmelding_key"
+ " AND std.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_discipline_key = mdp.mld_ins_discipline_key"
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key";
oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
prefix = oRs("ins_srtdiscipline_prefix").Value || "";
oldRemark = oRs("mld_melding_opmerking").Value;
req = req || ((S("mld_afhandeling_required_for_close") || oRs("mld_stdmelding_afmeldtext").value == 2) && (oldRemark == null));
stdmld_arr[stdmld_arr.length] = oRs("mld_stdmelding_key").Value;
disc_arr[disc_arr.length] = oRs("ins_discipline_key").Value;
melder_key = oRs("prs_perslid_key").Value;
if (canSrtNoti && !canNoti)
{
canNoti = oRs("mld_disc_params_notify").Value == 1 ||
(oRs("mld_disc_params_notify").Value == 2 && oRs("mld_stdmelding_notify").Value == 1);
}
oRs.MoveNext();
}
oRs.Close();
var txt = "";
if (lastopdr)
txt = L("lcl_mld_close_order_close_call") + "<br>";
// 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 goegel = "FcltMgr.openDetail('/appl/fac/fac_faq_search.asp?urole=bo&autosearch=1'"
+ "+'&stdm_str='+'" + stdmld_arr.join(",") + "'"
+ "+'&disc_key_str='+'" + disc_arr.join(",") + "'"
+ ", '" + L("lcl_faq_kennisbank") + "') ";
buttons.push({ icon: "fa-book", title: L("lcl_mld_paste"), action: "PasteFromClipboard()"});
buttons.push({ icon: "fa-lightbulb", title: L("lcl_fac_filterblok"), action: goegel});
}
var sql_from_t = " FROM mld_afmeldtekst"
+ " WHERE ((mld_stdmelding_key IN (" + stdmld_arr.join(",") + ") )"
+ " OR (mld_stdmelding_key IS NULL AND mld_ins_discipline_key IN (" + disc_arr.join(",") + ") )"
+ " OR (mld_stdmelding_key IS NULL AND mld_ins_discipline_key IS NULL))"
+ " AND BITAND(mld_afmeldtekst_usefor, 1) = 1";
var sql_from_o = " FROM mld_opdr mo"
+ " WHERE mo.mld_melding_key = " + ingesloten[0]
+ " AND mo.mld_statusopdr_key in (6, 7, 9)" // status=afgemeld, verwerkt en afgerond
+ " AND mo.mld_opdr_opmerking IS NOT NULL";
var sql = "SELECT SUM(aantal) aantal"
+ " FROM ( SELECT COUNT(*) aantal" + sql_from_t
+ (ingesloten.length == 1
? " UNION SELECT COUNT(*)" + sql_from_o
: ""
)
+ ")";
oRs = Oracle.Execute(sql);
var aantal_teksten = oRs("aantal").Value;
oRs.Close();
if (aantal_teksten > 0)
{
sql = "SELECT mld_afmeldtekst_key"
+ " , " + lcl.xsqla('mld_afmeldtekst_naam', 'mld_afmeldtekst_key')
+ " , " + lcl.xsql('mld_afmeldtekst_omschrijving', 'mld_afmeldtekst_key') + " afmeldtekstoms"
+ " , 2 src"
+ sql_from_t;
if (ingesloten.length == 1)
{
sql += " UNION "
+ "SELECT mo.mld_opdr_key"
+ " ," + safe.quoted_sql(L("lcl_opdr_closeremark") + " /") +"|| mo.mld_opdr_bedrijfopdr_volgnr"
+ " , mo.mld_opdr_opmerking"
+ " , 1"
+ sql_from_o
}
sql += " ORDER BY 4,2";
FCLTselector("stdopmerk",
sql,
{ label: L("lcl_mld_inf_std_opm"),
initKey: -1,
emptyOption: (S("mld_sel_single_closingtext")==2 && aantal_teksten==1 ? null : ""),
extraParamValue: "afmeldtekstoms",
onChange: "PasteFromSelectbox()"});
}
// tekstveld waarin informatie over de afhandeling vermeld kan worden
if (ingesloten.length == 1 && oldRemark)
{
%><div><%=safe.html(oldRemark)%></div><%
}
RWFIELD("opmerk_close", L("lcl_mld_finish_close") + " " + (mld_info.prefix || "") + mld_key, "", {name: "opmerk", multi: true, disabled: false, pclass: "fldtxt" + (req?" required":"")});
if (canNoti)
{
var sql = "SELECT CASE"
+ " WHEN prs_perslid_systeemadres IS NOT NULL"
+ " THEN 1"
+ " ELSE 0"
+ " END hassysteemadres"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_key = " + melder_key;
oRs = Oracle.Execute(sql);
var hassysteemadres = oRs("hassysteemadres").Value;
oRs.Close();
if (hassysteemadres)
{ // bij systeemadres altijd notificeren; geen checkbox tonen.
%> <input type="hidden" id="noti_caller" name="noti_caller" value="1">
<%
}
else
{ // Geen systeemadres dus mag kiezen. Zet wel een default.
CHB_FIELD("noti_caller", L("lcl_mld_noti_caller"), (S("mld_close_noti_default_off") == 1 ? 0 : 1) );
}
}
if (canCloseOpdr.length)
{ %>
<tr>
<td colspan="2">
<% CHB_FIELD("opdr_close", canCloseOpdr.length + L("lcl_mld_ord_close_all"), S("mld_close_opdr_default")); %>
</td>
</tr>
<% }
if (canCloseCtr > 0)
{ %>
<tr>
<td colspan="2">
<% CHB_FIELD("ctr_close", canCloseCtr + L("lcl_mld_ctr_close_all"), 0, { html: "onChange='ctrcloseToggler(this)'" }); %>
</td>
</tr>
<tr>
<td colspan="2">
<div id="inscontrolemode" style="display: none">
<table>
<% for (var i = 0; i < controleModeArray.length; i++)
{ // Maximaal 3 types.
var sctype;
switch (controleModeArray[i])
{
case 1: sctype = L("lcl_ins_srtcontrole_insp"); break;
case 2: sctype = L("lcl_ins_srtcontrole_repl"); break;
case 3: sctype = L("lcl_ins_srtcontrole_cert"); break;
}
sql = "SELECT ins_controlemode_key"
+ " , " + lcl.xsqla('ins_controlemode_oms', 'ins_controlemode_key')
+ " FROM ins_controlemode"
+ " WHERE ins_srtcontrole_type = " + controleModeArray[i]
+ " AND ins_controlemode_success = 1"
+ " ORDER BY 2";
// Methode is voor de status Afgemeld(5) en Historie/Verwerkt(6) altijd ingevuld.
// Required wordt gezet als de selectbox zichtbaar wordt.
FCLTselector("sel_controlemode" + controleModeArray[i],
sql,
{ label: L("lcl_ins_controle_mode") + " " + sctype,
initKey: -1,
emptyOption: L("lcl_select_controlemode"),
selectjustone: true
});
}
%> </table>
</div>
</td>
</tr>
<% }
// De verplichte afmeld (close) kenmerken tonen bij het afmelden. Vooralsnog worden de andere verplichte kenmerken niet getoond.
generateFlexKenmerkBlock({stdm_arr : [stdm_key],
mld_key : mld_key,
close : true,
mobile : true,
showConfidential : this_mld.canViewConfidential,
melder_key: mld_info.melder_key,
srtdisc: S("mld_processing_group_all")? [] : [mld_info.srtdisc_key],
disc: mld_info.disc_key, // Initiele waarde primaire Vakgroep/Behandelteam.
prsautlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
hideteams: false,
show_alg: mld_info.show_alg,
loc_key: mld_info.loc_key,
this_mld: this_mld
});
CONTROLGROUP_START();
if (opdr_opm != "")
BUTTON(L("lcl_mld_opm_paste"), {id: "opmpaste", click: "mld_opmpaste();", dataicon: "fa fa-clipboard"});
BUTTON(L("lcl_close"), {click: "mld_close_submit();", dataicon: "fa fa-flag-checkered"});
BUTTON(L("lcl_cancel"), {datarel: "back", dataicon: "fa-fclt-cancel"} );
CONTROLGROUP_END();
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
PAGE_END();
}
if (mld_key > -1 && this_mld.canAccept && action != "forward")
{
var autfunction = "";
if (fronto)
autfunction = "WEB_MLDFOF";
else if (backo)
autfunction = "WEB_MLDBOF";
else
autfunction = "WEB_MLDUSE";
var transitParam = buildTransitParam(["mld_key", "multi", "maybeDouble", "urole", "opmerk"]);
// Geen autfunction bepaald. Je komt bij FIN niet binnen met een bepaalde rol (urole).
// Alleen PRSreadlevel en PRSwritelevel van belang want fac_functie_min_level = 7 (lezen en schrijven organisatie)
var authparamsMLDBOF = user.checkAutorisation("WEB_MLDBOF", true);
var authparamsMLDBO3 = user.checkAutorisation("WEB_MLDBO3", true);
var authparamsMLDFOF = user.checkAutorisation("WEB_MLDFOF", true);
var hasBehandelteam = 0;
var ingesloten = [];
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding
var mld_info = mld.mld_melding_info(mld_key);
var this_stdm = mld.mld_stdmeldinginfo(mld_info.stdm_key);
var maybeDouble = (!mld_info.parent_key && (this_stdm.doublecheck == 2 || this_stdm.doublecheck == 3));
// Geen child melding en bulk actie mag de maybeDouble meldingen niet op geaccepteerd zetten
if (this_mld.canAccept && !mld_info.parent_key && !(multi && maybeDouble))
{
ingesloten.push(mld_key);
hasBehandelteam += (this_stdm.srtgroep & 4 ? 1 : 0);
}
user.anything_todo_or_abort(ingesloten.length > 0); // We klagen niet over enkele wel en enkele niet
lcl.set_dialect(mld_info.srtdisc_key, "MLD_SRTDISCIPLINE_KEY");
// scherm: Accepteren melding
PAGE_START({id: "accp-4-" + mld_key, dialog: true})
HEADER({title: L("lcl_accept") + " " + subject, back: false});
CONTENT_START();
%>
<script type="text/javascript">
$(function()
{
$("#opmerk_accept").focus();
});
async function mld_accept_submit()
{
if (!await validateForm("u2"))
return false;
$.post($("form[name=acceptform]")[0].action, $("[name=acceptform]").serialize() + "<%=transitParam%>",
McltCallbackAndThenAlways(function() {
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?melding=1&mld_key=" + "<%=mld_key%>";
}), "json");
return true; // disable button
}
function onChangeBehandelteam(behandelteam_key)
{
if (typeof sgBehandelaar2 != "undefined")
{
if (behandelteam_key == -1) // Effici<63>nter
sgBehandelaar2.setValue(-1, "", false, false);
else
sgBehandelaar2.setValue($("#sBehandel2").val(), $("#sBehandel2_show").val(), true, true);
}
}
function mld_cancel()
{
window.history.back();
}
</script>
<form id="acceptform" name="acceptform" action="<%=rooturl%>/appl/mld/mld_accept_save.asp" method="post">
<%
var mld_stdm = "";
var prefix = "";
var oldRemark = "";
var ins_srtdiscipline_key = -1;
var ins_discipline_omschrijving = "";
var mld_ins_discipline_key = -1;
var req = false;
if (ingesloten.length == 1)
{
sql = "SELECT sm.mld_ins_discipline_key"
+ " , sm.mld_stdmelding_key"
+ " , m.mld_melding_opmerking"
+ " , m.mld_ins_discipline_key"
+ " , m.mld_melding_behandelaar2_key"
+ " , sd.ins_srtdiscipline_key"
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
+ " , sd.ins_srtdiscipline_prefix"
+ " FROM mld_melding m"
+ " , mld_stdmelding sm"
+ " , mld_discipline md"
+ " , ins_srtdiscipline sd"
+ " WHERE mld_melding_key = " + ingesloten[0]
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key";
oRs = Oracle.Execute(sql);
mld_stdm = oRs("mld_stdmelding_key").value;
prefix = oRs("ins_srtdiscipline_prefix").value || "";
oldRemark = oRs("mld_melding_opmerking").value;
ins_discipline_omschrijving = oRs("ins_discipline_omschrijving").value;
ins_srtdiscipline_key = oRs("ins_srtdiscipline_key").value;
mld_ins_discipline_key = oRs("mld_ins_discipline_key").value;
mld_melding_behandelaar2_key = oRs("mld_melding_behandelaar2_key").value;
oRs.close();
}
if (!hasBehandelteam)
{
// Vakgroep
RWFIELD("flddisc", L("lcl_vakgroup"), (prefix ? prefix + "-" : "") + ins_discipline_omschrijving, { readonly: true })
// <!-- Meldingen (Discipline) -->
FCLTstdmeldingselector("stdm", "sgStdm", { label: L("lcl_complain"),
perslidKey: user_key,
autfunctionKey: -1, // toch readonly
stdmelding_key: mld_stdm,
readonly: true } );
}
else if (hasBehandelteam)
{
// Behandelteam
FCLTdisciplineselector("mld_ins_discipline",
"sgDisc",
{ label: L("mld_processing_group"),
disc_key: mld_ins_discipline_key,
module: "MLDB",
perslidKey: user_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: (S("mld_processing_group_all") ? -1 : ins_srtdiscipline_key),
onChange: "onChangeBehandelteam"
});
}
// Behandelaar
if (this_mld.canBOwrite || this_mld.canFOwrite)
{
%>
<input type="hidden" id="prs_key" name="prs_key" value="<%=mld_info.melder_key%>">
<input type="hidden" id="disc_key" name="disc_key" value="<%=mld_info.disc_key%>">
<%
var urlAdd = [{urlParam: "prs_key", field: "prs_key", init: mld_info.melder_key}];
if (mld_info.show_alg)
{
%>
<input type="hidden" id="loc_key" name="loc_key" value="<%=mld_info.loc_key%>">
<%
urlAdd.push({urlParam: "loc_key", field: "loc_key", init: mld_info.loc_key});
}
if (!hasBehandelteam)
{
urlAdd.push({urlParam: "disc_key", field: "disc_key", init: mld_info.disc_key});
FCLTpersoonselector("sBehandel",
"sgBehandelaar",
{ perslidKey: (mld_info.behandel_key > 0 ? mld_info.behandel_key : (this_mld.canVakgBOFwrite ? user_key : -1)),
label: L("lcl_mld_behandelaar"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
readonly: !this_mld.canAfhandChange,
filtercode: (mld_info.mld_status == 0 ? "BEHF" : "BEHB")
});
}
else if (hasBehandelteam)
{
urlAdd.push({urlParam: "disc_key", field: "mld_ins_discipline", init: mld_info.mld_ins_discipline_key});
FCLTpersoonselector("sBehandel2",
"sgBehandelaar",
{ idadd: 2,
perslidKey: mld_melding_behandelaar2_key,
label: L("lcl_mld_processor"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
readonly: !this_mld.canAfhandChange,
filtercode: (mld_info.mld_status == 0 ? "BH2F" : "BH2B")
});
}
}
// Reden accepteren
%>
<tr><td class="label"><label for="opmerk_accept"></label></td>
<td ><%=safe.html(oldRemark)%></td>
</tr>
<%
RWFIELD("opmerk_accept", L("lcl_mld_note"), "", {name: "opmerk", multi: true, disabled: false, pclass: "fldtxt" + (req?" required":"")});
CONTROLGROUP_START();
BUTTON(L("lcl_accept"), {click: "mld_accept_submit();", dataicon: "fa-fclt-save"});
BUTTON(L("lcl_cancel"), {datarel: "back", dataicon: "fa-fclt-cancel"} );
CONTROLGROUP_END();
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
PAGE_END();
}
// scherm: Instemmen met melding
PAGE_START({id: "minstem-5-" + mld_key, dialog: true})
HEADER({title: L("lcl_instem") + " " + subject, back: false});
CONTENT_START();
// TODO
CONTENT_END();
PAGE_END();
if (mld_key > -1 && this_mld.canReject && action != "forward")
{
var transitParam = buildTransitParam(["mld_key", "urole", "opmerk"]);
// Geen autfunction bepaald. Je komt bij FIN niet binnen met een bepaalde rol (urole).
// Alleen PRSreadlevel en PRSwritelevel van belang want fac_functie_min_level = 7 (lezen en schrijven organisatie)
var authparamsMLDBOF = user.checkAutorisation("WEB_MLDBOF", true);
var authparamsMLDBO3 = user.checkAutorisation("WEB_MLDBO3", true);
var authparamsMLDFOF = user.checkAutorisation("WEB_MLDFOF", true);
var ingesloten = [];
// scherm: Afwijzen melding
PAGE_START({id: "mrej-5-" + mld_key, dialog: true})
HEADER({title: L("lcl_reject") + " " + subject, back: false});
CONTENT_START();
%>
<script type="text/javascript">
$(function()
{
$("#opmerk_reject").focus();
});
async function mld_reject_submit()
{
if (!await validateForm("u2"))
return false;
$.post( $("form[name=rejectform]")[0].action
, $("[name=rejectform]").serialize() + "<%=transitParam%>"
, McltCallbackAndThenAlways(mld_reject_callback)
, "json"
);
return true; // disable button
}
function mld_reject_callback(data)
{
// mobile kan slechts 1 melding per keer afwijzen
if (data.reject_arr[0].inspect)
{
var insdata = data.reject_arr[0].inspect;
protectRequest.dataToken(insdata);
//jQuery.ajaxSetup({async: false});
$.post( "../ins/ins_inspect_save.asp"
, insdata
, mld_reject_close
, "json"
);
//jQuery.ajaxSetup({async: true});
}
else
{
mld_reject_close(data);
}
}
function mld_reject_close(data)
{
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?melding=1&mld_key=" + "<%=mld_key%>";
}
function mld_cancel()
{
window.history.back();
}
</script>
<form id="rejectform" name="rejectform" action="<%=rooturl%>/appl/mld/mld_reject_save.asp?mld_key=<%=mld_key%>">
<input type="hidden" name="urole" value="<%=mld_key > 0? "bo" : "fe"%>">
<input type="hidden" name="stdm" value="<%=mld_info.stdm_key%>">
<input type="hidden" name="disc" value="<%=mld_info.disc_key%>">
<%
RWFIELD("disc", L("lcl_vakgroup"), (mld_info.prefix ? mld_info.prefix + "-" : "") + mld_info.ins_discipline_omschrijving, {readonly: true})
ROFIELD("remark", "", mld_info.remark, {multi: true, suppressEmpty: true});
RWFIELD("opmerk_reject", L("lcl_mld_inf_Opmerking"), "", {name: "opmerk", multi: true, disabled: false, pclass: "fldtxt" + (req?" required":"")});
// De verplichte afwijs (reject) kenmerken tonen bij het afwijzen. Vooralsnog worden de andere verplichte kenmerken niet getoond.
generateFlexKenmerkBlock({stdm_arr : [stdm_key],
mld_key : mld_key,
cancel : true,
mobile : true,
nameprefix : "mrej_5_",
serie : mld_key > 0 ? mld_key : 0,
extraserie : true,
showConfidential : this_mld.canViewConfidential,
melder_key: mld_info.melder_key,
srtdisc: S("mld_processing_group_all")? [] : [mld_info.srtdisc_key],
disc: mld_info.disc_key, // Initiele waarde primaire Vakgroep/Behandelteam.
prsautlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
hideteams: false,
show_alg: mld_info.show_alg,
loc_key: mld_info.loc_key,
this_mld: this_mld
});
CONTROLGROUP_START();
BUTTON(L("lcl_reject"), {click: "mld_reject_submit();", dataicon: "fa fa-times"});
BUTTON(L("lcl_cancel"), {datarel: "back", dataicon: "fa-fclt-cancel"} );
CONTROLGROUP_END();
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
PAGE_END();
}
if (mld_key > -1 && this_mld.canReopen && action != "forward")
{
// scherm: Heropenen melding
PAGE_START({id: "reopen-6-" + mld_key, dialog: true});
HEADER({title: L("lcl_reopen") + " " + subject, back: false});
CONTENT_START();
%>
<script type="text/javascript">
$(function()
{
$("#opmerk_reopen").focus();
});
async function mld_reopen_submit()
{
if (!await validateForm("u2"))
return false;
$.post( $("form[name=reopenform]")[0].action
, $("[name=reopenform]").serialize() + "<%=transitParam%>"
, McltCallbackAndThenAlways(function() {
window.location.href = "<%=rooturl%>/appl/pda/melding.asp?melding=1&mld_key=" + "<%=mld_key%>";
})
, "json"
);
return true; // disable button
}
function mld_cancel()
{
window.history.back();
}
</script>
<form id="reopenform" name="reopenform" action="<%=rooturl%>/appl/mld/mld_reopen_save.asp?mld_key=<%=mld_key%>">
<input type="hidden" name="urole" value="<%=mld_key > 0? "bo" : "fe"%>">
<input type="hidden" name="stdm" value="<%=mld_info.stdm_key%>">
<input type="hidden" name="disc" value="<%=mld_info.disc_key%>">
<%
ROFIELD("disc", L("lcl_vakgroup"), (mld_info.prefix ? mld_info.prefix + "-" : "") + mld_info.ins_discipline_omschrijving, {readonly: true})
ROFIELD("remark", "", mld_info.remark, {multi: true, suppressEmpty: true});
RWFIELD("opmerk_reopen", L("lcl_mld_note"), "", { name: "opmerk", multi: true, disabled: false, pclass: "fldtxt required" });
CONTROLGROUP_START();
BUTTON(L("lcl_reopen"), {click: "mld_reopen_submit();", dataicon: "fa fa-unlock"});
BUTTON(L("lcl_cancel"), {datarel: "back", dataicon: "fa-fclt-cancel"} );
CONTROLGROUP_END();
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
PAGE_END();
}
if (mld_key > -1 && this_mld.canContinue && action != "forward")
{
// scherm: vervolgmeldingen
function fncolHeader(oRs)
{
var txt = oRs("item").Value;
var hdr_status = ( oRs("status_key").Value != 0
&& oRs("status_key").Value != 4
&& oRs("status_key").Value != 7
? status.getmldstatustext(oRs("status_key").Value)
: ""
);
txt = "<span>" + safe.html(txt) + "</span><span class='cs1'>"
+ (oRs("mobile_detail").Value || "")
+ "</span>";
if (hdr_status)
{
txt = "<span class='n2'>(" + hdr_status + ") </span>" + txt;
}
return txt;
}
function fncolLink(oRs)
{
var url = "../pda/melding.asp?mld_key=" + oRs("item_key").Value;
return url;
}
function fncolContent(oRs, thisModule)
{
var result = ( oRs("mld_melding_onderwerp").Value
? "<span class='subject'>" + safe.html(oRs("mld_melding_onderwerp").Value)+ "</span>"
: toDateTimeString(oRs("datum").Value, false, false, true)
)
+ ( oRs("mld_melding_omschrijving").Value
? "<div class='listbodytext'>" +safe.html(shorttxt(oRs("mld_melding_omschrijving").Value, S("rs_mobile_maxchar"))) + "</div>"
: ""
);
return result;
}
PAGE_START({id: "continue-7-" + mld_key, dialog: true});
%>
<script type="text/javascript">
function vervolg_melding()
{
var purl = "melding.asp?mld_key=-1&urole=fo&mld_continue=1&start_key=<%=mld_key%>";
window.location.href = purl;
}
</script>
<%
HEADER({title: L("lcl_mld_continuation_mld") + " " + subject, back: false});
CONTENT_START();
CONTAINER_START()
BUTTON(L("lcl_add"), {click: "vervolg_melding()", dataicon: "fa fa-plus", dataajax: "false"});
CONTAINER_END();
var sql = "SELECT isd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) item"
+ " , m.mld_melding_key item_key"
+ " , m.mld_melding_onderwerp"
+ " , m.mld_melding_omschrijving"
+ " , m.mld_melding_datum datum"
+ " , m.mld_melding_status status_key"
+ " , id.ins_discipline_omschrijving mobile_detail"
+ " , COALESCE(m.prs_perslid_key_voor, m.prs_perslid_key) prs_perslid_key"
+ " FROM mld_melding m"
+ " , mld_stdmelding sm"
+ " , ins_srtdiscipline isd"
+ " , ins_tab_discipline id"
+ " WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND sm.mld_ins_discipline_key = id.ins_discipline_key"
+ " AND id.ins_srtdiscipline_key = isd.ins_srtdiscipline_key"
+ " AND m.mld_melding_start_key = " + mld_key
+ " ORDER BY item_key DESC";
var rst = new ResultsetTable({ sql: sql
, keyColumn: "item_key"
, linkColumn: fncolLink
, headerColumn: fncolHeader
, contentColumn: fncolContent
, ID: "mld_list_m"
, showAll: true
, noSearch: false
, layout: "card"
});
var cnt = rst.processResultset();
CONTENT_END();
FOOTER();
PAGE_END();
}
// page double calls
PAGE_START({id: "mdbl"})
HEADER({title: L("lcl_mld_save_new_call") + " " + subject, back: false});
CONTENT_START();
%>
<form id="doubleform" name="doubleform">
<%
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
PAGE_END();
PDA_PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END();
%>