FCLT#56050 Behandelteams in het doorsturen modal v1.0

svn path=/Website/trunk/; revision=41055
This commit is contained in:
2019-02-20 07:36:22 +00:00
parent d096f35b96
commit 44b3e23ec7
12 changed files with 439 additions and 287 deletions

View File

@@ -102,12 +102,10 @@ mld = {setmeldingstatus:
},
notifybehandelteam:
function (mld_key, mld_ins_discipline_key, code)
{ // Notificeer BO over secundaire vakgroeps-wijziging
if (!code) // In de toekomst zie ik hier nog wel een MLDACP of MLDFWD komen.
code = "MLDBHG";
function (mld_key, mld_ins_discipline_key)
{ // Notificeer BO medewerkers van het behandelteam over een behandelteam wijziging
if (mld_ins_discipline_key > 0)
Oracle.Execute("BEGIN mld.notifybackoffice ("+mld_key+", '"+code+"', 2); END;");
Oracle.Execute("BEGIN mld.notifybackoffice ("+mld_key+", 'MLDBHG', 2); END;");
},
trackbehandelaar:
@@ -408,6 +406,41 @@ mld = {setmeldingstatus:
+ " AND st.fac_srtnotificatie_code = " + safe.quoted_sql(tcode) + ")";
},
getFwdType:
function (mld_key, this_mld, mld_melding)
{
this_mld = this_mld || mld.func_enabled_melding(mld_key);
mld_melding = mld_melding || mld.mld_melding_info(mld_key);
var fwdInfo = { "fwdType": 0 };
switch (mld_melding.mld_status)
{
case 0: // Pending
case 1: // Afgewezen
case 6: // Verwerkt // [canForward = false && canForwardTeam = false && canFixMelding = false]
break;
case 2: // Nieuw
case 3: // Te accepteren // Corrigeren (Operationeel corrigeren) [canForward = true]
fwdInfo = { "fwdType": 1, "fwdLabel": L("lcl_mld_correct_before") };
break;
case 4: // In behandeling
case 7: // Uitgegeven
if (mld_melding.mld_ins_discipline_key > 0) // Doorsturen (Behandelteam doorsturen) [canForwardTeam = true]
fwdInfo = { "fwdType": 2 }; // fwdType & 2 heeft altijd label L("lcl_mld_forward_team")
else // Corrigeren of Doorsturen kan allebei [canForward = true || canForwardTeam = true]
fwdInfo = { "fwdType": 3,
"fwdLabel": this_mld.canForwardKeten
? L("lcl_keten_forward") // Corrigeren (Vervolgen, GOTO) [canForwardKeten = true]
: L("lcl_active_forward") }; // Corrigeren (Vervolgen, GOSUB) [S("mld_forward_if_active") == 1] /* Uitfaseren tot 2020.1 */
break;
case 5: // Afgemeld // Corrigeren (Administratief corrigeren) [canFixMelding = true]
fwdInfo = { "fwdType": 1, "fwdLabel": L("lcl_mld_correct_after") };
break;
}
return fwdInfo;
},
getFirstApprover:
function (mld_info, mld_opdr)
{
@@ -3494,6 +3527,7 @@ mld = {setmeldingstatus:
+ " , mld_stdmelding_doublecheck"
+ " , mdp.mld_disc_params_fenotes"
+ " , mdp.mld_disc_params_keten"
+ " , mdp.mld_disc_params_srtgroep"
+ " , sm.mld_stdmelding_planbaar"
+ " , (SELECT COUNT(o.mld_opdr_key)"
+ " FROM mld_opdr o"
@@ -3537,6 +3571,7 @@ mld = {setmeldingstatus:
var doublecheck = moRs("mld_stdmelding_doublecheck").Value;
var fenotes = moRs("mld_disc_params_fenotes").Value;
var keten = moRs("mld_disc_params_keten").Value == 1;
var hasTeams = moRs("mld_disc_params_srtgroep").Value & 4;
var public = moRs("mld_melding_publiek").Value;
var planbaar = moRs("mld_stdmelding_planbaar").Value;
var hasopenopdrachten = moRs("openopdrachten").Value > 0;
@@ -3656,19 +3691,20 @@ mld = {setmeldingstatus:
mresult.canWriteFlags = mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDFOF"); // Kan ik flags aanpassen
// Op button niveau
mresult.canChange = false; // Wijzig knop tonen
mresult.canChange = false; // Wijzig knop tonen
mresult.canChangeUrole = (typeof urole == "undefined" ? "" : urole); // (mld_close kent deze niet, en change-t ook niet interactief)
mresult.canAccept = false; // Accepteren
mresult.canReject = false; // Afwijzen
mresult.canForward = false; // Doorsturen
mresult.canClose = false; // Afmelden
mresult.canContinue = false; // Vervolg ('kopie')
mresult.canDoorzet = false; // Doorzetten naar backoffice
mresult.canTerugzet = false; // Terugzetten naar frontoffice
mresult.canAccept = false; // Accepteren
mresult.canReject = false; // Afwijzen
mresult.canForward = false; // Doorsturen
mresult.canForwardTeam = false; // Behandelteam doorsturen
mresult.canClose = false; // Afmelden
mresult.canContinue = false; // Vervolg ('kopie')
mresult.canDoorzet = false; // Doorzetten naar backoffice
mresult.canTerugzet = false; // Terugzetten naar frontoffice
mresult.canCopy = is_kopieerbaar && (mresult.canFEwrite || mresult.canFOwrite || mresult.canBOwrite) && !is_planned_action;
mresult.canAdd2Faq = false; // Voordragen voor kennisbank
mresult.canAfrond = false; // SLA-technisch goedkeuren
mresult.canVerwerk = false; // Verwerkt verklaren
mresult.canAdd2Faq = false; // Voordragen voor kennisbank
mresult.canAfrond = false; // SLA-technisch goedkeuren
mresult.canVerwerk = false; // Verwerkt verklaren
mresult.canAddOpdr = false;
// Op invoerveld niveau
@@ -3849,6 +3885,7 @@ mld = {setmeldingstatus:
// FOF kan alleen omschrijving aanpassen
mresult.canOmsChange = mresult.canWrite("WEB_MLDFOF");
mresult.canAfhandChange = mresult.canWrite("WEB_MLDBOF");
mresult.canForwardTeam = mresult.canWrite("WEB_MLDBOF") && hasTeams;
mresult.canWriteDatums = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3"));
mresult.canAddOpdr = mresult.canWrite("WEB_ORDBOF");
mresult.canSLAChange = (S("mld_sla_indult_for_mldafr_only") == 0 && mresult.canWrite("WEB_MLDBOF")) ||
@@ -5881,17 +5918,20 @@ mld = {setmeldingstatus:
if (caller_key)
sql += " AND m.prs_perslid_key = " + caller_key;
if (behandel_key || uitvopdr_key)
if (uitvopdr_key)
{
var opdr_prs_key = [];
if (behandel_key) opdr_prs_key.push(behandel_key);
if (uitvopdr_key) opdr_prs_key.push(uitvopdr_key);
sql += " AND o.prs_perslid_key IN (" + opdr_prs_key.join(",") + ")";
}
// MLD Behandelaar
if (behandel_key)
sql += " AND m.mld_melding_behandelaar_key = " + behandel_key;
if (behandel_key_arr && behandel_key_arr.length)
//sql += " AND (o.prs_perslid_key IN (" + behandel_key_arr.join(",") + ") OR o.prs_perslid_key IS NULL)";
// Niet toegewezen (prs_perslid_key IS NULL) opdrachten van het opdrachttype Bedrijf Intern (BI) moeten ook getoond worden.
sql += " AND (o.prs_perslid_key IN (" + behandel_key_arr.join(",") + ") OR (o.prs_perslid_key IS NULL AND (" + uitv_type + ") = 'BI'))";
sql += " AND (m.mld_melding_behandelaar_key IN (" + behandel_key_arr.join(",") + ") OR (m.mld_melding_behandelaar_key IS NULL AND (" + uitv_type + ") = 'BI'))";
if (opdrtype_key)
sql += " AND o.mld_typeopdr_key = " + opdrtype_key;

View File

@@ -574,7 +574,7 @@ if (savemode)
if (mld_ins_discipline_key > 0) // Mogelijk dubbel
{
mld.notifybehandelteam(mld_key, mld_ins_discipline_key, "MLDBHG");
mld.notifybehandelteam(mld_key, mld_ins_discipline_key);
}
}

View File

@@ -30,7 +30,7 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"],
<head>
<% FCLTHeader.Generate(); %>
<%
var mld_key = getQParamInt('mld_key');
var mld_key = getQParamInt("mld_key");
var opmerk = getFParam("opmerk", "");
var this_mld = mld.func_enabled_melding(mld_key);
user.auth_required_or_abort(this_mld.canForward || this_mld.canFixMelding);
@@ -57,6 +57,15 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"],
var eigenMelding = user.isCollega(mld_melding.melder_key);
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
// Wat gaan we doen? (fwdType:)
// 1. Vakgroep wijzigen (= Corrigeren)
// 2. Behandelteam wijzigen (= Doorsturen)
var fwdInfo = mld.getFwdType(mld_key, this_mld, mld_melding);
var fwdType = getQParamInt("fwdType", fwdInfo.fwdType);
if (!(fwdType & fwdInfo.fwdType) || (fwdType != 1 && fwdType != 2))
INTERNAL_ERROR_INVALID_FWDTYPE
%>
<script>
@@ -122,8 +131,25 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"],
// Melding leegmaken
sgStdm.setValue(-1, "", false, false, null, true);
sgStdm.CheckJustOne();
if (window.sgBehandelaar)
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*/);
}
}
function process_stdm_info(data, textStatus)
@@ -165,88 +191,123 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"],
$(function()
{
parent.$("span.ui-dialog-title").html("<%=(fwdType == 1 ? fwdInfo.fwdLabel : L("lcl_mld_forward_team"))%>");
if (<%=S("mld_forward_auto_fill")%> == 1)
loadKenmerk(<%=mld_melding.stdm%>);
});
</script>
</head>
<body class="modal" id="mod_mldforward">
<form action="mld_forward_save.asp?mld_key=<%=mld_key%>" method="post" name="u2">
<form action="mld_forward_save.asp?mld_key=<%=mld_key%>&fwdType=<%=fwdType%>" method="post" name="u2">
<% BLOCK_START("mldForward", this_mld.canForward?L("lcl_forward"):L("lcl_fixmelding") + " " + mld_melding.prefix + mld_key, {tableid: "tblforward"})
<% BLOCK_START("mldForward", (fwdType == 1 ? fwdInfo.fwdLabel : L("lcl_mld_forward_team")) + " " + mld_melding.prefix + mld_key, {tableid: "tblforward"})
var eindlevel = (mld_melding.alg_level ? mld_melding.alg_level : 2);
var urlAdd = [];
if ((S("mld_edit_layout") == 1)) // Plaats gegevens worden voor de discipline/stdmelding gegevens getoond. Stdmelding afhankelijk van dienstlocatie maken. Daarom locatie en gebouw meegeven.
if (fwdType == 1)
{
urlAdd = [{urlParam: "lockey", field: "locatiekey", init: mld_melding.loc_key}]
if (eindlevel >= 3)
urlAdd.push({urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key});
if (eindlevel >= 4)
urlAdd.push({urlParam: "flrkey", field: "verdiepingkey", init: mld_melding.flr_key});
if (eindlevel >= 5)
urlAdd.push({urlParam: "roomkey", field: "ruimtekey", init: mld_melding.room_key});
var eindlevel = (mld_melding.alg_level ? mld_melding.alg_level : 2);
var urlAdd = [];
if ((S("mld_edit_layout") == 1)) // Plaats gegevens worden voor de discipline/stdmelding gegevens getoond. Stdmelding afhankelijk van dienstlocatie maken. Daarom locatie en gebouw meegeven.
{
urlAdd = [{urlParam: "lockey", field: "locatiekey", init: mld_melding.loc_key}]
if (eindlevel >= 3)
urlAdd.push({urlParam: "bldkey", field: "gebouwkey", init: mld_melding.bld_key});
if (eindlevel >= 4)
urlAdd.push({urlParam: "flrkey", field: "verdiepingkey", init: mld_melding.flr_key});
if (eindlevel >= 5)
urlAdd.push({urlParam: "roomkey", field: "ruimtekey", init: mld_melding.room_key});
}
// Vakgroep
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_vakgroup"),
disc_key: S("mld_forward_auto_fill") ? mld_melding.disc : -1,
module: "MLDP",
perslidKey: user_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: S("mld_forward_all") == 1? -1 : mld_melding.srtdisc,
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,
stdmelding_key: S("mld_forward_auto_fill") ? mld_melding.stdm : -1,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: (S("mld_forward_all") == 1? -1 : mld_melding.srtdisc),
urlAdd: urlAdd,
filtercode: this_mld.canForwardKeten? "VDK" : "",
onChange: "onChangeStdMelding",
required: true
});
}
else if (fwdType == 2)
{
// Behandelteam
FCLTdisciplineselector("mld_ins_discipline",
"sgDisc",
{ label: L("mld_processing_group"),
disc_key: (S("mld_forward_auto_fill") ? mld_melding.mld_ins_discipline_key : -1),
module: "MLDB",
perslidKey: user_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: (S("mld_processing_group_all") == 1 ? -1 : mld_melding.srtdisc),
onChange: "onChangeBehandelteam"
});
}
// Vakgroep
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_vakgroup"),
disc_key: S("mld_forward_auto_fill") ? mld_melding.disc : null,
module: "MLD",
perslidKey: user_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: S("mld_forward_all") == 1? null : mld_melding.srtdisc,
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,
stdmelding_key: S("mld_forward_auto_fill") ? mld_melding.stdm : null,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: S("mld_forward_all") == 1? null : mld_melding.srtdisc,
urlAdd: urlAdd,
filtercode: this_mld.canForwardKeten? "VDK" : null,
onChange: "onChangeStdMelding",
required: true
});
// Behandelaar
if (S("mld_forward_can_assign"))
{
%>
<input type="hidden" id="person" name="person" value="<%=mld_melding.melder_key%>">
<input type="hidden" id="person" name="person" value="<%=mld_melding.melder_key%>">
<%
var urlAdd = [{urlParam: "prs_key", field: "person", init: mld_melding.melder_key},
{urlParam: "disc_key", field: "disc", init: S("mld_forward_auto_fill") ? mld_melding.disc : null}];
var urlAdd = [{urlParam: "prs_key", field: "person", init: mld_melding.melder_key}];
if (mld_melding.show_alg)
{
urlAdd.push({urlParam: "loc_key", field: "loc_key", init: mld_melding.loc_key});
if (mld_melding.show_alg)
{
urlAdd.push({urlParam: "loc_key", field: "loc_key", init: mld_melding.loc_key});
%>
<input type="hidden" id="loc_key" name="loc_key" value="<%=mld_melding.loc_key%>">
<input type="hidden" id="loc_key" name="loc_key" value="<%=mld_melding.loc_key%>">
<%
}
}
if (fwdType == 1)
{
urlAdd.push({urlParam: "disc_key", field: "disc", init: (S("mld_forward_auto_fill") ? mld_melding.disc : -1)});
FCLTpersoonselector("sBehandel",
"sgBehandelaar",
{ perslidKey: S("mld_forward_auto_fill") ? mld_melding.behandel_key : null,
{ perslidKey: (S("mld_forward_auto_fill") ? mld_melding.behandel_key : -1),
label: L("lcl_mld_behandelaar"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
filtercode: (mld_melding.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_melding.mld_ins_discipline_key : -1)});
FCLTpersoonselector("sBehandel2",
"sgBehandelaar",
{ idadd: 2,
perslidKey: (S("mld_forward_auto_fill") ? mld_melding.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_melding.mld_status == 0 ? "BH2F" : "BH2B")
});
}
}
if ((urole == "bo" || urole == "fo") && (S("mld_melding_flags") > 0))
@@ -292,7 +353,7 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"],
BLOCK_END()
var buttons = [ {title: L("lcl_forward"), action:"mld_forward()", singlepress: true, id: "btn_forward_submit" },
{title: L("lcl_cancel"), action:"mld_cancel()" } ];
CreateButtons(buttons)
CreateButtons(buttons);
IFACE.FORM_END();
%>

View File

@@ -26,14 +26,29 @@ var JSON_Result = true;
<%
protectRequest.validateToken();
var mld_key = getQParamInt('mld_key');
var stdm_key = getFParamInt("stdm");
var mld_key = getQParamInt("mld_key");
var fwdType = getQParamInt("fwdType");
var opmerk = getFParam("opmerk", "");
var this_mld = mld.func_enabled_melding(mld_key);
var sBehandel = getFParamInt("sBehandel", -1);
user.auth_required_or_abort(this_mld.canForward || this_mld.canFixMelding);
var mld_melding = mld.mld_melding_info(mld_key);
var old_disc = mld_melding.disc;
var new_disc = getFParamInt("disc", old_disc);
var old_stdm = mld_melding.stdm;
var new_stdm = getFParamInt("stdm", old_stdm);
var has_new_stdm = fwdType == 1 && old_stdm != new_stdm;
var old_mld_disc = mld_melding.mld_ins_discipline_key;
var new_mld_disc = getFParamInt("mld_ins_discipline", old_mld_disc);
var old_beh = mld_melding.behandel_key;
var new_beh = getFParamInt("sBehandel", old_beh);
var old_beh2 = mld_melding.behandel2_key;
var new_beh2 = getFParamInt("sBehandel2", old_beh2);
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
var locatiekey = mld_melding.loc_key;
@@ -47,72 +62,70 @@ if (locatiekey < 0 && mld_melding.deladdress)
locatiekey = oRs("alg_locatie_key").Value;
oRs.Close();
}
var prs_bedrijf_key = mld.dienst_controle(stdm_key, locatiekey, mld_melding.bld_key, mld_melding.room_key, mld_melding.perslid_key_voor);
var prs_bedrijf_key = mld.dienst_controle(new_stdm, locatiekey, mld_melding.bld_key, mld_melding.room_key, mld_melding.perslid_key_voor);
var sql = "SELECT m.mld_melding_opmerking"
+ " , m.mld_melding_spoed"
+ " , m.mld_melding_einddatum"
+ " , m.mld_melding_einddatum_std"
+ " , m.mld_alg_locatie_key alg_locatie_key"
+ " , COALESCE (aog.alg_gebouw_key, aog.alg_terreinsector_key) alg_gebouw_key"
+ " , aog.alg_verdieping_key alg_verdieping_key"
+ " , aog.alg_ruimte_key alg_ruimte_key"
+ " FROM mld_melding m, mld_stdmelding sm, alg_v_allonrgoed_gegevens aog"
+ " WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND m.mld_melding_key = " + mld_key
+ " AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)";
var sql = "SELECT mm.mld_stdmelding_key"
+ " , mm.mld_melding_opmerking"
+ " , mm.mld_melding_spoed"
+ " , msm.mld_ins_discipline_key"
+ " , mm.mld_melding_einddatum"
+ " , mm.mld_melding_einddatum_std"
+ " , mm.mld_melding_behandelaar_key"
+ " , mm.mld_alg_locatie_key alg_locatie_key"
+ " , COALESCE (g.alg_gebouw_key, g.alg_terreinsector_key) alg_gebouw_key"
+ " , g.alg_verdieping_key alg_verdieping_key"
+ " , g.alg_ruimte_key alg_ruimte_key"
+ " FROM mld_melding mm, mld_stdmelding msm, alg_v_allonrgoed_gegevens g"
+ " WHERE mm.mld_stdmelding_key = msm.mld_stdmelding_key"
+ " AND mld_melding_key = " + mld_key
+ " AND mm.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys(+)";
var oRs = Oracle.Execute(sql);
var old_stdm = oRs("mld_stdmelding_key").Value;
var old_disc = oRs("mld_ins_discipline_key").Value;
var old_beh = oRs("mld_melding_behandelaar_key").Value || -1;
var mld_opm = oRs("mld_melding_opmerking").Value || "";
var spoed = oRs("mld_melding_spoed").Value;
var einddatum = new Date(oRs("mld_melding_einddatum").Value);
var einddatum_std = new Date(oRs("mld_melding_einddatum_std").Value);
var alg_ruimte_key = oRs("alg_ruimte_key").Value || -1;
var alg_verdieping_key = oRs("alg_verdieping_key").Value || -1;
var alg_gebouw_key = oRs("alg_gebouw_key").Value || -1;
var alg_locatie_key = oRs("alg_locatie_key").Value || -1;
var mld_opm = oRs("mld_melding_opmerking").Value || "";
var spoed = oRs("mld_melding_spoed").Value;
var einddatum = new Date(oRs("mld_melding_einddatum").Value);
var einddatum_std = new Date(oRs("mld_melding_einddatum_std").Value);
var alg_ruimte_key = oRs("alg_ruimte_key").Value || -1;
var alg_verdieping_key = oRs("alg_verdieping_key").Value || -1;
var alg_gebouw_key = oRs("alg_gebouw_key").Value || -1;
var alg_locatie_key = oRs("alg_locatie_key").Value || -1;
oRs.Close();
// abort if required level for forwarding is missing
// (only if required according to vakgroeptype)
var this_stdm = mld.mld_stdmeldinginfo(stdm_key);
var prev_stdm = mld.mld_stdmeldinginfo(mld_melding.stdm);
sql = "SELECT sd.ins_srtdiscipline_alg"
+ " FROM mld_stdmelding sm"
+ " , mld_discipline d"
+ " , ins_srtdiscipline sd"
+ " WHERE sm.mld_ins_discipline_key = d.ins_discipline_key"
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND sm.mld_stdmelding_key = " + mld_melding.stdm;
var this_stdm = mld.mld_stdmeldinginfo(new_stdm);
var oRs = Oracle.Execute(sql);
var ins_srtdiscipline_alg = oRs("ins_srtdiscipline_alg").Value;
if (ins_srtdiscipline_alg)
// Alleen als stdm veranderd is
if (has_new_stdm)
{
switch (this_stdm.alg_onrgoed_niveau)
// Abort als required alg_level van new_stdm niet ingevuld is
// Alleen als dit ingevuld kon worden in de oude melding (volgens de old_srtdisc)
sql = "SELECT sd.ins_srtdiscipline_alg"
+ " FROM mld_stdmelding sm"
+ " , mld_discipline d"
+ " , ins_srtdiscipline sd"
+ " WHERE sm.mld_ins_discipline_key = d.ins_discipline_key"
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND sm.mld_stdmelding_key = " + old_stdm;
var oRs = Oracle.Execute(sql);
var ins_srtdiscipline_alg = oRs("ins_srtdiscipline_alg").Value || 0;
if (ins_srtdiscipline_alg > 0)
{
case "R": if (alg_ruimte_key == -1 && ins_srtdiscipline_alg == 1) { abort_with_warning(L("lcl_mld_room_not_specified")); }
break;
case "V": if (alg_verdieping_key == -1 && ins_srtdiscipline_alg <= 3) { abort_with_warning(L("lcl_mld_floor_not_specified")); }
break;
case "G": if (alg_gebouw_key == -1 && ins_srtdiscipline_alg <= 5) { abort_with_warning(L("lcl_mld_building_not_specified")); }
break;
case "L": if (alg_locatie_key == -1 && ins_srtdiscipline_alg <= 7) { abort_with_warning(L("lcl_mld_location_not_specified")); }
break;
switch (this_stdm.alg_onrgoed_niveau)
{
case "R": if (alg_ruimte_key == -1 && ins_srtdiscipline_alg == 1) { abort_with_warning(L("lcl_mld_room_not_specified")); }
break;
case "V": if (alg_verdieping_key == -1 && ins_srtdiscipline_alg <= 3) { abort_with_warning(L("lcl_mld_floor_not_specified")); }
break;
case "G": if (alg_gebouw_key == -1 && ins_srtdiscipline_alg <= 5) { abort_with_warning(L("lcl_mld_building_not_specified")); }
break;
case "L": if (alg_locatie_key == -1 && ins_srtdiscipline_alg <= 7) { abort_with_warning(L("lcl_mld_location_not_specified")); }
break;
}
}
}
var new_disc = this_stdm.ins_discipline_key;
var autoorder = stdm_key != old_stdm && this_stdm.autoorder == 1;
var autoorder = has_new_stdm && this_stdm.autoorder == 1;
var save_notitie = false;
var result = {success: true, message: "", key: mld_key, autoorder: autoorder};
if (stdm_key == old_stdm && old_beh == sBehandel)
var result = { success: true, message: "", key: mld_key, autoorder: autoorder };
if ((fwdType == 1 && new_stdm == old_stdm && old_beh == new_beh) ||
(fwdType == 2 && new_mld_disc == old_mld_disc && old_beh2 == new_beh2))
{
result.message = L("lcl_not_forwarded");
result.success = false;
@@ -120,16 +133,33 @@ if (stdm_key == old_stdm && old_beh == sBehandel)
else
{
result.toaster = L("lcl_forwarded");
var fields = [ { dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), buildTrackText: buildStdmTrackText }
];
if (S("mld_forward_can_assign"))
var fields = [];
if (fwdType == 1)
{
fields.push({ dbs: "mld_melding_behandelaar_key", typ: "key", frm: "sBehandel", foreign: "prs_perslid" });
fields = [{ dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), buildTrackText: buildStdmTrackText }];
if (S("mld_forward_can_assign"))
{
fields.push({ dbs: "mld_melding_behandelaar_key", typ: "key", frm: "sBehandel", foreign: "prs_perslid" });
}
else if (mld_melding.mld_status != 5)
{
fields.push({ dbs: "mld_melding_behandelaar_key", typ: "key", val: -1, foreign: "prs_perslid" });
}
}
else if (mld_melding.mld_status != 5)
else if (fwdType == 2)
{
fields.push({ dbs: "mld_melding_behandelaar_key", typ: "key", val: -1, foreign: "prs_perslid" });
fields = [{ dbs: "mld_ins_discipline_key", typ: "key", frm: "mld_ins_discipline", track: L("mld_processing_group"), foreign: "mld_discipline" }];
if (S("mld_forward_can_assign"))
{
fields.push({ dbs: "mld_melding_behandelaar2_key", typ: "key", frm: "sBehandel2", foreign: "prs_perslid" });
}
else if (mld_melding.mld_status != 5)
{
fields.push({ dbs: "mld_melding_behandelaar2_key", typ: "key", val: -1, foreign: "prs_perslid" });
}
}
if (S("mld_melding_flags") > 0)
@@ -155,29 +185,29 @@ else
else
{ // Achteraan opmerkingsveld.
var new_opm = mld_opm + "\n" + opmerk;
fields.push({ dbs: "mld_melding_opmerking", typ: "varchar", val: new_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
fields.push({ dbs: "mld_melding_opmerking", typ: "varchar", val: new_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
}
if (!this_stdm.prioriteiten[spoed])
fields.push({ dbs: "mld_melding_spoed", typ: "key", val: 3, track: L("lcl_mld_urg"), foreign: mld.getpriotext });
fields.push({ dbs: "mld_melding_spoed", typ: "key", val: 3, track: L("lcl_mld_urg"), foreign: mld.getpriotext });
var mldUpd = buildTrackingUpdate("mld_melding", " mld_melding_key = " + mld_key, fields);
Oracle.Execute(mldUpd.sql);
if (this_stdm.planbaar != 2)
{
// Als een melding wordt doorgestuurd naar een andere stdmelding die niet planbaar is, kan de einddatum aangepast worden door de trigger mld_t_mld_melding_B_IU.
// Dan wordt dat niet getrackt. Hier controleren of de einddatum door de trigger is aangepast en desnoods tracking toevoegen.
var sql = "SELECT m.mld_melding_einddatum"
+ " FROM mld_melding m"
+ " WHERE m.mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
var einddatum_new = new Date(oRs("mld_melding_einddatum").Value);
oRs.Close();
// Als een melding wordt doorgestuurd naar een andere stdmelding die niet planbaar is, kan de einddatum aangepast worden door de trigger mld_t_mld_melding_B_IU.
// Dan wordt dat niet getrackt. Hier controleren of de einddatum door de trigger is aangepast en desnoods tracking toevoegen.
var sql = "SELECT m.mld_melding_einddatum"
+ " FROM mld_melding m"
+ " WHERE m.mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
var einddatum_new = new Date(oRs("mld_melding_einddatum").Value);
oRs.Close();
var enddateTracking = "";
// Compare minutes, not (milli)seconds
if (Math.floor(einddatum.getTime()/60000) != Math.floor(einddatum_new.getTime()/60000))
enddateTracking = L("lcl_mld_enddate") + ": " + buildTrackText("datetime", einddatum, einddatum_new);
var enddateTracking = "";
// Compare minutes, not (milli)seconds
if (Math.floor(einddatum.getTime()/60000) != Math.floor(einddatum_new.getTime()/60000))
enddateTracking = L("lcl_mld_enddate") + ": " + buildTrackText("datetime", einddatum, einddatum_new);
}
// Eventuele (gewijzigde) objecten zijn nu ook opgeslagen.
@@ -186,29 +216,29 @@ else
if (this_stdm.planbaar != 2)
{
var sql = "SELECT m.mld_melding_einddatum_std"
+ " FROM mld_melding m"
+ " WHERE m.mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
var einddatum_std_new = new Date(oRs("mld_melding_einddatum_std").Value);
oRs.Close();
var sql = "SELECT m.mld_melding_einddatum_std"
+ " FROM mld_melding m"
+ " WHERE m.mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
var einddatum_std_new = new Date(oRs("mld_melding_einddatum_std").Value);
oRs.Close();
// Compare minutes, not (milli)seconds
if (Math.floor(einddatum_std.getTime()/60000) != Math.floor(einddatum_std_new.getTime()/60000))
{
sql = "UPDATE mld_melding"
+ " SET mld_melding_einddatum = " + einddatum_std_new.toSQL(true)
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
enddateTracking = L("lcl_mld_enddate") + ": " + buildTrackText("datetime", einddatum, einddatum_std_new); // Vervangt mogelijke bestaande enddate-tracking
}
if (enddateTracking != "")
mldUpd.trackarray.push(enddateTracking);
// Compare minutes, not (milli)seconds
if (Math.floor(einddatum_std.getTime()/60000) != Math.floor(einddatum_std_new.getTime()/60000))
{
sql = "UPDATE mld_melding"
+ " SET mld_melding_einddatum = " + einddatum_std_new.toSQL(true)
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
enddateTracking = L("lcl_mld_enddate") + ": " + buildTrackText("datetime", einddatum, einddatum_std_new); // Vervangt mogelijke bestaande enddate-tracking
}
mld.keepFlexDocuments(mld_key, old_stdm, stdm_key);
var flexdoctrack = mld.moveFlexStdmelding(mld_key, old_stdm, stdm_key);
if (enddateTracking != "")
mldUpd.trackarray.push(enddateTracking);
}
mld.keepFlexDocuments(mld_key, old_stdm, new_stdm);
var flexdoctrack = mld.moveFlexStdmelding(mld_key, old_stdm, new_stdm);
// Sql met de huidige kenmerken rekening houdend met de juiste vakgroep en melding.
// Ander kenmerken worden door de functie saveFlexKenmerken verwijderd (FSN#18613)
@@ -255,7 +285,7 @@ else
+ " OR (mk.mld_stdmelding_key = s.mld_ins_discipline_key AND mk.mld_kenmerk_niveau = 'D')"
+ " OR (mk.mld_stdmelding_key = d.ins_srtdiscipline_key AND mk.mld_kenmerk_niveau = 'T'))"
+ " AND mk.mld_srtkenmerk_key = kenm_old.mld_srtkenmerk_key(+)"
+ " AND s.mld_stdmelding_key = " + stdm_key
+ " AND s.mld_stdmelding_key = " + new_stdm
+ " AND mk.mld_kenmerk_verwijder IS NULL)"
allKenmerkenSQL = "SELECT "+lcl.xsql('t.mld_srtkenmerk_omschrijving', 't.mld_srtkenmerk_key') +" kenmerk_omschrijving"
@@ -272,19 +302,18 @@ else
var flextrack = [];
if (this_mld.canFlexChange) // anders veel te riskant (FSN#38017)
{
var flextrack =
saveFlexKenmerken(mld_key, { kenmerkTable: "mld_kenmerkmelding",
kenmerkParentKey : "mld_melding_key",
kenmerkWaarde: "mld_kenmerkmelding_waarde",
kenmerkKey: "mld_kenmerk_key",
currentKenmerkenSQL: currentKenmerkenSQL,
allKenmerkenSQL: allKenmerkenSQL,
requestQF: Request.Form,
isNew: false,
flexPath: "MLD/M",
tracking: true,
module: "MLD"
});
var flextrack = saveFlexKenmerken(mld_key, { kenmerkTable: "mld_kenmerkmelding",
kenmerkParentKey : "mld_melding_key",
kenmerkWaarde: "mld_kenmerkmelding_waarde",
kenmerkKey: "mld_kenmerk_key",
currentKenmerkenSQL: currentKenmerkenSQL,
allKenmerkenSQL: allKenmerkenSQL,
requestQF: Request.Form,
isNew: false,
flexPath: "MLD/M",
tracking: true,
module: "MLD"
});
}
if (mldUpd.trackarray.length || flexdoctrack.length || flextrack.length)
@@ -293,26 +322,29 @@ else
mld.trackmeldingupdate(mld_key, L("lcl_mld_is_mldupdtrack").format(formattedID) + "\n" + mldUpd.trackarray.concat(flexdoctrack).concat(flextrack).join("\n"));
}
// mldUpd.oldjsvals bevat helaas niet old_disc dus die hebben we al eerder bepaald.
// Met status=5 (afgemeld) zitten we in de uitzonderlijke situatie dat iemand achteraf
// Met status = 5 (afgemeld) zitten we in de uitzonderlijke situatie dat iemand achteraf
// nog adminstratief de melding corrigeerd. Dan blijven we wel van de status af.
if (mld_melding.mld_status != 5)
if (has_new_stdm && mld_melding.mld_status != 5)
{ // Zetten van de status op ingevoerd en afhandelen van de tracking.
// De oude status kan 2, 3, en afhankelijk van discipline/setting
// mld_disc_params_keten of mld_forward_if_active ook 4 of 7 zijn.
if (old_disc != new_disc && S("mld_forward_if_active") == 0)
{
mld.setmeldingstatus(mld_key, 3); // Evt naar 'ingezien'
mld.setmeldingstatus(mld_key, 2); // Terug naar 'ingevoerd'
mld.setmeldingstatus(mld_key, 3); // Evt naar 'Ingezien'
mld.setmeldingstatus(mld_key, 2); // Terug naar 'Ingevoerd'
}
mld.nextworkflowstep(mld_key, -1); // Is de nieuwe een workflowstart?
}
// Submit additional tracking MLDBEH als behandelaar is aangepast.
if (old_beh != sBehandel)
{ // Anders is-ie niet veranderd.
mld.trackbehandelaar(mld_key, sBehandel);
}
if (old_beh != new_beh)
mld.trackbehandelaar(mld_key, new_beh);
if (old_beh2 != new_beh2)
mld.trackbehandelaar2(mld_key, new_beh2);
if (old_mld_disc != new_mld_disc)
mld.notifybehandelteam(mld_key, new_mld_disc);
}
Response.Write(JSON.stringify(result));

View File

@@ -267,6 +267,7 @@ function mld_list (pautfunction, params)
+ ", m.mld_melding_t_uitvoertijd.eenheid uitvoertijd_eenheid"
+ ", " + (showgekoppeld ? "m.mld_melding_parentkey" : "NULL") + " mld_melding_parentkey"
+ ", m.mld_adres_key"
+ ", m.mld_ins_discipline_key"
+ ", std.mld_stdmelding_volgnr"
+ ", std.mld_stdmelding_doublecheck"
+ ", std.mld_stdmelding_planbaar"
@@ -675,12 +676,16 @@ function mld_list (pautfunction, params)
// We weten al dat we mogen lezen. Geef dat mee aan func_enabled_melding, die wordt daar efficienter van
var mldkey = oRs("mld_melding_key").Value;
var this_mld = mld.func_enabled_melding(mldkey, { dontcarelink: true, knownread: true });
var eEdit = this_mld.canChange; // Wijzigen
var eReject = this_mld.canReject; // Afwijzen
var eClose = this_mld.canClose; // Afmelden
var eAccept = this_mld.canAccept; // Accepteren
var eContinue = this_mld.canContinue; // Vervolg ('kopie')
var eForward = this_mld.canForward; // Doorsturen
var eEdit = this_mld.canChange; // Wijzigen
var eReject = this_mld.canReject; // Afwijzen
var eClose = this_mld.canClose; // Afmelden
var eAccept = this_mld.canAccept; // Accepteren
var eContinue = this_mld.canContinue; // Vervolg ('kopie')
var mld_ins_discipline_key = oRs("mld_ins_discipline_key").Value;
var eForward = this_mld.canForward && !(mld_ins_discipline_key > 0); // Doorsturen Vakgroep
var eForwardTeam = this_mld.canForwardTeam; // Doorsturen Behandelteam
// Zijn er velden verplicht die niet zijn ingevuld?
// Startdatum, Einddatum, Melding voor (persoon), Vakgroep en Melding (stdmelding) worden door enkele constraint op de mld_melding tabel al afgedwongen.
// Om een melding te forwarden/doorsturen moeten namelijk alle verplichte gegevens zijn ingevuld. Dat kan het geval zijn bij extern aangemaakte meldingen.
@@ -700,27 +705,27 @@ function mld_list (pautfunction, params)
}
// Hier niet de functie mld.mld_melding_info(mldkey) gebruiken om mld_melding informatie op te halen.
// Een groot gedeelte van de mld_melding informatie heb ik trouwens al.
var mld_melding = {mld_key: mldkey,
mld_onderwerp: oRs("mld_melding_onderwerp").Value,
mld_omschr: oRs("mld_melding_omschrijving").Value,
kostenpl_key: oRs("prs_kostenplaats_key").Value || -1,
alg_onrgoed_niveau: oRs("alg_onrgoed_niveau").Value,
alg_level: alg_level,
show_alg: alg_level > 0,
show_ins: oRs("ins_srtdiscipline_ins").Value == 1,
show_bes: oRs("ins_srtdiscipline_bes").Value == 1,
kpnverplicht: (oRs("ins_discipline_kpnverplicht").Value == 1),
loc_key: oRs("alg_locatie_key").Value,
bld_key: oRs("alg_gebouw_key").Value,
flr_key: oRs("alg_verdieping_key").Value,
room_key: oRs("alg_ruimte_key").Value,
deladdress: oRs("mld_adres_key").Value,
srtinst_verplichtstatus: (oRs("ins_srtinst_verplichtstatus").Value == 1),
freetext: oRs("mld_stdmelding_freetext").Value
var mld_melding = { mld_key: mldkey,
mld_onderwerp: oRs("mld_melding_onderwerp").Value,
mld_omschr: oRs("mld_melding_omschrijving").Value,
kostenpl_key: oRs("prs_kostenplaats_key").Value || -1,
alg_onrgoed_niveau: oRs("alg_onrgoed_niveau").Value,
alg_level: alg_level,
show_alg: alg_level > 0,
show_ins: oRs("ins_srtdiscipline_ins").Value == 1,
show_bes: oRs("ins_srtdiscipline_bes").Value == 1,
kpnverplicht: (oRs("ins_discipline_kpnverplicht").Value == 1),
loc_key: oRs("alg_locatie_key").Value,
bld_key: oRs("alg_gebouw_key").Value,
flr_key: oRs("alg_verdieping_key").Value,
room_key: oRs("alg_ruimte_key").Value,
deladdress: oRs("mld_adres_key").Value,
srtinst_verplichtstatus: (oRs("ins_srtinst_verplichtstatus").Value == 1),
freetext: oRs("mld_stdmelding_freetext").Value
};
emptyRequiredFields = mld.getEmptyRequiredFields(mld_melding);
var eEmptyRequiredFields = emptyRequiredFields; // Zijn er verplichte velden niet ingevuld voor het doorsturen?
eForward = eForward && !eEmptyRequiredFields; // Als er verplichte velden niet zijn ingevuld dan niet doorsturen maar eerste de lege velden in laten vullen.
var eEmptyRequiredFields = emptyRequiredFields; // Zijn er verplichte velden niet ingevuld voor het doorsturen?
eForward = eForward && !eEmptyRequiredFields; // Als er verplichte velden niet zijn ingevuld dan niet doorsturen maar eerste de lege velden in laten vullen.
}
var eTerugzet = this_mld.canTerugzet; // Terugzetten naar frontoffice
var eDoorzet = this_mld.canDoorzet; // Doorzetten naar backoffice
@@ -734,6 +739,7 @@ function mld_list (pautfunction, params)
eAccept: eAccept,
eContinue: eContinue,
eForward: eForward,
eForwardTeam: eForwardTeam,
eEmptyRequiredFields: eEmptyRequiredFields,
eGroup: eGroup,
eTerugzet: eTerugzet,
@@ -1283,8 +1289,10 @@ function mld_list (pautfunction, params)
rst.addAction({ action: "mld_accept", caption: L("lcl_mld_accept"), enabler:"eAccept", multi: multiActions, multiOnce: true } );
rst.addAction({ action: "mld_continue", caption: L("lcl_mld_continuation"), enabler: "eContinue", multi: multiActions, multiOnce: true } );
// E<>n van beiden, eEmptyRequiredFields of eForward, is true.
rst.addAction({ action: "mld_forward", caption: L("lcl_forward"), enabler: "eForward" } );
rst.addAction({ action: "mld_forward_empty", caption: L("lcl_forward"), enabler: "eEmptyRequiredFields" } );
rst.addAction({ action: "mld_forward_disc", caption: L("lcl_mld_forward_disc"), enabler: "eForward" } );
rst.addAction({ action: "mld_forward_empty", caption: L("lcl_mld_forward_disc"), enabler: "eEmptyRequiredFields" } );
// eForward & eForwardTeam niet mutually exclusive
rst.addAction({ action: "mld_forward_team", caption: L("lcl_mld_forward_team"), enabler: "eForwardTeam" } );
rst.addAction({ action: "mld_group", caption: L("lcl_groeperen"), enabler:"eGroup", multi: multiActions, multiOnce: true } );
rst.addAction({ action: "mld_terugzet", caption: L("lcl_terugzet"), enabler: "eTerugzet", multi: multiActions, multiOnce: true } );

View File

@@ -124,7 +124,7 @@ function mld_close(rowArray, isMulti)
);
}
function mld_forward(row)
function mld_forward(row, fwdType)
{
$(row).addClass('dirty');
var mld_key = row.getAttribute("ROWKEY");
@@ -132,13 +132,15 @@ function mld_forward(row)
if (mldData && !mldData.mldChild) // Child meldingen kunnen hier al tegengehouden worden.
{
var mldPrefix = mldData.mldPrefix;
var mldUrl = "../mld/mld_forward.asp?mld_key=" + mld_key + "&urole=" + urole;
var mldUrl = "../mld/mld_forward.asp?mld_key=" + mld_key + "&urole=" + urole + "&fwdType=" + fwdType;
FcltMgr.openModalDetail( mldUrl
, L("lcl_mld_forward") + " " + mldPrefix + mld_key
, (fwdType == 1 ? L("lcl_mld_forward_disc") : L("lcl_mld_forward_team")) + " " + mldPrefix + mld_key
, { callback: FcltCallbackRefresh }
);
}
}
function mld_forward_disc(row) { mld_forward(row, 1); }
function mld_forward_team(row) { mld_forward(row, 2); }
function mld_forward_empty(row)
{

View File

@@ -78,6 +78,8 @@ var emptyRequiredFields = false;
// Alleen als ik de melding door kan sturen de verplichte velden checken. Niet bij het corrigeren van de vakgroep/melding (canFixMelding) vanuit de status "Afgemeld(5)".
if (this_mld.canForward)
emptyRequiredFields = mld.getEmptyRequiredFields(mld_melding);
var fwdInfo = mld.getFwdType(mld_key, this_mld, mld_melding);
%>
<html>
@@ -190,8 +192,11 @@ if (this_mld.canForward)
if (this_mld.canReject)
buttons.push({title: L("lcl_reject"), icon: "reject.png", action:"mld_reject()", autoshow: true, tooltip: L("lcl_reject_hint") });
if (this_mld.canForward || this_mld.canFixMelding) // bo2bo
buttons.push({title: this_mld.canForward?L("lcl_forward"):L("lcl_fixmelding"), icon:"forward.png", action:"mld_forward('" + this_mld.canChangeUrole + "')"});
if (fwdInfo.fwdType & 1 && (this_mld.canForward || this_mld.canFixMelding)) // bo2bo
buttons.push({title: fwdInfo.fwdLabel, icon: (fwdInfo.fwdType == 1 ? "fa-forward" : "fa-external-link"), action:"mld_forward('" + this_mld.canChangeUrole + "', 1)"});
if (fwdInfo.fwdType & 2 && this_mld.canForwardTeam)
buttons.push({title: L("lcl_mld_forward_team"), icon: "fa-forward", action:"mld_forward('" + this_mld.canChangeUrole + "', 2)"});
if (this_mld.canClose && !verynew)
buttons.push({title: L("lcl_close"), icon: "close.png", action:"mld_close()", autoshow: true, tooltip: L("lcl_close_hint") });

View File

@@ -80,7 +80,7 @@ function mld_continue()
FcltMgr.openModalDetail("../mld/mld_continue.asp?mld_key=" + mld_key + "&urole=" + urole, L("lcl_mld_continuation_mld"));
}
function mld_forward(urole)
function mld_forward(urole, fwdType)
{
if (emptyRequiredFields)
{
@@ -90,7 +90,7 @@ function mld_forward(urole)
window.location.href = "mld_edit_melding.asp?urole=" + urole + "&mld_key=" + mld_key + "&embedded=1";
}
else
FcltMgr.openModalDetail("../mld/mld_forward.asp?mld_key=" + mld_key + "&urole=" + urole, L("lcl_mld_forward"), { callback: fn_mld_melding_forwarded(mld_key) });
FcltMgr.openModalDetail("../mld/mld_forward.asp?mld_key=" + mld_key + "&urole=" + urole + "&fwdType=" + fwdType, (fwdType == 1 ? L("lcl_mld_forward_disc") : L("lcl_mld_forward_team")), { callback: fn_mld_melding_forwarded(mld_key) });
}
function mld_fix_sla()

View File

@@ -64,8 +64,8 @@ var bes = (getQParamInt("bes", 0) == 1);
var offerte = getQParamInt("offerte", -1); // Opdrachttype is een offerteaanvraag. Kan -1:don't care, 0:niet, 1:wel zijn.
var cnt_key = getQParamInt("ckey", -1);
var pkey = (frontend ? user_key : -1)
var behandel_key = getQParamInt("behandel_key", -1); // Behandelaar
var beh_key_arr = getQParamIntArray("beh_key_arr", []); // Behandelaars (planboard=1)
var handleropdr_key = getQParamInt("behandel_key", -1); // Opdracht Behandelaar
var beh_key_arr = getQParamIntArray("beh_key_arr", []); // Opdracht Behandelaars (planbord=1)
var locatie_key = getQParamInt("locatie_key", -1);
var gebouw_key = getQParamInt("gebouw_key", -1);
var opdrtype_key = getQParamInt("opdrtype_key", -1);
@@ -661,14 +661,15 @@ oRs.close();
});
}
else
FCLTpersoonselector("behandel_key",
"sgBehandelaar",
{ perslidKey: behandel_key,
FCLTpersoonselector("uitvopdr_key",
"sgPersonOpdr",
{ perslidKey: handleropdr_key,
label: L("lcl_mld_behandelaar"),
filtercode: justClose && exhandler? "BEHOC" : "BEHO",
trclass: "primsearch noxd", /* als wel xd: _self zou leuk zijn */
autlevel: authparams.PRSreadlevel,
autlevelALG: authparams.ALGreadlevel,
initEmpty: true, // Altijd lege waarde tonen, ook als er maar 1 waarde is.
whenEmpty: L("lcl_search_generic") // want filter
});

View File

@@ -53,6 +53,7 @@ var adr_key = getQParamInt("adr_key", -1); // Afleveradres
var locatiekey = getQParamInt("locatiekey", -1);
var behandel_key = getQParamInt("behandel_key", -1); // Behandelaar
var beh_key_str = getQParamIntArray("behmulti", [-1]); // Behandelaar multi
var uitvopdr_key = getQParamInt("uitvopdr_key", -1); // Uitvoerende opdracht
var gebouwkey = getQParamInt("gebouwkey", -1);
var verdiepingkey = getQParamInt("verdiepingkey", -1);
@@ -124,6 +125,7 @@ var params = { urole : urole,
verantw_key: (verantw_key != -1 ? verantw_key : null),
behandel_key: (behandel_key != -1 ? behandel_key : null),
behandel_key_arr : (beh_key_str.length > 0 && beh_key_str.join(",").indexOf("-1") == -1? beh_key_str : null),
uitvopdr_key: (uitvopdr_key != -1 ? uitvopdr_key : null),
contract: (contract != -1 ? contract : null),
cnt_key: (cntnr != -1 ? cntnr : null),
searchtekst: (searchtekst != "" ? searchtekst : null),

View File

@@ -84,8 +84,11 @@ function FCLTdisciplineselector(fieldName, objectName, params)
+ " AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)" // Alleen bij MLD is de ins_srtdiscipline_key (altijd) ingevuld
+ filtClause.where;
var oRs = Oracle.Execute(sql);
// Als er maar 1 vakgroep is, dan deze selecteren.
if (oRs("aantal").value == 1)
var disc_count = oRs("aantal").value;
oRs.Close();
if (params.disc_key > 0 && disc_count == 0) // Invalid initKey
params.disc_key = -1;
else if (disc_count == 1) // Als er maar één discipline is, dan deze selecteren.
{
sql = "SELECT td.ins_discipline_key, "
+ (params.srtdisc_key > 0

View File

@@ -22,59 +22,57 @@ var minfo = urole == "mi"; // NOT APPLICABLE?
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
var autfunction = getQParam("autfunction", ""); // Check of user rechten heeft op meegegeven artikelen
var srtdisc_arr = getQParamIntArray("srtdisc_key", []); // Soort Melding
var disc_key_arr = getQParamIntArray("disc_key_str", []); // Productgroep (discipline) array
var srtdisc_arr = getQParamIntArray("srtdisc_key", []); // Vakgroeptype Array
var disc_key_arr = getQParamIntArray("disc_key_str", []); // Vakgroep Array
var offerte = getQParamInt("offerte", -1);
var discsql_aut = "SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ ", fac_functie f"
+ " WHERE g.prs_perslid_key = " + user_key
+ " AND f.fac_functie_key = g.fac_functie_key"
+ " AND f.fac_functie_code = " + safe.quoted_sql(autfunction)
+ " AND g.fac_gebruiker_alg_level_read < 9"; // MGE: Als alg_level_read = 9 dan komt waarde niet meer voor in fac_v_webgebruiker. Regel zou dus weg kunnen
+ " FROM fac_v_webgebruiker g"
+ ", fac_functie f"
+ " WHERE g.prs_perslid_key = " + user_key
+ " AND f.fac_functie_key = g.fac_functie_key"
+ " AND f.fac_functie_code = " + safe.quoted_sql(autfunction)
+ " AND g.fac_gebruiker_alg_level_read < 9"; // MGE: Als alg_level_read = 9 dan komt waarde niet meer voor in fac_v_webgebruiker. Regel zou dus weg kunnen
var discsql = " SELECT DISTINCT m1.ins_discipline_key"
+ ", CASE "
+ " WHEN sd.ins_srtdiscipline_prefix IS NULL"
+ " THEN ''"
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END"
+ " || "+ lcl.xsqla('m1.ins_discipline_omschrijving', 'm1.ins_discipline_key')
+ " FROM mld_v_aanwezigdiscipline m1"
+ ", ins_srtdiscipline sd"
+ ", mld_disc_params dp"
+ (offerte >= 0
? " , mld_typeopdr_srtdiscipline tsd"
+ " , mld_typeopdr mto"
: "")
+ " WHERE m1.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND dp.mld_ins_discipline_key = m1.ins_discipline_key"
+ " AND BITAND(dp.mld_disc_params_srtgroep, 1) = 1" // Alleen primaire
+ (offerte >= 0
? " AND sd.ins_srtdiscipline_key = tsd.ins_srtdiscipline_key"
+ " AND tsd.mld_typeopdr_key = mto.mld_typeopdr_key"
+ " AND (tsd.ins_discipline_key IS NULL OR tsd.ins_discipline_key = m1.ins_discipline_key)"
+ " AND mto.mld_typeopdr_isofferte = " + offerte
: "")
+ " AND EXISTS (SELECT 'x'"
+ " FROM mld_stdmelding ms"
+ " WHERE m1.ins_discipline_key = ms.mld_ins_discipline_key"
+ " AND ms.mld_stdmelding_verwijder IS NULL)"
+ " AND m1.ins_discipline_key IN (" + discsql_aut + ")"
+ (srtdisc_arr.length != 0
? " AND m1.ins_discipline_key IN (SELECT ins_discipline_key"
+ " FROM mld_discipline"
+ " WHERE ins_srtdiscipline_key IN (" + srtdisc_arr.join(",") + "))"
: "")
+ (disc_key_arr.length != 0
? " AND m1.ins_discipline_key IN (" + disc_key_arr.join(",") + ")"
: "")
+ " ORDER BY 2"
var discsql = " SELECT DISTINCT m1.ins_discipline_key, "
+ (srtdisc_arr.length > 0
? ""
: "NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') || ")
+ lcl.xsqla('m1.ins_discipline_omschrijving', 'm1.ins_discipline_key')
+ " FROM mld_v_aanwezigdiscipline m1"
+ ", ins_srtdiscipline sd"
+ ", mld_disc_params dp"
+ (offerte >= 0
? " , mld_typeopdr_srtdiscipline tsd"
+ " , mld_typeopdr mto"
: "")
+ " WHERE m1.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND dp.mld_ins_discipline_key = m1.ins_discipline_key"
+ " AND BITAND(dp.mld_disc_params_srtgroep, 1) = 1" // Alleen primaire
+ (offerte >= 0
? " AND sd.ins_srtdiscipline_key = tsd.ins_srtdiscipline_key"
+ " AND tsd.mld_typeopdr_key = mto.mld_typeopdr_key"
+ " AND (tsd.ins_discipline_key IS NULL OR tsd.ins_discipline_key = m1.ins_discipline_key)"
+ " AND mto.mld_typeopdr_isofferte = " + offerte
: "")
+ " AND EXISTS (SELECT 'x'"
+ " FROM mld_stdmelding ms"
+ " WHERE m1.ins_discipline_key = ms.mld_ins_discipline_key"
+ " AND ms.mld_stdmelding_verwijder IS NULL)"
+ " AND m1.ins_discipline_key IN (" + discsql_aut + ")"
+ (srtdisc_arr.length != 0
? " AND m1.ins_discipline_key IN (SELECT ins_discipline_key"
+ " FROM mld_discipline"
+ " WHERE ins_srtdiscipline_key IN (" + srtdisc_arr.join(",") + "))"
: "")
+ (disc_key_arr.length != 0
? " AND m1.ins_discipline_key IN (" + disc_key_arr.join(",") + ")"
: "")
+ " ORDER BY 2";
FCLTselectorOptions(discsql,
{ initKey: disc_key_arr.join(","),
onChange: 'updateStdm("' + urole + '", "' + autfunction + '");',
{ initKey: disc_key_arr.join(","),
onChange: 'updateStdm("' + urole + '", "' + autfunction + '");',
multi: true,
size: 3,
emptyOption: (disc_key_arr.length == 0 ? L("lcl_all") : null) // Als een disc_key_arr is meegegeven dan geen lege optie