Files
Facilitor/APPL/MLD/mld_double.asp
2017-06-01 11:51:13 +00:00

211 lines
8.4 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="mld.inc" -->
<%
FCLTHeader.Requires({ plugins: ["jQuery"] });
var authparamsMLDBOF = user.checkAutorisation("WEB_MLDBOF", true);
var authparamsMLDBO3 = user.checkAutorisation("WEB_MLDBO3", true);
var authparamsMLDFOF = user.checkAutorisation("WEB_MLDFOF", true);
var authparamsMLDUSE = user.checkAutorisation("WEB_MLDUSE", true);
var authparams = user.auth_required_or_abort(authparamsMLDBOF || authparamsMLDBO3 || authparamsMLDFOF || authparamsMLDUSE);
var mld_key = getQParamInt("mld_key", -1);
if (mld_key > 0)
{
var mld_info = mld.mld_melding_info(mld_key);
var stdmelding_key = mld_info.stdm;
var ruimtekey = mld_info.room_key;
var verdiepingkey = mld_info.flr_key;
var gebouwkey = mld_info.bld_key;
var locatiekey = mld_info.loc_key;
var ins_arr = mld_info.room_obj_arr;
var isNew = false;
}
else
{
var stdmelding_key = getQParamInt("stdmelding_key");
var ruimtekey = getQParamInt("ruimtekey");
var verdiepingkey = getQParamInt("verdiepingkey");
var gebouwkey = getQParamInt("gebouwkey");
var locatiekey = getQParamInt("locatiekey");
var ins_arr = getQParamIntArray("ins_str", []);
var isNew = true;
}
var stdm_info = mld.mld_stdmeldinginfo(stdmelding_key);
var one_object = ins_arr.length == 1; // Is er 1 object geselecteerd?
var where_alg = "";
var where_ins = "";
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
function mld_double(mode, parent_key)
{
FcltMgr.closeDetail(window, { mode: mode, parent_key: (parent_key? parent_key : -1) } );
}
function mld_askdouble(row)
{
var parent_key = row.getAttribute("ROWKEY");
FcltMgr.confirm(L("lcl_mld_linktoparent").format(parent_key), { autoconfirm: <%=isNew? 1 : 0%> == 1 }, function() {
mld_double(1, parent_key);
});
}
function mld_cancel(mode, parent_key)
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
<body class="modal" id="mod_mlddouble">
<%
var sql = "SELECT sm.alg_onrgoed_niveau"
+ " FROM mld_stdmelding sm"
+ " WHERE sm.mld_stdmelding_key = " + stdmelding_key;
oRs = Oracle.Execute(sql);
var alg_onrgoed_niveau = oRs("alg_onrgoed_niveau").value;
if (one_object) // Als er 1 object is geselecteerd
where_ins = " OR mo.ins_deel_key = " + ins_arr[0];
if (!stdm_info.ins_srtdiscipline_alg)
{
where_alg = "1=1"
}
else if (alg_onrgoed_niveau == "R")
{
where_alg = "org.alg_ruimte_key = " + ruimtekey
}
else if (alg_onrgoed_niveau == "V")
{
where_alg = "org.alg_verdieping_key = " + verdiepingkey
}
else if (alg_onrgoed_niveau == "G")
{
where_alg = "org.alg_gebouw_key = " + gebouwkey
}
else if (alg_onrgoed_niveau == "L")
{
where_alg = "org.alg_locatie_key = " + locatiekey;
}
BLOCK_START("mldContinue", L("lcl_mld_similarcalls"));
%>
<div id="mldsimilar"><%=L("lcl_mld_askdouble").format(isNew?L("lcl_mld_no_own_mld"):L("lcl_not_link"), L("lcl_mld_cancel_double"))%></div>
<%
sql = "SELECT DISTINCT m.mld_melding_key"
+ " , sd.ins_srtdiscipline_prefix"
+ " , " + S("prs_pers_string") + " naam"
+ " , m.mld_melding_datum"
+ " , m.mld_alg_onroerendgoed_keys plaats_key"
+ (stdm_info.ins_srtdiscipline_alg
? " , l.alg_locatie_code || '-' || org.alg_gebouw_code || '-' || org.alg_verdieping_code || '-' || org.alg_ruimte_nr plaats"
: ", '' plaats")
+ " , 'Object'"
+ " , m.mld_melding_omschrijving"
+ " , (SELECT MIN(d.ins_deel_omschrijving)"
+ " FROM mld_melding_object mmo"
+ " , ins_deel d"
+ " WHERE mmo.ins_deel_key = d.ins_deel_key"
+ " AND mmo.mld_melding_key = m.mld_melding_key)"
+ " || "
+ " CASE"
+ " WHEN (SELECT COUNT(mmo.ins_deel_key)"
+ " FROM mld_melding_object mmo"
+ " WHERE mmo.mld_melding_key = m.mld_melding_key) > 1"
+ " THEN '...'"
+ " ELSE ''"
+ " END objecten"
+ " , m.mld_melding_parentkey"
+ " , COALESCE(m.mld_melding_parentkey, m.mld_melding_key) orderby"
+ " FROM mld_melding m"
+ " , mld_stdmelding sm"
+ " , mld_discipline md"
+ " , ins_srtdiscipline sd"
+ (stdm_info.ins_srtdiscipline_alg
?" , alg_v_allonrgoed_gegevens org, alg_locatie l"
:"")
+ " , mld_melding_object mo"
+ " , prs_perslid p"
+ " WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ (stdm_info.ins_srtdiscipline_alg
? " AND m.mld_alg_onroerendgoed_keys = org.alg_onroerendgoed_keys AND org.alg_locatie_key = l.alg_locatie_key"
: "")
+ " AND m.mld_melding_key = mo.mld_melding_key(+)"
+ " AND m.prs_perslid_key = p.prs_perslid_key"
+ " AND m.mld_melding_status IN (0, 2, 3, 4, 7)"
+ " AND m.mld_stdmelding_key = " + stdmelding_key
+ " AND m.mld_melding_parentkey IS NULL" // Geen child meldingen tonen
+ (mld_key > 0
? " AND m.mld_melding_key != " + mld_key
: "") // De melding die geaccepteerd/afgewezen moet worden niet tonen.
+ " AND (" + where_alg + where_ins + ")"
+ " ORDER BY orderby, mld_melding_parentkey desc";
function fncolKey(oRs)
{
return oRs("ins_srtdiscipline_prefix") + oRs("mld_melding_key");
}
var rst = new ResultsetTable({ keyColumn: "mld_melding_key",
sql: sql,
ID: "similarcallstable",
//rowClass: fnrowClass,
noPrint: true,
title: L("lcl_complains"),
showAll: true
});
rst.addColumn(new Column({caption: L("lcl_mld_number"), content: fncolKey}));
rst.addColumn(new Column({caption: L("lcl_caller"), content: "naam"}));
rst.addColumn(new Column({caption: L("lcl_date"), content: "mld_melding_datum", datatype: "datetime"}));
if (stdm_info.ins_srtdiscipline_alg)
rst.addColumn(new Column({caption: L("lcl_mld_place"), content: "plaats"}));
rst.addColumn(new Column({caption: L("lcl_descr"), content: "mld_melding_omschrijving"}));
if (stdm_info.ins_srtdiscipline_ins)
rst.addColumn(new Column({caption: L("lcl_mld_nr_objects"), content: "objecten"}));
rst.addAction({ action: "mld_askdouble", caption: L("lcl_mld_keep_informed"), isDefault: true } );
var cnt = rst.processResultset();
BLOCK_END();
if (isNew) // Opslaan nieuwe melding
{ // Drie modes
// 1) Dubbele melding van een moedermelding aanmaken (opnieuw laden van save asp met parent_key, maar niet meer controleren op double) [1]
// 2) Nieuwe melding aanmaken (opnieuw laden van save asp, maar niet meer controleren op double) [2]
// 3) Geen melding aanmaken, gewoon terug. [cancel]
var buttons = [ {title: L("lcl_mld_no_own_mld"), icon: "undo.png", action: "mld_double(2)" },
{title: L("lcl_mld_cancel_double"), icon: "undo.png", action: "mld_cancel()" } ];
}
else // accepteren/afwijzen
{ // Drie modes
// 1) Het is een dubbele melding. Laat de melding verwijzen naar de moedermelding [1]
// 2) Het is geen dubbele melding. Zet de melding op geaccepteerd (Button accepteren) [2]
// 3) Melding niet accepteren/afwijzen (Button annuleren) [cancel]
var buttons = [ {title: L("lcl_not_link"), icon: "opslaan.png", action: "mld_double(2)" },
{title: L("lcl_mld_cancel_double"), icon: "undo.png", action: "mld_cancel()" } ];
}
CreateButtons(buttons);
%>
</body>
</html>