Files
Facilitor/APPL/PDA/ins_inspect_list.asp
Erik Groener 8988fbd7b2 SZDB#74054 Tonen in lijst van flexkenmerken ook in mobile ondersteunen
svn path=/Website/trunk/; revision=70255
2025-09-09 13:22:30 +00:00

384 lines
15 KiB
Plaintext

<%@ language = "javascript" %>
<% /*
$Revision$
$Id$
File: pda/ins_inspect_list.asp
Description: Toont een beknopte inspectielijst voor op de pda
Parameters: -
Context: -
Note: -
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/discxalg3d.inc" -->
<!-- #include file="../Shared/discx3d.inc" -->
<!-- #include file="../INS/ins.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<!-- #include file="../Shared/dienstselector.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../ins/ins_inspect_list.inc" -->
<%
var autfunction = "WEB_INSUSE";
var authparams = user.checkAutorisation(autfunction);
var urole = getQParamSafe("urole", "fe");
var ins_key = getQParamInt("ins_key", -1);
var isPeriodiekeTaken = (ins_key == -1);
var locatie_key = getQParamInt("locatie_key", user.alg_locatie_key({withcurrent: true})); // Locatie
var gebouw_key = getQParamInt("gebouw_key", user.alg_gebouw_key({withcurrent: true})); // Gebouw, kan -1 zijn, dan niet gebruiken
var verdieping_key = getQParamInt("verdieping_key", user.alg_verdieping_key({withcurrent: true}));
var ruimte_key = getQParamInt("ruimte_key", -1);
var ins_srtgroep_key = getQParamInt("ins_srtgroep_key", -1);
var grp_sel = getQParam("grp", "");
var qrc = getQParamInt("qrc", 0) != 0;
// Gestarte/begonnen en ter uitvoering staande inspecties (status 2 en 3).
var inspDone = getQParamInt("has_insInspDone", 0) == 1 // Ben ik meegegeven?
? getQParamSafe("insInspDone", "off") == "on" // Neem dan mijn meegegeven waarde
: false; // Anders default uitgevinkt
// Gestarte/begonnen en ter uitvoering staande inspecties (status 2 en 3).
var inspBusy = !inspDone &&
getQParamInt("has_insInspBusy", 0) == 1 // Ben ik meegegeven?
? getQParamSafe("insInspBusy", "off") == "on" // Neem dan mijn meegegeven waarde
: true; // Anders default aangevinkt
// Afgemelde inspecties (status 5). Actie vereist.
var inspClosed = !inspDone &&
getQParamInt("has_insInspClosed", 0) == 1 // Ben ik meegegeven?
? getQParamSafe("insInspClosed", "off") == "on" // Neem dan mijn meegegeven waarde
: true; // Anders default aangevinkt
// Binnenkort. Zonder begindatum is te laat + binnenkort. Zonder einddatum is binnenkort + toekomst'
var inspSoon = !inspDone &&
getQParamInt("has_insInspSoon", 0) == 1 // Ben ik meegegeven?
? getQParamSafe("insInspSoon", "off") == "on" // Neem dan mijn meegegeven waarde
: true; // Anders default aangevinkt
var soondate = new Date(new Date().setDate(new Date().getDate() + S("ins_inspect_soon_days")));
var inspsoonfrom = getQParamDate("inspsoon_from", null); // Periode van
var inspsoonto = getQParamDate("inspsoon_to", soondate); // Perdiode tot
var donedatefrom = getQParamDate("donedate_from", null); // Periode van
var donedateto = getQParamDate("donedate_to", null); // Perdiode tot
var dienst_key = getQParamInt("dienst_key", -1);
var params = { inspect: true,
mobile: true,
dienst_key: dienst_key, // Dienst.
loc_key_arr: locatie_key > 0? [locatie_key] : [],
bld_key_arr: gebouw_key > 0? [gebouw_key] : [],
flr_key_arr: verdieping_key > 0? [verdieping_key] : [],
room_key_arr: ruimte_key > 0? [ruimte_key] : [],
insgroup_key_arr: ins_srtgroep_key > 0? [ins_srtgroep_key] : [],
inspSoon: inspSoon, // Laat alle inspecties zien die binnenkort gedaan moeten worden.
inspClosed: inspClosed, // Vervolgactie vereist. Inspectie is gereed gemeld(5) en moet worden afgerond.
inspBusy: inspBusy, // Onderhanden. Inspectie is gestart(2) of ter uitvoering(3) en moet worden gereed gemeld of afgerond.
inspDone: inspDone,
insObjIncl: true, // Ook onderdelen (nu default aan).
expObjIncl: false,
inspsoonfrom: inspsoonfrom,
inspsoonto: inspsoonto,
donedatefrom: donedatefrom,
donedateto: donedateto
};
var subject = L("lcl_mobile_planned_act")
if (isPeriodiekeTaken)
{
if (ruimte_key > -1)
{
var sql = "SELECT aog.alg_gebouw_code || '-' || aog.alg_verdieping_code || '-' || aog.alg_ruimte_nr plaats"
+ " FROM alg_v_onroerendgoed_gegevens aog"
+ " WHERE aog.alg_ruimte_key = " + ruimte_key;
var oRs = Oracle.Execute(sql);
subject += " " + oRs("plaats").Value;
oRs.Close();
}
else
{
subject += " " + CurrentPosition;
}
}
else
{ // vanuit ins_deel, dus de inspecties op dit deel.
var sql = "SELECT d.ins_deel_omschrijving"
+ " , d.ins_deel_opmerking"
+ " , s.ins_srtdeel_omschrijving"
+ " FROM ins_deel d"
+ " , ins_srtdeel s"
+ " WHERE d.ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND d.ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var deel_oms = oRs("ins_deel_omschrijving").Value;
var deel_opm = oRs("ins_deel_opmerking").Value;
var srtd_oms = oRs("ins_srtdeel_omschrijving").Value;
subject = srtd_oms + " " + deel_oms;
oRs.Close();
}
%>
<html>
<head>
<% FCLTMHeader.Generate({}); %>
<script>
function onClickDone() {
if (document.getElementById("insInspDone").checked)
{
$("[id^=donedate_]").closest("div").show();
$("[id^=inspsoon_]").closest("div").hide();
$("#insInspBusy, #insInspClosed, #insInspSoon").closest(".<%=MOBILE_UI_CLASSES.checkbox_wrapper.replace(/^\s*/, "")%>").hide();
}
else
{
$("[id^=donedate_]").closest("div").hide();
$("[id^=inspsoon_]").closest("div").show();
$("#insInspBusy, #insInspClosed, #insInspSoon").closest(".<%=MOBILE_UI_CLASSES.checkbox_wrapper.replace(/^\s*/, "")%>").show();
}
}
$(() => {
$("#insInspDone").on("change", onClickDone)
.trigger("change"); // Direct goed zetten
})
</script>
</head>
<body>
<%
PAGE_START();
if (isPeriodiekeTaken)
{
FILTER_PANEL_START();
FORM_START("inspect_filter_list", {name: "u2", action: rooturl + "/appl/pda/ins_inspect_list.asp", method: "GET"});
HIFIELD("urole", urole);
CONTROLGROUP_START();
FCLTdienstselector("dienst_key", "dienst_key",
{ dienstKey : dienst_key,
filtercode: (urole == "b2" ? "OWN" : null),
label: L("lcl_prs_companies_dienst")
});
CONTROLGROUP_END();
CONTROLGROUP_START();
CHB_FIELD("insInspDone", L("lcl_ins_controle_done"), (inspDone ? 1 : 0));
FCLTcalendar("donedate_from",
{
label: L("lcl_period_from"),
datum: (donedatefrom ? donedatefrom : new Date(new Date().getTime() - 2*24*60*60*1000)),
volgnr: 1,
maxFuture: 0,
nofollow: true,
trhidden: !inspDone,
mobile: true
});
FCLTcalendar("donedate_to",
{
label: L("lcl_period_to"),
datum: (donedateto ? donedateto : new Date(new Date().getTime() - 1*24*60*60*1000)),
volgnr: 2,
maxFuture: 0,
nofollow: true,
trhidden: !inspDone,
mobile: true
});
CHB_FIELD("insInspBusy", L("lcl_ins_controle_busy"), (inspBusy ? 1 : 0));
CHB_FIELD("insInspClosed", L("lcl_ins_controle_act_req"), (inspClosed ? 1 : 0));
CHB_FIELD("insInspSoon", L("lcl_ins_controle_soon"), (inspSoon ? 1 : 0));
CONTROLGROUP_END();
CONTROLGROUP_START();
FCLTcalendar("inspsoon_from",
{
label: L("lcl_period_from"),
datum: inspsoonfrom,
initEmpty: inspsoonfrom === null,
volgnr: 3,
nofollow: true,
trhidden: inspDone,
mobile: true
});
FCLTcalendar("inspsoon_to",
{
label: L("lcl_period_to"),
datum: inspsoonto,
volgnr: 4,
nofollow: true,
trhidden: inspDone,
mobile: true
});
CONTROLGROUP_END();
CONTROLGROUP_START();
BUTTON(L("lcl_mobile_panel_filter"), { id: "search_submit", click: "document.forms.inspect_filter_list.submit();", icon: "fa-fclt-refresh", datarel: "close" });
CONTROLGROUP_END();
FORM_END()
FILTER_PANEL_END();
}
HEADER({
title: subject,
filterPanel: isPeriodiekeTaken
});
CONTENT_START();
function fncolLink(oRs)
{
if (isPeriodiekeTaken)
{
var url = "../pda/ins_inspect.asp?ins_key=" + oRs("ins_deel_key").Value + "&srtcontrole_key=" + oRs("ins_srtcontrole_key").Value;
}
else
{
var deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
if (deelsrtcontrole_key > 0)
var url = "../pda/ins_inspect_hist.asp?ins_key=" + ins_key + "&deelsrtcontrole_key=" + deelsrtcontrole_key;
else
var url = "../pda/ins_inspect.asp?ins_key=" + ins_key + "&srtcontrole_key=" + oRs("ins_srtcontrole_key").Value;
}
return url;
};
function fncolHeader(oRs)
{
var object = safe.html(oRs("ins_deel_omschrijving").Value);
var srtcontrole = safe.html(oRs("ins_srtcontrole_omschrijving").Value);
var titletext;
switch(oRs("ctr_controle_type").value)
{
case 1: titletext = L("lcl_ins_srtcontrole_insp"); break;
case 2: titletext = L("lcl_ins_srtcontrole_repl"); break;
case 3: titletext = L("lcl_ins_srtcontrole_cert"); break;
default: titletext = L("lcl_menu_ins_controle"); break;
}
return titletext + " " + object + "<br>" + srtcontrole; // wat formatting zou fijn zijn, maar dan wel uniform overal
};
function fnInspectie(oRs)
{
var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight());
if (vervallen) return L("lcl_ins_controle_vervallen");
var inspectie = inspDone? oRs("inspectie_date").Value : oRs("inspectie_next").Value;
var inspectie_eenheid = (isPeriodiekeTaken ? oRs("inspectie_eenheid").Value : oRs("eenheid").Value);
if (inspectie_eenheid == 0)
var dttxt = toDateTimeString(inspectie);
else
var dttxt = toDateString(inspectie);
return dttxt;
}
function fnPlandatum(oRs)
{
var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight());
if (vervallen) return L("lcl_ins_controle_vervallen");
var plandatum = (isPeriodiekeTaken ? oRs("ins_deelsrtcontrole_plandatum").Value : oRs("ins_deelsrtcontrole_datum").Value);
if (plandatum == null) return "";
var inspectie_eenheid = (isPeriodiekeTaken ? oRs("inspectie_eenheid").Value : oRs("eenheid").Value);
if (inspectie_eenheid == 0)
var dttxt = toDateTimeString(plandatum);
else
var dttxt = toDateString(plandatum);
var res = "";
if (!isPeriodiekeTaken)
{
if (oRs("ins_deelsrtcontrole_status").Value == 5 || oRs("ins_deelsrtcontrole_status").Value == 6)
{
if (oRs("ins_controlemode_success").Value == 0)
res = I("fa-exclamation-triangle");
else
res = I("fa-check");
res += "&nbsp;";
}
}
return res + dttxt;
}
function fncolDetail(oRs)
{
var objectsoort = safe.html( (isPeriodiekeTaken ? oRs("soort").Value : oRs("ins_deelsrtcontrole_opmerking").Value) );
return objectsoort;
};
function fnAside(oRs)
{
var inspectie_next = fnInspectie(oRs);
var inspectie_plan = fnPlandatum(oRs);
return inspectie_plan != ""? inspectie_plan : inspectie_next;
};
function fncolsubHeader(oRs)
{
var flexkenmerken = "";
var plaats = "";
if (isPeriodiekeTaken)
{
plaats = "<div class='listbodykop'>" + I("fa-map-marker") + "&nbsp;" + safe.html(oRs("plaats").Value) + "</div>";
flexkenmerken = LIST_KENMERK_COL(oRs, {kmcol: "insflex"});
}
// else: // Voor inspectie geen plaats en kenmerken tonen.
return plaats + flexkenmerken;
};
if (isPeriodiekeTaken)
{ // Periodieke taken
var v_flexparams = { inspect: 1 // 1=Objectbeheer overzicht.
, multiflex: true
, ins_deelsrtcontrole: "XX"
}
var insFlexParams = ins.ins_deel_flex_params(1, v_flexparams);
params.insFlexParams = insFlexParams;
var sql = ins.getobjectinspect_sql(autfunction, params);
}
else
{ // Inspecties op object
var sql_list = insp.list_sql(ins_key, -1, {past: true, present: true, future: true, insFlexParams: {anyflex: false, sql:""}});
sql = "SELECT o.alg_plaatsaanduiding || DECODE(o.alg_plaatsomschrijving, '','' ,' (' || o.alg_plaatsomschrijving || ')') plaats"
+ " , x.*"
+ " FROM ins_v_alg_overzicht o"
+ " , ins_deel d"
+ " , (" + sql_list + ") x"
+ " WHERE d.ins_alg_ruimte_type = o.alg_onroerendgoed_type"
+ " AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys"
+ " AND d.ins_deel_key = x.ins_deel_key";
}
var rst = new ResultsetTable({sql: sql,
keyColumn: "ins_deel_key",
linkColumn: fncolLink,
detailColumn: fncolDetail,
headerColumn: fncolHeader,
asideColumn: fnAside,
subheaderColumn: fncolsubHeader,
ID: "instable",
showAll: true
});
var cnt = rst.processResultset();
CONTENT_END();
FOOTER({});
PAGE_END();
PDA_PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>