810 lines
40 KiB
Plaintext
810 lines
40 KiB
Plaintext
<%@ language = "JavaScript" %>
|
||
<% /*
|
||
$Revision$
|
||
$Id$
|
||
Description: List of objects (Mobile version)
|
||
Parameters: ins_key (bv via QRC, JGL: Echt waar?????) en nog meer optionele keys om te kunnen filteren binnen een context
|
||
Resultaat wordt standaard beperkt tot CurrentPosition
|
||
maar om flexibel te zijn is dat te overrulen (bv voor een QRC met objecten in Harderwijk?)
|
||
Je kunt clauses onderdrukken als je weet dat dat kan tbv performance door a|p|t|w = 0 te zetten
|
||
|
||
Note:
|
||
- ins_srtdeel_image erbij tonen if gevuld?
|
||
*/
|
||
%>
|
||
<!-- #include file="../Shared/common.inc" -->
|
||
<!-- #include file="../Shared/discx3d.inc" -->
|
||
<!-- #include file="./resultset_table.inc" -->
|
||
<!-- #include file="./mobile.inc" -->
|
||
<!-- #include file="./iface.inc" -->
|
||
<!-- #include file="../ins/ins.inc" -->
|
||
<%
|
||
var eigen_obj = getQParamInt("self", 0) == 1;
|
||
var plaatsfilter = getQParamInt("plaatsfilter", 0);
|
||
var return_from = getQParam("return_from", ""); // Dit moet het vorige scherm worden als men weer in ins_list komt na de plaatsselector
|
||
// te hebben gebruikt. Nodig om te voorkomen dat de plaatsselector telkens opnieuw aangeroepen wordt.
|
||
var urole = getQParamSafe("urole", "bo");
|
||
var fronto = (urole == "fo");
|
||
var autfunction = "";
|
||
switch(urole) {
|
||
case "fo": autfunction = "WEB_INSFOF";
|
||
break;
|
||
default: autfunction = (eigen_obj ? ["WEB_INSUSE","WEB_INSMIN"] : "WEB_INSUSE");
|
||
break;
|
||
}
|
||
var authparams = user.checkAutorisation(autfunction);
|
||
var outputmode = getQParamInt("outputmode", 0); // 0 = screen, 1 = print, 2 = excel etc
|
||
var showall = getQParamInt("showall", 0) == 1;
|
||
|
||
// Voor velden die de user in kan typen valideren we zodanig dat we er tegen kunnen
|
||
var locatie_key = getQParamInt("locatie_key", getQParamInt("loc_key", -1)); // Locatie (de plaatsselector geeft loc_key terug)
|
||
var gebouw_key = getQParamInt("gebouw_key", getQParamInt("bld_key", -1)); // Gebouw (de plaatsselector geeft bld_key terug)
|
||
var terrein_key = getQParamInt("terrein_key", -1);
|
||
var verdieping_key= getQParamInt("verdieping_key", -1);
|
||
var room_key_arr = getQParamKeyArray("rooms", []); // Ruimten
|
||
var ruimte_key = getQParamInt("ruimte_key", -1);
|
||
|
||
// Werklocatie is de default, maar meegegeven/gekozen plaatsen zijn leidend,
|
||
// dus alleen vullen met de Werklocatie als alles nog leeg is, anders mogelijke mismatch
|
||
if (!(locatie_key > 0 || gebouw_key > 0 || terrein_key > 0 || verdieping_key > 0 || ruimte_key > 0)) {
|
||
locatie_key = user.alg_locatie_key({ withcurrent: true });
|
||
gebouw_key = user.alg_gebouw_key({ withcurrent: true });
|
||
verdieping_key = user.alg_verdieping_key({ withcurrent: true });
|
||
}
|
||
|
||
var wpl_key = getQParamInt("werkplekkey", -1); // Werkplek
|
||
var deel = getQParam("deel", ""); // Identieficatie
|
||
var disc_key = getQParamInt("disc", -1); // Discipline
|
||
var insgroup_key = getQParamInt("srtgroup", -1); // Groep
|
||
var objsrt_key = getQParamInt("srtdeel", -1); // Objectsoort
|
||
var dep_key = getQParamInt("sDept_key", -1); // Organisatie key
|
||
var persoon_key = getQParamInt("sName_key", -1); // Persoon key
|
||
var cpersoon_key = getQParamInt("cps_key", -1); // Contactpersoon key
|
||
var mld_key = getQParamInt("mld_key", -1); // Melding key (voor daaraan gekoppelde objecten)
|
||
var checkout = getQParamInt("checkout", 0) == 1; // Tijdens uitchecken bezoeker.
|
||
|
||
var insObjIncl = getQParamInt("insObjIncl", 0) == 1; // Ook onderdelen
|
||
var expObjIncl = getQParamInt("expObjIncl", 0) == 1; // Ook vervallen objecten
|
||
var insLentOut = getQParamInt("insLentOut", 1) == 1; // Uitgegeven
|
||
var insAvail = getQParamInt("insAvail", 1) == 1; // Beschikbaar
|
||
var inacObjIncl = getQParamInt("inacObjIncl", 0) == 1; // Ook inactieve objecten
|
||
var insPhotoIncl = getQParamInt("insPhotoIncl", 0) == 1; // Ook afbeeldingen
|
||
|
||
// FGII parameters
|
||
var fgraph = getQParamInt("fgraph", 0) == 1;
|
||
//var ins_key_arr = getQParamIntArray("ins_key", []); // Was obj_key
|
||
var parent_key = getQParamInt("parent_key", -1);
|
||
var koppel_key = getQParamInt("koppel_key", -1);
|
||
var comp_key = getQParamInt("company", -1);
|
||
var embedded = getQParamInt("embedded", -1);
|
||
var tiny = getQParamInt("tiny", -1);
|
||
/***** End get webform parameters *****/
|
||
|
||
if (disc_key > -1)
|
||
lcl.set_dialect(disc_key, "INS_DISCIPLINE_KEY");
|
||
|
||
var ins_key = getQParamInt("ins_key", -1);
|
||
var mld_key = getQParamInt("mld_key", -1);
|
||
var afd_key = getQParamInt("afd_key", -1);
|
||
var prs_key = getQParamInt("prs_key", eigen_obj ? user_key : -1);
|
||
var ins_parent_key = getQParamInt("ins_parent_key", -1);
|
||
var grp_sel = getQParamUTF8("grp", "");
|
||
var all_grp = getQParam("cnd", (S("cnd_gebreken_srtdisc_key") > -1 ? "1" : "0")) == "1";
|
||
var qrc = getQParamInt("qrc", 0) != 0;
|
||
|
||
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||
|
||
// optionele sturingsparameters als je met voorkennis
|
||
// bepaalde categori<72>n uit kunt sluiten. Kan helpen voor performance
|
||
// Ruimtegebonden kun je niet uitsluiten
|
||
var metWerkplekgebonden = getQParamInt("w", 1) == 1;
|
||
var metAfdelingsgebonden = getQParamInt("a", 1) == 1;
|
||
var metPersoonsgebonden = getQParamInt("p", 1) == 1;
|
||
var metTerreingebonden = getQParamInt("t", 1) == 1;
|
||
|
||
// om nog even compatibel te blijven; als vervolgframe van ruimte wil ik niet *alle* A en P objecten in de scope
|
||
// als we de plaats-scope ook bij afdeling geimplementeerd hebben kan dit weg.
|
||
if (ruimte_key >-1 ) metTerreingebonden = metAfdelingsgebonden = false;
|
||
|
||
if (disc_key > -1)
|
||
{
|
||
tsql = "SELECT " + lcl.xsql('disc.ins_discipline_omschrijving', 'disc.ins_discipline_key') + " ins_disc_oms"
|
||
+ " FROM ins_discipline disc WHERE ins_discipline_key = " + disc_key;
|
||
toRs = Oracle.Execute (tsql);
|
||
var subject = toRs("ins_disc_oms").Value;
|
||
toRs.close();
|
||
}
|
||
else
|
||
{
|
||
var subject = L("lcl_mobile_objecten");
|
||
}
|
||
|
||
// Probeer nog wat context aan de header toe te voegen (kan nog completer as needed)
|
||
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 if (mld_key > -1)
|
||
{
|
||
subject += " " + L("lcl_mobile_objbijmelding");
|
||
}
|
||
else if (ins_parent_key > -1 || koppel_key > -1)
|
||
{
|
||
var sql = "SELECT id.ins_deel_omschrijving"
|
||
+ ", " + lcl.xsqla('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_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 > -1? ins_parent_key : koppel_key);
|
||
var oRs = Oracle.Execute(sql);
|
||
subject = (ins_parent_key > -1
|
||
? L("lcl_subobjects")
|
||
: L("lcl_mobile_objecten"))
|
||
+ " " + L("lcl_mobile_ondbijobject")
|
||
+ " " + oRs("ins_srtdeel_omschrijving").Value
|
||
+ " " + oRs("ins_deel_omschrijving").Value;
|
||
oRs.Close();
|
||
}
|
||
else if (locatie_key > 0 || gebouw_key > 0)
|
||
{ // Toon locatie of gebouw waarvoor de objecten gefilterd zijn.
|
||
var sql = "SELECT alg_{0}_omschrijving omschr"
|
||
+ " FROM alg_{0}"
|
||
+ " WHERE alg_{0}_key = " + (gebouw_key > 0 ? gebouw_key : locatie_key);
|
||
sql = sql.format(gebouw_key > 0 ? "gebouw" : "locatie");
|
||
var oRs = Oracle.Execute(sql);
|
||
if (oRs("omschr").Value) {
|
||
subject += " " + oRs("omschr").Value;
|
||
}
|
||
oRs.Close();
|
||
}
|
||
|
||
if (plaatsfilter == 1) {
|
||
var object_params = "?x=b"
|
||
+ "&urole=" + urole
|
||
+ "&startlevel=2" // is default in plaatsselector
|
||
+ "&eindlevel=3" // filter alleen op locatie en gebouw
|
||
+ "&autlevel=-1"
|
||
+ "&autoopen=2"
|
||
+ "&dis_key=-1" // Alle locaties kunnen selecteren; niet alleen binnen het district van de gebruiker.
|
||
+ "&return_to=" + safe.url("ins_list.asp?urole="+urole)
|
||
+ "&return_from=" + safe.url("facilitor.asp"); // Vanuit menu aangeroepen.
|
||
var url = "plaatsselector.asp" + object_params;
|
||
|
||
Response.Redirect(url);
|
||
}
|
||
|
||
var canAdd = authparams.PRSwritelevel < 9 && authparams.ALGwritelevel < 9;
|
||
%>
|
||
<html>
|
||
<head>
|
||
<% FCLTMHeader.Generate({}); %>
|
||
</head>
|
||
<body>
|
||
<%
|
||
PAGE_START();
|
||
HEADER({title: subject, go: return_from, back: false, home: !qrc, addaction: (canAdd && koppel_key == -1 && ins_parent_key == -1 ? (rooturl + "/appl/pda/ins_deel.asp?ins_key=-1") : false) });
|
||
CONTENT_START();
|
||
|
||
function fncolLink(oRs)
|
||
{
|
||
var url = "";
|
||
if (ins_parent_key == -1 && koppel_key == -1 && mld_key == -1 && grp_sel == "" && !all_grp)
|
||
{
|
||
url = "../pda/ins_list.asp?urole=" + urole
|
||
+ (eigen_obj ? "&self=1" : "")
|
||
+ "&locatie_key=" + locatie_key
|
||
+ "&gebouw_key=" + gebouw_key
|
||
+ "&grp=" + safe.urlUTF8(oRs(fronto || ins_parent_key > 0 || koppel_key > 0 || mld_key > 0? "ins_groep_oms" : "ins_srtgroep_omschrijving").Value)
|
||
+ (ruimte_key>-1 ? "&ruimte_key="+ ruimte_key : "")
|
||
+ (disc_key>-1 ? "&disc="+ disc_key : "")
|
||
+ (prs_key>-1 ? "&prs_key="+ prs_key : "")
|
||
+ (return_from.length ? "&return_from="+safe.url(return_from) : "");
|
||
}
|
||
else
|
||
{
|
||
var grp_omschr = oRs("ins_disc_oms").Value +" "+ oRs("ins_groep_oms").Value;
|
||
url = "../pda/ins_deel.asp?urole=" + urole + "&ins_key=" + oRs("ins_deel_key").Value;
|
||
url += (eigen_obj ? "&self=1" : "");
|
||
url += ((ins_parent_key > -1) ? "&ins_parent_key=" + ins_parent_key : "");
|
||
url += ((koppel_key > -1)? "&koppel_key=" + koppel_key : "");
|
||
url += "&return_from=" + safe.url("ins_list.asp?urole=" + urole + (eigen_obj ? "&self=1" : "") + "&grp=" + safe.urlUTF8(grp_omschr));
|
||
}
|
||
return url;
|
||
};
|
||
function fncolGroup(oRs)
|
||
{
|
||
if (grp_sel || all_grp)
|
||
{
|
||
return safe.html(oRs("ins_srtdeel_omschrijving").Value);
|
||
}
|
||
return safe.html(oRs(fronto || ins_parent_key > 0 || koppel_key > 0 || mld_key > 0? "ins_groep_oms" : "ins_srtgroep_omschrijving").Value);
|
||
};
|
||
function fncolDetail(oRs)
|
||
{
|
||
return safe.html(oRs("ins_srtdeel_omschrijving").Value)
|
||
+ (!fronto && oRs("hoeveelheid").Value != "1" ? " <span class='c1'>" + safe.html(oRs("hoeveelheid").Value) + "</span>" : "");
|
||
};
|
||
|
||
function fncolsubHeader(oRs)
|
||
{
|
||
if (fronto)
|
||
{
|
||
var place = "";
|
||
if (oRs("ins_alg_ruimte_type_org").value != null)
|
||
{
|
||
if (oRs("ins_alg_ruimte_type").value == 'P' || oRs("ins_alg_ruimte_type").value == 'A')
|
||
{
|
||
place = "" + I("fa-user") + " " + safe.html(oRs("uitgeleend_aan").value) + "<br>";
|
||
}
|
||
place += "" + I("fa-map-marker") + " " + safe.html(oRs("uitgegeven_vanuit").Value);
|
||
}
|
||
else
|
||
{
|
||
if (oRs("ins_alg_ruimte_type").value == 'P' || oRs("ins_alg_ruimte_type").value == 'A')
|
||
// Object niet uitgeleend. Uitgeleend aan is eigenlijk de plaats.
|
||
place = safe.html(oRs("uitgeleend_aan").value);
|
||
else
|
||
place = safe.html(oRs("plaats").value);
|
||
}
|
||
return "<div class='listbodykop'>"+ place + "</div>";
|
||
}
|
||
else
|
||
{
|
||
var remark =""
|
||
remark += "" + I("fa-tag") + " "+safe.html(oRs("ins_disc_oms").Value) + " / ";
|
||
remark += safe.html(oRs("ins_groep_oms").Value) + "<br>";
|
||
if (oRs("ins_deel_opmerking").value != null)
|
||
{
|
||
remark += safe.html(oRs("ins_deel_opmerking").Value) + "<br>";
|
||
}
|
||
if (oRs("ins_deel_mjb_score1").value != null)
|
||
{
|
||
var gebrekdatum = oRs("gebrekdatum").Value != null? new Date(oRs("gebrekdatum").Value) : null;
|
||
var vorigjaar = new Date (new Date().setFullYear(new Date().getFullYear() - 1));
|
||
// Bij elk object wordt van alle bijbehorende gebrekmeldingen (srtdicipline = S("cnd_gebreken_srtdisc_key")) de datum (gebrekdatum)
|
||
// van de laatste melding-tracking bepaald. Indien deze datum minder dan een jaar geleden is,
|
||
// wordt het "fa-calendar-check" symbool weergegeven na het thermometer symbool.
|
||
// Bij een object kan geen datum worden gevonden als het object geen gebrekmelding heeft. Het "fa-calendar-check" symbool wordt dan niet weergegeven.
|
||
remark += "<span class=''>" + I("fa-thermometer-quarter") + (gebrekdatum && gebrekdatum > vorigjaar? " " + I("fa-calendar-check") : "") + "</span>"
|
||
+ " " + safe.html(L("lcl_ins_deel_mjb_score1") + ": " + oRs("ins_deel_mjb_score1").Value) + "<br>";
|
||
}
|
||
var plaats_eigenaar_icon = "";
|
||
switch (oRs("ins_alg_ruimte_type").Value)
|
||
{
|
||
case "R" : plaats_eigenaar_icon = I("fa-dot-circle") + " "; break;
|
||
case "T" : plaats_eigenaar_icon = I("fa-road") + " "; break;
|
||
case "W" : plaats_eigenaar_icon = I("fa-user-circle") + " "; break;
|
||
case "A" : plaats_eigenaar_icon = I("fa-users") + " "; break;
|
||
case "P" : plaats_eigenaar_icon = I("fa-user") + " "; break;
|
||
}
|
||
var flexkenmerken = LIST_KENMERK_COL(oRs, {kmcol: "insflex"});
|
||
|
||
return "<div class='listbodykop'>" + remark + plaats_eigenaar_icon + safe.html(oRs("plaats_eigenaar").Value) + flexkenmerken + "</div>";
|
||
}
|
||
};
|
||
|
||
function fnAside(oRs)
|
||
{
|
||
return fronto ? (oRs("res_rsv_deel_key").Value ? "R" : null) : safe.html(oRs("reserveerbaar").Value);
|
||
}
|
||
|
||
function fnrowClass(oRs)
|
||
{
|
||
var lclass="";
|
||
if (grp_sel != "" || all_grp || ins_key > -1)
|
||
{
|
||
var recent = new Date();
|
||
recent.setMinutes(recent.getMinutes() - S("mld_melding_recent"));
|
||
var oRs2 = Oracle.Execute(
|
||
"SELECT MAX(t.fac_tracking_datum) recentdatum"
|
||
+ " FROM fac_tracking t"
|
||
+ ", fac_srtnotificatie sn"
|
||
+ " WHERE sn.fac_srtnotificatie_xmlnode = 'melding'"
|
||
+ " AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
|
||
+ " AND t.fac_tracking_refkey IN "
|
||
+ "(SELECT mld_melding_key"
|
||
+ " FROM mld_melding_object"
|
||
+ " WHERE ins_deel_key = " + oRs("ins_deel_key").Value + ")"
|
||
);
|
||
if (!oRs2.eof)
|
||
{
|
||
var mld_recent = new Date(oRs2("recentdatum").Value);
|
||
if (mld_recent > recent)
|
||
{
|
||
lclass = (lclass ? lclass += " recentlychangedmld" : " recentlychangedmld");
|
||
}
|
||
}
|
||
oRs2.Close();
|
||
}
|
||
return lclass;
|
||
}
|
||
function fnrowClassGrp(oRs)
|
||
{
|
||
if (ins_score_enabled && oRs("ins_deel_mjb_score1").Value != null)
|
||
{
|
||
return safe.htmlattr("dcscore" + (oRs("ins_deel_mjb_score1").Value).toString().replace(".", "_"));
|
||
}
|
||
return "";
|
||
}
|
||
function fnGereserveerdVanTot(oRs)
|
||
{
|
||
var res_van_str = fncolsubHeader(oRs);
|
||
if (oRs("res_rsv_deel_key").Value)
|
||
{
|
||
res_van = new Date(oRs("res_rsv_deel_van").Value);
|
||
res_tot = new Date(oRs("res_rsv_deel_tot").Value);
|
||
res_van_str += "<div class='listbodykop'>" + L("lcl_res_reservation") + " " + toDateTimeString(res_van, true) + " " + L("lcl_mjb_through") + " " + toDateTimeString(res_tot, true) + "</div>";
|
||
}
|
||
return res_van_str;
|
||
}
|
||
function fnAsideCalls(oRs) {
|
||
var returnval = 0;
|
||
var tsql = "SELECT 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, 4, 7)" // lopende meldingen
|
||
+ " AND mo.ins_deel_key = " + oRs("ins_deel_key").value;
|
||
if (S("cnd_gebreken_srtdisc_key") != -1)
|
||
{
|
||
tsql += " UNION "
|
||
+ "SELECT m.mld_melding_key"
|
||
+ " FROM mld_melding_object mo"
|
||
+ " , mld_melding m"
|
||
+ " , mld_stdmelding s"
|
||
+ " , mld_discipline d"
|
||
+ " WHERE mo.mld_melding_key = m.mld_melding_key"
|
||
+ " AND mo.mld_melding_object_verwijder IS NULL"
|
||
+ " AND m.mld_stdmelding_key = s.mld_stdmelding_key"
|
||
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
|
||
+ " AND m.mld_melding_status = 5" // afgemelde melding
|
||
+ " AND mo.ins_deel_key = " + oRs("ins_deel_key").value
|
||
+ " AND d.ins_srtdiscipline_key = " + S("cnd_gebreken_srtdisc_key");
|
||
}
|
||
tsql = "SELECT COUNT(*) aantal FROM (" + tsql + ")";
|
||
tsql_oRs = Oracle.Execute(tsql);
|
||
if (!tsql_oRs.Eof)
|
||
{
|
||
returnval = tsql_oRs("aantal").Value;
|
||
}
|
||
tsql_oRs.Close();
|
||
return returnval;
|
||
}
|
||
|
||
if (fronto) //uitleenregistratie
|
||
{
|
||
// Start building the query to fetch all objects satisfying
|
||
var sql = ins.getobjectinspect_sql(autfunction,
|
||
{ urole : urole,
|
||
outputmode: outputmode,
|
||
showall: showall,
|
||
loc_key_arr: (locatie_key != -1 ? [locatie_key] : []),
|
||
bld_key_arr: (gebouw_key != -1 ? [gebouw_key] : []),
|
||
terr_key_arr: (terrein_key != -1 ? [terrein_key] : []),
|
||
flr_key_arr: (verdieping_key != -1 ? [verdieping_key] : []),
|
||
room_key_arr: room_key_arr,
|
||
wpl_key: (wpl_key != -1 ? wpl_key : null),
|
||
deel: (deel != ""? deel : null),
|
||
disc_key_arr: (disc_key != -1 ? [disc_key] : []),
|
||
insgroup_key_arr: (insgroup_key != -1 ? [insgroup_key] : []),
|
||
objsrt_key_arr: (objsrt_key != -1 ? [objsrt_key] : []),
|
||
dep_key: (dep_key != -1 ? dep_key : null),
|
||
persoon_key: (persoon_key != -1 ? persoon_key : null),
|
||
cpersoon_key: (cpersoon_key != -1 ? cpersoon_key : null),
|
||
mld_key: (mld_key != -1 ? mld_key : null),
|
||
fgraph: fgraph,
|
||
ins_key: (ins_key != -1 ? ins_key : null),
|
||
parent_key: (parent_key != -1 ? parent_key : null),
|
||
koppel_key: (koppel_key != -1 ? koppel_key : null),
|
||
comp_key: (comp_key != -1 ? comp_key : null),
|
||
checkout: checkout,
|
||
mobile: true,
|
||
insObjIncl: insObjIncl,
|
||
expObjIncl: expObjIncl,
|
||
insLentOut: insLentOut,
|
||
insAvail: insAvail,
|
||
inacObjIncl: inacObjIncl,
|
||
insPhotoIncl: insPhotoIncl,
|
||
embedded: (embedded != -1? embedded : null),
|
||
tiny: (tiny != -1? tiny : null)
|
||
}
|
||
);
|
||
if (all_grp)
|
||
{
|
||
sql = "SELECT *"
|
||
+ " FROM (" + sql + ")"
|
||
+ " ORDER BY 3, 2, 1";
|
||
}
|
||
else if (grp_sel)
|
||
{
|
||
sql = "SELECT *"
|
||
+ " FROM (" + sql + ")"
|
||
+ " WHERE ins_disc_oms || ' ' || ins_groep_oms = " + safe.quoted_sql(grp_sel)
|
||
+ " ORDER BY 3, 2, 1";
|
||
}
|
||
else
|
||
{
|
||
sql = "SELECT COUNT(*) numberInGroup"
|
||
+ " , ins_disc_oms || ' ' || ins_groep_oms ins_groep_oms"
|
||
+ " FROM (" + sql + ")"
|
||
+ " GROUP BY ins_disc_oms, ins_groep_oms"
|
||
+ " ORDER BY ins_disc_oms, ins_groep_oms";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
// Let op: sortering (en groepering) op eerste 3 kolomen
|
||
// Ruimtegebonden objecten
|
||
var sqlR = " SELECT ins_deel_omschrijving"
|
||
+ " , ins_srtdeel_key"
|
||
+ " , ins_deel_opmerking"
|
||
+ " , DECODE (SUBSTR(aog.alg_gebouw_code, 1,1),'_','', aog.alg_gebouw_code)"
|
||
+ " || DECODE (SUBSTR(aog.alg_verdieping_code,1,1),'_','','-'||aog.alg_verdieping_code)"
|
||
+ " || DECODE (SUBSTR(aog.alg_ruimte_nr, 1,1),'_','','-'||aog.alg_ruimte_nr) plaats_eigenaar"
|
||
+ " , id.ins_deel_key"
|
||
+ " , (SELECT MAX('R') FROM res_deel rd, res_activiteitdiscipline rad WHERE rd.res_deel_verwijder IS NULL AND rd.res_discipline_key = rad.res_discipline_key AND rd.res_ins_deel_key = id.ins_deel_key AND rad.res_discipline_key != " + S("vis_parking_key") + ") reserveerbaar"
|
||
+ " , id.ins_alg_ruimte_type"
|
||
+ " , id.ins_deel_aantal"
|
||
+ " , id.ins_deel_mjb_score1"
|
||
+ " , id.ins_deel_mjb_score2"
|
||
+ " FROM alg_v_onroerendgoed_gegevens aog"
|
||
+ " , ins_v_deelenonderdeel id"
|
||
+ " , alg_locatie l"
|
||
+ " , alg_district di"
|
||
+ (koppel_key > -1
|
||
? ", (SELECT *"
|
||
+ " FROM ins_deelkoppeling"
|
||
+ " WHERE ins_deelkoppeling_van_key = " + koppel_key
|
||
+ " OR ins_deelkoppeling_naar_key = " + koppel_key + ") idk"
|
||
: "")
|
||
+ " WHERE id.ins_alg_ruimte_key = aog.alg_ruimte_key"
|
||
+ " AND aog.alg_locatie_key = l.alg_locatie_key"
|
||
+ " AND l.alg_district_key = di.alg_district_key"
|
||
+ " AND id.ins_alg_ruimte_type = 'R'"
|
||
+ (mld_key == -1
|
||
? " AND id.ins_deel_parent_key " + ((ins_parent_key > -1)? " = " + ins_parent_key : "IS NULL")
|
||
: "") // Onderdelen bij een melding wel tonen.
|
||
+ " AND id.ins_deel_verwijder IS NULL"
|
||
+ " AND (id.ins_deel_vervaldatum IS NULL OR id.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||
+ (koppel_key > -1
|
||
? " AND idk.ins_deelkoppeling_verwijder IS NULL"
|
||
+ " AND (( id.ins_deel_key = idk.ins_deelkoppeling_naar_key"
|
||
+ " AND idk.ins_deelkoppeling_van_key=" + koppel_key
|
||
+ " )"
|
||
+ " OR ( id.ins_deel_key = idk.ins_deelkoppeling_van_key"
|
||
+ " AND idk.ins_deelkoppeling_naar_key=" + koppel_key + "))"
|
||
: "")
|
||
+ ((locatie_key > -1) ? " AND aog.alg_locatie_key = " + locatie_key : "")
|
||
+ ((gebouw_key > -1) ? " AND aog.alg_gebouw_key = " + gebouw_key : "")
|
||
+ ((verdieping_key > -1) ? " AND aog.alg_verdieping_key = " + verdieping_key : "")
|
||
+ ((ruimte_key > -1) ? " AND aog.alg_ruimte_key = " + ruimte_key : "");
|
||
sqlR = discx3d (sqlR,
|
||
"id.ins_discipline_key",
|
||
"di.alg_regio_key",
|
||
"l.alg_district_key",
|
||
"aog.alg_locatie_key",
|
||
"aog.alg_gebouw_key",
|
||
"aog.alg_verdieping_key",
|
||
"aog.alg_ruimte_key",
|
||
"", // b.prs_bedrijf_key:
|
||
"", // d.prs_afdeling_key:
|
||
autfunction,
|
||
(disc_key != -1 ? [disc_key] : []),
|
||
0);
|
||
|
||
// Terreingebonden objecten
|
||
var sqlT = " SELECT ins_deel_omschrijving"
|
||
+ " , ins_srtdeel_key"
|
||
+ " , ins_deel_opmerking"
|
||
+ " , aog.alg_terreinsector_code || '-' || aog.alg_terreinsector_naam plaats_eigenaar"
|
||
+ " , id.ins_deel_key"
|
||
+ " , (SELECT MAX('R') FROM res_deel rd WHERE rd.res_deel_verwijder IS NULL AND rd.res_ins_deel_key = id.ins_deel_key) reserveerbaar"
|
||
+ " , id.ins_alg_ruimte_type"
|
||
+ " , id.ins_deel_aantal"
|
||
+ " , id.ins_deel_mjb_score1"
|
||
+ " , id.ins_deel_mjb_score2"
|
||
+ " FROM alg_v_onroerendgoed_gegevens aog"
|
||
+ " , ins_v_deelenonderdeel id"
|
||
+ " , alg_locatie l"
|
||
+ " , alg_district di"
|
||
+ (koppel_key > -1
|
||
? ", (SELECT *"
|
||
+ " FROM ins_deelkoppeling"
|
||
+ " WHERE ins_deelkoppeling_van_key = " + koppel_key
|
||
+ " OR ins_deelkoppeling_naar_key = " + koppel_key + ") idk"
|
||
: "")
|
||
+ " WHERE id.ins_alg_ruimte_key = aog.alg_terreinsector_key"
|
||
+ " AND aog.alg_locatie_key = l.alg_locatie_key"
|
||
+ " AND l.alg_district_key = di.alg_district_key"
|
||
+ " AND id.ins_alg_ruimte_type = 'T'"
|
||
+ (mld_key == -1
|
||
? " AND id.ins_deel_parent_key " + ((ins_parent_key > -1)? " = " + ins_parent_key : "IS NULL")
|
||
: "") // Onderdelen bij een melding wel tonen.
|
||
+ " AND id.ins_deel_verwijder IS NULL"
|
||
+ " AND (id.ins_deel_vervaldatum IS NULL OR id.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||
+ (koppel_key > -1
|
||
? " AND idk.ins_deelkoppeling_verwijder IS NULL"
|
||
+ " AND (( id.ins_deel_key = idk.ins_deelkoppeling_naar_key"
|
||
+ " AND idk.ins_deelkoppeling_van_key=" + koppel_key
|
||
+ " )"
|
||
+ " OR ( id.ins_deel_key = idk.ins_deelkoppeling_van_key"
|
||
+ " AND idk.ins_deelkoppeling_naar_key=" + koppel_key + "))"
|
||
: "")
|
||
+ ((locatie_key > -1) ? " AND aog.alg_locatie_key = " + locatie_key : "")
|
||
+ ((terrein_key > -1) ? " AND aog.alg_terreinsector_key = " + terrein_key : "");
|
||
sqlT = discx3d (sqlT,
|
||
"id.ins_discipline_key",
|
||
"di.alg_regio_key",
|
||
"l.alg_district_key",
|
||
"aog.alg_locatie_key",
|
||
"aog.alg_terreinsector_key",
|
||
"", //aog.alg_verdieping_key,
|
||
"", //aog.alg_ruimte_key,
|
||
"", // b.prs_bedrijf_key:
|
||
"", // d.prs_afdeling_key:
|
||
autfunction,
|
||
(disc_key != -1 ? [disc_key] : []),
|
||
0);
|
||
|
||
// Werkplekgebonden objecten
|
||
var sqlW = " SELECT ins_deel_omschrijving"
|
||
+ " , ins_srtdeel_key"
|
||
+ " , ins_deel_opmerking"
|
||
+ " , aog.alg_gebouw_code || '-' || aog.alg_verdieping_code || '-' || aog.alg_ruimte_nr || '/' || w.prs_werkplek_volgnr plaats_eigenaar"
|
||
+ " , id.ins_deel_key"
|
||
+ " , (SELECT MAX('R') FROM res_deel rd WHERE rd.res_deel_verwijder IS NULL AND rd.res_ins_deel_key = id.ins_deel_key) reserveerbaar"
|
||
+ " , id.ins_alg_ruimte_type"
|
||
+ " , id.ins_deel_aantal"
|
||
+ " , id.ins_deel_mjb_score1"
|
||
+ " , id.ins_deel_mjb_score2"
|
||
+ " FROM alg_v_onroerendgoed_gegevens aog"
|
||
+ " , prs_werkplek w"
|
||
+ " , ins_v_deelenonderdeel id"
|
||
+ " , alg_locatie l"
|
||
+ " , alg_district di"
|
||
+ (koppel_key > -1
|
||
? ", (SELECT *"
|
||
+ " FROM ins_deelkoppeling"
|
||
+ " WHERE ins_deelkoppeling_van_key = " + koppel_key
|
||
+ " OR ins_deelkoppeling_naar_key = " + koppel_key + ") idk"
|
||
: "")
|
||
+ " WHERE id.ins_alg_ruimte_key = w.prs_werkplek_key"
|
||
+ " AND w.prs_alg_ruimte_key = aog.alg_ruimte_key"
|
||
+ " AND aog.alg_locatie_key = l.alg_locatie_key"
|
||
+ " AND l.alg_district_key = di.alg_district_key"
|
||
+ " AND id.ins_alg_ruimte_type = 'W'"
|
||
+ (mld_key == -1
|
||
? " AND id.ins_deel_parent_key " + ((ins_parent_key > -1) ? "="+ins_parent_key : "IS NULL")
|
||
: "") // Onderdelen bij een melding wel tonen.
|
||
+ " AND id.ins_deel_verwijder IS NULL"
|
||
+ (koppel_key > -1
|
||
? " AND idk.ins_deelkoppeling_verwijder IS NULL"
|
||
+ " AND (( id.ins_deel_key = idk.ins_deelkoppeling_naar_key"
|
||
+ " AND idk.ins_deelkoppeling_van_key=" + koppel_key
|
||
+ " )"
|
||
+ " OR ( id.ins_deel_key = idk.ins_deelkoppeling_van_key"
|
||
+ " AND idk.ins_deelkoppeling_naar_key=" + koppel_key + "))"
|
||
: "")
|
||
+ ((locatie_key > -1) ? " AND aog.alg_locatie_key = " + locatie_key : "")
|
||
+ ((gebouw_key > -1) ? " AND aog.alg_gebouw_key = " + gebouw_key : "")
|
||
+ ((verdieping_key > -1) ? " AND aog.alg_verdieping_key = " + verdieping_key : "")
|
||
+ ((ruimte_key > -1) ? " AND aog.alg_ruimte_key = " + ruimte_key : "");
|
||
|
||
sqlW = discx3d (sqlW,
|
||
"id.ins_discipline_key",
|
||
"di.alg_regio_key",
|
||
"l.alg_district_key",
|
||
"aog.alg_locatie_key",
|
||
"aog.alg_gebouw_key",
|
||
"aog.alg_verdieping_key",
|
||
"aog.alg_ruimte_key",
|
||
"", // b.prs_bedrijf_key:
|
||
"", // d.prs_afdeling_key:
|
||
autfunction,
|
||
(disc_key != -1 ? [disc_key] : []),
|
||
0);
|
||
|
||
|
||
// Afdelingsgebonden objecten, niet in alle gevallen meenemen
|
||
// TODO (ooit): beperken tot afdelingen met personen met werkplekken binnen de scope.
|
||
var sqlA = " SELECT ins_deel_omschrijving"
|
||
+ " , ins_srtdeel_key"
|
||
+ " , ins_deel_opmerking"
|
||
+ " , a.prs_afdeling_omschrijving plaats_eigenaar"
|
||
+ " , id.ins_deel_key"
|
||
+ " , (SELECT MAX('R') FROM res_deel rd WHERE rd.res_deel_verwijder IS NULL AND rd.res_ins_deel_key = id.ins_deel_key) reserveerbaar"
|
||
+ " , id.ins_alg_ruimte_type"
|
||
+ " , id.ins_deel_aantal"
|
||
+ " , id.ins_deel_mjb_score1"
|
||
+ " , id.ins_deel_mjb_score2"
|
||
+ " FROM ins_v_deelenonderdeel id"
|
||
+ " , prs_v_afdeling a"
|
||
+ " , prs_v_afdeling_boom boom"
|
||
+ " , prs_bedrijf b"
|
||
+ (koppel_key > -1
|
||
? ", (SELECT *"
|
||
+ " FROM ins_deelkoppeling"
|
||
+ " WHERE ins_deelkoppeling_van_key = " + koppel_key
|
||
+ " OR ins_deelkoppeling_naar_key = " + koppel_key + ") idk"
|
||
: "")
|
||
+ " WHERE id.ins_alg_ruimte_key = a.prs_afdeling_key"
|
||
+ " AND a.prs_bedrijf_key = b.prs_bedrijf_key"
|
||
+ " AND a.prs_afdeling_key = boom.prs_afdeling_key"
|
||
+ " AND id.ins_alg_ruimte_type = 'A'"
|
||
+ (mld_key == -1
|
||
? " AND id.ins_deel_parent_key " + ((ins_parent_key > -1)? " = " + ins_parent_key : "IS NULL")
|
||
: "") // Onderdelen bij een melding wel tonen.
|
||
+ " AND id.ins_deel_verwijder IS NULL"
|
||
+ " AND (id.ins_deel_vervaldatum IS NULL OR id.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||
+ (koppel_key > -1
|
||
? " AND idk.ins_deelkoppeling_verwijder IS NULL"
|
||
+ " AND (( id.ins_deel_key = idk.ins_deelkoppeling_naar_key"
|
||
+ " AND idk.ins_deelkoppeling_van_key=" + koppel_key
|
||
+ " )"
|
||
+ " OR ( id.ins_deel_key = idk.ins_deelkoppeling_van_key"
|
||
+ " AND idk.ins_deelkoppeling_naar_key=" + koppel_key + "))"
|
||
: "")
|
||
+ ((afd_key > -1) ? " AND id.ins_alg_ruimte_key = " + afd_key : "");
|
||
sqlA = discx3d (sqlA,
|
||
"id.ins_discipline_key",
|
||
"", //"di.alg_regio_key",
|
||
"", //"l.alg_district_key",
|
||
"", //"aog.alg_locatie_key",
|
||
"", //"aog.alg_gebouw_key",
|
||
"", //"aog.alg_verdieping_key",
|
||
"", //"aog.alg_ruimte_key",
|
||
"b.prs_bedrijf_key",
|
||
"boom.prs_afdeling_key",
|
||
autfunction,
|
||
(disc_key != -1 ? [disc_key] : []),
|
||
1);
|
||
|
||
|
||
// Persoonsgebonden objecten
|
||
// Neemt de ORG-scope mee, maar ook de plaatscope via de werkplekken:
|
||
// als de persoon binnen de scope een wp heeft, dan wordt die getoond
|
||
var sqlP = " SELECT id.ins_deel_omschrijving"
|
||
+ " , id.ins_srtdeel_key"
|
||
+ " , id.ins_deel_opmerking"
|
||
+ " , pf.prs_perslid_naam_friendly plaats_eigenaar"
|
||
+ " , id.ins_deel_key"
|
||
+ " , (SELECT MAX('R') FROM res_deel rd WHERE rd.res_deel_verwijder IS NULL AND rd.res_ins_deel_key = id.ins_deel_key) reserveerbaar"
|
||
+ " , id.ins_alg_ruimte_type"
|
||
+ " , id.ins_deel_aantal"
|
||
+ " , id.ins_deel_mjb_score1"
|
||
+ " , id.ins_deel_mjb_score2"
|
||
+ " FROM ins_v_deelenonderdeel id"
|
||
+ " , prs_v_perslid_fullnames_all pf"
|
||
+ (koppel_key > -1
|
||
? ", (SELECT *"
|
||
+ " FROM ins_deelkoppeling"
|
||
+ " WHERE ins_deelkoppeling_van_key = " + koppel_key
|
||
+ " OR ins_deelkoppeling_naar_key = " + koppel_key + ") idk"
|
||
: "")
|
||
+ " WHERE id.ins_alg_ruimte_key = pf.prs_perslid_key"
|
||
+ " AND id.ins_alg_ruimte_type = 'P'"
|
||
+ " AND id.ins_deel_verwijder IS NULL"
|
||
+ " AND (id.ins_deel_vervaldatum IS NULL OR id.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||
+ (koppel_key > -1
|
||
? " AND idk.ins_deelkoppeling_verwijder IS NULL"
|
||
+ " AND (( id.ins_deel_key = idk.ins_deelkoppeling_naar_key"
|
||
+ " AND idk.ins_deelkoppeling_van_key=" + koppel_key
|
||
+ " )"
|
||
+ " OR ( id.ins_deel_key = idk.ins_deelkoppeling_van_key"
|
||
+ " AND idk.ins_deelkoppeling_naar_key=" + koppel_key + "))"
|
||
: "")
|
||
+ (mld_key == -1
|
||
? " AND id.ins_deel_parent_key " + ((ins_parent_key > -1)? " = " + ins_parent_key : "IS NULL")
|
||
: "") // Onderdelen bij een melding wel tonen.
|
||
+ (prs_key > -1
|
||
? " AND id.ins_alg_ruimte_key = " + prs_key
|
||
: "")
|
||
+ (eigen_obj
|
||
? " AND id.ins_discipline_key IN (SELECT w.ins_discipline_key"
|
||
+ " FROM fac_v_webgebruiker w"
|
||
+ " , fac_functie f"
|
||
+ " WHERE w.fac_functie_key = f.fac_functie_key"
|
||
+ " AND f.fac_functie_code = 'WEB_INSMIN'"
|
||
+ " AND w.prs_perslid_key = " + prs_key
|
||
+ " )"
|
||
: "");
|
||
|
||
var v_flexparams = { inspect: 0
|
||
, multiflex: true
|
||
, ins_deel: "recs"
|
||
}
|
||
var insFlexParams = ins.ins_deel_flex_params(1, v_flexparams);
|
||
|
||
sql = "SELECT recs.* "
|
||
+ " , " + lcl.xsqla('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_key')
|
||
+ " , " + lcl.xsql('sg.ins_srtgroep_omschrijving', 'sg.ins_srtgroep_key') + " ins_groep_oms"
|
||
+ " , " + lcl.xsql('disc.ins_discipline_omschrijving', 'disc.ins_discipline_key') + " ins_disc_oms"
|
||
+ " , sg.ins_discipline_key"
|
||
+ " , recs.ins_deel_aantal"
|
||
+ " || CASE"
|
||
+ " WHEN sd.ins_srtdeel_eenheid IS NOT NULL"
|
||
+ " THEN ' ' || sd.ins_srtdeel_eenheid"
|
||
+ " ELSE ''"
|
||
+ " END hoeveelheid"
|
||
+ " , (SELECT MAX(mld_melding_datum)"
|
||
+ " FROM mld_melding m"
|
||
+ " , mld_stdmelding std"
|
||
+ " , mld_discipline md"
|
||
+ " WHERE m.mld_stdmelding_key = std.mld_stdmelding_key"
|
||
+ " AND std.mld_ins_discipline_key = md.ins_discipline_key"
|
||
+ " AND m.mld_melding_key IN (SELECT mld_melding_key"
|
||
+ " FROM mld_melding_object"
|
||
+ " WHERE ins_deel_key = recs.ins_deel_key)"
|
||
+ " AND m.mld_melding_parentkey IS NULL"
|
||
+ " AND md.ins_srtdiscipline_key = " + S("cnd_gebreken_srtdisc_key") + ")" // gebrekmelding
|
||
+ " gebrekdatum"
|
||
+ ( insFlexParams.anyflex
|
||
? insFlexParams.sql
|
||
: ""
|
||
)
|
||
+ " FROM ("
|
||
+ sqlR
|
||
+ (metWerkplekgebonden ? " UNION " + sqlW : "")
|
||
+ (metPersoonsgebonden ? " UNION " + sqlP : "")
|
||
+ (metAfdelingsgebonden ? " UNION " + sqlA : "")
|
||
+ (metTerreingebonden ? " UNION " + sqlT : "")
|
||
+ " ) recs"
|
||
+ " , ins_srtdeel sd"
|
||
+ " , ins_srtgroep sg"
|
||
+ " , ins_discipline disc"
|
||
+ " WHERE sd.ins_srtdeel_key = recs.ins_srtdeel_key"
|
||
+ " AND sd.ins_srtgroep_key = sg.ins_srtgroep_key"
|
||
+ " AND sg.ins_discipline_key = disc.ins_discipline_key"
|
||
+ ((prs_key > -1) ? " AND recs.ins_alg_ruimte_type = 'P'" : "")
|
||
+ ((mld_key > -1) ? " AND ins_deel_key IN (SELECT ins_deel_key FROM mld_melding_object WHERE mld_melding_object_verwijder IS NULL AND mld_melding_key = " + mld_key + ")" : "")
|
||
+ ((ins_key > -1) ? " AND id.ins_deel_key = " + ins_key : "")
|
||
if (ins_parent_key > 0 || koppel_key > 0 || mld_key > 0 || (all_grp && !grp_sel))
|
||
{
|
||
sql += " ORDER BY ins_deel_omschrijving, ins_srtdeel_omschrijving, ins_deel_opmerking";
|
||
}
|
||
else if (grp_sel)
|
||
{
|
||
sql += " AND ins_discipline_omschrijving || ' ' || ins_srtgroep_omschrijving = " + safe.quoted_sql(grp_sel)
|
||
+ " ORDER BY ins_deel_omschrijving, ins_srtdeel_omschrijving, ins_deel_opmerking";
|
||
}
|
||
else
|
||
{
|
||
sql = "SELECT COUNT(*) numberInGroup"
|
||
+ " , ins_disc_oms || ' ' || ins_groep_oms ins_srtgroep_omschrijving"
|
||
+ " FROM (" + sql + ")"
|
||
+ " GROUP BY ins_disc_oms, ins_groep_oms"
|
||
+ " ORDER BY ins_disc_oms, ins_groep_oms";
|
||
}
|
||
}
|
||
var rst = new ResultsetTable({sql: sql,
|
||
keyColumn: "ins_deel_key",
|
||
linkColumn: fncolLink,
|
||
rowClass: ((grp_sel || all_grp) && !fronto ? fnrowClassGrp : fnrowClass),
|
||
singleLink: true,
|
||
groupColumn: ((ins_parent_key == -1 && koppel_key == -1 && mld_key == -1 && !grp_sel && !all_grp)? fncolGroup : ""),
|
||
groupSelect: "",
|
||
numberInGroup: (grp_sel || all_grp ? null:"numberInGroup"),
|
||
detailColumn: ins_parent_key > 0 || koppel_key > 0 || mld_key > 0 || grp_sel || all_grp ?fncolDetail:null,
|
||
headerColumn: ins_parent_key > 0 || koppel_key > 0 || mld_key > 0 || grp_sel || all_grp ?"ins_deel_omschrijving":"",
|
||
asideColumn: grp_sel ? fnAside: ( all_grp ? fnAsideCalls:null),
|
||
subheaderColumn: ins_parent_key > 0 || koppel_key > 0 || mld_key > 0 || grp_sel || all_grp ?(fronto?fnGereserveerdVanTot:fncolsubHeader):"",
|
||
ID: "deelstable",
|
||
showAll: true
|
||
});
|
||
|
||
var cnt = rst.processResultset();
|
||
|
||
CONTENT_END();
|
||
FOOTER();
|
||
PAGE_END();
|
||
PDA_PAGE_END(); %>
|
||
</body>
|
||
</html>
|
||
<% ASPPAGE_END(); %>
|