236 lines
11 KiB
C++
236 lines
11 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: kostenplaatsselector.inc
|
|
Description: Algemene interface functie om een kostenplaats suggestbox te maken
|
|
Deze moet je kunnen includen en aanroepen.
|
|
Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de kostenplaatsen bevat (afdelingnaam veld)
|
|
en een hidden keyveld die de key van de kostenplaats bevat (kostenplaatskey veld).
|
|
Het kostenplaatsnaam veld heeft geen naam en wordt niet meegesubmit.
|
|
Het kostenplaatskey veld heeft een naam en wordt meegesubmit.
|
|
Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
|
|
parameters: fieldName: veldnaam van het kostenplaatskey veld. Dit veld wordt gesubmit.
|
|
objectName: naam van het suggest object dat wordt aangemaakt.
|
|
params: object met meegegeven parameters.
|
|
kostenplaatsKey: initiële key waarde van de kostenplaats die ingevuld moet worden.
|
|
label: label dat voor het kostenplaatsnaam veld wordt weergegeven.
|
|
filtercode: extra filtercode voor de query die gebruikt wordt voor de suggest.
|
|
onChange: onchange op het textveld.
|
|
trclass: wordt ook op de <tr> gezet
|
|
extraParamField: veldnaam voor een extra hidden parameter veld.
|
|
isBad: boolean die aangeeft dat het kostenplaats veld als ongeldig
|
|
en leeg weergegeven moet worden (true|false(default)).
|
|
readonly: geeft aan of het kostenplaats veld readonly weergegeven moet worden (true|false(default)).
|
|
moreinfo: unsupported
|
|
suppressEmpty Onderdrukt het veld helemaal indien EN readonly EN leeg
|
|
inzage Alleen de kostenplaatsen tonen waarvoor je inzage rechten hebt.
|
|
mine Kostenplaatsen waarvan ik de budgethouder van de kostenplaatsgroep ben, ook tonen.
|
|
checkInit De initiële waarde (key) moet gecheckt wordten of deze wel gekozen mag/kan worden (heb ik de rechten).
|
|
*/ %>
|
|
|
|
<!-- #include file="./Suggest/kostenplaatsFilter.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });
|
|
|
|
function FCLTkostenplaatsselector(fieldName, objectName, prs_key, params)
|
|
{
|
|
if (!(params.kostenplaatsKey && params.kostenplaatsKey > 0) && params.readonly && params.suppressEmpty) return;
|
|
if (typeof params=="undefined") params = {};
|
|
|
|
if (!prs_key) prs_key = user_key;
|
|
|
|
var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_kostenplaats")));
|
|
var lkostenplaatsName = (device.test(device.supportsPlaceholder) && !params.readonly ? "" : lwhenEmpty);
|
|
var lextraInit = "";
|
|
if (params.kostenplaatsKey && params.kostenplaatsKey > 0)
|
|
{
|
|
//var extraInf = ", 'Extra' extra";
|
|
var extraInf = getExtraInfKostenplaats(params.extracode);
|
|
if (params.checkInit)
|
|
{
|
|
var filt_params = { prs_key: prs_key,
|
|
//showeigenkp: params.showeigenkp, // Is een urlParam. Wordt nog niet in combinatie met checkInit gebruikt.
|
|
inzage: params.inzage,
|
|
mine: params.mine,
|
|
extraInf: extraInf
|
|
};
|
|
var filtClause = getFiltClauseKostenplaats(params.filtercode, filt_params);
|
|
}
|
|
else
|
|
var filtClause = {from: "", where: ""};
|
|
|
|
var sql = "SELECT k.prs_kostenplaats_key kpkey"
|
|
+ " , " + S("prs_kpn_string") + " kpstring"
|
|
+ " , (SELECT kg.prs_kostenplaatsgrp_oms FROM prs_kostenplaatsgrp kg WHERE kg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key) descr"
|
|
+ " , UPPER(" + S("prs_kpn_string") + ") upperkpstring"
|
|
+ extraInf
|
|
+ " FROM prs_kostenplaats k"
|
|
+ filtClause.from
|
|
+ " WHERE k.prs_kostenplaats_key = " + params.kostenplaatsKey
|
|
+ (params.readonly ? "" : " AND k.prs_kostenplaats_verwijder IS NULL ")
|
|
+ filtClause.where;
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof) {
|
|
lkostenplaatsName = oRs("kpstring").Value;
|
|
lextraInit = oRs("extra").Value
|
|
}
|
|
oRs.close();
|
|
}
|
|
|
|
var prsInUrlAdd = false;
|
|
var prsInUrlField = "";
|
|
if (!params.readonly)
|
|
{
|
|
if (params.urlAdd)
|
|
{
|
|
// Initiele urlAddTxt bepalen
|
|
var urlAddTxt = "[";
|
|
for (var i = 0; i < params.urlAdd.length; i++)
|
|
{
|
|
// Als kostenklant initieel niet is aangevinkt (kptoggle.ischecked is false) (en urlParam = "prs_key")
|
|
// dan voor het veld (field) fieldName + "_userkey" nemen (user kostenplaatsen).
|
|
urlAddTxt += (i > 0? ", " : "") + "{ urlParam: \"" + params.urlAdd[i].urlParam
|
|
+ "\", field: \"" + (params.urlAdd[i].urlParam == "prs_key" && params.kptoggle && !params.kptoggle.ischecked? fieldName + "_userkey" : params.urlAdd[i].field) + "\" }";
|
|
if (params.urlAdd[i].urlParam == "prs_key")
|
|
{
|
|
prsInUrlAdd = true;
|
|
prsInUrlField = params.urlAdd[i].field;
|
|
}
|
|
}
|
|
urlAddTxt += "]"
|
|
}
|
|
else if (params.kptoggle)
|
|
{ // Geen urlAdd meegegeven maar wel een kostenklant checkbox, dan kan prs_key meegekregen vaste prs_key zijn of user_key
|
|
params.urlAdd = [{ urlParam: "prs_key", field: fieldName + "_userkey" }];
|
|
var urlAddTxt = "[{ urlParam: \"" + params.urlAdd[0].urlParam + "\", field: \"" + params.urlAdd[0].field + "\" }]";
|
|
}
|
|
}
|
|
|
|
// Bouw de url voor de kostenplaatsquery op
|
|
// Geen autorisatie bij kostenplaatsen (prs_kostenplaats)
|
|
var kpQueryUrl = rooturl + "/appl/shared/suggest/SuggestKostenplaats.asp?a=1"
|
|
+ (!prsInUrlAdd && !params.kptoggle? "&prs_key=" + prs_key : "")
|
|
+ (params.filtercode? "&filtcode=" + params.filtercode : "")
|
|
+ (params.showall? "&showall=" + params.showall : "")
|
|
+ (params.extracode? "&extracode=" + params.extracode : "")
|
|
+ (params.inzage? "&inzage=1" : "")
|
|
+ (params.mine? "&mine=1" : "");
|
|
if (params.label)
|
|
{
|
|
%><tr <%=params.trclass? "class='" + params.trclass + "'":""%>><td class="label">
|
|
<label class='selector' for="<%=fieldName%>"><%=params.kptoggle? params.label : L("lcl_account")%>:</label>
|
|
<%
|
|
if (!params.kptoggle) {
|
|
%>
|
|
</td>
|
|
<td>
|
|
<%
|
|
}
|
|
}
|
|
// no label
|
|
if (params.kptoggle)
|
|
{
|
|
%><span class='labelextra'><%
|
|
CHECKBOX("fldmldkostenklant",
|
|
"kostenklant",
|
|
params.kptoggle.ischecked,
|
|
{ html: params.kptoggle && !params.readonly? " onClick='onChangeKk();" + (params.kptoggle.onChange && !params.readonly? params.kptoggle.onChange : "") + "'" : "",
|
|
readonly: params.kptoggle.readonly,
|
|
hidden: params.kptoggle.hidden
|
|
});
|
|
%>
|
|
<input type="hidden" id="<%=fieldName%>_userkey" value="<%=user_key%>">
|
|
</span>
|
|
<%
|
|
if (params.label) {
|
|
%>
|
|
</td>
|
|
<td>
|
|
<%
|
|
}
|
|
}
|
|
// Noot: dit hierboven is een wat lousy nestingsconstructie om te ondersteunen
|
|
// [label vinkje][veld] of [vinkje veld] of [label][veld] of [veld]
|
|
if (params.readonly) { %>
|
|
<span id="<%=fieldName%>_show" class="readonly fldkp">
|
|
<%=safe.html(lkostenplaatsName)%>
|
|
</span>
|
|
<% } else { %>
|
|
<input id="<%=fieldName%>_show" class="fldkp<%=!params.readonly&¶ms.required? " required" : ""%>" value="<%=safe.htmlattr(lkostenplaatsName)%>" placeholder="<%=lwhenEmpty%>"
|
|
<%=params.readonly? " readonly tabindex=-1" : ""%>
|
|
<%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
|
|
<% } %>
|
|
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.kostenplaatsKey%>">
|
|
<%
|
|
if (params.extraParamField)
|
|
{ /* het extra parameter veld wordt door suggest object gevuld */%>
|
|
<input type="hidden" id="<%=params.extraParamField%>" name="<%=params.extraParamField%>" value="<%= safe.htmlattr(lextraInit)%>">
|
|
<%
|
|
}
|
|
|
|
if (!params.readonly)
|
|
{
|
|
%>
|
|
<script type="text/javascript">
|
|
<% if (params.kptoggle)
|
|
{
|
|
if (params.urlAdd)
|
|
{ %>
|
|
function onChangeKk()
|
|
{
|
|
// De te gebruiken prs_key veranderd als kostenklant is aangepast. Gebruik meegegeven prs_key (AAN) of user_key (UIT)
|
|
if ($("#kostenklant").prop("checked"))
|
|
{ // Kostenklant UIT => AAN: Gebruik meegegeven prs_key veld.
|
|
<%=objectName%>.reloadUrlAdd([{ urlParam: "prs_key", field: "<%=prsInUrlField%>" }])
|
|
}
|
|
else
|
|
{ // Kostenklant AAN => UIT: Gebruik user_key veld.
|
|
<%=objectName%>.reloadUrlAdd([{ urlParam: "prs_key", field: "<%=fieldName%>_userkey" }])
|
|
}
|
|
}
|
|
<% }
|
|
else // !params.urlAdd
|
|
{ %>
|
|
function onChangeKk()
|
|
{
|
|
// De te gebruiken prs_key veranderd als kostenklant is aangepast. Gebruik meegegeven prs_key (AAN) of user_key (UIT)
|
|
if ($("#kostenklant").prop("checked"))
|
|
{ // Kostenklant UIT => AAN: Gebruik meegegeven prs_key.
|
|
$("<%=fieldName%>_userkey").val(<%=prs_key%>);
|
|
}
|
|
else
|
|
{ // Kostenklant AAN => UIT: Gebruik user_key.
|
|
$("<%=fieldName%>_userkey").val(<%=user_key%>);
|
|
}
|
|
}
|
|
<% }
|
|
} %>
|
|
|
|
jQuery(document).ready( function()
|
|
{
|
|
<%=objectName%> = new Suggest({ objectName: "<%=objectName%>",
|
|
queryField: $("#<%=fieldName%>_show")[0],
|
|
queryUrl: "<%=kpQueryUrl%>",
|
|
initKey: <%=params.kostenplaatsKey? params.kostenplaatsKey : -1%>,
|
|
icon: "<%= S("currency_icon") %>",
|
|
keyField: $("#<%=fieldName%>")[0]
|
|
<%=params.urlAdd || params.kptoggle? ", urlAdd: " + urlAddTxt : ""%>
|
|
<%=params.extraParamField? ", extraParamField: $(\"" + "#" + params.extraParamField + "\")[0]" : ""%>
|
|
<%=params.extraParamField? ", initExtraParam: \"" + safe.jsstring("" + lextraInit) + "\"": ""%>
|
|
<%=params.isBad? ", isBad: true": ""%>
|
|
});
|
|
}
|
|
)
|
|
</script>
|
|
<%
|
|
}
|
|
if (params.label)
|
|
{ %>
|
|
</td></tr>
|
|
<%
|
|
}
|
|
|
|
}
|
|
%> |