Files
Facilitor/APPL/CNT/cnt_search.asp
Jos Groot Lipman f16a970c4c PCHD#40493 XD filters toevoegen
svn path=/Website/branches/v2017.1/; revision=34777
2017-08-01 07:10:09 +00:00

517 lines
26 KiB
Plaintext
Raw Blame History

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: cnt_search.asp
Description: Filterscherm voor overzicht contracten
Parameters: urole Rol van de gebruiker (frontend, frontoffice, backoffice, management info)
cnt_persoon_key Naam (contractpartij)
comp_key Uitvoerder
dep_key Afdeling / Eigenaar
prs_eig_key Eigenaar
prs_beh_key Beheerder
cnt_key Contractnummer
descript Beschrijving
loc_key Locatie
bld_key Gebouw
srtdeel Objectsoort
disc Contractsoort / discipline
mantel Mantel
cntAct Status Actief(0)
cntInact Status Inactief(1)
cntNew Status Nieuw(2)
cntTgoe Status Ter goedkeuring(3)
cntFFutu Fase Toekomstig binnen status actief
cntFAct Fase Actueel binnen status actief
cntFRap Fase Rappel binnen status actief
cntFOpz Fase In opzegtermijn binnen status actief
cntFVerl Fase Verlopen binnen status actief
Globals:
Context:
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/afdelingselector.inc" -->
<!-- #include file="../Shared/bedrijfselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/xd.inc" -->
<!-- #include file="../Shared/kostensoortselector.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"] });
/***** Get webform parameters *****/
var urole = getQParamSafe("urole", "bo");
var fronto = (urole == "fo"); // unused
var backo = (urole == "bo");
var minfo = (urole == "mi"); // unused
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
//var adv_enabled = getQParam("adv_enabled", 0) == 1;
var cnt_persoon_key = getQParamInt("cnt_persoon_key", -1); // Naam (contractpartij)
var cnt_persoon_omschr = getQParam("cnt_persoon_omschr", ""); // Naam (contractpartij) omschrijving
var comp_key = getQParamInt("comp_key", -1); // Uitvoerder
var comp_omschr = getQParam("comp_omschr", ""); // Uitvoerder omschrijving
var dep_key = getQParamInt("dep_key", -1); // Afdeling / Eigenaar
var prs_eig_key = getQParamInt("prs_eig_key", -1); // Eigenaar
var prs_beh_key = getQParamInt("prs_beh_key", -1); // Beheerder
var cnt_num = getQParam("cnt_key", ""); // Contractnummer (zoekveld, unsafe)
var descript = getQParam("descript", ""); // Beschrijving
var reg_key = getQParamInt("regio_key", -1); // Regio
var dist_key = getQParamInt("district_key", -1);
var loc_key = getQParamInt("locatie_key", -1); // Locatie
var bld_key = getQParamInt("gebouw_key", -1); // Gebouw
var flr_key = getQParamInt("verdieping_key", -1);
var room_key = getQParamInt("ruimte_key", -1);
var loc_omschr = getQParam("loc_omschr", ""); // Locatie omschrijving
var srtdeel = getQParamInt("srtdeel", -1); // Objectsoort
var disc = getQParamInt("disc", -1); // Contractsoort / discipline
var disc_omschr = getQParam("disc_omschr", ""); // Contractsoort / discipline omschrijving
var mantel = getQParamInt("mantel", -1); // Mantel
var kp_key = getQParamInt("kp_key", -1); // Kostenplaats
var ks_key = getQParamInt("ks_key", -1); // Kostensoort
var alg_startlevel = getQParamInt("alg_startlevel", 2); // Startlevel van plaatsselector (Locatie)
var autosearch = getQParamInt("autosearch", 0) == 1; // Direct lijst tonen
var cntAct = getQParamInt("cntAct", 0) == 1; // Status Actief(0)
var cntInact = getQParamInt("cntInact", 0) == 1; // Status Inactief(1)
var cntNew = getQParamInt("cntNew", 0) == 1; // Status Nieuw(2)
var cntTgoe = getQParamInt("cntTgoe", 0) == 1; // Status Ter goedkeuring(3)
var cntFFutu = getQParamInt("cntFFuto", 0) == 1; // Fase toekomstig binnen status actief
var cntFAct = getQParamInt("cntFAct", 0) == 1; // Fase actueel binnen status actief
var cntFRap = getQParamInt("cntFRap", 0) == 1; // Fase rappel binnen status actief
var cntFOpz = getQParamInt("cntFOpz", 0) == 1; // Fase in opzegtermijn binnen status actief
var cntFVerl = getQParamInt("cntFVerl", 0) == 1; // Fase verlopen binnen status actief
if (!cntNew && !cntTgoe && !cntAct && !cntInact)
{
cntAct = true; // standard checked
if (!cntFFutu && !cntFAct && !cntFRap && !cntFOpz)
{
cntFFutu = true; // standard checked
cntFAct = true; // standard checked
cntFRap = true; // standard checked
cntFOpz = true; // standard checked
}
}
var search = getQParamInt("search", 0) == 1;
/***** End get webform parameters *****/
var autfunction = "";
switch(urole)
{
case "fe": autfunction = "WEB_CNTUSE";
break;
case "bo": autfunction = "WEB_CNTMAN";
break;
}
// Als je geheel geen CNTUSE <20>n geen CNTMAN heb mag je later uiteindelijk nog
// wel de contracten zien waarvan je beheerder/eigenaar bent. Je listboxen en
// dergelijke in het zoek-scherm zullen wel leeg blijven bij gebrek aan scope
var authparams = user.checkAutorisation(autfunction, true) || {};
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
<% if (xd.enabled()) {%>
function xdclicked()
{
var doxd = document.getElementById("xd").checked;
$(".noxd").toggle(!doxd);
$(".onlyxd").toggleClass('hidden', !doxd);
iface_toggleSecondarySearchblock(false); // altijd uitschakelen
}
<% } %>
function doSubmit()
{
<% if (xd.enabled()) { %>
if ($("#xd").is(":checked"))
{
$("form[name=u2]").attr("action", "cnt_search_list_xd.asp");
} else {
$("form[name=u2]").attr("action", "cnt_search_list.asp");
}
<% } %>
<% if (backo)
{ %>
doSubmitWithKenmerken();
<% }
else
{ %>
document.forms.u2.submit();
<% } %>
}
<% if (backo)
{ %>
function myModal()
{
if ($('#disc').val() == -1)
{
FcltMgr.alert(L("lcl_cnt_nosrttype_selected"));
return;
}
var key = $('#disc').val();
var url = "load_kenmerk.asp?disc=" + $('#disc').val()
+ "&advanced=1";
var titel = "<%=L("lcl_cnt_kenmerken")%>";
showKenmerkModal(url, titel)
}
<% } %>
function onChangedKostensrtgrp()
{
//sgKs.setValue($("#ks_key").val(), $("#ks_key_show").val(), true, true, null, true);
// Regel hierboven werkt niet goed omdat CheckExist een get call veroorzaakt om te kijken of waarde bestaat.
// In de tussentijd verstoort CheckJustOne dit process met een $.getJSON()
// Dus gewoon Kostensoort leegmaken
sgKs.setValue(-1, "", true, false, null, true);
sgKs.CheckJustOne();
}
function onChangedDienst()
{
//sgComp.setValue($("#sComp_key").val(), $("#sComp_key_show").val(), true, true, null, true);
// Regel hierboven werkt niet goed omdat CheckExist een get call veroorzaakt om te kijken of waarde bestaat.
// In de tussentijd verstoort CheckJustOne dit process met een $.getJSON()
// Dus gewoon Uitvoerende leegmaken
sgComp.setValue(-1, "", true, false, null, true);
sgComp.CheckJustOne();
}
<% if (autosearch)
{ %>
$(document).ready(function()
{
// Direct lijst tonen
doSubmit();
});
<% } %>
</script>
</head>
<% /* TODO: flexkenmerk filtervelden meegeven tijdens submit */ %>
<body id="searchbody" onLoad="if (<%=search? 1 : 0%> == 1) document.forms.u2.submit();">
<div id="search">
<form name="u2" target="workFrame" action="cnt_search_list.asp" method="post">
<input type="hidden" name="urole" value="<%=urole%>">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<tr>
<td class="searchkolom1"><!-- start column 1 -->
<table><!-- x rijen, 2 kolommen: label + veld -->
<%
if (xd.enabled())
RWCHECKBOXTR("xd", "fldxd", L("lcl_xd_crossdomain"), false, {html: "onclick='xdclicked()'"});
%>
<!-- Contractnummer -->
<tr class="primsearch">
<td class="label"><label for="cntnum"><%=L("lcl_cnt_intern_nr")%>:</label></td>
<td><input type="text" class="fldcntnum" name="cntnum" value="<%=safe.htmlattr(cnt_num)%>"></td>
</tr>
<% // <!-- Catalogus -->
sql = "SELECT d.ins_discipline_key, "
+ lcl.xsqla('d.ins_discipline_omschrijving', 'd.ins_discipline_key')
+ " FROM cnt_discipline d"
+ " , cnt_disc_params cp"
+ " WHERE d.ins_discipline_key = cp.cnt_ins_discipline_key"
+ " AND d.ins_discipline_verwijder IS NULL"
+ " AND d.ins_discipline_key IN"
+ " (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ " , fac_functie f"
+ " WHERE g.fac_functie_key = f.fac_functie_key"
+ " AND f.fac_functie_code = " + safe.quoted_sql(autfunction)
+ " AND (g.fac_gebruiker_alg_level_read < 9 AND g.fac_gebruiker_prs_level_read < 9)" // prs en alg read rechten
+ " AND g.prs_perslid_key = " + user_key + ")"
+ " UNION"
+ " SELECT d.ins_discipline_key, "
+ lcl.xsqla('d.ins_discipline_omschrijving', 'd.ins_discipline_key')
+ " FROM cnt_contract c, cnt_discipline d, cnt_disc_params cp"
+ " WHERE cnt_contract_verwijder IS NULL"
+ " AND d.ins_discipline_verwijder IS NULL"
+ " AND c.ins_discipline_key = d.ins_discipline_key"
+ " AND d.ins_discipline_key = cp.cnt_ins_discipline_key"
+ " AND c.prs_perslid_key_eig = " + user_key
+ " ORDER BY 2";
FCLTselector("disc",
sql,
{ initKey: disc,
label: L("lcl_cnt_srttype"),
//extraParamValue: "ex_value", // Wordt volgens mij niet gebruikt dus niet nodig.
trclass:"primsearch noxd",
emptyOption: "",
initEmpty: true // Altijd lege waarde tonen, ook als er maar 1 waarde is.
});
RWFIELDTR("disc_omschr", "fld wildcardr", L("lcl_cnt_srttype"), safe.htmlattr(disc_omschr), { trclass: "onlyxd hidden", datatype: "text" });
%>
<!-- Beschrijving -->
<tr class="primsearch">
<td class="label"><label for="descript"><%=L("lcl_cnt_beschrijv")%>:</label></td>
<td><input type="text" class="fld" id="descript" name="descript" value="<%=safe.htmlattr(descript)%>"></td>
</tr>
<% // <!-- Locatie, gebouw/terrein, verdieping en ruimte -->
FCLTplaatsselector(authparams.ALGreadlevel, { regiokey: reg_key,
districtkey: dist_key,
locatiekey: loc_key,
gebouwkey: bld_key,
verdiepingkey: flr_key,
ruimtekey: room_key,
terrein: true,
startlevel: alg_startlevel,
eindlevel: 5, // Ruimte
secsearch: 2,
trclass: "noxd",
whenEmpty: L("lcl_search_generic"), // want filter
filtercode: "EXP"
});
RWFIELDTR("loc_omschr", "fld wildcardr", L("lcl_location"), safe.htmlattr(loc_omschr), { trclass: "primsearch onlyxd hidden", datatype: "text" });
FCLTkostenplaatsselector("kp_key",
"kp_key",
user_key,
{label: L("lcl_cnt_kostenplaats"),
kostenplaatsKey: kp_key,
filtercode: "C",
trclass:"secsearch noxd",
whenEmpty: L("lcl_search_generic") // want filter
});
// Kostensoortgroep
sql_ksg = "SELECT ksg.prs_kostensoortgrp_key"
+ " , ksg.prs_kostensoortgrp_oms"
+ " FROM prs_kostensoortgrp ksg"
+ " ORDER BY ksg.prs_kostensoortgrp_oms"
FCLTselector("ksgrp_key",
sql_ksg,
{ initKey: -1,
label: L("lcl_cnt_kostensoortgroep"),
onChange: "onChangedKostensrtgrp()",
trclass:"secsearch noxd",
whenEmpty: L("lcl_search_generic"), // want filter
emptyOption: ""
});
if (S("cnt_enable_kostensoort") != 0)
FCLTkostensoortselector("ks_key",
"sgKs",
{label: L("lcl_cnt_kostensoort"),
kostensoortKey: ks_key,
trclass:"secsearch noxd",
urlAdd: [{urlParam: "ksgrp_key", field: "ksgrp_key"}],
whenEmpty: L("lcl_search_generic") // want filter
});
%>
</table>
</td><!-- end column 1 -->
<!-- Second column -->
<td valign=top>
<table>
<!-- DIENST -->
<% sql_dienst = "SELECT prs_dienst_key"
+ ", " + lcl.xsqla('prs_dienst_omschrijving', 'prs_dienst_key')
+ " FROM prs_dienst"
+ " ORDER BY UPPER("+lcl.xsql('prs_dienst_omschrijving', 'prs_dienst_key')+")"
FCLTselector("dienst",
sql_dienst,
{ initKey: -1,
label: L("lcl_prs_companies_dienst"),
onChange: "onChangedDienst()",
trclass: "noxd",
emptyOption: ""
});
RWFIELDTR("cnt_persoon_omschr", "fld wildcardr", L("lcl_cnt_name"), safe.htmlattr(cnt_persoon_omschr), { trclass: "primsearch onlyxd hidden", datatype: "text" });
// <!-- Bedrijfs-contractpartij -->
FCLTbedrijfselector("sComp_key", // company uitvoerder
"sgComp",
{ companyKey: comp_key,
label: L("lcl_cnt_contractant"),
filtercode: "C",
trclass: "primsearch noxd",
urlAdd: [{urlParam: "dienst", field: "dienst"}],
whenEmpty: L("lcl_search_generic") // want filter
});
RWFIELDTR("comp_omschr", "fld wildcardr", L("lcl_cnt_contractant"), safe.htmlattr(comp_omschr), { trclass: "primsearch onlyxd hidden", datatype: "text" });
// <!-- Persoons-contractpartij -->
FCLTpersoonselector("sName_key",
"sgPerson",
{ perslidKey: cnt_persoon_key,
label: L("lcl_person"),
filtercode: "CNTN",
trclass: "primsearch noxd",
autlevel: authparams.PRSreadlevel,
whenEmpty: L("lcl_search_generic") // want filter
});
// <!-- Eigenaar -->
FCLTafdelingselector("sDept_key", // eigenaar
"sgDept",
{ departmentKey: dep_key,
label: L("lcl_cnt_owner"), // Eigenaar, is eigenlijk afdeling: dep_name_level2
autlevel: authparams.PRSreadlevel,
trclass: "primsearch noxd",
filtercode: "CNT",
whenEmpty: L("lcl_search_generic") // want filter
});
if (prs_eig_key > 0)
{
%><input type='hidden' name='sCnt_owner_key' value='<%=prs_eig_key%>'><%
}
else
{
// <!-- Verantwoordelijk manager -->
FCLTpersoonselector("sCnt_owner_key", // verantwoordelijk manager
"sgCnt_owner",
{ //perslidKey: prs_eig_key,
label: L("lcl_cnt_contact_eig"),
filtercode: "CNTE",
trclass: "secsearch noxd",
autlevel: authparams.PRSreadlevel,
whenEmpty: L("lcl_search_generic") // want filter
});
}
if (prs_beh_key > 0)
{
%><input type='hidden' name='sBeh_key' value='<%=prs_beh_key%>'><%
}
else
{
// <!-- Beheerder -->
FCLTpersoonselector("sBeh_key", // manager
"sgBeh",
{ //perslidKey: prs_beh_key,
label: L("lcl_cnt_beheerder"),
filtercode: "CNT",
trclass: "secsearch noxd",
autlevel: authparams.PRSreadlevel,
whenEmpty: L("lcl_search_generic") // want filter
});
}
// <!-- Objectsoort -->
sql = "SELECT DISTINCT ins_srtdeel_key"
+ ", "+ lcl.xsqla('ins_srtdeel_omschrijving','s.ins_srtdeel_key') // || ' (' || ins_srtdeel_code" || ')'
+ ", ins_srtdeel_upper"
+ " FROM ins_v_aanwezigsrtdeel s"
+ ", cnt_contract_object co "
+ " WHERE co.cnt_ins_srtdeel_key = s.ins_srtdeel_key"
+ " ORDER BY 3";
FCLTselector("srtdeel",
sql,
{ initKey: srtdeel,
label: L("lcl_obj_sort"),
trclass:"secsearch noxd",
emptyOption: "",
initEmpty: true // Altijd lege waarde tonen, ook als er maar 1 waarde is.
});
// <!-- Mantel -->
sql = "SELECT cnt_contract_key"
+ " , cnt_contract_nummer_intern || '-' || cnt_contract_omschrijving"
+ " FROM cnt_v_aanwezigcontract c"
+ " , cnt_disc_params dp"
+ " , cnt_discipline d"
+ " WHERE c.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND d.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND dp.cnt_srtcontract_type = 6" // mastercontracts
+ " AND d.ins_discipline_verwijder IS NULL"
+ " AND d.ins_discipline_key IN"
+ " (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ " , fac_functie f"
+ " WHERE g.fac_functie_key = f.fac_functie_key"
+ " AND f.fac_functie_code = 'WEB_CNTMAN'"
+ " AND (g.fac_gebruiker_alg_level_read < 9 AND g.fac_gebruiker_prs_level_read < 9)" // prs en alg read rechten
+ " AND g.prs_perslid_key = " + user_key + ")"
+ " ORDER BY 2";
FCLTselector("mantel",
sql,
{ initKey: mantel,
label: L("lcl_cnt_mantel"),
trclass:"secsearch noxd",
emptyOption: "",
initEmpty: true // Altijd lege waarde tonen, ook als er maar 1 waarde is.
});
if (0 && xd.enabled()) { // Future extension. Ik verwacht dergelijke functionaliteit in het algemeen voor XD, maar eerder nog bij meldingen en opdrachten tbv Behandelaar
%>
<tr>
<td class="label hidden xd"><label><%=L("lcl_cnt_mineonly")%>:</label></td>
<td>
<div class="statusboxes hidden xd">
<input type="checkbox" name="zelf" id="zelf" value="1"><label for="zelf"><%=L("lcl_yes")%></label>
</div>
</td></tr>
<% } %>
<!-- Status checkboxen -->
<tr>
<td class="label"><label><%=L("lcl_cnt_status")%>:</label></td>
<td>
<div class="statusboxes">
<input type="checkbox" class="fldcntact" name="cntAct" id="cntAct" value="1" <%=cntAct? "checked" : ""%>><label for="cntAct"><%=(S("cnt_contract_approval") == 1? L("lcl_cnt_active_approval") : L("lcl_cnt_active"))%></label>
<% if (S("cnt_contract_approval") == 1) {%>
<input type="checkbox" class="fldcntnew" name="cntNew" id="cntNew" value="1" <%=cntNew? "checked" : ""%>><label for="cntNew"><%=L("lcl_cnt_new")%></label>
<input type="checkbox" class="fldcnttgoe" name="cntTgoe" id="cntTgoe" value="1" <%=cntTgoe? "checked" : ""%>><label for="cntTgoe"><%=L("lcl_cnt_forapproval")%></label>
<% }%>
<input type="checkbox" class="fldcntinact" name="cntInact" id="cntInact" value="1" <%=cntInact? "checked" : ""%>><label for="cntInact"><%=L("lcl_cnt_inactive")%></label>
</div>
</td>
</tr>
</table>
</td><!-- end column 2-->
</tr>
<tr class="noxd">
<td colspan="2">
<div id="statusboxes">
<label><%=L("lcl_cnt_fase_actief")%>:</label>
<input type="checkbox" class="fldcntffutu" name="cntFFutu" id="cntFFutu" value="1" <%=cntFFutu? "checked" : ""%>><label for="cntFFutu"><%=L("lcl_cnt_future")%></label>
<input type="checkbox" class="fldcntfact" name="cntFAct" id="cntFAct" value="1" <%=cntFAct? "checked" : ""%>><label for="cntFAct"><%=L("lcl_cnt_topical")%></label>
<input type="checkbox" class="fldcntfrap" name="cntFRap" id="cntFRap" value="1" <%=cntFRap? "checked" : ""%>><label for="cntFRap"><%=L("lcl_cnt_warn")%></label>
<input type="checkbox" class="fldcntfopz" name="cntFOpz" id="cntFOpz" value="1" <%=cntFOpz? "checked" : ""%>><label for="cntFOpz"><%=L("lcl_cnt_cancel")%></label>
<input type="checkbox" class="fldcntfverl" name="cntFVerl" id="cntFVerl" value="1" <%=cntFVerl? "checked" : ""%>><label for="cntFVerl"><%=L("lcl_cnt_past")%></label>
</div>
</td>
</tr>
</table>
<% BLOCK_END();
buttons = [{title: L("lcl_search"), action:"doSubmit(0)" },
{title: L("lcl_shared_more"), action:"iface_toggleSecondarySearchblock()", id : "btnMoreLess", xclass: "noxd" }
]
if (backo)
buttons.push({title: L("lcl_obj_advanced"), action:"myModal()", xclass: "noxd" });
CreateButtons(buttons, { entersubmit: true} );
%>
</form>
</div><!--search-->
<div id="result">
<iframe width="100%" height="100%"
src="../Shared/empty.html"
name="workFrame" id="workFrame"
onload='FcltMgr.iframeLoaded(this)'
frameborder="0" scrolling="no">
</iframe>
</div>
</body>
</html>