1718 lines
103 KiB
PHP
1718 lines
103 KiB
PHP
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: INS/ins_list.inc
|
|
Description: Show an overview of objects in list-form.
|
|
which meets with the given requirements
|
|
User can select on or more lines and edit/delete them
|
|
FE ->verbruiksregistratie
|
|
BO ->object registratie
|
|
FO ->uitleenmodule
|
|
|
|
Parameters:
|
|
urole user role (fe, fo, bo, mi)
|
|
outputmode behave in an output mode, print to 0 = screen, 1 = printer, 2 = excel, etc.
|
|
showall show all objects which meets with the given requirements
|
|
inspect Toon ook inspectie kolommen
|
|
inspFutu, inspBusy, inspSoon, inspLate, inspDone: de vinkjes
|
|
inspsoonfrom search for objects with inspections between inspsoonfrom and inspsoonto
|
|
inspsoonto search for objects with inspections between inspsoonfrom and inspsoonto
|
|
donedatefrom search for objects with inspections between donedatefrom and donedateto
|
|
donedateto search for objects with inspections between donedatefrom and donedateto
|
|
reg_key search for objects with the given regio key
|
|
dist_key search for objects with the given district key
|
|
loc_key search for objects with the given location key
|
|
bld_key search for objects with the given building key
|
|
flr_key search for objects with the given floor key
|
|
room_key search for objects with the given room key
|
|
wpl_key search for objects with the given workplace key
|
|
deel search for objects with the given identification
|
|
disc_key search for objects with the given discipline key
|
|
insgroup_key search for objects with the given groep key (srtgroup key)
|
|
objsrt_key search for objects with the given objectsoort (srtdeel key) as intArray
|
|
objsrt_oms search for srtobjects with the given code or description
|
|
groep search for group with the given code or description
|
|
dep_key search for objects with the given department key
|
|
persoon_key search for objects with the given persoon key
|
|
beh_key search for objects manaed by the given beh (persoon) key
|
|
cpersoon_key search for objects with the given contactpersoon key
|
|
cnt_bedrijf_key search for objects waar het desbetreffende bedrijf contractueel onderhoud kan doen
|
|
ins_key_arr search for objects with the given ins key array
|
|
parent_key search for subobjects of the given ins parent_key
|
|
koppel_key search for related objects of the given koppel_key
|
|
terr_key search for objects with the given terrein key
|
|
room_key_arr search for objects with the given room keys (room key array)
|
|
comp_key search for objects with the given companie key
|
|
insObjIncl search also for objects wich is a part from another object
|
|
insLentOut search for objects wich are lent out
|
|
insAvail search for objects wich are available
|
|
fgraph search for objects for a fgraph search
|
|
Context: - INS/ins_search.asp (Search action from bes_search.asp form)
|
|
- FGraph (<cust>_Report.asp)
|
|
- Self (when printing)
|
|
Note: For FGraph-selectable objects 'owner' selection is never applicable
|
|
as the objects will be place-bound
|
|
Als parent_key of koppel_key, dan worden geen bulkacties getoond (tiny)
|
|
|
|
*/ %>
|
|
|
|
<!-- #include file="../Shared/json2.js" -->
|
|
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
|
<!-- #include file="../Shared/getkenmerksql.inc" -->
|
|
<!-- #include file="../Shared/discx3d.inc" -->
|
|
<!-- #include file="./ins.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins:["jQuery"],
|
|
js: ["jquery-ui.js", "../ins/ins_list.js", "num2curr.js"]
|
|
});
|
|
function ins_list (pautfunction, params)
|
|
{
|
|
var buttons = [];
|
|
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
|
|
var authparams = user.checkAutorisation(pautfunction);
|
|
var authparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
|
|
var hasWriteINSMAN = (authparamsINSMAN && authparamsINSMAN.ALGwritelevel < 9 && authparamsINSMAN.PRSwritelevel < 9)
|
|
|
|
var urole = params.urole;
|
|
var fronto = (urole == "fo");
|
|
var backo = (urole == "bo");
|
|
var minfo = (urole == "mi"); // NOT APPLICABLE?
|
|
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
|
|
|
var canAdd = (authparams.PRSwritelevel < 9 && urole != "fo");
|
|
|
|
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
|
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
|
var print = (outputmode == 1);
|
|
var excel = (outputmode == 2);
|
|
var showall = params.showall;
|
|
|
|
var reg_key = params.reg_key;
|
|
var dist_key = params.dist_key;
|
|
var loc_key = params.loc_key;
|
|
var bld_key = params.bld_key;
|
|
var terr_key = params.terr_key;
|
|
var flr_key = params.flr_key;
|
|
var room_key = params.room_key;
|
|
var wpl_key = params.wpl_key;
|
|
var deel = params.deel;
|
|
var deel_opm = params.deel_opm;
|
|
var disc_key = params.disc_key;
|
|
var insgroup_key = params.insgroup_key;
|
|
var objsrt_key = params.objsrt_key;
|
|
var objsrt_oms = params.objsrt_oms;
|
|
var groep = params.groep;
|
|
var controletype = params.controletype;
|
|
var dep_key = params.dep_key;
|
|
var persoon_key = params.persoon_key;
|
|
var beh_key = params.beh_key;
|
|
var cpersoon_key = params.cpersoon_key;
|
|
var mld_key = params.mld_key;
|
|
var fgraph = params.fgraph;
|
|
var ins_key_arr = params.ins_key_arr;
|
|
var parent_key = params.parent_key;
|
|
var koppel_key = params.koppel_key;
|
|
var room_key_arr = params.room_key_arr;
|
|
var comp_key = params.comp_key;
|
|
var insObjIncl = params.insObjIncl;
|
|
var expObjIncl = params.expObjIncl;
|
|
var insLentOut = params.insLentOut;
|
|
var insAvail = params.insAvail;
|
|
var embedded = params.embedded;
|
|
var tiny = params.tiny || parent_key || koppel_key;
|
|
var srtcontrole = params.srtcontrole;
|
|
var inspsoonfrom = params.inspsoonfrom;
|
|
var inspsoonto = params.inspsoonto;
|
|
var donedatefrom = params.donedatefrom;
|
|
var donedateto = params.donedateto;
|
|
|
|
var sql_objincl = "";
|
|
if (insObjIncl || parent_key > 0)
|
|
sql_objincl = "";
|
|
else
|
|
sql_objincl += " AND i.ins_deel_parent_key IS NULL ";
|
|
|
|
if (!expObjIncl && !deel)
|
|
sql_objincl += " AND (i.ins_deel_vervaldatum IS NULL OR i.ins_deel_vervaldatum > TRUNC(SYSDATE)) ";
|
|
%>
|
|
|
|
<html>
|
|
<head>
|
|
<%
|
|
FCLTHeader.Generate({ outputmode: outputmode });
|
|
%>
|
|
<script type="text/javascript">
|
|
var urole = "<%=urole%>";
|
|
function ins_deelkoppeling()
|
|
{
|
|
FcltMgr.openModalDetail("../ins/ins_deelkoppeling.asp?urole=<%=urole%>&ins_keys=<%=koppel_key%>",
|
|
L("lcl_ins_koppelobjects"),
|
|
{ callback: FcltMgr.reload });
|
|
}
|
|
</script>
|
|
</head>
|
|
<body id="listbody">
|
|
|
|
<%
|
|
if (frontend)
|
|
{ %>
|
|
<form action="ins_search_list.asp" method="get" id="inslist" name="inslist">
|
|
<input type="hidden" name="urole" value="<%=urole%>">
|
|
<% /* filter velden voor frontend. Nodig voor reload na oplaan nieuw waarden. */ %>
|
|
<input type="hidden" name="locatiekey" value="<%=loc_key%>">
|
|
<input type="hidden" name="srtdeel" value="<%=objsrt_key%>">
|
|
<%
|
|
var sql_loc = "";
|
|
var sql_obj_sort = "";
|
|
|
|
if (loc_key)
|
|
{
|
|
sql_loc = " AND l.alg_locatie_key = " + loc_key;
|
|
}
|
|
else if (dist_key)
|
|
{
|
|
sql_loc = " AND l.alg_district_key = " + dist_key;
|
|
}
|
|
else if (reg_key)
|
|
{
|
|
sql_loc = " AND di.alg_regio_key = " + reg_key;
|
|
}
|
|
else
|
|
{
|
|
// Note: we do not support alg-scope per discipline (yet)
|
|
sql_loc = (authparams.ALGreadlevel >= 0
|
|
? " AND d.ins_alg_locatie_key IN"
|
|
+ " (SELECT alg_locatie_key FROM fac_v_my_locations"
|
|
+ " WHERE prs_perslid_key = " + user_key
|
|
+ " AND niveau = " + authparams.ALGreadlevel + ")"
|
|
: "");
|
|
}
|
|
|
|
if (objsrt_key)
|
|
{
|
|
sql_obj_sort = " AND sk.INS_SRTDEEL_KEY IN (" + objsrt_key.join(",") + ")";
|
|
}
|
|
else
|
|
{
|
|
sql_obj_sort = " AND sk.ins_discipline_key IN (SELECT gb.ins_discipline_key"
|
|
+ " FROM fac_v_webgebruiker gb, fac_functie f"
|
|
+ " WHERE prs_perslid_key = " + user_key
|
|
+ " AND fac_functie_code = " + safe.quoted_sql(pautfunction)
|
|
+ " AND f.fac_functie_key = gb.fac_functie_key"
|
|
+ " and gb.fac_gebruiker_alg_level_read < 9)";
|
|
}
|
|
|
|
sql = " SELECT "+lcl.xsqla('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_key')
|
|
+ ", d.ins_deel_omschrijving || ' (' || d.ins_deel_key || ')' object_omschrijving" // object omschrijving
|
|
+ ", d.ins_deel_opmerking"
|
|
+ ", (SELECT akd.ins_kenmerkdeel_aanmaak"
|
|
+ " FROM ins_v_aanwezigkenmerkdeel akd"
|
|
+ " WHERE akd.ins_deel_key = d.ins_deel_key"
|
|
+ " AND akd.ins_kenmerk_key = sk.ins_kenmerk_key) last_change_date" // vorige invoerdatum
|
|
+ ", (SELECT akd.ins_kenmerkdeel_waarde"
|
|
+ " FROM ins_v_aanwezigkenmerkdeel akd"
|
|
+ " WHERE akd.ins_deel_key = d.ins_deel_key"
|
|
+ " AND akd.ins_kenmerk_key = sk.ins_kenmerk_key) last_value" // huidige (laatste) waarde
|
|
+ ", sk.ins_srtdeel_key" // objectsoort deel key
|
|
+ ", d.ins_deel_key" // onderdeel key
|
|
+ ", sk.ins_kenmerk_key" // objectkenmerk key
|
|
+ ", d.ins_alg_ruimte_key" // alg ruimte key
|
|
+ ", sk.ins_srtkenmerk_key" // bibliotheek kenmerk key
|
|
+ ", sk.ins_srtkenmerk_kenmerktype" // bibliotheek type
|
|
+ ", sk.ins_srtkenmerk_lengte" // bibliotheek lengte
|
|
+ ", sk.ins_srtkenmerk_nmin" // bibliotheek maximum waarde
|
|
+ ", sk.ins_srtkenmerk_nmax" // bibliotheek minimum waarde
|
|
+ ", l.alg_locatie_omschrijving" // locatie omschrijving
|
|
+ ", "+lcl.xsqla('sd.ins_srtdeel_eenheid', 'sd.ins_srtdeel_key') // eenheid van het verbruik
|
|
+ ", sk.ins_kenmerk_volgnummer" // kenmerk volgnummer
|
|
+ ", COALESCE("
|
|
+ " (SELECT akd.ins_kenmerkdeel_key"
|
|
+ " FROM ins_v_aanwezigkenmerkdeel akd"
|
|
+ " WHERE akd.ins_deel_key = d.ins_deel_key"
|
|
+ " AND akd.ins_kenmerk_key = sk.ins_kenmerk_key)"
|
|
+ ", -1) ins_kenmerkdeel_key" // ins_kenmerkdeel_key
|
|
+ ", rd.res_deel_key"
|
|
+ ", rd.res_deel_opmerking"
|
|
+ " FROM ins_v_srtdeel_kenmerk sk"
|
|
+ ", ins_v_aanwezigdeel d"
|
|
+ ", ins_srtdeel sd"
|
|
+ ", alg_locatie l"
|
|
+ (!loc_key && !dist_key && reg_key
|
|
? ", alg_district di"
|
|
: "")
|
|
+ ", (SELECT res_deel_key"
|
|
+ " , res_ins_deel_key"
|
|
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
|
+ " FROM res_deel"
|
|
+ " WHERE res_deel_verwijder IS NULL"
|
|
+ " AND res_deel_vervaldatum IS NULL"
|
|
+ " UNION ALL"
|
|
+ " SELECT res_deel_key"
|
|
+ " , res_ins_deel_key"
|
|
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
|
+ " FROM res_deel"
|
|
+ " WHERE res_deel_verwijder IS NULL"
|
|
+ " AND res_deel_vervaldatum > SYSDATE) rd"
|
|
+ " WHERE sk.ins_srtdeel_key = sd.ins_srtdeel_key"
|
|
+ " AND d.ins_srtdeel_key = sd.ins_srtdeel_key"
|
|
+ " AND d.ins_alg_locatie_key = l.alg_locatie_key"
|
|
+ (!loc_key && !dist_key && reg_key
|
|
? " AND l.alg_district_key = di.alg_district_key"
|
|
: "")
|
|
+ " AND d.ins_deel_key = rd.res_ins_deel_key(+)"
|
|
+ " AND sd.ins_srtgroep_key NOT IN (" + S("sle_ins_srt_groep_key") + ", " + S("cil_ins_srt_groep_key") + ")"
|
|
+ sql_loc
|
|
+ sql_obj_sort
|
|
+ " AND sk.ins_kenmerk_meetwaarde = 1"
|
|
+ " AND sk.ins_srtkenmerk_kenmerktype = 'N'"
|
|
+ " AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
|
+ " ORDER BY alg_locatie_omschrijving" // overweeg uppers?
|
|
+ ", "+lcl.xsql('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_key')
|
|
+ ", d.ins_deel_omschrijving || ' (' || d.ins_deel_key || ')'"
|
|
+ ", "+ lcl.xsql('sd.ins_srtdeel_eenheid','sd.ins_srtdeel_key');
|
|
|
|
/****************************************
|
|
* Callback functies ResultsetTable for FE
|
|
****************************************/
|
|
|
|
function fnrowDataFE(oRs)
|
|
{
|
|
var insDeelKey = oRs("ins_deel_key").value;
|
|
var insDeelDescr = oRs("object_omschrijving").value;
|
|
var insKenmerkDeelKey = oRs("ins_kenmerkdeel_key").value;
|
|
var insKenmerkKey = oRs("ins_kenmerk_key").value;
|
|
|
|
var data = {insDeelKey:insDeelKey, insDeelDescr:insDeelDescr, insKenmerkDeelKey:insKenmerkDeelKey, insKenmerkKey:insKenmerkKey};
|
|
return JSON.stringify(data);
|
|
}
|
|
|
|
function fnInput(oRs)
|
|
{ // input nieuwe waarde d.m.v. input box
|
|
newInput = "<NOBR>"
|
|
|
|
var write_ok
|
|
if (authparams.ALGwritelevel >= 0)
|
|
{
|
|
sql2 = "SELECT alg_ruimte_key FROM fac_v_my_rooms"
|
|
+ " WHERE prs_perslid_key = " + user_key
|
|
+ " AND niveau = " + authparams.ALGwritelevel
|
|
+ " AND alg_ruimte_key = " + oRs("ins_alg_ruimte_key").value;
|
|
oRs2 = Oracle.Execute(sql2);
|
|
if (!oRs2.eof)
|
|
write_ok = true;
|
|
else
|
|
write_ok = false;
|
|
}
|
|
else
|
|
{
|
|
write_ok = true;
|
|
}
|
|
|
|
newInput += '<input type="text" maxlength="10" style="width:100;text-align:right"'
|
|
+ ' onBlur="checkInput(event);" onKeyPress="return checkEnter(event);"'
|
|
+ ' id="cnt' + rst.rowNum + '" name="cnt' + rst.rowNum + '" value=""'
|
|
+ ' value1="' + oRs("ins_srtkenmerk_kenmerktype").value + '"'
|
|
+ ' value2="' + oRs("ins_srtkenmerk_lengte").value + '"'
|
|
+ ' value3="' + oRs("ins_srtkenmerk_nmin").value + '"'
|
|
+ ' value4="' + oRs("ins_srtkenmerk_nmax").value + '"'
|
|
+ (!write_ok || oRs("ins_srtkenmerk_kenmerktype").value != 'N'
|
|
? ' readonly'
|
|
: '')
|
|
+ '>'
|
|
+ '<input type="hidden" id="last_val' + rst.rowNum + '" name="last_val' + rst.rowNum + '" value="' + (oRs("last_value").value? oRs("last_value").value : 0) + '">'
|
|
+ '<input type="hidden" id="deel_key' + rst.rowNum + '" name="deel_key' + rst.rowNum + '" value="' + oRs("ins_deel_key").value + '">'
|
|
+ '<input type="hidden" id="kenmerk_key' + rst.rowNum + '" name="kenmerk_key' + rst.rowNum + '" value="' + oRs("ins_kenmerk_key").value + '">';
|
|
|
|
return newInput;
|
|
}
|
|
|
|
/*********************************************
|
|
* End callback functies ResultsetTable for FE
|
|
********************************************/
|
|
var rst = new ResultsetTable({ keyColumn: "ins_deel_key",
|
|
sql: sql,
|
|
ID: "instable",
|
|
//rowClass: fnrowClass,
|
|
rowData: fnrowDataFE,
|
|
filterParams: params,
|
|
outputmode: outputmode,
|
|
title: L("lcl_ins_objects"),
|
|
showAll: showall
|
|
});
|
|
|
|
rst.addColumn(new Column({caption: L("lcl_location"), content: "alg_locatie_omschrijving"}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_sort"), content: "ins_srtdeel_omschrijving"}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_inf_name"), content: "object_omschrijving"}));
|
|
rst.addColumn(new Column({caption: L("lcl_last_date"), content: "last_change_date", datatype: "date"}));
|
|
rst.addColumn(new Column({caption: L("lcl_last_value"), content: "last_value"}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_cons_value"), content: fnInput}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_unit"), content: "ins_srtdeel_eenheid"}));
|
|
|
|
// Acties
|
|
if (!embedded) {
|
|
rst.addAction({action: "insHistory", caption: L("lcl_history")});
|
|
rst.addAction({action: "insSave", caption: L("lcl_save_value"), multi: true, multiOnce: true});
|
|
}
|
|
var count = rst.processResultset();
|
|
%>
|
|
<input type='hidden' id='count' name='count' value='<%=count%>'>
|
|
</form>
|
|
<%
|
|
}
|
|
else
|
|
{ // !frontend
|
|
if (!excel)
|
|
{
|
|
%> <script type="text/javascript">
|
|
|
|
function openFG(evt, insKey, room, INS_ALG_RUIMTE_TYPE, pxyknown)
|
|
{
|
|
FcltMgr.stopPropagation(evt);
|
|
<% if (S("ins_fg_remote_maps") != "")
|
|
{ %>
|
|
if (pxyknown == 1)
|
|
{
|
|
fwnd = window.open('../cad/ShowGoogleMap.asp?obj_key=' + insKey, 'FGShow',
|
|
"width=640, height=480, directories=no, location=no, menubar=no,"
|
|
+ "resizable=yes, status=no, titlebar=yes, toolbar=no");
|
|
fwnd.focus()
|
|
return;
|
|
}
|
|
<% } %>
|
|
if (INS_ALG_RUIMTE_TYPE == 'T')
|
|
{
|
|
var url = '../cad/ShowTerrain.asp?tKey=' + (room||-1) + '&obj_key=' + insKey;
|
|
FcltMgr.openModalDetail(url);
|
|
}
|
|
else
|
|
{
|
|
var url = '../cad/ShowRoom.asp?rKey=' + (room||-1) + '&ins_key='+insKey;
|
|
FcltMgr.openModalDetail(url);
|
|
}
|
|
}
|
|
</script>
|
|
<%
|
|
} // !excel
|
|
%>
|
|
<% // =======================================================
|
|
// All header information been emitted. Now start building
|
|
// the SQL-queries to do actual data retrieval
|
|
// =======================================================
|
|
|
|
var hasPosition = false; // Had the user selected something on the left side of the filter dialog
|
|
var hasOwner = false; // .... or on the right side
|
|
var ErisUitleenbaar = false;
|
|
var ErisReserveerbaar = false;
|
|
|
|
var hasDrawings = false;
|
|
|
|
var sqlu ="SELECT COUNT (*) FROM ins_srtdeel WHERE ins_srtdeel_uitleenbaar = 1 AND ins_srtdeel_verwijder IS NULL";
|
|
var oRsu = Oracle.Execute(sqlu);
|
|
ErisUitleenbaar = oRsu(0).value >0
|
|
oRsu.close();
|
|
sqlu ="SELECT COUNT (*) FROM res_deel WHERE res_deel_verwijder IS NULL";
|
|
oRsu = Oracle.Execute(sqlu);
|
|
ErisReserveerbaar = oRsu(0).value >0
|
|
oRsu.close();
|
|
|
|
var sqlu = "SELECT 1"
|
|
+ " FROM cad_tekening"
|
|
+ " WHERE cad_tekening_verwijder IS NULL AND ROWNUM = 1";
|
|
oRsu = Oracle.Execute(sqlu);
|
|
hasDrawings = !oRsu.eof;
|
|
oRsu.close();
|
|
|
|
|
|
sql = "";
|
|
sqlOwner = sqlOwnerA = sqlOwnerB = sqlPosition = "";
|
|
|
|
|
|
if (ins_key_arr || parent_key)
|
|
{
|
|
hasPosition = true; // we don't need other filters and these objects
|
|
}
|
|
else
|
|
{
|
|
if (reg_key || dist_key || loc_key || bld_key || terr_key || flr_key || wpl_key || room_key || room_key_arr)
|
|
{
|
|
hasPosition = true;
|
|
}
|
|
|
|
if (comp_key || dep_key || persoon_key || cpersoon_key)
|
|
{
|
|
hasOwner = true;
|
|
}
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// Start building the query to fetch all objects satisfying
|
|
// the conditions the user has built with all select boxes
|
|
//
|
|
// We already have set globals
|
|
// sql_objincl SQL-query part to in/exclude sub-objects
|
|
// sql_owner SQL-query part to filter owner(bound) objects
|
|
// filtering on object-discipline etc. will be added after building location/owner
|
|
///////////////////////////////////////////////////////////
|
|
|
|
// not a combined query but either location based or department/person based
|
|
|
|
// PF: deze subquery geeft de *oorspronkelijke* plaats/eigenaar (als tekst)
|
|
// van het object voor het geval dat deze op dit moment uitgeleend is, anders NULL
|
|
// Dit is alleen relevant bij fronto, daar wordt deze herkomst weergegeven.
|
|
sqlInspectie_select = " NULL";
|
|
sqlInspectie_from = "";
|
|
sqlInspectie_where = "";
|
|
if (fronto)
|
|
{
|
|
sqlLentOutFrom = "CASE WHEN i.ins_alg_ruimte_type_org = 'A'"
|
|
+ " THEN (SELECT " + S("prs_dep_string")
|
|
+ " FROM prs_v_afdeling d"
|
|
+ " WHERE d.prs_afdeling_key = i.ins_alg_ruimte_key_org)"
|
|
+ " WHEN i.ins_alg_ruimte_type_org = 'P'"
|
|
+ " THEN (SELECT " + S("prs_pers_string")
|
|
+ " FROM prs_perslid p"
|
|
+ " WHERE p.prs_perslid_key = i.ins_alg_ruimte_key_org)"
|
|
+ " WHEN i.ins_alg_ruimte_type_org IN ('R', 'T', 'W')"
|
|
+ " THEN (SELECT o.alg_plaatsaanduiding"
|
|
+ " FROM ins_v_alg_overzicht o"
|
|
+ " WHERE o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key_org"
|
|
+ " AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type_org)"
|
|
+ " ELSE NULL"
|
|
+ " END";
|
|
}
|
|
else
|
|
{
|
|
sqlLentOutFrom = " NULL";
|
|
// Geeft NULL als geen inspectie nodig
|
|
// Eerstvolgende inspectie moet komen/had moeten komen: COALESCE (ins_deelsrtcontrole_datum, ins_deel_aanmaak) + ins_srtcontrole_periode
|
|
if (params.inspect)
|
|
{
|
|
var outer = params.inspDone?"":"(+)";
|
|
|
|
var lastinspect = "(SELECT MAX (GREATEST(COALESCE (idsc.ins_deelsrtcontrole_datum_xcp"
|
|
+ " , CASE di.ins_srtcontrole_mode"
|
|
+ " WHEN 0"
|
|
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus. Uitgaan van eigenlijke/orginele inspectiedatum.
|
|
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus. Uitgaan van werkelijke inspectiedatum.
|
|
+ " END)"
|
|
+ " , CASE di.ins_srtcontrole_mode"
|
|
+ " WHEN 0"
|
|
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus. Uitgaan van eigenlijke/orginele inspectiedatum.
|
|
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus. Uitgaan van werkelijke inspectiedatum.
|
|
+ " END)) ins_deelsrtcontrole_datum"
|
|
+ " FROM ins_deelsrtcontrole idsc"
|
|
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
|
+ " AND idsc.ins_deelsrtcontrole_status IN (5,6)"
|
|
+ " AND idsc.ins_deel_key = di.ins_deel_key)";
|
|
|
|
// Eerstvolgende inspectie
|
|
var sqlNext = "SELECT ins_deel_key"
|
|
+ (params.inspDone
|
|
? " , inspectie_date"
|
|
: " , inspectie_next")
|
|
+ " , nonext"
|
|
+ " , periode"
|
|
+ " , inspectie_eenheid"
|
|
+ " , inspectie_eind"
|
|
+ " , groepoms"
|
|
+ " , ins_srtcontrole_omschrijving"
|
|
+ " , ins_srtcontrole_key"
|
|
+ (params.inspect
|
|
? " , ins_srtcontrole_type"
|
|
: "")
|
|
+ " FROM (WITH defined_inspect" // gedefinieerde inspecties
|
|
+ " AS (SELECT *"
|
|
+ " FROM ins_deel id"
|
|
+ " , ins_srtdeel s"
|
|
+ " , ins_srtcontrole isc"
|
|
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
|
+ (srtcontrole > -1 ? " AND ins_srtcontrole_key = " + srtcontrole : "")
|
|
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
|
+ " AND isc.ins_srtinstallatie_key ="
|
|
+ " id.ins_srtdeel_key"
|
|
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
|
+ " AND isc.ins_srtinstallatie_key ="
|
|
+ " s.ins_srtgroep_key"
|
|
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
|
+ " AND isc.ins_srtinstallatie_key ="
|
|
+ " id.ins_discipline_key))"
|
|
+ (params.inspDone
|
|
? " SELECT 1 rn"
|
|
+ " , di.ins_deel_key"
|
|
+ " , (SELECT MAX (idsc.ins_deelsrtcontrole_datum)"
|
|
+ " FROM ins_deelsrtcontrole idsc"
|
|
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
|
+ " AND idsc.ins_deelsrtcontrole_status IN (5,6)"
|
|
+ " AND idsc.ins_deel_key = di.ins_deel_key) inspectie_date"
|
|
+ " , NULL nonext"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
|
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
|
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
|
+ " , di.ins_srtcontrole_key"
|
|
+ (params.inspect
|
|
? " , di.ins_srtcontrole_type"
|
|
: "")
|
|
+ " FROM defined_inspect di"
|
|
+ " , ins_srtcontroledl_xcp xcp"
|
|
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
|
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
|
+ " AND EXISTS (SELECT ins_deelsrtcontrole_key"
|
|
+ " FROM ins_deelsrtcontrole idsc"
|
|
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
|
+ " AND idsc.ins_deelsrtcontrole_status IN (5,6)"
|
|
+ " AND idsc.ins_deel_key = di.ins_deel_key)"
|
|
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
|
|
+ " ORDER BY inspectie_date)"
|
|
: " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd
|
|
+ " , di.ins_deel_key"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_respijt,"
|
|
+ " fac.nextcyclusdate(di.ins_deel_aanmaak"
|
|
+ " , di.ins_srtcontrole_mode"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
|
+ " , 1)) inspectie_next"
|
|
+ " , CASE WHEN COALESCE(xcp.ins_srtcontroledl_xcp_respijt, " + lastinspect + ") IS NULL THEN 1 ELSE 0 END nonext"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
|
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
|
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
|
+ " , di.ins_srtcontrole_key"
|
|
+ (params.inspect
|
|
? " , di.ins_srtcontrole_type"
|
|
: "")
|
|
+ " FROM defined_inspect di"
|
|
+ " , ins_srtcontroledl_xcp xcp"
|
|
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
|
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
|
+ " AND (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN"
|
|
+ " (SELECT ins_deel_key, ins_srtcontrole_key"
|
|
+ " FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_status IN (5,6))"
|
|
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
|
|
+ " UNION ALL" // Inspecties die al zijn uitgevoerd
|
|
+ " SELECT RANK ()" // volgnummertje toekennen
|
|
+ " OVER ("
|
|
+ " PARTITION BY di.ins_deel_key, idsc.ins_srtcontrole_key" // soort van group-by
|
|
+ " ORDER BY ins_deelsrtcontrole_datum DESC) rn" // Op volgorde zetten/Rangschikken/Sorteren op inspectiedatum.
|
|
+ " , di.ins_deel_key"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_respijt,"
|
|
+ " fac.nextcyclusdate(CASE"
|
|
+ " WHEN di.ins_srtcontrole_mode = 0"
|
|
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus. Uitgaan van eigenlijke/orginele inspectiedatum.
|
|
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus. Uitgaan van werkelijke inspectiedatum.
|
|
+ " END"
|
|
+ " , di.ins_srtcontrole_mode"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
|
+ " , 1)) inspectie_next"
|
|
+ " , NULL nonext"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
|
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
|
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
|
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
|
+ " , di.ins_srtcontrole_key"
|
|
+ (params.inspect
|
|
? " , di.ins_srtcontrole_type"
|
|
: "")
|
|
+ " FROM ins_deelsrtcontrole idsc"
|
|
+ " , defined_inspect di"
|
|
+ " , ins_srtcontroledl_xcp xcp"
|
|
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
|
+ " AND idsc.ins_deelsrtcontrole_status IN (5,6)"
|
|
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
|
+ " AND idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
|
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
|
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
|
|
+ " ORDER BY inspectie_next)")
|
|
+ " WHERE rn = 1"
|
|
// Voor afgehandelde inspecties ook inspecties met periode 0 tonen.
|
|
+ (!params.inspDone
|
|
? " AND periode > 0"
|
|
: "")
|
|
// Alleen bij "Afgehandeld" vervallen inspecties tonen.
|
|
+ (params.inspLate || params.inspSoon || params.inspFutu
|
|
? " AND (inspectie_eind IS NULL OR inspectie_eind > SYSDATE)"
|
|
: "");
|
|
|
|
sqlInspectie_select = (params.inspDone? "inspectie_date" : "inspectie_next")
|
|
+ ", nonext, ins_srtcontrole_omschrijving, ins_srtcontrole_key, inspectie_eenheid, inspectie_eind, groepoms";
|
|
|
|
sqlInspectie_from = ", (" + sqlNext + ") ispn"
|
|
|
|
sqlInspectie_where = " AND ispn.ins_deel_key = i.ins_deel_key";
|
|
}
|
|
}
|
|
|
|
var sqlKenmerkBewerkbaar_select = ", CASE WHEN k.km900>0 THEN 1 ELSE 0 END bewerkbaar";
|
|
var sqlKenmerkBewerkbaar_from = "( SELECT sd.ins_srtdeel_key"
|
|
+ " , COUNT (km.ins_kenmerk_volgnummer) km900"
|
|
+ " FROM ins_srtkenmerk sk"
|
|
+ " , ins_kenmerk km"
|
|
+ " , ins_srtdeel sd"
|
|
+ " , ins_srtgroep gr"
|
|
+ " WHERE km.ins_srtkenmerk_key = sk.ins_srtkenmerk_key"
|
|
+ " AND gr.ins_srtgroep_key = sd.ins_srtgroep_key"
|
|
+ " AND km.ins_kenmerk_verwijder IS NULL"
|
|
+ " AND sk.ins_srtkenmerk_verwijder IS NULL"
|
|
+ " AND ( ( km.ins_srtinstallatie_key = sd.ins_srtdeel_key"
|
|
+ " AND km.ins_kenmerk_niveau = 'S')"
|
|
+ " OR ( km.ins_srtinstallatie_key = sd.ins_srtgroep_key"
|
|
+ " AND km.ins_kenmerk_niveau = 'G')"
|
|
+ " OR ( km.ins_srtinstallatie_key = gr.ins_discipline_key"
|
|
+ " AND km.ins_kenmerk_niveau = 'D'))"
|
|
+ " AND km.ins_kenmerk_volgnummer >= 900"
|
|
+ "GROUP BY sd.ins_srtdeel_key) k";
|
|
var sqlKenmerkBewerkbaar_where = " AND i.ins_srtdeel_key = k.ins_srtdeel_key(+)";
|
|
|
|
// Dit betekent dus dat de feitelijke eigenaar dus als de normale eigenaar wordt beschouwd
|
|
// d.i. de lener == de eigenaar !
|
|
if (!hasPosition || fronto)
|
|
{ // Position filter would imply only place-objects
|
|
|
|
sqlOwner_select = "SELECT TO_CHAR(NULL) plaats"
|
|
+ ", s.ins_srtdeel_code"
|
|
+ ", " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key')+" soort"
|
|
+ ", i.ins_deel_omschrijving"
|
|
+ ", i.ins_deel_opmerking"
|
|
+ ", i.ins_deel_key"
|
|
+ ", s.ins_srtdeel_key"
|
|
+ ", s.ins_srtdeel_upper"
|
|
+ ", i.ins_deel_getekend"
|
|
+ ", i.ins_discipline_key"
|
|
+ ", i.ins_alg_ruimte_type"
|
|
+ ", -1 district"
|
|
+ ", i.ins_deel_x" // is coordinaat bekend?
|
|
+ ", i.ins_deel_dwgx" // is dwg coordinaat bekend?
|
|
+ ", ins_srtgroep_key"
|
|
+ ", ins_deel_upper"
|
|
+ ", s.ins_srtdeel_uitleenbaar"
|
|
+ ", i.ins_alg_ruimte_key_org"
|
|
+ ", i.ins_alg_ruimte_type_org"
|
|
+ ", " + sqlLentOutFrom + " uitgegeven_vanuit"
|
|
+ ", " + sqlInspectie_select
|
|
+ ", rd.res_deel_key"
|
|
+ ", rd.res_deel_opmerking"
|
|
+ ", i.ins_deel_vervaldatum";
|
|
|
|
sqlOwner_from = " FROM ins_deel i"
|
|
+ ", ins_srtdeel s"
|
|
+ sqlInspectie_from
|
|
+ ", (SELECT res_deel_key"
|
|
+ " , res_ins_deel_key"
|
|
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
|
+ " FROM res_deel"
|
|
+ " WHERE res_deel_verwijder IS NULL"
|
|
+ " AND res_deel_vervaldatum IS NULL"
|
|
+ " UNION ALL"
|
|
+ " SELECT res_deel_key"
|
|
+ " , res_ins_deel_key"
|
|
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
|
+ " FROM res_deel"
|
|
+ " WHERE res_deel_verwijder IS NULL"
|
|
+ " AND res_deel_vervaldatum > SYSDATE) rd";
|
|
|
|
sqlOwner_where = " WHERE s.ins_srtdeel_key = i.ins_srtdeel_key"
|
|
+ " AND i.ins_deel_verwijder IS NULL"
|
|
+ " AND i.ins_deel_key = rd.res_ins_deel_key(+)"
|
|
+ " AND i.ins_deel_module = 'INS'"
|
|
+ " AND s.ins_srtgroep_key NOT IN (" + S("sle_ins_srt_groep_key") + ", " + S("cil_ins_srt_groep_key") + ")"
|
|
+ sql_objincl
|
|
+ sqlInspectie_where
|
|
+ (fronto
|
|
? " AND s.ins_srtdeel_uitleenbaar = 1"
|
|
: "")
|
|
+ (koppel_key
|
|
? " AND idk.ins_deelkoppeling_verwijder IS NULL"
|
|
+ " AND (( i.ins_deel_key = idk.ins_deelkoppeling_naar_key"
|
|
+ " AND idk.ins_deelkoppeling_van_key=" + koppel_key
|
|
+ " )"
|
|
+ " OR ( i.ins_deel_key = idk.ins_deelkoppeling_van_key"
|
|
+ " AND idk.ins_deelkoppeling_naar_key=" + koppel_key + "))"
|
|
: "")
|
|
+ ((insLentOut && !insAvail)
|
|
? " AND i.ins_alg_ruimte_key_org IS NOT NULL"
|
|
: (!insLentOut && insAvail)
|
|
? " AND i.ins_alg_ruimte_key_org IS NULL"
|
|
: "");
|
|
|
|
if (loc_key|| bld_key)
|
|
{
|
|
sqlOwner_from += ", (SELECT alg_ruimte_key"
|
|
+ " FROM alg_v_allonroerendgoed"
|
|
+ " WHERE " + (bld_key ? "alg_gebouw_key" : "alg_locatie_key")
|
|
+ " = " + (bld_key ? bld_key : loc_key)
|
|
+ " ) a";
|
|
sqlOwner_where += " AND i.ins_alg_ruimte_key_org = a.alg_ruimte_key";
|
|
}
|
|
|
|
sqlOwnerA = sqlOwner_select
|
|
+ sqlKenmerkBewerkbaar_select
|
|
+ ", b.prs_bedrijf_key prs_bedrijf_key" // bedrijf key
|
|
+ ", d.prs_afdeling_key1"
|
|
+ ", (SELECT " + S("prs_dep_string") + " FROM prs_v_afdeling d WHERE prs_afdeling_key = i.ins_alg_ruimte_key) eigenaar"
|
|
+ ", NULL alg_ruimte_key " // person key
|
|
+ ", i.ins_alg_ruimte_key prs_afdeling_key" // department key
|
|
+ (params.inspect
|
|
? ", ispn.ins_srtcontrole_type" // Controle type
|
|
: "")
|
|
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
|
+ sqlOwner_from
|
|
+ ", prs_v_afdeling_boom d"
|
|
+ ", prs_bedrijf b"
|
|
+ ", " + sqlKenmerkBewerkbaar_from
|
|
+ (koppel_key? ", ins_deelkoppeling idk" : "")
|
|
+ sqlOwner_where
|
|
+ sqlKenmerkBewerkbaar_where
|
|
+ " AND i.ins_alg_ruimte_key = d.prs_afdeling_key"
|
|
+ " AND d.prs_bedrijf_key = b.prs_bedrijf_key"
|
|
+ " AND i.ins_alg_ruimte_type = 'A'";
|
|
|
|
sqlOwnerP = sqlOwner_select
|
|
+ sqlKenmerkBewerkbaar_select
|
|
+ ", b.prs_bedrijf_key prs_bedrijf_key " // bedrijf key
|
|
+ ", d.prs_afdeling_key1"
|
|
+ ", " + S("prs_pers_string") + " eigenaar"
|
|
+ ", i.ins_alg_ruimte_key alg_ruimte_key " // person key
|
|
+ ", p.prs_afdeling_key prs_afdeling_key" // department key
|
|
+ (params.inspect
|
|
? ", ispn.ins_srtcontrole_type" // Controle type
|
|
: "")
|
|
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
|
+ sqlOwner_from
|
|
+ ", prs_perslid p"
|
|
+ ", prs_v_afdeling_boom d"
|
|
+ ", prs_bedrijf b"
|
|
+ ", " + sqlKenmerkBewerkbaar_from
|
|
+ (koppel_key? ", ins_deelkoppeling idk" : "")
|
|
+ sqlOwner_where
|
|
+ sqlKenmerkBewerkbaar_where
|
|
+ " AND i.ins_alg_ruimte_key = p.prs_perslid_key"
|
|
+ " AND p.prs_afdeling_key = d.prs_afdeling_key"
|
|
+ " AND d.prs_bedrijf_key = b.prs_bedrijf_key"
|
|
+ " AND i.ins_alg_ruimte_type = 'P'";
|
|
|
|
sqlOwnerCP = sqlOwner_select
|
|
+ sqlKenmerkBewerkbaar_select
|
|
+ ", (SELECT c.prs_bedrijf_key FROM prs_contactpersoon c WHERE c.prs_contactpersoon_key = i.ins_alg_ruimte_key) prs_bedrijf_key" // bedrijf key
|
|
+ ", 0 dummy1" // department key
|
|
+ ", c.prs_contactpersoon_naam eigenaar"
|
|
+ ", i.ins_alg_ruimte_key alg_ruimte_key" // person key
|
|
+ ", NULL prs_afdeling_key" // department key
|
|
+ (params.inspect
|
|
? ", ispn.ins_srtcontrole_type" // Controle type
|
|
: "")
|
|
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
|
+ sqlOwner_from
|
|
+ ", prs_contactpersoon c"
|
|
+ ", prs_bedrijf b"
|
|
+ ", " + sqlKenmerkBewerkbaar_from
|
|
+ (koppel_key? ", ins_deelkoppeling idk" : "")
|
|
+ sqlOwner_where
|
|
+ sqlKenmerkBewerkbaar_where
|
|
+ " AND i.ins_alg_ruimte_key = c.prs_contactpersoon_key"
|
|
+ " AND c.prs_bedrijf_key = b.prs_bedrijf_key"
|
|
+ " AND i.ins_alg_ruimte_type = 'C'";
|
|
}
|
|
|
|
if (!hasOwner)
|
|
{ // Owner filter would imply only owned objects
|
|
sqlPosition = (terr_key
|
|
? "SELECT t.alg_terreinsector_omschrijving"
|
|
: "SELECT o.alg_plaatsaanduiding"
|
|
+ " || DECODE(o.alg_plaatsomschrijving, '','' ,' (' || o.alg_plaatsomschrijving || ')')"
|
|
)
|
|
+ " plaats"
|
|
+ ", s.ins_srtdeel_code"
|
|
+ ", " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " soort"
|
|
+ ", i.ins_deel_omschrijving"
|
|
+ ", i.ins_deel_opmerking"
|
|
+ ", i.ins_deel_key"
|
|
+ ", s.ins_srtdeel_key"
|
|
+ ", s.ins_srtdeel_upper"
|
|
+ ", i.ins_deel_getekend"
|
|
+ ", i.ins_discipline_key"
|
|
+ ", i.ins_alg_ruimte_type"
|
|
+ ", l.alg_district_key"
|
|
+ ", i.ins_deel_x" // is coordinaat bekend?
|
|
+ ", i.ins_deel_dwgx" // is dwg coordinaat bekend?
|
|
+ ", ins_srtgroep_key" // filtering only
|
|
+ ", ins_deel_upper" // filtering only
|
|
+ ", s.ins_srtdeel_uitleenbaar"
|
|
+ ", i.ins_alg_ruimte_key_org"
|
|
+ ", i.ins_alg_ruimte_type_org"
|
|
+ ", " + sqlLentOutFrom + " uitgegeven_vanuit"
|
|
+ ", " + sqlInspectie_select
|
|
+ ", rd.res_deel_key"
|
|
+ ", rd.res_deel_opmerking"
|
|
+ ", i.ins_deel_vervaldatum"
|
|
+ sqlKenmerkBewerkbaar_select
|
|
+ ", null prs_bedrijf_key"
|
|
+ ", null prs_afdeling_key1"
|
|
+ ", null eigenaar"
|
|
+ ", i.ins_alg_ruimte_key alg_ruimte_key"
|
|
+ ", 0 dummy1" // department key
|
|
+ (params.inspect
|
|
? ", ispn.ins_srtcontrole_type" // Controle type
|
|
: "")
|
|
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
|
+ " FROM ins_deel i"
|
|
+ (terr_key
|
|
? ", alg_terreinsector t"
|
|
: ", ins_v_alg_overzicht o")
|
|
+ ", ins_srtdeel s"
|
|
+ sqlInspectie_from
|
|
+ ", alg_locatie l"
|
|
+ ", " + sqlKenmerkBewerkbaar_from
|
|
+ (koppel_key? ", ins_deelkoppeling idk" : "")
|
|
+ ", alg_district di" // I added this for alg_district_key (FSN#1082)
|
|
+ ", (SELECT res_deel_key"
|
|
+ " , res_ins_deel_key"
|
|
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
|
+ " FROM res_deel"
|
|
+ " WHERE res_deel_verwijder IS NULL"
|
|
+ " AND res_deel_vervaldatum IS NULL"
|
|
+ " UNION ALL"
|
|
+ " SELECT res_deel_key"
|
|
+ " , res_ins_deel_key"
|
|
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
|
+ " FROM res_deel"
|
|
+ " WHERE res_deel_verwijder IS NULL"
|
|
+ " AND res_deel_vervaldatum > SYSDATE) rd"
|
|
+ " WHERE i.ins_deel_verwijder IS NULL"
|
|
+ " AND i.ins_deel_module = 'INS'"
|
|
+ " AND i.ins_deel_key = rd.res_ins_deel_key(+)"
|
|
+ " AND s.ins_srtgroep_key NOT IN (" + S("sle_ins_srt_groep_key") + ", " + S("cil_ins_srt_groep_key") + ")"
|
|
+ sql_objincl
|
|
+ sqlInspectie_where
|
|
+ sqlKenmerkBewerkbaar_where
|
|
+ (terr_key
|
|
? " AND t.alg_terreinsector_key = i.ins_alg_ruimte_key"
|
|
+ " AND i.ins_alg_ruimte_type = 'T'"
|
|
+ " AND t.alg_locatie_key = l.alg_locatie_key"
|
|
: " AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key"
|
|
+ " AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type"
|
|
+ " AND i.ins_alg_ruimte_type IN ('T','R','W')"
|
|
+ " AND o.alg_locatie_key = i.ins_alg_locatie_key"
|
|
+ " AND i.ins_alg_locatie_key = l.alg_locatie_key"
|
|
)
|
|
+ " AND l.alg_district_key = di.alg_district_key"
|
|
+ " AND s.ins_srtdeel_key = i.ins_srtdeel_key"
|
|
+ (fronto
|
|
? " AND s.ins_srtdeel_uitleenbaar = 1"
|
|
: "")
|
|
+ ((insLentOut && !insAvail)
|
|
? " AND i.ins_alg_ruimte_key_org IS NOT NULL"
|
|
: (!insLentOut && insAvail)
|
|
? " AND i.ins_alg_ruimte_key_org IS NULL"
|
|
: "");
|
|
|
|
if (!ins_key_arr && !parent_key && !koppel_key)
|
|
{
|
|
if (wpl_key)
|
|
sqlPosition += " AND o.prs_werkplek_key =" + wpl_key;
|
|
else if (room_key_arr)
|
|
//sqlPosition += " AND i.ins_alg_ruimte_key IN (" + room_key_arr.join(",") + ")";
|
|
sqlPosition += " AND ((i.ins_alg_ruimte_key IN (" + room_key_arr.join(",") + ") AND i.ins_alg_ruimte_type='R')"
|
|
+ " OR (i.ins_alg_ruimte_key IN (SELECT prs_werkplek_key FROM prs_werkplek WHERE prs_alg_ruimte_key IN (" + room_key_arr.join(",") + ")) AND i.ins_alg_ruimte_type='W'))";
|
|
else if (room_key)
|
|
sqlPosition += " AND ((i.ins_alg_ruimte_key = " + room_key + " AND i.ins_alg_ruimte_type='R') "
|
|
+ " OR (i.ins_alg_ruimte_key IN (SELECT prs_werkplek_key FROM prs_werkplek WHERE prs_alg_ruimte_key=" + room_key + ") AND i.ins_alg_ruimte_type='W'))";
|
|
else if (flr_key)
|
|
sqlPosition += " AND o.alg_verdieping_key = " + flr_key;
|
|
else if (terr_key)
|
|
sqlPosition += " AND i.ins_alg_ruimte_key IN (" + terr_key + ")";
|
|
else if (bld_key)
|
|
sqlPosition += " AND o.alg_gebouw_key = " + bld_key;
|
|
else if (loc_key)
|
|
sqlPosition += (terr_key
|
|
? " AND t.alg_locatie_key"
|
|
: " AND i.ins_alg_locatie_key")
|
|
+ " = " + loc_key;
|
|
else if (dist_key)
|
|
sqlPosition += " AND di.alg_district_key = " + dist_key;
|
|
else if (reg_key)
|
|
sqlPosition += " AND di.alg_regio_key = " + reg_key;
|
|
else if (!terr_key && fgraph)
|
|
sqlPosition += " AND i.ins_alg_ruimte_key = -1"; // geen terreinen bij fgraph => geen objecten om te laten zien
|
|
}
|
|
}
|
|
if (ins_key_arr)
|
|
{
|
|
sqlPosition += " AND i.ins_deel_key IN (" + ins_key_arr.join(",") + ")";
|
|
}
|
|
else if (parent_key)
|
|
{
|
|
sqlPosition += " AND i.ins_deel_parent_key IN (" + parent_key + ")";
|
|
}
|
|
else if (koppel_key)
|
|
{
|
|
sqlPosition += " AND idk.ins_deelkoppeling_verwijder IS NULL"
|
|
+ " AND (( i.ins_deel_key = idk.ins_deelkoppeling_naar_key"
|
|
+ " AND idk.ins_deelkoppeling_van_key=" + koppel_key
|
|
+ " )"
|
|
+ " OR ( i.ins_deel_key = idk.ins_deelkoppeling_van_key"
|
|
+ " AND idk.ins_deelkoppeling_naar_key=" + koppel_key + "))";
|
|
}
|
|
|
|
// And some more conditions that apply for both modes:
|
|
var sql_ex = "";
|
|
if (mld_key)
|
|
sql_ex += " AND i.ins_deel_key IN (SELECT ins_deel_key FROM mld_melding_object WHERE mld_melding_key="+mld_key+")";
|
|
if (objsrt_key)
|
|
sql_ex += " AND s.ins_srtdeel_key IN (" + objsrt_key.join(",") + ")";
|
|
else if (insgroup_key)
|
|
sql_ex += " AND ins_srtgroep_key = " + insgroup_key;
|
|
else if (disc_key)
|
|
sql_ex += " AND ins_discipline_key IN (" + disc_key + ")";
|
|
|
|
if (beh_key)
|
|
sql_ex += " AND prs_perslid_key_beh =" + beh_key;
|
|
if (deel)
|
|
sql_ex += " AND ins_deel_upper LIKE " + safe.quoted_sql_wild("%" + deel + "%");
|
|
if (deel_opm)
|
|
sql_ex += " AND UPPER(ins_deel_opmerking) LIKE " + safe.quoted_sql_wild("%" + deel_opm + "%");
|
|
if (objsrt_oms)
|
|
sql_ex += " AND ( (ins_srtdeel_upper LIKE " + safe.quoted_sql_wild("%" + objsrt_oms + "%") + ")"
|
|
+ " OR (ins_srtdeel_code_upper LIKE " + safe.quoted_sql_wild("%" + objsrt_oms + "%") + "))";
|
|
if (groep)
|
|
sql_ex += " AND UPPER(groepoms) LIKE " + "UPPER((SELECT ins_srtcontroledl_xcp_groep"
|
|
+ " FROM ins_srtcontroledl_xcp"
|
|
+ " WHERE ins_srtcontroledl_xcp_key = " + groep + "))";
|
|
|
|
if (params.inspect && controletype > -1)
|
|
sql_ex += " AND ispn.ins_srtcontrole_type = " + controletype;
|
|
|
|
// Nu filtercondities voor flexkenmerken toevoegen
|
|
sql_ex += getKenmerkSql("INS", "i.ins_deel_key");
|
|
|
|
if (sqlPosition != '')
|
|
sqlPosition += sql_ex;
|
|
|
|
if (sqlPosition != "")
|
|
{ // we must consider this: if we know that a room is defined (by filter), we must be
|
|
// able to improve performance by using that condition, mustn't we?
|
|
// furthermore: it's better to let Oracle Prepare
|
|
sqlPosition = discx3d (sqlPosition,
|
|
"i.ins_discipline_key",
|
|
"di.alg_regio_key",
|
|
"l.alg_district_key",
|
|
"l.alg_locatie_key",
|
|
"o.alg_gebouw_key",
|
|
"o.alg_verdieping_key",
|
|
"o.alg_ruimte_key",
|
|
"", // b.prs_bedrijf_key: not used because algprs == 0
|
|
"", // d.prs_afdeling_key: not used because algprs == 0
|
|
pautfunction,
|
|
(disc_key? disc_key : ''),
|
|
0); // AKZA#430/PF, AKZA#496/MGE
|
|
}
|
|
|
|
if (sqlOwnerA != "" && sqlOwnerP != "" && sqlOwnerCP != "")
|
|
{
|
|
sqlOwnerA = discx3d (sqlOwnerA,
|
|
"ins_discipline_key",
|
|
"", // di.alg_regio_key: not used because algprs == 0
|
|
"", // l.alg_district_key: not used because algprs == 0
|
|
"", // o.alg_locatie_key: not used because algprs == 0
|
|
"", // o.alg_gebouw_key: not used because algprs == 0
|
|
"", // o.alg_verdieping_key: not used because algprs == 0
|
|
"", // o.alg_ruimte_key: not used because algprs == 0
|
|
"b.prs_bedrijf_key",
|
|
"d.prs_afdeling_key",
|
|
pautfunction,
|
|
(disc_key? disc_key : ''),
|
|
1); // AKZA#430/PF, AKZA#496/MGE
|
|
sqlOwnerP = discx3d (sqlOwnerP,
|
|
"ins_discipline_key",
|
|
"", // di.alg_regio_key: not used because algprs == 0
|
|
"", // l.alg_district_key: not used because algprs == 0
|
|
"", // o.alg_locatie_key: not used because algprs == 0
|
|
"", // o.alg_gebouw_key: not used because algprs == 0
|
|
"", // o.alg_verdieping_key: not used because algprs == 0
|
|
"", // o.alg_ruimte_key: not used because algprs == 0
|
|
"b.prs_bedrijf_key",
|
|
"d.prs_afdeling_key",
|
|
pautfunction,
|
|
(disc_key? disc_key : ''),
|
|
1); // AKZA#430/PF, AKZA#496/MGE
|
|
// Geen autorisatie bij externe bedrijven (prs_bedrijf)
|
|
|
|
sqlOwner = sqlOwnerA + sql_ex + " UNION " + sqlOwnerP + sql_ex + " UNION " + sqlOwnerCP + sql_ex;
|
|
|
|
// Now apply user filtering on this query:
|
|
if (persoon_key)
|
|
{
|
|
sqlOwner = "SELECT * FROM (" + sqlOwner + ") x WHERE x.alg_ruimte_key = " + persoon_key;
|
|
}
|
|
else if (cpersoon_key)
|
|
{
|
|
sqlOwner = "SELECT * FROM (" + sqlOwner + ") x WHERE x.alg_ruimte_key = " + cpersoon_key;
|
|
}
|
|
else if (dep_key)
|
|
{
|
|
sqlOwner = "SELECT * FROM (" + sqlOwner + ") x WHERE x.prs_afdeling_key = " + dep_key;
|
|
}
|
|
else if (comp_key)
|
|
{
|
|
sqlOwner = "SELECT * FROM (" + sqlOwner + ") x WHERE x.prs_bedrijf_key = " + comp_key;
|
|
}
|
|
}
|
|
|
|
sql = (sqlOwner != ""
|
|
? sqlOwner + (sqlPosition != ""? " UNION ALL " : "")
|
|
: "")
|
|
+ sqlPosition;
|
|
|
|
if (params.inspect)
|
|
{
|
|
sql += " AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > SYSDATE)";
|
|
// drie vinkjes 111 is 'te laat', 'binnenkort', 'nog niet'
|
|
|
|
|
|
// Let op: Als de "Binnenkort" datums worden veranderd, wordt de tijd aangepast in begin van de dag (00:00).
|
|
// Als de inspsoonfrom tijd vandaag is moet ook de huidige tijd mee worden genomen. Ander niet.
|
|
var inspsoonfrom_is_today = false;
|
|
var dtsoonfrom = new Date();
|
|
if (inspsoonfrom)
|
|
{
|
|
// Als de inspsoonfrom tijd vandaag is moet ook de huidige tijd mee worden genomen. Ander niet.
|
|
// Als de inspsoon tijden worden veranderd wordt de tijd begin van de dag (00:00).
|
|
inspsoonfrom_is_today = (inspsoonfrom.midnight().getTime() == new Date().midnight().getTime());
|
|
if (inspsoonfrom_is_today)
|
|
{ // De inspsoonfrom is vandaag. De huidige tijd meenemen.
|
|
var time = new Date().getTime() - new Date().midnight().getTime();
|
|
dtsoonfrom = new Date(inspsoonfrom.midnight().getTime() + time);
|
|
}
|
|
else
|
|
// De inspsoonfrom is NIET vandaag. De tijd wordt begin van de dag (00:00).
|
|
dtsoonfrom = new Date(inspsoonfrom.midnight().getTime());
|
|
}
|
|
else
|
|
inspsoonfrom_is_today = true;
|
|
|
|
var dtsoonto = new Date();
|
|
dtsoonto.setDate(dtsoonto.getDate() + S("ins_inspect_soon_days"));
|
|
if (inspsoonto)
|
|
{
|
|
if (inspsoonfrom_is_today)
|
|
{ // De inspsoonfrom is vandaag. Ook voor de tot datum de huidige tijd meenemen.
|
|
var time = new Date().getTime() - new Date().midnight().getTime();
|
|
dtsoonto = new Date(inspsoonto.midnight().getTime() + time);
|
|
}
|
|
else
|
|
// De inspsoonfrom is NIET vandaag. De tijd wordt eind van de dag (23:59).
|
|
dtsoonto = new Date(inspsoonto.setHours(23, 59, 59));
|
|
}
|
|
else
|
|
{
|
|
if (!inspsoonfrom_is_today) dtsoonto = new Date(dtsoonto.setHours(23, 59, 59));
|
|
}
|
|
|
|
if (params.inspLate && params.inspSoon && params.inspFutu) // 111 alles
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE 1=1 "; // sql = sql;
|
|
else if (params.inspLate && params.inspSoon && !params.inspFutu) // 110 late + soon
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next < " + dtsoonto.toSQL();
|
|
else if (params.inspLate && !params.inspSoon && params.inspFutu) // 101 te laat of voorlopig niet. Beetje onzinnig
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next NOT BETWEEN " + dtsoonfrom.toSQL() + " AND " + dtsoonto.toSQL() ;
|
|
else if (params.inspLate && !params.inspSoon && !params.inspFutu) // 100 alleen late
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next <= "+dtsoonfrom.toSQL() + "-1";
|
|
else if (params.inspSoon && params.inspFutu) // 011 binnenkort en later
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next >= "+dtsoonfrom.toSQL(); // 011
|
|
else if (params.inspSoon && !params.inspFutu) // 010 binnenkort
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next BETWEEN " + dtsoonfrom.toSQL() + " AND " + dtsoonto.toSQL() + "-1";
|
|
else if (params.inspFutu) // 001 Later
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next >= " + dtsoonto.toSQL();
|
|
else if (params.inspDone)
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_date BETWEEN " + donedatefrom.beginToSQL() + " AND " + donedateto.endToSQL();
|
|
// else geen enkel vinkje-->alles tonen
|
|
else
|
|
sql = "SELECT * FROM (" + sql + ") x WHERE 1=1 ";
|
|
if (params.cnt_bedrijf_key > 0) // alleen bedrijven met een (onderhouds)contract op deze soorten
|
|
{
|
|
// Scope srtcontract_type = 3 (Ondersteuning/Support): Onderhoud op objectsoorten en/of plaats.
|
|
// Scope op de plaats is een verfijning van de scope op de gehele objectsoort.
|
|
// Scope op objectsoorten
|
|
sql += " AND ((((SELECT COUNT(*)"
|
|
+ " FROM cnt_contract_object co"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_status IN (0, 1)" // Alleen actieve en gesloten contracten
|
|
+ " AND cnt_contract_object_verwijder IS NULL) = 0" // Er zijn geen objectsoorten gedefinieerd
|
|
+ " OR"
|
|
+ " x.ins_srtdeel_key IN (SELECT cnt_ins_srtdeel_key"
|
|
+ " FROM cnt_contract_object co"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND co.cnt_contract_object_verwijder IS NULL"
|
|
+ " AND co.cnt_ins_deel_key IS NULL"
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " )"
|
|
+ " )"
|
|
// Scope op plaats
|
|
+ " AND ((SELECT COUNT(*)"
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL) = 0" // Er zijn geen plaatsen gedefinieerd
|
|
+ " OR"
|
|
+ " ins_deel_key IN (SELECT d.ins_deel_key" // Delen die gekoppeld zijn aan een ruimte
|
|
+ " FROM ins_deel d"
|
|
+ " , alg_v_onrgoed_boom ogb"
|
|
+ " WHERE d.ins_alg_ruimte_key = ogb.alg_ruimte_key"
|
|
+ " AND d.ins_alg_ruimte_type = 'R'"
|
|
+ " AND ogb.alg_gebouw_key IN (SELECT DISTINCT g.alg_gebouw_key" // Alle gebouwen van de locaties in de scope
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , alg_gebouw g"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE g.alg_locatie_key = cp.cnt_alg_plaats_key"
|
|
+ " AND cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'L'"
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " UNION"
|
|
+ " SELECT DISTINCT cp.cnt_alg_plaats_key" // Alle gebouwen van de gebouwen in de scope
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'G'"
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " )"
|
|
+ " UNION"
|
|
+ " SELECT d.ins_deel_key" // Delen die gekoppeld zijn aan een werkplek
|
|
+ " FROM ins_deel d"
|
|
+ " , prs_werkplek w"
|
|
+ " , alg_v_onrgoed_boom ogb"
|
|
+ " WHERE d.ins_alg_ruimte_key = w.prs_werkplek_key"
|
|
+ " AND w.prs_alg_ruimte_key = ogb.alg_ruimte_key"
|
|
+ " AND d.ins_alg_ruimte_type = 'W'"
|
|
+ " AND ogb.alg_gebouw_key IN (SELECT DISTINCT g.alg_gebouw_key" // Alle gebouwen van de locaties in de scope
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , alg_gebouw g"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE g.alg_locatie_key = cp.cnt_alg_plaats_key"
|
|
+ " AND cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'L'"
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " UNION"
|
|
+ " SELECT DISTINCT cp.cnt_alg_plaats_key" // Alle gebouwen van de gebouwen in de scope
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'G'"
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " )"
|
|
+ " )"
|
|
+ " )"
|
|
// Objecten mogen niet individueel in contractscope zitten van een ander bedrijf
|
|
+ " AND ins_deel_key NOT IN (SELECT co.cnt_ins_deel_key"
|
|
+ " FROM cnt_contract_object co"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND co.cnt_ins_deel_key IS NOT NULL"
|
|
+ " AND co.cnt_contract_object_verwijder IS NULL"
|
|
+ " AND c.cnt_prs_bedrijf_key != " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " AND c.cnt_contract_looptijd_van <= SYSDATE" // Alleen actuele contracten
|
|
+ " AND SYSDATE <= c.cnt_contract_looptijd_tot)"
|
|
// Objecten mogen ook niet qua objectsoort in contractscope zitten van een ander bedrijf
|
|
+ " AND ins_deel_key NOT IN (SELECT d1.ins_deel_key" // Alle objecten via plaatsscope van andere bedrijven die ook dezelfde objectscope hebben (gekoppeld aan een ruimte)
|
|
+ " FROM ins_deel d1"
|
|
+ " , alg_v_onrgoed_boom ogb"
|
|
+ " WHERE d1.ins_alg_ruimte_key = ogb.alg_ruimte_key"
|
|
+ " AND d1.ins_alg_ruimte_type = 'R'" // gekoppeld aan een ruimte
|
|
+ " AND x.ins_srtdeel_key = d1.ins_srtdeel_key"
|
|
+ " AND ogb.alg_gebouw_key IN (SELECT DISTINCT g.alg_gebouw_key" // Alle gebouwen via plaatsscope van andere bedrijven die ook dezelfde objectscope hebben
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , alg_gebouw g"
|
|
+ " , cnt_contract c"
|
|
+ " , cnt_contract_object co"
|
|
+ " WHERE g.alg_locatie_key = cp.cnt_alg_plaats_key"
|
|
+ " AND cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key != " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_looptijd_van <= SYSDATE" // Alleen actuele contracten
|
|
+ " AND SYSDATE <= c.cnt_contract_looptijd_tot"
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'L'"
|
|
+ " AND co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND co.cnt_ins_srtdeel_key = d1.ins_srtdeel_key"
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " UNION"
|
|
+ " SELECT DISTINCT cp.cnt_alg_plaats_key"
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , cnt_contract c"
|
|
+ " , cnt_contract_object co"
|
|
+ " WHERE cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key != " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_looptijd_van <= SYSDATE" // Alleen actuele contracten
|
|
+ " AND SYSDATE <= c.cnt_contract_looptijd_tot"
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'G'"
|
|
+ " AND co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND co.cnt_ins_srtdeel_key = d1.ins_srtdeel_key"
|
|
+ " AND c.cnt_contract_status IN (0, 1))"
|
|
+ " UNION"
|
|
+ " SELECT d1.ins_deel_key" // Alle objecten via plaatsscope van andere bedrijven die ook dezelfde objectscope hebben (gekoppeld aan een werkplek)
|
|
+ " FROM ins_deel d1"
|
|
+ " , prs_werkplek w"
|
|
+ " , alg_v_onrgoed_boom ogb"
|
|
+ " WHERE d1.ins_alg_ruimte_key = w.prs_werkplek_key"
|
|
+ " AND w.prs_alg_ruimte_key = ogb.alg_ruimte_key"
|
|
+ " AND d1.ins_alg_ruimte_type = 'W'" // gekoppeld aan een werkplek
|
|
+ " AND ogb.alg_gebouw_key IN (SELECT DISTINCT g.alg_gebouw_key" // Alle gebouwen via plaatsscope van andere bedrijven die ook dezelfde objectscope hebben
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , alg_gebouw g"
|
|
+ " , cnt_contract c"
|
|
+ " , cnt_contract_object co"
|
|
+ " WHERE g.alg_locatie_key = cp.cnt_alg_plaats_key"
|
|
+ " AND cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key != " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_looptijd_van <= SYSDATE" // Alleen actuele contracten
|
|
+ " AND SYSDATE <= c.cnt_contract_looptijd_tot"
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'L'"
|
|
+ " AND co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND co.cnt_ins_srtdeel_key = d1.ins_srtdeel_key"
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " UNION"
|
|
+ " SELECT DISTINCT cp.cnt_alg_plaats_key"
|
|
+ " FROM cnt_contract_plaats cp"
|
|
+ " , cnt_contract c"
|
|
+ " , cnt_contract_object co"
|
|
+ " WHERE cp.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND c.cnt_prs_bedrijf_key != " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_looptijd_van <= SYSDATE" // Alleen actuele contracten
|
|
+ " AND SYSDATE <= c.cnt_contract_looptijd_tot"
|
|
+ " AND cnt_contract_plaats_verwijder IS NULL"
|
|
+ " AND cp.cnt_alg_plaats_code = 'G'"
|
|
+ " AND co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND co.cnt_ins_srtdeel_key = d1.ins_srtdeel_key"
|
|
+ " AND c.cnt_contract_status IN (0, 1))"
|
|
+ " )"
|
|
+ " )"
|
|
|
|
// Scope srtcontract_type = 1 (Onderhoud/Maintenance): Onderhoud op objecten.
|
|
// Scope op de objecten.
|
|
sql += " OR ins_deel_key IN (SELECT co.cnt_ins_deel_key"
|
|
+ " FROM cnt_contract_object co"
|
|
+ " , cnt_contract c"
|
|
+ " WHERE co.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND co.cnt_ins_deel_key IS NOT NULL"
|
|
+ " AND co.cnt_contract_object_verwijder IS NULL"
|
|
+ " AND c.cnt_prs_bedrijf_key = " + params.cnt_bedrijf_key
|
|
+ " AND c.cnt_contract_status IN (0, 1)"
|
|
+ " )"
|
|
+ " )";
|
|
|
|
}
|
|
}
|
|
|
|
sql = "SELECT * FROM (" + sql + ") XX ORDER BY"
|
|
+ (koppel_key?" case when xx.ins_deel_key = ins_deelkoppeling_van_key THEN 1 ELSE 0 END,":"")
|
|
+ (outputmode == 2 // excel moet objecten met gelijke kenmerken bij elkaar hebben
|
|
? " ins_srtdeel_upper, plaats, soort, ins_deel_omschrijving"
|
|
: " ins_deel_omschrijving, plaats, soort");
|
|
|
|
// ========== now 'sql' holds the main SQL-statement to fetch all object info
|
|
|
|
///////////////////////////////////////////////////////////
|
|
//
|
|
// Now let's present the results:
|
|
//
|
|
//////////////////////////////////////////////////////////
|
|
|
|
/***********************************************
|
|
* Callback functies ResultsetTable for FO en BO
|
|
**********************************************/
|
|
|
|
function fnrowData(oRs)
|
|
{
|
|
var insKey = oRs("ins_deel_key").value;
|
|
var insTypeKey = oRs("ins_srtdeel_key").value;
|
|
var insAvailable = oRs("ins_alg_ruimte_key_org").value == null? 1 : 0;
|
|
var insSrtControleKey = (params.inspect? oRs("ins_srtcontrole_key").value : -1);
|
|
|
|
var data = {insKey: insKey, insTypeKey: insTypeKey, insAvailable: insAvailable, insSrtControleKey: insSrtControleKey};
|
|
return JSON.stringify(data);
|
|
}
|
|
|
|
function fnrowClass(oRs)
|
|
{
|
|
if (params.inspDone) return "";
|
|
var dt = new Date(oRs("inspectie_next").Value);
|
|
dt.setHours(0,0,0,0); // trunc datum
|
|
var dtsoon = new Date;
|
|
dtsoon.setDate(dtsoon.getDate() + S("ins_inspect_soon_days"));
|
|
dtsoon.setHours(0,0,0,0); // trunc datum
|
|
var dtlate = new Date().setHours(0,0,0,0);
|
|
|
|
if (dt >= dtsoon)
|
|
return ""; // meer dan S("ins_inspect_soon_days") dagen in de toekomst
|
|
|
|
if (dt >= dtlate)
|
|
return "expired1"; // Binnenkort
|
|
|
|
return "expired2"; // Te laat
|
|
}
|
|
|
|
function fnrowActionEnabler(oRs)
|
|
{
|
|
var eLendOut = false;
|
|
var eReceive = false;
|
|
var eAdapt = false;
|
|
if (fronto)
|
|
{
|
|
eLendOut = oRs("ins_alg_ruimte_key_org").value == null;
|
|
eReceive = !eLendOut;
|
|
eAdapt = eReceive && (oRs("bewerkbaar").Value == 1);
|
|
}
|
|
var eDelete = false;
|
|
var eEdit = true; // Indien enigste actie dan wordt de actie niet getoond en is het de default actie op de hele regel
|
|
var eDetails = true; // Ik zie alleen objecten waar ik read rechten (3d) op heb. Dan mag ik ze ook verder inzien.
|
|
var eInspect = false;
|
|
var eUitstel = false;
|
|
if (params.inspect && !params.inspDone)
|
|
{
|
|
// Als object is vervallen dan kun je niet meer inspecteren en uitstellen.
|
|
var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight());
|
|
var nonext = ( (oRs("nonext").Value == 1)
|
|
|| (oRs("inspectie_eenheid").value == 0
|
|
? new Date(oRs("inspectie_next").Value).setMinutes(0, 0, 0) <= new Date().setMinutes(0, 0, 0)
|
|
: new Date(new Date(oRs("inspectie_next").Value).setHours(0, 0, 0, 0)).getTime() <= new Date().getTime()
|
|
)
|
|
);
|
|
var this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value);
|
|
eInspect = !vervallen && nonext && this_ins.canInspect;
|
|
eUitstel = !vervallen && !nonext;
|
|
}
|
|
|
|
var data = {eLendOut: eLendOut, eReceive: eReceive, eAdapt: eAdapt, eDelete: eDelete, eEdit: eEdit, eDetails: eDetails,
|
|
eInspect: eInspect, eUitstel: eUitstel};
|
|
return data;
|
|
}
|
|
|
|
function fnPlace(oRs)
|
|
{
|
|
var place = ""
|
|
if (oRs("ins_alg_ruimte_type_org").value != null)
|
|
place = oRs("uitgegeven_vanuit");
|
|
else
|
|
if (oRs("ins_alg_ruimte_type").value == 'P' || oRs("ins_alg_ruimte_type").value == 'A')
|
|
place = oRs("eigenaar").value;
|
|
else
|
|
place = oRs("plaats").value;
|
|
|
|
return safe.html(place);
|
|
}
|
|
|
|
function fnLentOutTo(oRs)
|
|
{
|
|
var lentOutTo
|
|
if (oRs("ins_alg_ruimte_type_org").value != null)
|
|
lentOutTo = oRs("eigenaar").value;
|
|
else
|
|
lentOutTo = "";
|
|
|
|
return safe.html(lentOutTo);
|
|
}
|
|
|
|
function fnPosition(oRs)
|
|
{
|
|
var rkey = oRs("alg_ruimte_key").value;
|
|
var rtype = oRs("ins_alg_ruimte_type").value;
|
|
if (rtype == "A" || rtype == "P")
|
|
{ // Misschien is het uitgeleend en komt het wel uit een ruimte
|
|
rkey = oRs("ins_alg_ruimte_key_org").value;
|
|
rtype = oRs("ins_alg_ruimte_type_org").value;
|
|
}
|
|
if (rtype == null || rtype == "A" || rtype == "P")
|
|
return ""; // Kunnen we niet tonen
|
|
|
|
// TODO: beide kan natuurlijk ook nog/
|
|
var xyavailable = (oRs("ins_deel_x").value != null? 1 : 0);
|
|
var dwgxyavailable = (oRs("ins_deel_dwgx").value != null? 1 : 0);
|
|
|
|
if (rtype == "W")
|
|
{
|
|
var sql = "SELECT prs_alg_ruimte_key, prs_werkplek_dwgx FROM prs_werkplek WHERE prs_werkplek_key = " + rkey;
|
|
var oRs2 = Oracle.Execute(sql);
|
|
var rkey = oRs2("prs_alg_ruimte_key").Value;
|
|
var xyavailable = false;
|
|
var dwgxyavailable = (oRs2("prs_werkplek_dwgx").value != null? 1 : 0);
|
|
oRs2.Close();
|
|
rtype = "R";
|
|
}
|
|
|
|
var position = "";
|
|
if (xyavailable || dwgxyavailable) {
|
|
if (outputmode == 0) {
|
|
position = '<span class="details" onclick="openFG(event, ' + oRs("ins_deel_key").value + ', ' + rkey + ', \'' + rtype + '\', ' + xyavailable + ');">'
|
|
+ (xyavailable? L("lcl_fg_gotomaps") : L("lcl_fg_gotofg"))
|
|
+ '</span>';
|
|
} else {
|
|
position = (xyavailable? "M" : "FG");
|
|
|
|
}
|
|
} else {
|
|
if (outputmode == 0) {
|
|
position = '<span class="details" onclick="openFG(event, ' + oRs("ins_deel_key").value + ', ' + rkey + ', \'' + rtype + '\');">'
|
|
+ L("lcl_fg_gotofg")
|
|
+ '</span>';
|
|
}
|
|
}
|
|
|
|
return position;
|
|
}
|
|
|
|
function fnKoppelvan(oRs)
|
|
{
|
|
if (oRs("ins_deelkoppeling_naar_key").Value == koppel_key)
|
|
return safe.html(oRs("ins_deel_omschrijving").Value)
|
|
+ (oRs("ins_deel_opmerking").Value? " (" + safe.html(oRs("ins_deel_opmerking").Value) + ")" : "");
|
|
else
|
|
return "";
|
|
}
|
|
function fnKoppelaan(oRs)
|
|
{
|
|
if (oRs("ins_deelkoppeling_van_key").Value == koppel_key)
|
|
return safe.html(oRs("ins_deel_omschrijving").Value)
|
|
+ (oRs("ins_deel_opmerking").Value? " (" + safe.html(oRs("ins_deel_opmerking").Value) + ")" : "");
|
|
else
|
|
return "";
|
|
}
|
|
function fnReserveerbaar(oRs) {
|
|
var res = "";
|
|
if ( oRs("res_deel_key").value != null )
|
|
{
|
|
res= "<span";
|
|
if (oRs("res_deel_opmerking").value != null )
|
|
res += " title='" + safe.htmlattr(oRs("res_deel_opmerking").value) + "' ";
|
|
res += ">" + L("lcl_obj_reservdeel") + "</span>";
|
|
}
|
|
return res;
|
|
}
|
|
function fnUitleenbaar(oRs) {
|
|
var res = "";
|
|
if ( oRs("ins_srtdeel_uitleenbaar").value==1 ) {
|
|
res = L("lcl_obj_uitleensrtdeel");
|
|
}
|
|
return res;
|
|
}
|
|
|
|
function fnInspectie(oRs) // TODO: Of via RowClass
|
|
{
|
|
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 nonext = oRs("nonext").Value == 1
|
|
if (nonext)
|
|
{
|
|
switch (oRs("ins_srtcontrole_type").Value)
|
|
{
|
|
case 1: { var txt = L("lcl_ins_controle_first"); break; } // Eerste controle.
|
|
case 2:
|
|
case 3: { var dt = new Date(oRs("inspectie_next").Value); // Registratiedatum.
|
|
var txt = (oRs("inspectie_eind").Value == 0? toDateTimeString(dt) : toDateString(dt));
|
|
break;
|
|
} // Eerste certificering.
|
|
}
|
|
return txt;
|
|
}
|
|
|
|
var inspectie = (params.inspDone? oRs("inspectie_date").Value : oRs("inspectie_next").Value)
|
|
var dt = new Date(inspectie);
|
|
var inspectie_eenheid = oRs("inspectie_eenheid").Value;
|
|
if (inspectie_eenheid == 0)
|
|
var dttxt = toDateTimeString(inspectie);
|
|
else
|
|
var dttxt = toDateString(inspectie);
|
|
|
|
return dttxt;
|
|
}
|
|
|
|
function fnSrtControleType(oRs)
|
|
{
|
|
var txt = "";
|
|
switch (oRs("ins_srtcontrole_type").Value)
|
|
{
|
|
case 1: { txt = L("lcl_ins_srtcontrole_insp"); break; } // Controle.
|
|
case 2: { txt = L("lcl_ins_srtcontrole_repl"); break; } // Vervanging.
|
|
case 3: { txt = L("lcl_ins_srtcontrole_cert"); break; } // Certificering.
|
|
}
|
|
|
|
return txt;
|
|
}
|
|
|
|
if (koppel_key && ins.func_enabled_deel(koppel_key).canChange) // TODO (popup met objectselector (zoiets als bij meldingen?)
|
|
{
|
|
buttons = [{ icon: "wijzigen.png",
|
|
title: L("lcl_change"),
|
|
action: "ins_deelkoppeling()"
|
|
}
|
|
];
|
|
}
|
|
else if (canAdd)
|
|
{
|
|
var addurl = "";
|
|
if (parent_key)
|
|
{
|
|
var addurl = "appl/ins/ins_deel.asp?urole=" + urole + "&parent_key=" + parent_key;
|
|
}
|
|
else
|
|
{
|
|
// Er zijn nogal wat varianten van parameter name bij INS dus moeten wel in
|
|
// het paramsobject wat vertalingen doen.
|
|
var transitParam = buildTransitParam(["disc", "Group", "sort", "dept", "prs_key",
|
|
"locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"],
|
|
{ disc: disc_key, Group: insgroup_key, sort:objsrt_key, dept: dep_key, prs_key:persoon_key});
|
|
var addurl = "appl/ins/ins_deel.asp?urole=" + urole + transitParam;
|
|
}
|
|
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
|
|
buttons.push({ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" });
|
|
}
|
|
|
|
if (embedded && authparams.PRSwritelevel < 9 && fronto && (cpersoon_key > 0 || persoon_key > 0))
|
|
{
|
|
if (cpersoon_key > 0)
|
|
{ // Contactpersoon moet eerst binnengemeld zijn/worden alvorens een object toegekend kan worden.
|
|
sql2 = "SELECT COUNT(b.prs_contactpersoon_key) aantal"
|
|
+ " FROM bez_bezoekers b"
|
|
+ " WHERE b.prs_contactpersoon_key = " + cpersoon_key
|
|
+ " AND b.bez_bezoekers_done IS NOT NULL"
|
|
+ " AND b.bez_bezoekers_out IS NULL"
|
|
var oRs2 = Oracle.Execute(sql2);
|
|
var isbinnen = oRs2("aantal").value > 0;
|
|
}
|
|
else // (persoon_key > 0): Intern persoon kan altijd een object toegekend krijgen.
|
|
isbinnen = true;
|
|
|
|
if (isbinnen) // ja, deze overschrijft het array
|
|
buttons = [{ icon: "plus.png", title: L("lcl_add"), action: "insCheckOutNewItem(" + (cpersoon_key > 0? cpersoon_key + ", 'C'" : persoon_key + ", 'P'") + ")" }]
|
|
}
|
|
|
|
/***************************************************
|
|
* End callback functies ResultsetTable for FO en BO
|
|
**************************************************/
|
|
|
|
// TODO conditionele Add button
|
|
var rst = new ResultsetTable({ keyColumn: "ins_deel_key",
|
|
sql: sql,
|
|
ID: "instable",
|
|
rowData: fnrowData,
|
|
rowActionEnabler: fnrowActionEnabler,
|
|
rowClass: params.inspect? fnrowClass : null,
|
|
flexModule: "INS",
|
|
flexId: "ins_deel_key",
|
|
flexGroupId: "ins_srtdeel_key",
|
|
multiple: true,
|
|
filterParams: params,
|
|
outputmode: outputmode,
|
|
title: (parent_key? L("lcl_subobjects") : (koppel_key? L("lcl_ins_koppelobjects") : L("lcl_ins_objects"))),
|
|
showAll: showall,
|
|
buttons: buttons
|
|
});
|
|
|
|
// Kolommen
|
|
if (fronto)
|
|
{
|
|
rst.addColumn(new Column({caption: L("lcl_obj_sort"), content: "soort", hasActions: true}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "ins_deel_omschrijving"}));
|
|
rst.addColumn(new Column({caption: L("lcl_ins_opmerking"), content: "ins_deel_opmerking"}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_position"), content: fnPlace}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_lent_out_to"), content: fnLentOutTo}));
|
|
}
|
|
else
|
|
{
|
|
if (koppel_key && (L("lcl_obj_koppelaan") != L("lcl_obj_koppelvan")))
|
|
{
|
|
rst.addColumn(new Column({caption: L("lcl_obj_koppelaan"), content: fnKoppelaan}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_koppelvan"), content: fnKoppelvan}));
|
|
}
|
|
else // gewoon
|
|
{
|
|
if (params.inspect && controletype == -1)
|
|
rst.addColumn(new Column({caption: L("lcl_ins_srtcontrole_type"), content: fnSrtControleType}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "ins_deel_omschrijving"}));
|
|
rst.addColumn(new Column({caption: L("lcl_ins_opmerking"), content: "ins_deel_opmerking"}));
|
|
}
|
|
|
|
if (koppel_key)
|
|
rst.addColumn(new Column({caption: L("lcl_obj_koppeloms"), content: "ins_deelkoppeling_omschrijving"}));
|
|
if (params.inspect)
|
|
{
|
|
rst.addColumn(new Column({caption: (params.inspDone? L("lcl_ins_controle_datum") : L("lcl_ins_controle_next")), content: fnInspectie}));
|
|
rst.addColumn(new Column({caption: L("lcl_ins_controle_srt"), content: "ins_srtcontrole_omschrijving"}));
|
|
rst.addColumn(new Column({caption: L("lcl_ins_controle_groep"), content: "groepoms"}));
|
|
}
|
|
|
|
if (!parent_key) {
|
|
rst.addColumn(new Column({caption: L("lcl_obj_position"), content: "plaats"}));
|
|
if (!fgraph)
|
|
rst.addColumn(new Column({caption: L("lcl_obj_owner"), content: "eigenaar", combine: true}));
|
|
}
|
|
rst.addColumn(new Column({caption: L("lcl_obj_sort"), content: "soort"}));
|
|
if (!parent_key && !koppel_key && !params.inspect) {
|
|
if (!fgraph && !embedded &&hasDrawings)
|
|
rst.addColumn(new Column({caption: L("lcl_fg_gotofgheader"), content: fnPosition, align:"center"}));
|
|
if (!embedded && ErisReserveerbaar && !params.inspect)
|
|
rst.addColumn(new Column({caption: L("lcl_obj_reserveerbaar"), content: fnReserveerbaar, align:"center"}));
|
|
if (!embedded && ErisUitleenbaar && !params.inspect)
|
|
rst.addColumn(new Column({caption: L("lcl_obj_uitleensrtdeel"), content: fnUitleenbaar, align:"center"}));
|
|
}
|
|
}
|
|
|
|
// Acties
|
|
if (fronto && authparams.PRSwritelevel < 9) // Ik heb write rechten nodig voor deze acties
|
|
{
|
|
// 1 van de 2 mag zichtbaar zijn. Kijken naar query resultaat!!!
|
|
// PF: TODO: multi in/uit werkt niet goed
|
|
rst.addAction({ action: "insEdit", caption: L("lcl_details"), enabler: "eDetails", isDefault: true}); // Actie insEdit gaat toch eerst naar show mode.
|
|
// Inchecken of uitchecken is zichtbaar. Beiden kunnen als default aangeven worden.
|
|
// Nu alle regels aanklikbaar of inchecken of uitchecken
|
|
rst.addAction({ action: "insCheckOut", caption: L("lcl_obj_lend_out"), enabler: "eLendOut"});
|
|
rst.addAction({ action: "insCheckIn", caption: L("lcl_obj_receive"), enabler: "eReceive"});
|
|
rst.addAction({ action: "insAdapt", caption: L("lcl_ins_adapt"), enabler: "eAdapt"});
|
|
}
|
|
if (backo)
|
|
{
|
|
rst.addAction({ action: "insEdit", caption: L("lcl_change"), isDefault: true}); // isDefault, dus nooit multi, alleen door aanklikken regel. Multi via afgehandeld via functie insMultiEdit()
|
|
if (params.inspect)
|
|
{
|
|
rst.addAction({ action: "insInspect", caption: L("lcl_ins_controle"), multi: !tiny, multiOnce: true, enabler: "eInspect" });
|
|
rst.addAction({ action: "insInspect", caption: L("lcl_ins_uitstellen"), multi: !tiny, multiOnce: true, enabler: "eUitstel" });
|
|
}
|
|
else
|
|
{
|
|
rst.addAction({ action: "insDelete", caption: L("lcl_delete"), enabler: "eDelete", single: false, multi: !tiny, multiOnce: true});
|
|
if (hasWriteINSMAN) // Ik heb INSMAN rechten nodig om multi te kunnen editen. Met alleen INSUSE rechten mag ik dat vooralsnog niet.
|
|
rst.addAction({ action: "insMultiEdit", caption: L("lcl_ins_multi_edit"), enabler: "eEditMulti", multi: !tiny, single: false, multiOnce: true});
|
|
rst.addAction({ action: "insMultiMove", caption: L("lcl_ins_multi_move"), enabler: "NotExist", multi: !tiny, multiOnce: true});
|
|
}
|
|
}
|
|
|
|
var count = rst.processResultset();
|
|
} %>
|
|
</body>
|
|
</html>
|
|
<%
|
|
}
|
|
%>
|