FCLT#56050 Behandelteams in het doorsturen modal v1.0
svn path=/Website/trunk/; revision=41055
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
%>
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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 } );
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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") });
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
});
|
||||
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user