285 lines
11 KiB
Plaintext
285 lines
11 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: mld_reject.asp
|
|
Description: Afwijzen van een melding. Opmerking moet ingevuld worden.
|
|
Parameters: mld_melding_key
|
|
|
|
Context:
|
|
Note:
|
|
|
|
*/ %>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<!-- #include file="../Shared/selector.inc" -->
|
|
<!-- #include file="../Shared/stdmeldingselector.inc" -->
|
|
<!-- #include file="../Shared/save2db.inc" -->
|
|
<!-- #include file="mld.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins: ["jQuery"] });
|
|
|
|
var mld_key_arr = getQParamIntArray("mld_key");
|
|
var submitting = getQParamInt("submit", 0) == 1;
|
|
var opmerk = getFParam("opmerk", "");
|
|
|
|
var result = {};
|
|
var toberejected = 0;
|
|
var ingesloten = [];
|
|
var reqStatusEmptyMelding = [];
|
|
// Bepaal de meldingen in de selectie die
|
|
// ook echt afgewezen kunnen of mogen worden.
|
|
for (var i = 0; i < mld_key_arr.length; i++)
|
|
{
|
|
var this_mld = mld.func_enabled_melding(mld_key_arr[i]); // Wat heb ik zoal aan rechten op deze specifieke melding
|
|
var mld_info = mld.mld_melding_info(mld_key_arr[i]);
|
|
lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY");
|
|
if (this_mld.canReject && !mld_info.parent_key) // Geen child melding
|
|
{
|
|
ingesloten.push(mld_key_arr[i]);
|
|
toberejected++;
|
|
}
|
|
// Zijn er nog kenmerken die nu wel verplicht zijn?
|
|
var kvsAfwezig = mld.hasRequiredStatusEmptyMelding(mld_key_arr[i], 1); // Melding status "Afgemeld(5)"
|
|
if (kvsAfwezig.length)
|
|
{
|
|
var mldnr = mld.mld_prefix(mld_key_arr[i]) + mld_key_arr[i];
|
|
reqStatusEmptyMelding.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
|
}
|
|
}
|
|
// De laatst gebruikte set_dialect uit de for-lus geldt nu voor de onderstaande code.
|
|
user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding.join("<br />"));
|
|
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet
|
|
%>
|
|
|
|
<html>
|
|
<head>
|
|
<% FCLTHeader.Generate(); %>
|
|
|
|
<% if (submitting && opmerk != "")
|
|
{ // Handle workflow actions for rejection:
|
|
var notaccepted = 0;
|
|
for (var i = 0; i < ingesloten.length; i++)
|
|
{
|
|
mld.nextworkflowstep(ingesloten[i], 0); // 0 = rejected
|
|
|
|
sql = "SELECT mm.mld_melding_opmerking"
|
|
+ " FROM mld_melding mm"
|
|
+ " WHERE mld_melding_key = " + ingesloten[i];
|
|
oRs = Oracle.Execute(sql);
|
|
var new_opm = (oRs("mld_melding_opmerking").value||""); // + "\n" + opmerk;
|
|
new_opm = new_opm + ((new_opm + opmerk) != "" ? "\n" : "") + opmerk; // alleen een CR als er al iets staat EN er iets wordt toegevoegd.
|
|
oRs.Close();
|
|
|
|
var fields = [ { dbs: "mld_melding_opmerking", typ: "varchar", val: new_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 }
|
|
];
|
|
|
|
var mldUpd = buildTrackingUpdate("mld_melding", " mld_melding_key = " + ingesloten[i], fields);
|
|
oRs = Oracle.Execute(mldUpd.sql);
|
|
if (mldUpd.trackarray.length)
|
|
mld.trackmeldingupdate(ingesloten[i], L("lcl_mld_is_mldupd") + "\n" + mldUpd.trackarray.join("\n"));
|
|
|
|
// Zetten van de status op afgewezen en afhandelen van de tracking.
|
|
mld.setmeldingstatus(ingesloten[i], 1); // afgewezen
|
|
|
|
// check (zat er al in)
|
|
// TODO: Het afwijzen gaat niet altijd goed. Wat is de reden daartoe? Status wordt in enkele gevallen niet op 1 gezet door mld.setmeldingstatus?
|
|
sql = "SELECT ''"
|
|
+ " FROM mld_melding"
|
|
+ " WHERE mld_melding_key = " + ingesloten[i]
|
|
+ " AND mld_melding_status = 1";
|
|
oRs = Oracle.Execute(sql);
|
|
if (oRs.eof)
|
|
{
|
|
notaccepted++;
|
|
}
|
|
}
|
|
var success = true;
|
|
var warning = ""
|
|
if (notaccepted == ingesloten.length)
|
|
var warning = L("lcl_mld_reject_failed");
|
|
|
|
%>
|
|
<script type="text/javascript">
|
|
FcltMgr.closeDetail( window,
|
|
{
|
|
key: "<%=ingesloten.join(",")%>",
|
|
warning: "<%=safe.jsstring(warning)%>",
|
|
success: "<%=success? 1 : 0%>"
|
|
});
|
|
</script>
|
|
<%
|
|
Response.End;
|
|
}
|
|
else
|
|
{ %>
|
|
<script type="text/javascript">
|
|
jQuery(document).ready(function()
|
|
{
|
|
$('textarea').resize(function () { FcltMgr.resized(window) } );
|
|
$('textarea').autogrow();
|
|
});
|
|
function mld_reject()
|
|
{
|
|
// Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
|
|
if (!validateForm("rejectform"))
|
|
return false;
|
|
document.rejectform.submit();
|
|
return true; // disable button
|
|
}
|
|
|
|
function mld_cancel()
|
|
{
|
|
FcltMgr.closeDetail(window, { cancel: true } );
|
|
}
|
|
|
|
function PasteFromSelectbox()
|
|
{
|
|
if ($("#stdopmerk :selected").val() > -1)
|
|
{
|
|
$("#opmerk").focus();
|
|
var PastedText = $("#stdopmerk :selected")[0].getAttribute("afmeldtekstoms");
|
|
$("#opmerk").val($("#opmerk").val() + ($("#opmerk").val() != ""? "\n" : "") + PastedText);
|
|
}
|
|
}
|
|
</script>
|
|
<% } %>
|
|
</head>
|
|
|
|
<body class="modal" id="mod_rejectbody">
|
|
<div id="reject">
|
|
<%
|
|
if (ingesloten.length == 1)
|
|
{
|
|
sql = "SELECT sm.mld_ins_discipline_key"
|
|
+ " , sm.mld_stdmelding_key"
|
|
+ " , mm.mld_melding_opmerking"
|
|
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
|
|
+ " , sd.ins_srtdiscipline_prefix"
|
|
+ " FROM mld_melding mm"
|
|
+ " , mld_stdmelding sm"
|
|
+ " , mld_discipline md"
|
|
+ " , ins_srtdiscipline sd"
|
|
+ " WHERE mld_melding_key = " + ingesloten[0]
|
|
+ " AND mm.mld_stdmelding_key = sm.mld_stdmelding_key"
|
|
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
|
|
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key";
|
|
oRs = Oracle.Execute(sql);
|
|
|
|
var mld_stdm = oRs("mld_stdmelding_key").value;
|
|
var mld_opmr = oRs("mld_melding_opmerking").value;
|
|
var prefix = oRs("ins_srtdiscipline_prefix").value || "";
|
|
var ins_discipline_omschrijving = oRs("ins_discipline_omschrijving").value;
|
|
oRs.close();
|
|
}
|
|
|
|
%>
|
|
<form id="rejectform" name="rejectform" action="mld_reject.asp?submit=1&mld_key=<%=ingesloten.join(",")%>" method="post">
|
|
<%
|
|
BLOCK_START("mldReject", L("lcl_forward_mld_1") + ingesloten.join(","));
|
|
// <!-- Meldingen (Discipline) -->
|
|
FCLTstdmeldingselector("stdm", "sgStdm", {label: L("lcl_complain"),
|
|
perslidKey: user_key,
|
|
autfunctionKey: -1, // toch readonly
|
|
//srtdisc_key: srtdisc, // je mag switchen naar een andere soort TODO: Autorisatie?
|
|
stdmelding_key: (ingesloten.length == 1? mld_stdm : -1),
|
|
onChange: "onChangeStdMelding",
|
|
readonly: true } );
|
|
// Vakgroep
|
|
RWFIELDTR("disc", "flddisc", L("lcl_vakgroup"), (ingesloten.length == 1 && prefix? prefix + "-" : "") + (ingesloten.length == 1? ins_discipline_omschrijving : ""), {readonly: true})
|
|
|
|
// Afwijstekst
|
|
var stdmld_arr = [];
|
|
var disc_arr = [];
|
|
|
|
sql = "SELECT DISTINCT mld_stdmelding_afmeldtext"
|
|
+ " , mld_melding_opmerking"
|
|
+ " , ins_srtdiscipline_prefix"
|
|
+ " , std.mld_stdmelding_key"
|
|
+ " , md.ins_discipline_key"
|
|
+ " FROM mld_melding mm"
|
|
+ " , mld_stdmelding std"
|
|
+ " , mld_discipline md"
|
|
+ " , ins_srtdiscipline sd"
|
|
+ " WHERE mld_melding_key IN (" + ingesloten.join(",") + ")"
|
|
+ " AND mm.mld_stdmelding_key = std.mld_stdmelding_key"
|
|
+ " AND std.mld_ins_discipline_key = md.ins_discipline_key"
|
|
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key";
|
|
oRs = Oracle.Execute(sql);
|
|
while (!oRs.eof)
|
|
{
|
|
stdmld_arr[stdmld_arr.length] = oRs("mld_stdmelding_key").Value;
|
|
disc_arr[disc_arr.length] = oRs("ins_discipline_key").Value;
|
|
oRs.MoveNext();
|
|
}
|
|
|
|
var sql_from_t = " FROM mld_afmeldtekst"
|
|
+ " WHERE ((mld_stdmelding_key IN (" + stdmld_arr.join(",") + ") )"
|
|
+ " OR (mld_stdmelding_key IS NULL AND mld_ins_discipline_key IN (" + disc_arr.join(",") + ") )"
|
|
+ " OR (mld_stdmelding_key IS NULL AND mld_ins_discipline_key IS NULL))"
|
|
+ " AND BITAND(mld_afmeldtekst_usefor, 2) = 2";
|
|
|
|
var sql_from_o = " FROM mld_opdr mo"
|
|
+ " WHERE mo.mld_melding_key = " + ingesloten[0]
|
|
+ " AND mo.mld_statusopdr_key = 6" // status=afgemeld
|
|
+ " AND mo.mld_opdr_opmerking IS NOT NULL";
|
|
|
|
var sql = "SELECT 1"
|
|
+ sql_from_t
|
|
+ (ingesloten.length == 1
|
|
? " UNION SELECT 1" + sql_from_o
|
|
: ""
|
|
);
|
|
oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
sql = "SELECT mld_afmeldtekst_key"
|
|
+ " , " + lcl.xsqla('mld_afmeldtekst_naam', 'mld_afmeldtekst_key')
|
|
+ " , " + lcl.xsql('mld_afmeldtekst_omschrijving', 'mld_afmeldtekst_key') + " afmeldtekstoms"
|
|
+ " , 2 src"
|
|
+ sql_from_t;
|
|
if (ingesloten.length == 1)
|
|
{
|
|
sql += " UNION "
|
|
+ "SELECT mo.mld_opdr_key"
|
|
+ " ," + safe.quoted_sql(L("lcl_opdr_closeremark") + " /") +"|| mo.mld_opdr_bedrijfopdr_volgnr"
|
|
+ " , mo.mld_opdr_opmerking"
|
|
+ " , 1"
|
|
+ sql_from_o
|
|
}
|
|
sql += " ORDER BY 4,2";
|
|
FCLTselector("stdopmerk",
|
|
sql,
|
|
{ label: L("lcl_mld_inf_std_opm"),
|
|
initKey: -1,
|
|
emptyOption: "",
|
|
extraParamValue: "afmeldtekstoms",
|
|
onChange: "PasteFromSelectbox()"});
|
|
}
|
|
|
|
// Reden afwijzing
|
|
%>
|
|
<tr><td class="label"><label></label></td>
|
|
<td ><%=safe.html(mld_opmr)%></td>
|
|
</tr>
|
|
<%
|
|
RWTEXTAREATR("opmerk",
|
|
"fldremark required",
|
|
L("lcl_mld_inf_Opmerking"),
|
|
"",
|
|
{html: "rows='8'"});
|
|
BLOCK_END();
|
|
|
|
var buttons = [ {title: L("lcl_reject"), icon: "opslaan.png", action: "mld_reject()", singlepress: true, id: "btn_reject_submit" },
|
|
{title: L("lcl_cancel"), icon: "undo.png", action: "mld_cancel()" }];
|
|
CreateButtons(buttons);
|
|
%>
|
|
<br><br>
|
|
<% IFACE.FORM_END(); %>
|
|
</form>
|
|
</div>
|
|
</body>
|
|
</html>
|