VNOG#85909: Verbeteren werking van onderdelen in objectbeheer.

svn path=/Website/trunk/; revision=66937
This commit is contained in:
Maykel Geerdink
2024-11-07 09:04:07 +00:00
parent d06178f8b3
commit 2b82d94101
13 changed files with 1024 additions and 53 deletions

View File

@@ -0,0 +1,178 @@
<%@language = "javascript" %>
<%
/* $Revision$
$Id$
File: ins_change_parent.asp
Description: Verander het objectsoort
Impliciet: ins_deel.ins_deel_parent_key wordt aangepast
Expliciet:
Parameters:
ins_key deel key
submitting Mode {0=invoer / 1=opslaan}
Context: ins_edit_deel.asp wijzigen object
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/srtgroepselector.inc" -->
<!-- #include file="../Shared/srtdeelselector.inc" -->
<!-- #include file="../Shared/objectselector.inc" -->
<!-- #include file="./ins.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"]
, js: ["../ins/ins_onderdelen.js"]
});
var autfunction = "WEB_INSMAN";
var authparams = user.checkAutorisation(autfunction);
var ins_key = getQParamInt("ins_key"); // Het te wijzigen object.
// Bepaal of het object ook echt gewijzigd kan of mag worden.
this_ins = ins.func_enabled_deel(ins_key);
user.anything_todo_or_abort(this_ins.canChange);
%>
<html>
<head>
<% FCLTHeader.Generate();
var submitting = getQParamInt("submit", 0) == 1;
if (submitting)
{
protectRequest.validateToken();
var success = false;
var parent_key = getFParamInt("deel_key"); // Nieuw parent object.
var sql = "UPDATE ins_deel"
+ " SET ins_deel_parent_key = " + (parent_key > 0? parent_key : "NULL")
+ " WHERE ins_deel_key = " + ins_key;
Oracle.Execute(sql);
%>
<script type="text/javascript">
FcltMgr.closeDetail(window, { success: true, refresh: true } );
</script>
<% Response.End;
}
%>
<script type="text/javascript">
async function ins_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
if (!await validateForm("u2")) {
return false;
}
document.forms.u2.submit();
}
function ins_delete() {
FcltMgr.confirm(L("lcl_ins_del_parentobject"), async function ()
{
sgDisc.setValue(-1, "", true, false, null, true);
sgSrtgroep.setValue(-1, "", true, false, null, true);
sgSrtdeel.setValue(-1, "", true, false, null, true);
sgDeel.setValue(-1, "", true, false, null, true);
document.forms.u2.submit();
}
);
}
function ins_cancel() {
FcltMgr.closeDetail(window);
}
</script>
</head>
<body class="modal" id="mod_changedeel">
<% MODAL_START(); %>
<form name="u2"
action="ins_change_parent.asp?submit=1<%=buildTransitParam(["ins_key"])%>"
method="post"
onSubmit="ins_submit();">
<%
// Bepaal de discipline, soortgroep en soortdeel van het object.
var sql = "SELECT d.ins_deel_parent_key"
+ " , g.ins_discipline_key"
+ " , g.ins_srtgroep_key"
+ " , s.ins_srtdeel_key"
+ " FROM ins_deel d"
+ " , ins_deel parent"
+ " , ins_srtdeel s"
+ " , ins_srtgroep g"
+ " WHERE d.ins_deel_parent_key = parent.ins_deel_key"
+ " AND parent.ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
+ " AND d.ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var parent_deel_key = oRs("ins_deel_parent_key").Value;
var parent_disc_key = oRs("ins_discipline_key").Value;
var parent_srtgroep_key = oRs("ins_srtgroep_key").Value;
var parent_srtdeel_key = oRs("ins_srtdeel_key").Value;
oRs.Close();
lcl.set_dialect(parent_disc_key, "INS_DISCIPLINE_KEY");
MODAL_BLOCK_START("srtdeelInfo", L("lcl_select_object"), { icon: "fa-file-signature" });
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_discipline"),
disc_key: parent_disc_key,
module: "INS",
perslidKey: user_key,
autfunctionKey: authparams.autfunctionkey,
autRW: "W",
onChange: "onChangeDiscipline"
});
FCLTsrtgroepselector("srtgroep",
"sgSrtgroep",
{ label: L("lcl_obj_group"),
srtgroep_key: parent_srtgroep_key,
autfunction: autfunction,
onChange: "onChangeSrtgroep",
urlAdd: [{urlParam: "disc_key", field: "disc"}]
});
FCLTsrtdeelselector("srtdeel",
"sgSrtdeel",
{ label: L("lcl_obj_sort"),
srtdeel_key: parent_srtdeel_key,
autfunction: autfunction,
module: "INS",
autfunction: autfunction,
onChange: "onChangeSrtdeel",
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
{urlParam: "disc_key", field: "disc"}]
});
// Identificatie/Object
// LET OP: Onderdelen worden niet getoond in de objectselector (ins_v_aanwezigdeel sluit onderdelen uit).
// Dat is ook precies wat we willen. Onderdelen kunnen geen onderdeel zijn/worden van twee objecten.
FCLTobjectselector("deel_key",
"sgDeel",
{ label: L("lcl_obj_identification"),
objectKey: parent_deel_key,
onChange: "onChangeDeel",
urlAdd: [{urlParam: "disc_key", field: "disc"},
{urlParam: "srtgroep_key", field: "srtgroep"},
{urlParam: "srtdeel_key", field: "srtdeel"}],
autfunction: autfunction
});
MODAL_BLOCK_END();
SIMPLE_BLOCK_START();
CreateButtons([{ title: L("lcl_submit"), action: "ins_submit()", icon: "fa-fclt-save", importance: 1},
{ title: L("lcl_delete"), action: "ins_delete()", icon: "fa-trash-alt", importance: 3},
{ title: L("lcl_cancel"), action: "ins_cancel()", icon: "fa-fclt-cancel", importance: 3}]);
SIMPLE_BLOCK_END();
IFACE.FORM_END();
%>
</form>
<% MODAL_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>

View File

@@ -0,0 +1,307 @@
<%@language = "javascript" %>
<%
/* $Revision$
$Id$
File: ins_change_plaatseigenaar.asp
Description: Verander de plaats of eigenaar
Impliciet: ins_deel.ins_srtdeel_key wordt aangepast
Expliciet:
Parameters:
ins_key deel key
submitting Mode {0=invoer / 1=opslaan}
Context: ins_edit_deel.asp wijzigen object
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/afdelingselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/contactpersoonselector.inc" -->
<!-- #include file="./ins.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"]
, js: ["../ins/ins_edit_deel.js", "../ins/bind.js"]
});
var autfunction = "WEB_INSMAN";
var authparams = user.checkAutorisation(autfunction);
var ins_key = getQParamInt("ins_key"); // Het te wijzigen object.
var sql = "SELECT d.ins_deel_parent_key"
+ " , s.ins_srtdeel_binding"
+ " , g.ins_discipline_key"
+ " , d.ins_alg_ruimte_type"
+ " , d.ins_alg_ruimte_key"
+ " , d.ins_alg_ruimte_type_org"
+ " , d.ins_alg_ruimte_key_org"
+ " FROM ins_deel d"
+ " , ins_srtdeel s"
+ " , ins_srtgroep g"
+ " , ins_tab_discipline dis"
+ " , ins_deel pd"
+ " , ins_disc_params idp"
+ " WHERE d.ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND d.ins_deel_parent_key = pd.ins_deel_key(+)"
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
+ " AND g.ins_discipline_key = dis.ins_discipline_key"
+ " AND dis.ins_discipline_key = idp.ins_discipline_key"
+ " AND d.ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var srtdeel_binding = oRs("ins_srtdeel_binding").Value;
var disc_key = oRs("ins_discipline_key").Value;
var bind = oRs("ins_alg_ruimte_type").Value;
var bind_key = oRs("ins_alg_ruimte_key").Value;
var org_bind = oRs("ins_alg_ruimte_type_org").Value;
var org_bind_key = oRs("ins_alg_ruimte_key_org").Value;
var isLendOut = (oRs("ins_alg_ruimte_key_org").Value != null);
oRs.Close();
// Bepaal of het object ook echt gewijzigd kan of mag worden.
// De velden mogen niet wijzigen
// 1) zonder canChangeAlg rechten (Zonder canChangeAlg rechten zijn de velden in de edit mode readonly) of
// 2) als het object is uitgeleend.
this_ins = ins.func_enabled_deel(ins_key);
user.anything_todo_or_abort(this_ins.canChange && this_ins.canChangeAlg && !isLendOut);
// Bepaal de plaats of eigenaar van het object.
var o_loc_key = -1;
var o_bld_key = -1;
var o_floor_key = -1;
var o_room_key = -1;
var o_workpl_key = -1;
var o_dep_key = -1;
var o_perslid_key = -1;
var o_cntpers_key = -1;
if (bind == 'R' || bind == 'W' || bind == 'T')
{
sql = "SELECT alg_locatie_key"
+ " , COALESCE(alg_gebouw_key, alg_terreinsector_key) alg_gebouw_key"
+ " , alg_verdieping_key"
+ " , alg_ruimte_key"
+ " , prs_werkplek_key"
+ " FROM ins_v_xdeel_gegevens_keys"
+ " WHERE ins_deel_key=" + ins_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
o_loc_key = oRs("alg_locatie_key").Value;
o_bld_key = oRs("alg_gebouw_key").Value;
o_floor_key = oRs("alg_verdieping_key").Value;
o_room_key = oRs("alg_ruimte_key").Value;
o_workpl_key = oRs("prs_werkplek_key").Value;
// gracefull terugvallen nav. DHLN#18851
// In theorie kan dit ook een probleem zijn voor andere bindings
// maar daar kan ik geen logische terugvaloptie bedenken.
if (!(srtdeel_binding & BIND_WERKPL) && bind == 'W')
{
bind = "R";
}
oRs.close();
}
}
else // Persoon/afdeling gebonden
{
if (bind == 'A')
o_dep_key = bind_key;
if (bind == 'P')
o_perslid_key = bind_key;
if (bind == 'C')
o_cntpers_key = bind_key;
}
// Bij de bepaling van invalid_binding weet ik dat het object niet uitgeleend is (isLendOut = false).
var invalid_binding = ((!(srtdeel_binding & (BIND_AFDELI)) && o_dep_key > 0) ||
(!(srtdeel_binding & (BIND_PERSOO)) && o_perslid_key > 0) ||
(!(srtdeel_binding & (BIND_TERREI)) && o_bld_key > 0 && !(srtdeel_binding & (BIND_RUIMTE)) && !(srtdeel_binding & (BIND_WERKPL))) ||
(!(srtdeel_binding & (BIND_RUIMTE)) && o_room_key > 0 && !(srtdeel_binding & (BIND_WERKPL))) ||
(!(srtdeel_binding & (BIND_WERKPL)) && o_workpl_key > 0));
lcl.set_dialect(disc_key, "INS_DISCIPLINE_KEY");
%>
<html>
<head>
<% FCLTHeader.Generate();
var submitting = getQParamInt("submit", 0) == 1;
if (submitting)
{
protectRequest.validateToken();
var success = false;
var dept_key = getFParamInt("sDept", -1); // Afdeling.
var prs_key = getFParamInt("SPerson", -1); // Persoon.
var bld_key = getFParamInt("gebouwkey", -1); // Gebouw/Terrein.
var room_key = getFParamInt("ruimtekey", -1); // Ruimte.
var workpl_key = getFParamInt("werkplekkey", -1); // Werkplek.
var ins_alg_ruimte_key;
var ins_alg_ruimte_type;
if (dept_key > 0)
{
ins_alg_ruimte_key = dept_key;
ins_alg_ruimte_type = "A";
}
else if (prs_key > 0)
{
ins_alg_ruimte_key = prs_key;
ins_alg_ruimte_type = "P";
}
else if (workpl_key > 0)
{
ins_alg_ruimte_key = workpl_key;
ins_alg_ruimte_type = "W";
}
else if (room_key > 0)
{
ins_alg_ruimte_key = room_key;
ins_alg_ruimte_type = "R";
}
else if (bld_key > 0)
{
ins_alg_ruimte_key = bld_key;
ins_alg_ruimte_type = "T";
}
var sql = "UPDATE ins_deel"
+ " SET ins_alg_ruimte_key = " + ins_alg_ruimte_key
+ " , ins_alg_ruimte_type = '" + ins_alg_ruimte_type + "'"
+ " WHERE ins_deel_key = " + ins_key;
Oracle.Execute(sql);
%>
<script type="text/javascript">
FcltMgr.closeDetail(window, { success: true, refresh: true });
</script>
<% Response.End;
}
%>
<script type="text/javascript">
async function ins_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
if (!await validateForm("u2")) {
return false;
}
document.forms.u2.submit();
}
function ins_cancel()
{
FcltMgr.closeDetail(window);
}
</script>
</head>
<body class="modal" id="mod_changedeel">
<% MODAL_START(); %>
<form name="u2"
action="ins_change_plaatseigenaar.asp?submit=1<%=buildTransitParam(["ins_key"])%>"
method="post"
onSubmit="ins_submit();">
<%
MODAL_BLOCK_START("srtdeelInfo", L("lcl_owner_info"), { icon: "fa-file-signature" });
if ((srtdeel_binding & (BIND_AFDELI)) && !invalid_binding)
{
FCLTafdelingselector("sDept",
"sDept",
{ departmentKey: o_dep_key,
label: L("lcl_prs_organisatie"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangeDept"
});
}
if ((srtdeel_binding & (BIND_PERSOO)) && !invalid_binding)
{
FCLTpersoonselector("sPerson", // requestor
"sgPerson",
{ perslidKey: o_perslid_key,
label: L("lcl_name"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangePerson"
});
}
// Als het Object is uitgeleend dan behoort het object aan een contactpersoon. Voor het uitlenen behoorde het object tot een persoon, afdeling of plek.
// Aangezien we de velden niet mogen wijzigen als het object is uitgeleed, hoeven we het contactpersoon hier niet te tonen.
if (!invalid_binding)
{
var maxlevel = -1;
var change = "";
%>
<script>
function change1()
{
setBind('T');
}
function change2(p_key)
{
setBind('R');
}
function change3(p_key)
{
setBind('W');
}
</script>
<%
if (srtdeel_binding & (BIND_TERREI | BIND_RUIMTE | BIND_WERKPL))
{
change = "change1()";
maxlevel = 3;
}
if (srtdeel_binding & (BIND_RUIMTE | BIND_WERKPL))
{
change = "change2()";
maxlevel = 5;
}
if (srtdeel_binding & (BIND_WERKPL))
{
change = "change3()";
maxlevel = 6;
}
if (maxlevel >= 2)
FCLTplaatsselector(authparams.ALGwritelevel, { locatiekey: o_loc_key,
verdiepingkey: o_floor_key,
gebouwkey: o_bld_key,
ruimtekey: o_room_key,
werkplekkey: o_workpl_key,
startlevel: 2, // locatie
eindlevel: maxlevel,
terrein: true,
autoselect: true,
filtercode: "INCVR",
onLocChange: change,
cadSelect: true,
cadShowdiscfn: true,
escalateOnChUp: true // ook onLocChange als je gebouw wijzigt
});
}
MODAL_BLOCK_END();
SIMPLE_BLOCK_START();
CreateButtons([{ title: L("lcl_submit"), action: "ins_submit()", icon: "fa-fclt-save", importance: 1},
{ title: L("lcl_cancel"), action: "ins_cancel()", icon: "fa-fclt-cancel", importance: 3}]);
SIMPLE_BLOCK_END();
IFACE.FORM_END();
%>
</form>
<% MODAL_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>

View File

@@ -572,9 +572,9 @@ else
FCLTobjectselector("ins_keys",
"sgObject",
{ label: L("lcl_ins_object"),
ins_key: -1,
objectKey: -1,
urlAdd: [{urlParam: "disc_key", field: "disc"},
{urlParam: "srtgroup_key", field: "srtgroup"},
{urlParam: "srtgroep_key", field: "srtgroup"},
{urlParam: "srtdeel_key", field: "srtdeel"}],
onChange: "loadKenmerk",
required: true,

View File

@@ -45,6 +45,7 @@ var ins_srtname = oRs("ins_srtdeel_omschrijving").value;
var disc_key = oRs("ins_discipline_key").value; // mooie default
var srtgroup = -1;
var srtdeel = -1;
oRs.Close();
var submitting = getQParamInt("submit", 0) == 1;
@@ -109,6 +110,7 @@ if (submitting)
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
oRs.Close();
}
}
%>
@@ -124,14 +126,14 @@ else
<% FCLTHeader.Generate(); %>
</head>
<body class="modal" id="mod_ruimteafdeling">
<body class="modal" id="mod_insdeelkoppeling">
<% MODAL_START(); %>
<form name="u2" method="post" action="ins_deelkoppeling.asp?submit=1&ins_keys=<%=ins_van_key_arr.join(",")%>">
<%
if (ins_van_key_arr.length == 1)
MODAL_BLOCK_START("ins_ruimteafdeling", ins_srtname + " " + ins_name, { icon: "fa-circle" });
MODAL_BLOCK_START("ins_deelkoppeling", ins_srtname + " " + ins_name, { icon: "fa-circle" });
else
MODAL_BLOCK_START("ins_ruimteafdeling", L("lcl_alg_geselecteerde_ruimten") + ": " + ins_van_key_arr.length, { icon: "fa-circle" });
MODAL_BLOCK_START("ins_deelkoppeling", L("lcl_alg_geselecteerde_ruimten") + ": " + ins_van_key_arr.length, { icon: "fa-circle" });
%> <input type="hidden" id="nrRows" name="nrRows" value="0"> <%
@@ -180,7 +182,7 @@ else
{ label: L("lcl_obj_identification"),
onChange: "onChangeDeel",
urlAdd: [{urlParam: "disc_key", field: "disc"},
{urlParam: "srtgroup_key", field: "srtgroup"},
{urlParam: "srtgroep_key", field: "srtgroup"},
{urlParam: "srtdeel_key", field: "srtdeel"}],
autfunction: autfunction
});
@@ -201,29 +203,30 @@ else
</tr>
</thead>
<tbody>
<script type="text/javascript">
<% var sql = "SELECT DISTINCT id_naar.ins_deel_key"
+ " , " + lcl.xsqla('isd.ins_srtdeel_omschrijving', 'isd.ins_srtdeel_key')
+ " , ins_deel_omschrijving || ' ' || ins_deel_opmerking deel_omschrijving"
+ " , ins_deelkoppeling_omschrijving"
+ " FROM ins_deel id_naar"
+ " , ins_srtdeel isd"
+ " , ins_deelkoppeling idk"
+ " WHERE id_naar.ins_deel_key = idk.ins_deelkoppeling_naar_key"
+ " AND id_naar.ins_srtdeel_key = isd.ins_srtdeel_key"
+ " AND idk.ins_deelkoppeling_van_key in (" + ins_van_key_arr.join(",") + ")"
+ " ORDER BY 2";
oRs = Oracle.Execute(sql);
<script type="text/javascript">
<% var sql = "SELECT DISTINCT id_naar.ins_deel_key"
+ " , " + lcl.xsqla('isd.ins_srtdeel_omschrijving', 'isd.ins_srtdeel_key')
+ " , ins_deel_omschrijving || ' ' || ins_deel_opmerking deel_omschrijving"
+ " , ins_deelkoppeling_omschrijving"
+ " FROM ins_deel id_naar"
+ " , ins_srtdeel isd"
+ " , ins_deelkoppeling idk"
+ " WHERE id_naar.ins_deel_key = idk.ins_deelkoppeling_naar_key"
+ " AND id_naar.ins_srtdeel_key = isd.ins_srtdeel_key"
+ " AND idk.ins_deelkoppeling_van_key in (" + ins_van_key_arr.join(",") + ")"
+ " ORDER BY 2";
oRs = Oracle.Execute(sql);
while (!oRs.eof)
{ %>
CreateRow(<%=oRs("ins_deel_key").value%>,
'<%=safe.jsstring(oRs("ins_srtdeel_omschrijving").value)%>',
'<%=safe.jsstring(oRs("deel_omschrijving").value)%>',
'<%=safe.jsstring(oRs("ins_deelkoppeling_omschrijving").value)%>');
CreateRow(<%=oRs("ins_deel_key").value%>,
'<%=safe.jsstring(oRs("ins_srtdeel_omschrijving").value)%>',
'<%=safe.jsstring(oRs("deel_omschrijving").value)%>',
'<%=safe.jsstring(oRs("ins_deelkoppeling_omschrijving").value)%>');
<% oRs.MoveNext();
} %>
</script>
}
oRs.Close(); %>
</script>
</tbody>
</table>
<table>

View File

@@ -25,6 +25,7 @@
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/srtgroepselector.inc" -->
<!-- #include file="../Shared/srtdeelselector.inc" -->
<!-- #include file="../Shared/objectselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="./ins.inc" -->
@@ -278,6 +279,7 @@ var ins_deel_aantal = 1;
else
{ // Het gaat om een Nieuw hoofdobject, defaults bepalen
sql = "SELECT '' ins_deel_omschrijving"
+ " , NULL ins_deel_parent_key"
+ " , 'P' ins_alg_ruimte_type"
+ " , 1 ins_deel_aantal"
+ " , -1 ins_alg_ruimte_key"
@@ -346,7 +348,7 @@ var ins_deel_aantal = 1;
vervaldatum = (oRs("ins_deel_vervaldatum").Value != null && !copy)? new Date(oRs("ins_deel_vervaldatum").Value) : null;
externnr = oRs("ins_deel_externnr").Value;
if (!parent_key)
if (parent_key < 0)
parent_key = oRs("ins_deel_parent_key").Value;
srtdeel_binding = oRs("ins_srtdeel_binding").Value;
tekenbaar = oRs("ins_srtdeel_acadsymbol").Value != null;
@@ -675,6 +677,24 @@ var ins_deel_aantal = 1;
(explode_prop.required ? $("#count").addClass("required") : $("#count").removeClass("required"));
(explode_prop.datatype=="number" ? $("#count").removeClass("float").addClass("number") : $("#count").removeClass("number").addClass("float"));
}
function ins_edit_owner()
{
var url = "../ins/ins_change_plaatseigenaar.asp?ins_key=<%=ins_key%>";
FcltMgr.openModalDetail( url
, (L("lcl_owner_info") + " {0}").format("<%=safe.jsstring(parentdesc)%>")
, { callback: function(data) { if (data.refresh) FcltMgr.reload() } }
);
}
function ins_edit_parentdeel()
{
var url = "../ins/ins_change_parent.asp?ins_key=<%=ins_key%>";
FcltMgr.openModalDetail( url
, (L("lcl_ins_parentobject") + " {0}").format("<%=safe.jsstring(parentdesc)%>")
, { callback: function(data) { if (data.refresh) FcltMgr.reload() } }
);
}
</script>
</head>
@@ -899,14 +919,21 @@ var ins_deel_aantal = 1;
BLOCK_END();
}
if (ins_score_enabled)
{
}
var btns = [];
if (parent_key > 0 && this_ins.writeman && this_ins.canChangeAlg)
// Voor onderdelen het bovenliggende object tonen en wijzigbaar maken met een button.
btns.push({icon: "fa-fclt-edit", title: L("lcl_ins_parentobject"), action: "ins_edit_parentdeel()", importance: 2});
if (parent_key > 0 && ins_key > 0 && this_ins.writeman)
// De bindingen terrein, ruimte, werkplek, persoon of afdeling wijzigbaar maken met een button.
btns.push({icon: "fa-fclt-edit", title: L("lcl_owner_info"), action: "ins_edit_owner()", importance: 2});
BLOCK_START("insIns", L("lcl_owner_info"), {icon: "fa-map-marker"});
BLOCK_START("insIns", L("lcl_owner_info"), {icon: "fa-map-marker", buttons: btns});
// Voor onderdelen ook het hoofdobject weergeven
ROFIELDTR("fld", L("lcl_ins_parentobject"), parentdesc, {suppressEmpty: true});
if (parent_key > 0 && this_ins.writeman && this_ins.canChangeAlg)
ROFIELDTR("fld", L("lcl_ins_parentobject"), parentdesc, {});
else
ROFIELDTR("fld", L("lcl_ins_parentobject"), parentdesc, {suppressEmpty: true});
if ((srtdeel_binding & (BIND_AFDELI)) && (!isLendOut || (isLendOut && o_dep_key > 0)) && !invalid_binding)
{
FCLTafdelingselector("sDept",

View File

@@ -119,9 +119,6 @@ function ins_list (pautfunction, params)
var fgraph = params.fgraph;
var parent_key = params.parent_key;
var koppel_key = params.koppel_key;
if (koppel_key) { // Dan is deze straks ook nodig
var this_ins = ins.func_enabled_deel(koppel_key);
}
var embedded = params.embedded;
var tiny = params.tiny || parent_key || koppel_key;
var groepering = params.groepering || -1;
@@ -169,10 +166,18 @@ function ins_list (pautfunction, params)
L("lcl_ins_koppelobjects"),
{ callback: FcltMgr.reload });
}
function ins_deelkoppeling_diagram()
{
FcltMgr.openDetail("appl/ins/ins_deelkoppelingen.asp?urole=<%=urole%>&ins_key=<%=koppel_key%>", L("lcl_ins_koppelobjects"));
}
function ins_onderdelen()
{
FcltMgr.openModalDetail("../ins/ins_onderdelen.asp?urole=<%=urole%>&ins_key=<%=parent_key%>",
L("lcl_ins_koppelobjects"),
{ callback: FcltMgr.reload });
}
</script>
</head>
<body id="listbody">
@@ -1056,7 +1061,9 @@ function ins_list (pautfunction, params)
if (!deleted_room)
{
if (koppel_key) {
if (koppel_key)
{
var this_ins = ins.func_enabled_deel(koppel_key);
if (this_ins.canChange) {
buttons.push({ icon: "fa-fclt-edit", title: L("lcl_change"), action: "ins_deelkoppeling()" });
}
@@ -1082,6 +1089,14 @@ function ins_list (pautfunction, params)
buttons.push({ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" });
}
if (parent_key)
{
var this_ins = ins.func_enabled_deel(parent_key);
if (this_ins.canChange) {
buttons.push({ icon: "fa-fclt-edit", title: L("lcl_change"), action: "ins_onderdelen()" });
}
}
if (embedded && authparams.PRSwritelevel < 9 && fronto && (cpersoon_key > 0 || persoon_key > 0))
{
if (cpersoon_key > 0)

226
APPL/INS/ins_onderdelen.asp Normal file
View File

@@ -0,0 +1,226 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: INS/ins_onderdelen.asp
Description: Voegt een objectkoppeling toe bij een object
Parameters: ins_key
Context:
Note: De ins_keys zijn de parent_key's.
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/srtgroepselector.inc" -->
<!-- #include file="../Shared/srtdeelselector.inc" -->
<!-- #include file="../Shared/objectselector.inc" -->
<!-- #include file="./ins.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"],
js: ["./ins_onderdelen.js"]
});
var autfunction = "WEB_INSUSE";
var ins_parent_key = getQParamInt("ins_key");
// MGE: ins_keys bestaat volgens mij altijd uit 1 key.
// Autorisatie van het object pakken.
var this_ins = ins.func_enabled_deel(ins_parent_key);
user.auth_required_or_abort(this_ins.writeuse); // dat is toch wel het minste
authparams = this_ins.authparams(autfunction);
sql = "SELECT ins_deel_omschrijving"
+ " , ins_discipline_key"
+ " , " + lcl.xsqla('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_key')
+ " FROM ins_deel d"
+ " , ins_srtdeel sd "
+ " WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key"
+ " AND ins_deel_key = " + ins_parent_key;
var oRs = Oracle.Execute(sql);
var ins_name = oRs("ins_deel_omschrijving").value;
var ins_srtname = oRs("ins_srtdeel_omschrijving").value;
var disc_key = oRs("ins_discipline_key").value; // mooie default
var srtgroup = -1;
var srtdeel = -1;
oRs.Close();
var submitting = getQParamInt("submit", 0) == 1;
if (submitting)
{
protectRequest.validateToken();
FCLTHeader.Generate();
var nrRows = getFParamInt("nrRows", 0);
var deel_key = -1;
var deel_keys = [];
var warning = "";
for (var i = 0; i < nrRows; i++)
{
deel_key = getFParamInt("deel" + i, 0);
if (deel_key > 0)
{
deel_keys.push(deel_key);
}
}
// Verwijderde objecten verwijderen.
var sql = "UPDATE ins_deel"
+ " SET ins_deel_parent_key = NULL"
+ " WHERE ins_deel_parent_key = " + ins_parent_key
if (deel_keys.length) // 'nieuwe' laten staan, er komt straks wel een update
sql += " AND ins_deel_key NOT IN (" + deel_keys.join(",") + ")";
Oracle.Execute(sql);
// Nieuwe objecten toevoegen.
if (deel_keys.length)
{
var sql = "UPDATE ins_deel"
+ " SET ins_deel_parent_key = " + ins_parent_key
+ " WHERE ins_deel_key IN (" + deel_keys.join(",") + ")"
+ " AND (ins_deel_parent_key <> " + ins_parent_key + " OR ins_deel_parent_key IS NULL)"
+ " AND ins_deel_verwijder IS NULL";
Oracle.Execute(sql);
}
%>
<script type="text/javascript">
FcltMgr.closeDetail(window, { success: true, warning: "<%=safe.jsstring(warning)%>" });
</script>
<%
}
else
{ %>
<html>
<head>
<% FCLTHeader.Generate(); %>
</head>
<body class="modal" id="mod_insonderdelen">
<% MODAL_START(); %>
<form name="u2" method="post" action="ins_onderdelen.asp?submit=1&ins_key=<%=ins_parent_key%>">
<%
MODAL_BLOCK_START("ins_onderdelen", ins_srtname + " " + ins_name, { icon: "fa-circle" });
%> <input type="hidden" id="nrRows" name="nrRows" value="0">
<%
// <!-- Toevoegen -->
// Discipline
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_discipline"),
disc_key: disc_key,
module: "INS",
perslidKey: user_key,
autfunctionKey: authparams.autfunctionkey,
autRW: "W",
onChange: "onChangeDiscipline", // disgroepChanged
required: true
});
// Groep
FCLTsrtgroepselector("srtgroep",
"sgSrtgroep",
{ label: L("lcl_obj_group"),
srtgroep_key: srtgroup,
autfunction: autfunction,
onChange: "onChangeSrtgroep",
urlAdd: [{urlParam: "disc_key", field: "disc"}],
required: true
});
// Objectsoort
FCLTsrtdeelselector("srtdeel",
"sgSrtdeel",
{ label: L("lcl_obj_sort"),
srtdeel_key: srtdeel,
autfunction: autfunction,
onChange: "onChangeSrtdeel",
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
{urlParam: "disc_key", field: "disc"}],
extraParamField: "binding",
extracode: "B",
required: true
});
// Identificatie/Object
// LET OP: Onderdelen worden niet getoond in de objectselector (ins_v_aanwezigdeel sluit onderdelen uit).
// Dat is ook precies wat we willen. Onderdelen kunnen geen onderdeel zijn/worden van twee objecten.
FCLTobjectselector("deel_key",
"sgDeel",
{ label: L("lcl_obj_identification"),
onChange: "onChangeDeel",
urlAdd: [{urlParam: "disc_key", field: "disc"},
{urlParam: "srtgroep_key", field: "srtgroep"},
{urlParam: "srtdeel_key", field: "srtdeel"}],
autfunction: autfunction,
excludekey: ins_parent_key // Huidige parent uitsluiten.
});
MODAL_BLOCK_END();
SIMPLE_BLOCK_START();
var buttons = [ {title: L("lcl_add"), icon: "fa-plus", action: "ins_add()", id: "ins_add_object_connect", importance: 1 }];
CreateButtons(buttons, { showIcons: true });
SIMPLE_BLOCK_END();
MODAL_BLOCK_START("ins_rel", L("lcl_ins_koppelobjects"), { icon: "fa-link" }); %>
</table>
<table id="deel_desctable" class="rstable">
<thead>
<tr>
<th width="15"></th>
<th><%=L("lcl_obj_identification")%></th>
<th><%=L("lcl_discipline")%></th>
<th><%=L("lcl_obj_group")%></th>
<th><%=L("lcl_obj_sort")%></th>
</tr>
</thead>
<tbody>
<script type="text/javascript">
<% var sql = "SELECT DISTINCT d.ins_deel_key"
+ " , " + lcl.xsqla('d.ins_deel_omschrijving', 'd.ins_deel_key')
+ " , " + lcl.xsqla('isd.ins_srtdeel_omschrijving', 'isd.ins_srtdeel_key')
+ " , " + lcl.xsqla('isg.ins_srtgroep_omschrijving', 'isg.ins_srtgroep_key')
+ " , " + lcl.xsqla('id.ins_discipline_omschrijving', 'id.ins_discipline_key')
+ " FROM ins_deel d"
+ " , ins_srtdeel isd"
+ " , ins_srtgroep isg"
+ " , ins_tab_discipline id"
+ " WHERE d.ins_srtdeel_key = isd.ins_srtdeel_key"
+ " AND isd.ins_srtgroep_key = isg.ins_srtgroep_key"
+ " AND isg.ins_discipline_key = id.ins_discipline_key"
+ " AND d.ins_deel_parent_key = " + ins_parent_key
+ " ORDER BY 2";
oRs = Oracle.Execute(sql);
while (!oRs.eof)
{ %>
CreateRow(<%=oRs("ins_deel_key").value%>,
'<%=safe.jsstring(oRs("ins_deel_omschrijving").value)%>',
'<%=safe.jsstring(oRs("ins_srtdeel_omschrijving").value)%>',
'<%=safe.jsstring(oRs("ins_srtgroep_omschrijving").value)%>',
'<%=safe.jsstring(oRs("ins_discipline_omschrijving").value)%>');
<% oRs.MoveNext();
}
oRs.Close(); %>
</script>
</tbody>
</table>
<table>
<% MODAL_BLOCK_END();
var buttons1 = [{title: L("lcl_submit"), icon: "fa-fclt-save", action: "ins_submit()", importance: 1},
{title: L("lcl_cancel"), icon: "fa-fclt-cancel", action: "ins_cancel()", importance: 3 } ];
SIMPLE_BLOCK_START();
CreateButtons(buttons1);
SIMPLE_BLOCK_END();
IFACE.FORM_END();
%>
</form>
<% MODAL_END(); %>
</body>
</html>
<%
}
%><% ASPPAGE_END(); %>

158
APPL/INS/ins_onderdelen.js Normal file
View File

@@ -0,0 +1,158 @@
/*
$Revision$
$Id$
File: ins_onderdelen.js
*/
var rowIndex = -1;
function CreateRow(deel_key, deel_name, srtdeel_name, srtgroep_name, disc_name)
{
rowIndex++;
var table = $("#deel_desctable>tbody")[0];
// Insert data rows
tr = table.insertRow(-1);
tr.setAttribute("deel_key", deel_key);
tr.value = rowIndex;
// Create drop button
cell = tr.insertCell(-1);
cell.className = "result";
cell.align = "center";
cell.innerHTML = "<span OnClick='delRow(this)' style='cursor:pointer'>" + I("fa-trash") + "</span>";
// innerHTML opent een htmlparser die overbodige spaties en line breaks verwijderd in IE, daarom met innerText oplossen
// Input velden moeten wel met innerHTML of outerHTML anders wordt het text
// Deel omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = deel_name + "<input type='hidden' id='deel" + rowIndex + "' name='deel" + rowIndex + "' value='" + deel_key + "'>";
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// disc omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = disc_name;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// srtgroep_name omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = srtgroep_name;
cell.align = 'left';
cell.style.whiteSpace = "nowrap";
// srtdeel omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = srtdeel_name;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
}
function delRow(img)
{
// Verwijder het aangeklikte object uit de lijst (de regel)
var tr = $(img).closest("tr")[0];
if (tr.getAttribute("deel_key") != null)
{
document.getElementById("deel_desctable").deleteRow(tr.rowIndex);
}
}
function ins_submit()
{
document.forms.u2.submit();
}
function ins_cancel()
{
FcltMgr.closeDetail(window, { cancel: true });
}
function ins_add()
{
if ($("#deel_key").val() > 0)
{ // Check of het object al in de lijst staat
var exist = false;
$("tr[deel_key]").each(function(i)
{
if ($("#deel_key").val() == $(this).attr("deel_key"))
exist = true;
});
if (!exist)
{ // Object staat nog niet in de lijst.
CreateRow($("#deel_key").val(),
$("#deel_key_show").val(),
$("#srtdeel_show").val(),
$("#srtgroep_show").val(),
$("#disc_show").val());
FcltMgr.resized(window);
}
//else => Het object staat al in de lijst.
}
}
function onChangeDiscipline()
{
//sgSrtgroep.setValue($("#stdm").val(), $("#stdm_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 Groep leegmaken
sgSrtgroep.setValue(-1, "", true, false, null, true);
sgSrtgroep.CheckJustOne();
$("#srtdeelmulti").empty();
}
function callback_ins_info(data, textStatus, jqXHR)
{ // Zet de discipline indien niet ingevuld
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
if ($("#disc").val() == -1)
sgDisc.setValue(data.disc_key, data.disc_omschr, false /*doonChange*/, true /*checkExist*/);
if ($("#srtgroep").val() == -1)
sgSrtgroep.setValue(data.srtgroep_key, data.srtgroep_omschr, false /*doonChange*/, true /*checkExist*/);
if ($("#srtdeel").val() == -1)
sgSrtdeel.setValue(data.srtdeel_key, data.srtdeel_omschr, false /*doonChange*/, true /*checkExist*/);
}
function onChangeSrtgroep(srtgroep_key)
{ // Zet de discipline indien niet ingevuld.
if (srtgroep_key > 0 && $("#disc").val() <= 0 && typeof sgDisc != "undefined")
{
$.getJSON("../Shared/get_ins_info.asp",
{ srtgroep_key: srtgroep_key },
callback_ins_info);
}
sgSrtdeel.setValue(-1, "", true, false, null, true);
sgSrtdeel.CheckJustOne();
sgDeel.setValue(-1, "", true, false, null, true);
sgDeel.CheckJustOne();
}
function onChangeSrtdeel(srtdeel_key)
{
if (srtdeel_key > 0 && ($("#srtgroep").val() <= 0 && typeof sgSrtgroep != "undefined"))
{
$.getJSON("../Shared/get_ins_info.asp",
{ srtdeel_key: srtdeel_key },
callback_ins_info);
}
sgDeel.setValue(-1, "", true, false, null, true);
sgDeel.CheckJustOne();
}
function onChangeDeel(deel_key)
{
if (deel_key > 0 && ($("#srtdeel").val() <= 0 && typeof sgSrtdeel != "undefined"))
{
$.getJSON("../Shared/get_ins_info.asp",
{ deel_key: deel_key },
callback_ins_info);
}
}

View File

@@ -44,6 +44,12 @@ sql = "SELECT d.ins_deel_omschrijving" // identificatie
+ " , " + lcl.xsqla("g.ins_srtgroep_omschrijving", "g.ins_srtgroep_key")
+ " , " + lcl.xsqla("dis.ins_discipline_omschrijving", "dis.ins_discipline_key")
+ " , d.ins_deel_parent_key"
+ " , (SELECT dp.ins_alg_ruimte_type"
+ " FROM ins_deel dp"
+ " WHERE ins_deel_key = d.ins_deel_parent_key) ins_alg_ruimte_parent_type"
+ " , (SELECT dp.ins_alg_ruimte_key"
+ " FROM ins_deel dp"
+ " WHERE ins_deel_key = d.ins_deel_parent_key) ins_alg_ruimte_parent_key"
+ " , d.ins_alg_ruimte_type"
+ " , d.ins_alg_ruimte_key"
+ " , d.ins_alg_locatie_key"
@@ -103,6 +109,8 @@ var sort = oRs("ins_srtdeel_omschrijving").Value;
var group = oRs("ins_srtgroep_omschrijving").Value;
var disc = oRs("ins_discipline_omschrijving").Value;
var parent_key = oRs("ins_deel_parent_key").Value;
var parent_bind = oRs("ins_alg_ruimte_parent_type").Value;
var parent_bind_key = oRs("ins_alg_ruimte_parent_key").Value;
var bind = oRs("ins_alg_ruimte_type").Value;
var bind_key = oRs("ins_alg_ruimte_key").Value;
var verdieping_key = oRs("alg_verdieping_key").Value;
@@ -179,15 +187,6 @@ oRs.close();
// Niet voor de lol, maar als label voor het specifieke ding
var binding_text = 'unknown';
var moreinfo = "";
if (parent_key != null)
{
binding_text = L("lcl_ins_parentobject");
moreinfo = "appl/ins/ins_deel.asp?ins_key=" + parent_key + "&urole=" + urole;
bind = "I"; // pseudotype
}
else
__Log("bind = " + bind);
switch (bind)
{
case 'R':
@@ -218,6 +217,12 @@ switch (bind)
// Dat was het type / label, nu de instance
var binding_item = ins.getBindingItemString(bind, bind_key, parent_key);
var bind_onderdeel = bind;
if (parent_key != null)
{
bind = "I"; // pseudotype
}
// Mag ik een melding aanmaken bij dit object? Alleen meldingen die enigzins beperkt zijn tot ons/onze object(soort/groep)
// Dan moet er wel een srtdiscipline getoond kunnen worden.
var mySRTsql = mld.srtdisc_sql({ ins_key: ins_key });
@@ -544,7 +549,20 @@ oRs.Close();
params = { infoPointer: { Url: "/appl/ins/ins_srtdeel.asp?srtdeel_key=" + srtdeel_key } }
}
ROFIELDTR("fld", L("lcl_obj_sort"), sort + " (" + srtcode + ")", params);
ROFIELDTR("fld", binding_text, binding_item, {infoPointer:{Url : moreinfo, Title: ""}});
if (parent_key != null)
{
var binding_oms = ins.getBindingItemString(bind, bind_key, parent_key);
var url = "appl/ins/ins_deel.asp?ins_key=" + parent_key + "&urole=" + urole;
ROFIELDTR("fld", L("lcl_ins_parentobject"), binding_oms, {infoPointer:{Url : url, Title: ""}});
if (parent_bind_key != bind_key || parent_bind != bind_onderdeel)
{
binding_text += " (" + L("lcl_updated").toLowerCase() + ")";
ROFIELDTR("fld", binding_text, binding_item, {infoPointer:{Url : moreinfo, Title: ""}});
}
}
else
ROFIELDTR("fld", binding_text, binding_item, {infoPointer:{Url : moreinfo, Title: ""}});
if ((S("ins_explode_objects") & 1) == 0)
ROFIELDTR("fld", L("lcl_amount"), aantal + (srtdeel_eenheid ? " " + srtdeel_eenheid : ""));
ROFIELDTR("fld", L("lcl_ins_opmerking"), opmerk, {suppressEmpty: true});

View File

@@ -25,16 +25,47 @@ var srtdeel_key = getQParamInt("srtdeel_key", -1);
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
function callback_ins_info(data, textStatus, jqXHR)
{ // Zet de discipline indien niet ingevuld
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
if ($("#disc_key").val() == -1)
sgDisc.setValue(data.disc_key, data.disc_omschr, false /*doonChange*/, true /*checkExist*/);
if ($("#srtgroep_key").val() == -1)
sgSrtgroep.setValue(data.srtgroep_key, data.srtgroep_omschr, false /*doonChange*/, true /*checkExist*/);
if ($("#srtdeel_key").val() == -1)
sgSrtdeel.setValue(data.srtdeel_key, data.srtdeel_omschr, false /*doonChange*/, true /*checkExist*/);
}
function onChangeDiscipline()
{
sgSrtgroep.setValue(-1, "", true, false, null, true);
sgSrtgroep.CheckJustOne();
}
function onChangeSrtgroep()
function onChangeSrtgroep(srtgroep_key)
{
if (srtgroep_key > 0 && $("#disc_key").val() <= 0 && typeof sgDisc != "undefined")
{
$.getJSON("../Shared/get_ins_info.asp",
{ srtgroep_key: srtgroep_key },
callback_ins_info);
}
sgSrtdeel.setValue(-1, "", true, false, null, true);
sgSrtdeel.CheckJustOne();
}
function onChangeSrtdeel(srtdeel_key)
{
if (srtdeel_key > 0 && ($("#srtgroep_key").val() <= 0 && typeof sgSrtgroep != "undefined"))
{
$.getJSON("../Shared/get_ins_info.asp",
{ srtdeel_key: srtdeel_key },
callback_ins_info);
}
sgDeel.setValue(-1, "", true, false, null, true);
sgDeel.CheckJustOne();
}
function doSubmit()
{
document.forms.u2.submit();
@@ -80,6 +111,7 @@ var srtdeel_key = getQParamInt("srtdeel_key", -1);
srtdeel_key: srtdeel_key,
module: "INS",
autfunction: "WEB_INSMGT",
onChange: "onChangeSrtdeel",
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep_key"},
{urlParam: "disc_key", field: "disc_key"}],
multitoggle: true,

View File

@@ -32,8 +32,9 @@ var bAll = getQParamInt("SuggestAll", 0) == 1;
var module = getQParam("module", "");
var filtcode = getQParam("filtcode", "");
var disc_key = getQParamInt("disc_key", -1);
var srtgroup_key = getQParamInt("srtgroup_key", -1);
var srtgroep_key = getQParamInt("srtgroep_key", -1);
var srtdeel_key = getQParamInt("srtdeel_key", -1);
var excludekey = getQParamInt("excludekey", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var prs_key = getQParamInt("prs_key", -1);
@@ -48,8 +49,9 @@ chars = chars.replace(/\*/g,"%");
var filt_params = { filtcode: filtcode,
disc_key: disc_key,
srtgroup_key: srtgroup_key,
srtdeel_key: srtdeel_key
srtgroep_key: srtgroep_key,
srtdeel_key: srtdeel_key,
excludekey: excludekey
};
var filtClause = getFiltClauseObject(filt_params);

View File

@@ -36,15 +36,18 @@ function getFiltClauseObject(params)
{
lfiltClause += " AND d.ins_srtdeel_key = " + params.srtdeel_key;
}
else if (params.srtgroup_key && params.srtgroup_key != -1) // parent-parent gegeven
else if (params.srtgroep_key && params.srtgroep_key != -1) // parent-parent gegeven
{
lfiltClause += " AND s.ins_srtgroep_key = " + params.srtgroup_key;
lfiltClause += " AND s.ins_srtgroep_key = " + params.srtgroep_key;
}
else if (params.disc_key && params.disc_key != -1) // parent gegeven
{
lfiltClause += " AND d.ins_discipline_key = " + params.disc_key;
}
if (params.excludekey && params.excludekey != -1)
lfiltClause += " AND d.ins_deel_key NOT IN (" + params.excludekey + ")";;
return lfiltClause;
}

View File

@@ -28,6 +28,7 @@
en leeg weergegeven moet worden (true|false(default)).
readonly: geeft aan of het object veld readonly weergegeven moet worden (true|false(default)).
filtercode: filtercode van extra filter clausule voor initi<74>le waarde
excludekey Object uitsluiten.
moreinfo: geeft een extra informatie button achter het suggest veld. Klikken hierop geeft informatie
over de geselecteerde waarde
*/ %>
@@ -134,7 +135,8 @@ function FCLTobjectselector(fieldName, objectName, params)
+ (params.filtercode? "&filtcode=" + params.filtercode : "")
+ (params.extracode? "&extracode=" + params.extracode : "")
+ (params.autfunction? "&autfunction=" + params.autfunction : "")
+ (params.extraParamValue? "&extraParamValue=" + params.extraParamValue : "");
+ (params.extraParamValue? "&extraParamValue=" + params.extraParamValue : "")
+ (params.excludekey? "&excludekey=" + params.excludekey : "");
if (params.label)
{ %><tr <%=params.trclass?"class='"+params.trclass+"'":""%>>
<td class="label">