Files
Facilitor/APPL/MLD/mld_doublecheck.asp
Jos Groot Lipman 7044766a35 Merge 2023.2 Gold A changes
svn path=/Website/trunk/; revision=61246
2023-07-19 15:49:47 +00:00

105 lines
4.1 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: mld_doublecheck.asp
Description: Controleer of een melding al door iemand anders is gemeld.
Parameters: mld_key
Note: Wordt voor de backoffice gebruikt om bij o.a. accepteren van
een melding te waarschuwen dat er dubbelen zijn.
LET OP Soortgelijke code in mld_edit_melding_save waarschuwt al bij het aanmaken
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="mld.inc" -->
<%
var mld_key = getQParamInt("mld_key");
var multi = getQParamInt("multi", 0);
var reloadmld = (getQParamInt("reloadmld", 0) == 1);
var autoConfirm = (getQParamInt("autoConfirm", 0) == 1);
var addopdr = (getQParamInt("reloadmld", 0) == 2);
var urole = getQParamSafe("urole", "bo");
var list = getQParamInt("list", "0");
// Authcheck niet nodig, je kunt niets wijzigen en er wordt geen DB-info getoond
var mld_info = mld.mld_melding_info(mld_key);
var this_mld = mld.func_enabled_melding(mld_key); // wat mag ik zoal op deze melding
user.auth_required_or_abort(this_mld.canReadAny); // Ik moet in ieder geval iets kunnen lezen
var message = "";
var maybeDouble = false;
var ins_str = "";
var result = { maybeDouble: maybeDouble, mld_key: mld_key, multi: multi, urole: urole, reloadmld: reloadmld, autoConfirm: autoConfirm, addopdr: addopdr, prefix: mld_info.prefix, list: list };
var reject = (getQParamInt("reject", 0) == 1);
if (reject)
result.reject = true;
var stdm_info = mld.mld_stdmeldinginfo(mld_info.stdm_key);
// mld_stdmelding_doublecheck: 00 (0) Geen controle uitvoeren
// 01 (1) Controle dubbel bij invoer nieuwe melding (door FE, FO (of BO))
// 10 (2) Controle dubbel bij accepteren melding (door BO)
// 11 (3) Controle zowel bij invoer als bij accepteren
// Niet controleren als het al een childmelding is. Dan mag je eigenlijk al niet accepteren/afwijzen
if (!mld_info.parent_key && (stdm_info.doublecheck == 2 || stdm_info.doublecheck == 3))
{
// In facmgt moet altijd een verplicht niveau gekozen worden. stdm_info.alg_onrgoed_niveau heeft dus een waarde (R, V, G, L).
if (!stdm_info.ins_srtdiscipline_alg)
var where_alg = "1=1"
else if (stdm_info.alg_onrgoed_niveau == "R")
var where_alg = "org.alg_ruimte_key = " + mld_info.room_key
else if (stdm_info.alg_onrgoed_niveau == "V")
var where_alg = "org.alg_verdieping_key = " + mld_info.flr_key
else if (stdm_info.alg_onrgoed_niveau == "G")
var where_alg = "org.alg_gebouw_key = " + mld_info.bld_key
// else if (stdm_info.alg_onrgoed_niveau == "L")
// var where_alg = "org.alg_locatie_key = " + mld_info.loc_key;
else if (stdm_info.alg_onrgoed_niveau == "L")
var where_alg = "m.mld_alg_locatie_key = " + mld_info.loc_key;
else // stdm_info.alg_onrgoed_niveau == null
var where_alg = "1=1"
var where_obj = "";
var one_object = (mld_info.aantal_objects == 1);
sql = "SELECT mo.ins_deel_key"
+ " FROM mld_melding_object mo"
+ " WHERE mo.mld_melding_key = " + mld_key;
oRs = Oracle.Execute(sql);
if (one_object)
{ // Haal de key van dit ene object op.
where_obj = " OR mo.ins_deel_key = " + oRs("ins_deel_key").value;
}
oRs.Close();
sql = "SELECT DISTINCT m.mld_melding_key"
+ " FROM mld_melding m"
+ " , alg_v_allonroerendgoed org"
+ " , mld_melding_object mo"
+ " WHERE m.mld_alg_onroerendgoed_keys = org.alg_onroerendgoed_keys(+)"
+ " AND m.mld_melding_key = mo.mld_melding_key(+)"
+ " AND m.mld_melding_status IN (0, 2, 4, 7)"
+ " AND m.mld_melding_parentkey IS NULL" // Geen child meldingen tonen
+ " AND m.mld_stdmelding_key = " + mld_info.stdm_key
+ " AND m.mld_melding_key <> " + mld_key
+ " AND (" + where_alg + where_obj + ")";
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{ // Er is mogelijk een dubbele melding aanwezig
result.maybeDouble = true;
}
oRs.Close();
}
Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %>