274 lines
10 KiB
Plaintext
274 lines
10 KiB
Plaintext
<%@ language = "JavaScript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: ins_deel.asp
|
|
Description: Details of an object (Mobile version) and access to actions on that object
|
|
If not authorised for this object we can forward to a "melding" on this object if stdmkina
|
|
Parameters: ins_key (bv via QRC)
|
|
stdmkina stdmeldingkey IF NOT AUTHORIZED,
|
|
-1/not defined = do not initiate a call if unauthorized
|
|
0 = initiate a unspecific (determined by configuration) call if unauthorized and authorized for MLDUSE
|
|
>0 = idem for that stdmeldingkey (rare)
|
|
|
|
|
|
*/ %>
|
|
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/discx3d.inc" -->
|
|
<!-- #include file="./resultset_table.inc" -->
|
|
<!-- #include file="../mld/mld.inc" -->
|
|
<!-- #include file="../ins/ins.inc" -->
|
|
<!-- #include file="../ins/ins_flexkenmerk.inc" -->
|
|
<!-- #include file="./mobile.inc" -->
|
|
<!-- #include file="./iface.inc" -->
|
|
|
|
<%
|
|
var ins_key = getQParamInt("ins_key");
|
|
var qrc = getQParamInt("qrc", 0) != 0;
|
|
var stdmkina = getQParamInt("stdmkina", -1); //STDMeldingKeyIfNotAuthorized
|
|
|
|
var transitParam = buildTransitParam(["qrc", "tiny"]);
|
|
|
|
var this_ins = ins.func_enabled_deel(ins_key);
|
|
|
|
if (stdmkina == -1)
|
|
{
|
|
// geen alternatief aangegeven, dus wegwezen zonder rechten
|
|
user.auth_required_or_abort(this_ins.canReadAny);
|
|
}
|
|
else
|
|
{
|
|
// Als ik leesrechten heb dan gaan we (ook) gewoon door
|
|
// en laten we de objectdetails zien (met onderin de mogelijkheid voor melding)
|
|
// Als ik deze details niet mag zien, spring ik door naar het doen van een melding
|
|
|
|
if (this_ins.canReadAny)
|
|
{
|
|
// I am authorized, just go on (disregard stdmkina)
|
|
user.auth_required_or_abort(this_ins.canReadAny);
|
|
}
|
|
else
|
|
{ // ik mag niets zien, doorstarten
|
|
if (user.checkAutorisation( "WEB_MLDUSE", true)) {
|
|
// Dan laat maar een melding doen
|
|
var theURL = "./melding.asp?mld_key=-1&ins_key=" + ins_key + (stdmkina > 0 ? "&stdm_key="+stdmkina + transitParam : "");
|
|
Response.Redirect(theURL);
|
|
}
|
|
else {
|
|
// ik wil wel een melding starten maar ik heb daar helemaal geen rechten voor,
|
|
// dan alsnog evt. unauthorized
|
|
user.auth_required_or_abort(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
var isResDeel = false;
|
|
var perslid_key_beh = -1;
|
|
var binding_text = 'unknown';
|
|
|
|
|
|
// Bepaal wat objectgegevens, specifiek ook de plaats (TODO: Terrein)
|
|
var sql = " SELECT id.ins_deel_omschrijving"
|
|
+ " , " + lcl.xsqla("sd.ins_srtdeel_omschrijving", "sd.ins_srtdeel_key")
|
|
+ " , id.ins_deel_opmerking"
|
|
+ " , id.ins_deel_key"
|
|
+ " , id.ins_srtdeel_key"
|
|
+ " , id.ins_deel_parent_key"
|
|
+ " , id.ins_alg_ruimte_type"
|
|
+ " , id.ins_alg_ruimte_key"
|
|
+ " , id.prs_perslid_key_beh"
|
|
+ " , id.ins_deel_verwijder"
|
|
+ " FROM ins_deel id"
|
|
+ " , ins_srtdeel sd"
|
|
+ " WHERE sd.ins_srtdeel_key = id.ins_srtdeel_key"
|
|
+ " AND id.ins_deel_key = " + ins_key;
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
var ins_deel_verwijderd = oRs("ins_deel_verwijder").value != null;
|
|
var ins_deel_omschrijving = oRs("ins_deel_omschrijving").Value;
|
|
var ins_srtdeel_omschrijving = oRs("ins_srtdeel_omschrijving").Value;
|
|
var ins_deel_opmerking = oRs("ins_deel_opmerking").Value;
|
|
var ins_srtdeel_key = oRs("ins_srtdeel_key").Value;;
|
|
var ins_parent_key = oRs("ins_deel_parent_key").Value || -1;
|
|
var ruimte_type = oRs("ins_alg_ruimte_type").Value;
|
|
var ruimte_key = oRs("ins_alg_ruimte_key").Value;
|
|
var subject = ins_srtdeel_omschrijving+ " " +ins_deel_omschrijving;
|
|
perslid_key_beh = oRs("prs_perslid_key_beh").Value || -1;
|
|
var plaats_afdeling = ins.getBindingItemString(ruimte_type, ruimte_key, ins_parent_key);
|
|
|
|
switch (ruimte_type)
|
|
{
|
|
case 'R':
|
|
binding_text = L("lcl_obj_bind_r");
|
|
break;
|
|
case 'T':
|
|
binding_text = L("lcl_obj_bind_t");
|
|
break;
|
|
case 'W':
|
|
binding_text = L("lcl_obj_bind_w");
|
|
break;
|
|
case 'P':
|
|
binding_text = L("lcl_obj_bind_p");
|
|
break;
|
|
case 'A':
|
|
binding_text = L("lcl_obj_bind_a");
|
|
break;
|
|
case 'C':
|
|
binding_text = L("lcl_obj_bind_c");
|
|
break;
|
|
}
|
|
|
|
// Haal nog wat gegevens over de parent op als het een onderdeel is.
|
|
var parent = "";
|
|
if (ins_parent_key > -1)
|
|
{
|
|
var psql = "SELECT id.ins_deel_omschrijving"
|
|
+ " , " + lcl.xsqla('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_key')
|
|
+ ", ins_deel_parent_key"
|
|
+ " FROM ins_deel id"
|
|
+ " , ins_srtdeel sd"
|
|
+ " WHERE id.ins_srtdeel_key = sd.ins_srtdeel_key"
|
|
+ " AND id.ins_deel_key = " + ins_parent_key;
|
|
var pRs = Oracle.Execute(psql);
|
|
parent = pRs("ins_srtdeel_omschrijving").Value + " "
|
|
+ pRs("ins_deel_omschrijving").Value;
|
|
pRs.Close();
|
|
}
|
|
}
|
|
oRs.Close();
|
|
|
|
|
|
%>
|
|
<html>
|
|
<head>
|
|
<% FCLTMHeader.Generate({title: subject}); %>
|
|
</head>
|
|
<body>
|
|
|
|
<%
|
|
PAGE_START();
|
|
HEADER({title: subject, back:!qrc, home: !qrc});
|
|
CONTENT_START();
|
|
|
|
if (ins_deel_verwijderd)
|
|
{
|
|
%> <div class="ins_deleted"><%=L("lcl_ins_is_deleted")%></div><%
|
|
}
|
|
|
|
if (ins_parent_key > -1)
|
|
{
|
|
ROFIELD("fld", L("lcl_ins_parentobject"), parent);
|
|
}
|
|
// zit al in de titel: ROFIELD("fld", L("lcl_obj_identification"), ins_deel_omschrijving);
|
|
ROFIELD("fld", L("lcl_ins_opmerking"), ins_deel_opmerking, {suppressEmpty: true});
|
|
|
|
ROFIELD("fld", binding_text, plaats_afdeling);
|
|
|
|
if (perslid_key_beh > -1)
|
|
{
|
|
var prs_melder = new Perslid(perslid_key_beh);
|
|
ROFIELD("fld", L("lcl_ins_manager"), prs_melder.naam());
|
|
}
|
|
|
|
|
|
// Plus flexkenmerken
|
|
generateFlexKenmerkBlock({
|
|
fnpre : function () { BLOCK_START({collapsed: true, title: L("lcl_flexible_properties")}); },
|
|
fnpost : BLOCK_END,
|
|
urole: "fe",
|
|
ins_key: ins_key,
|
|
srtdeel_key: ins_srtdeel_key,
|
|
reado: true,
|
|
mobile: true
|
|
});
|
|
|
|
// Heeft deel ook onderdelen?
|
|
var sql = "SELECT COUNT(*)"
|
|
+ " FROM ins_v_aanwezigonderdeel"
|
|
+ " WHERE ins_deel_parent_key = " + ins_key;
|
|
oRs = Oracle.Execute(sql);
|
|
hasOnderdelen = (oRs(0).Value > 0);
|
|
|
|
// Inspecties mogelijk op dit object?
|
|
var sql = "SELECT COUNT(*)"
|
|
+ " FROM ins_srtcontrole isc,"
|
|
+ " ins_deel d,"
|
|
+ " ins_srtdeel sd"
|
|
+ " WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key"
|
|
+ " AND ins_deel_key = " + ins_key
|
|
+ " AND ( isc.ins_srtcontrole_niveau = 'S' AND isc.ins_srtinstallatie_key = d.ins_srtdeel_key"
|
|
+ " OR isc.ins_srtcontrole_niveau = 'G' AND isc.ins_srtinstallatie_key = sd.ins_srtgroep_key"
|
|
+ " OR isc.ins_srtcontrole_niveau = 'D' AND isc.ins_srtinstallatie_key = d.ins_discipline_key"
|
|
+ " )"
|
|
oRs = Oracle.Execute(sql);
|
|
canInspect = (oRs(0).Value > 0);
|
|
//TODO-AUTH: mag ik deze soort (hier) inspecteren?
|
|
|
|
sql = "SELECT res_deel_key FROM res_deel "
|
|
+ " WHERE res_deel_verwijder IS NULL"
|
|
+ " AND res_ins_deel_key = " + ins_key;
|
|
oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof) {
|
|
isResDeel = true;
|
|
}
|
|
oRs.Close();
|
|
|
|
//TODO-AUTH: mag ik deze soort (hier) reserveren?
|
|
|
|
CONTROLGROUP_START()
|
|
|
|
if (canInspect) {
|
|
BUTTON(L("lcl_mobile_inspecties"), {linkid: "./ins_inspect.asp?ins_key="+ins_key + transitParam, dataicon: "search", dataajax: 'false'});
|
|
}
|
|
if (isResDeel) { // Zoiets
|
|
BUTTON(L("lcl_mobile_reserveringen"), {linkid: "./reserveringen.asp?ins_key="+ins_key + transitParam, dataicon: "grid", dataajax: 'false'});
|
|
}
|
|
if (hasOnderdelen) {
|
|
BUTTON(L("lcl_subobjects"), {linkid: "./ins_list.asp?ins_parent_key="+ins_key + transitParam, dataicon: "gear", dataajax: 'false'});
|
|
}
|
|
trackinglines = mobile.hastrackingpage('deel', ins_key);
|
|
if (trackinglines>0) {
|
|
BUTTON(L("lcl_history"), {linkid: "#ins-2-"+ins_key, dataicon: "bullets", transition: "pop", datarel: "dialog"});
|
|
}
|
|
if (user.checkAutorisation( "WEB_MLDUSE", true)) {
|
|
var tsql = "SELECT COUNT(m.mld_melding_key)"
|
|
+ " FROM mld_melding_object mo, mld_melding m"
|
|
+ " WHERE mo.mld_melding_object_verwijder IS NULL"
|
|
+ " AND mo.mld_melding_key = m.mld_melding_key"
|
|
+ " AND m.mld_melding_status IN (0, 2, 3, 4, 7)" // lopende meldingen
|
|
+ " AND mo.ins_deel_key = " + ins_key;
|
|
var toRs = Oracle.Execute(tsql);
|
|
if (toRs(0).Value == 0)
|
|
{ // Geen, dan moet ik dus willen toevoegen.
|
|
// Dan moet er wel een srtdiscipline getoond kunnen worden.
|
|
var mySRTsql = mld.srtdisc_sql("WEB_MLDUSE", { ins_key: ins_key });
|
|
var sql = "SELECT MIN(ins_srtdiscipline_key) ins_srtdiscipline_key"
|
|
+ " , COUNT(DISTINCT ins_srtdiscipline_key) aantal"
|
|
+ " FROM (" + mySRTsql + ")";
|
|
var oRs = Oracle.Execute(sql);
|
|
if (oRs("aantal").Value > 0)
|
|
BUTTON(L("lcl_mobile_newmelding"), {linkid: "./melding.asp?mld_key=-1&ins_key=" + ins_key + transitParam, dataicon: "plus", dataajax: 'false'});
|
|
oRs.Close();
|
|
}
|
|
else if (toRs(0).Value > 0 && user.checkAutorisation( "WEB_MLDBOF", true))
|
|
{
|
|
BUTTON(L("lcl_mobile_meldingen") + " (" + toRs(0).Value + ")", {linkid: "./mld_list.asp?ins_key=" + ins_key + transitParam, dataicon: "alert"});
|
|
}
|
|
}
|
|
|
|
CONTROLGROUP_END()
|
|
CONTENT_END();
|
|
FOOTER();
|
|
PAGE_END();
|
|
|
|
if (trackinglines>0) {
|
|
PAGE_START({id: "ins-2-"+ins_key})
|
|
mobile.trackingpage('deel', ins_key, subject);
|
|
PAGE_END();
|
|
}
|
|
%>
|
|
</body>
|
|
</html> |