UWVA#52663: Uitgeleende pas kan niet worden bewerkt.

svn path=/Website/branches/v2017.3/; revision=37434
This commit is contained in:
Maykel Geerdink
2018-03-21 10:18:27 +00:00
parent 7640a64c97
commit 5250c0a243
6 changed files with 217 additions and 159 deletions

View File

@@ -530,6 +530,7 @@ ins = {checkAutLevel:
var beheerder_key = ioRs("prs_perslid_key_beh").value;
var objectbeheerder = S("ins_can_edit_own_objects") && (beheerder_key == user_key);
var fronto = params && params.urole? params.urole == "fo" : false;
var isSleCil = (srtgroep_key == S("sle_ins_srt_groep_key") || srtgroep_key == S("cil_ins_srt_groep_key"));
if (isSleCil)
{
@@ -552,7 +553,7 @@ ins = {checkAutLevel:
iresult.canDelete = writeslebof; // Verwijderen
iresult.canChange = writeslebof; // Wijzigen
iresult.canChangeOwn = objectbeheerder;
iresult.canChangeAlg = iresult.canChange; // Wijzigen algemene gegevens
iresult.canChangeAlg = iresult.canChange && !fronto; // Wijzigen algemene gegevens
iresult.canCopy = writeslebof; // Kopi<70>ren
iresult.isSleCil = true;
}
@@ -560,7 +561,8 @@ ins = {checkAutLevel:
{
var iresult = ins.func_enabled_scope(ioRs("ins_discipline_key").Value,
ioRs("ins_alg_ruimte_type").Value,
ioRs("ins_alg_ruimte_key").Value);
ioRs("ins_alg_ruimte_key").Value,
params);
if (!iresult)
return { canReadAny: false }; // Aanroeper moet hier (of andere canFunctie) op controleren
// Vanuit PDA wordt dan eventueel met melding (of reservering) op dit object
@@ -892,9 +894,10 @@ ins = {checkAutLevel:
func_enabled_scope: // Wat mag ik zoal op deze specifieke scope?
// levert null als zelfs nog geen leesrechten
function (ins_discipline_key, ins_alg_ruimte_type, ins_alg_ruimte_key)
function (ins_discipline_key, ins_alg_ruimte_type, ins_alg_ruimte_key, params)
{
var iresult = {canDelete: false, canChange: false}; // Verwijderen en Wijzigen
var fronto = params && params.urole? params.urole == "fo" : false;
if (ins_alg_ruimte_type == "A")
{
var afd_key = ins_alg_ruimte_key;
@@ -915,7 +918,7 @@ ins = {checkAutLevel:
iresult.writefof = canWriteINSFOF;
iresult.canDelete = canWriteINSMAN; // Verwijderen
iresult.canChange = canWriteINSMAN || canWriteINSUSE; // Wijzigen
iresult.canChangeAlg = canWriteINSMAN; // Wijzigen algemene gegevens
iresult.canChangeAlg = canWriteINSMAN && !fronto; // Wijzigen algemene gegevens
iresult.canCopy = canWriteINSMAN; // Kopi<70>ren
}
else if (ins_alg_ruimte_type == "P" || ins_alg_ruimte_type == "C")
@@ -933,7 +936,7 @@ ins = {checkAutLevel:
iresult.writefof = iresult.canWrite("WEB_INSFOF");
iresult.canDelete = iresult.canWrite("WEB_INSMAN"); // Verwijderen
iresult.canChange = iresult.canWrite("WEB_INSMAN") || iresult.canWrite("WEB_INSUSE"); // Wijzigen
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN"); // Wijzigen algemene gegevens
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN") && !fronto; // Wijzigen algemene gegevens
iresult.canCopy = iresult.canWrite("WEB_INSMAN"); // Kopi<70>ren
}
else
@@ -976,7 +979,7 @@ ins = {checkAutLevel:
iresult.writefof = iresult.canWrite("WEB_INSFOF");
iresult.canDelete = iresult.canWrite("WEB_INSMAN"); // Verwijderen.
iresult.canChange = iresult.canWrite("WEB_INSMAN") || iresult.canWrite("WEB_INSUSE"); // Wijzigen.
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN"); // Wijzigen algemene gegevens.
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN") && !fronto; // Wijzigen algemene gegevens.
iresult.canCopy = iresult.canWrite("WEB_INSMAN"); // Kopi<70>ren.
}
// Let op: WEB_INSMSU is niet discipline gebonden en zit dus niet in iresult

View File

@@ -26,7 +26,7 @@ var copy = (getQParamInt("ins_copy", 0) == 1);
var disc = getQParamInt("disc", -1);
// OVERIGE PARAMETERS
var transitParam = buildTransitParam(["parent_key", "disc", "Group", "sort", "dept", "prs_key", "ins_copy",
var transitParam = buildTransitParam(["parent_key", "disc", "Group", "sort", "dept", "prs_key", "cntprs_key", "ins_copy",
"locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey", "werkplekkey"]);
var ins_name = "";
@@ -177,17 +177,17 @@ if (ins_key > 0)
var authparamsMLDBOF = user.checkAutorisation("WEB_MLDBOF", true);
var authparamsMLDFOF = user.checkAutorisation("WEB_MLDFOF", true);
var authparamsMLDBAC = user.checkAutorisation("WEB_MLDBAC", true);
if (!ins_deleted && ins_key > 0 && gevuldLogboek && !copy && (authparamsMLDBOF ||authparamsMLDFOF || authparamsMLDBAC))
{
var murole = "bo";
if (authparamsMLDBOF)
murole = "bo";
else if (authparamsMLDFOF)
murole = "fo";
murole = "fo";
else if (authparamsMLDBAC)
murole = "mi";
murole = "mi";
page = "../mld/mld_search_list.asp?ins_key=" + ins_key + "&tiny=1&urole=" + murole;
IFRAMER("insMldframe", page, { initHide: true } );
}

View File

@@ -23,6 +23,7 @@
<!-- #include file="../Shared/afdelingselector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/contactpersoonselector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/srtgroepselector.inc" -->
<!-- #include file="../Shared/srtdeelselector.inc" -->
@@ -58,7 +59,7 @@ if (copy)
if (ins_key > 0)
{
var this_ins = ins.func_enabled_deel(ins_key);
var this_ins = ins.func_enabled_deel(ins_key, {urole: urole});
user.auth_required_or_abort(this_ins.canChange || this_ins.canChangeOwn); // dat is toch wel het minste
authparams = this_ins.authparams(autfunction);
@@ -77,6 +78,7 @@ else // nieuw object
var o_workpl_key = getQParamInt("werkplekkey", -1);
var o_dep_key = getQParamInt("dept", -1);
var o_perslid_key = getQParamInt("prs_key", -1);
var o_cntpers_key = getQParamInt("cntprs_key", -1);
var actief = true;
if ((srtdeel_key > 0 && ins.isSleCil(srtdeel_key, "S")) ||
@@ -137,6 +139,12 @@ var ins_deel_aantal = 1;
bind = "P";
}
if (o_cntpers_key > 0)
{
bind_key = o_cntpers_key;
bind = "C";
}
if (o_workpl_key > 0)
{
bind_key = o_workpl_key;
@@ -403,13 +411,14 @@ var ins_deel_aantal = 1;
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;
o_dep_key = -1;
o_perslid_key= -1;
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;
o_dep_key = -1;
o_perslid_key = -1;
o_cntpers_key = -1;
// gracefull terugvallen nav. DHLN#18851
// In theorie kan dit ook een probleem zijn voor andere bindings
@@ -426,7 +435,7 @@ var ins_deel_aantal = 1;
if (bind == 'A')
{
o_perslid_key = -1;
o_dep_key = bind_key;
o_dep_key = bind_key;
}
if (bind == 'P')
{
@@ -439,6 +448,12 @@ var ins_deel_aantal = 1;
oRs = Oracle.Execute(sql);
o_dep_key = oRs("prs_afdeling_key").Value;
}
if (bind == 'C')
{
o_cntpers_key = bind_key;
o_perslid_key = -1;
o_dep_key = -1;
}
o_loc_key = o_bld_key = o_floor_key = o_room_key = o_workpl_key = -1;
}
}
@@ -519,11 +534,16 @@ var ins_deel_aantal = 1;
// Als o_perslid_key een waarde heeft dan krijgt o_dep_key ook een waarde. De afdeling van een persoon wordt altijd erbij gezocht.
// Daarom alleen invalid binding via o_dep_key als o_perslid_key geen waarde heeft.
var invalid_binding = ((!(srtdeel_binding & (BIND_AFDELI)) && o_dep_key > 0 && o_perslid_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))
var invalid_binding = (((!(srtdeel_binding & (BIND_AFDELI)) && o_dep_key > 0 && o_perslid_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)) && !isLendOut) ||
(((!(srtdeel_binding & (BIND_AFDELI)) && org_bind_key > 0 && org_bind == "A") ||
(!(srtdeel_binding & (BIND_PERSOO)) && org_bind_key > 0 && org_bind == "P") ||
(!(srtdeel_binding & (BIND_TERREI)) && org_bind_key > 0 && org_bind == "T" > 0 && !(srtdeel_binding & (BIND_RUIMTE)) && !(srtdeel_binding & (BIND_WERKPL))) ||
(!(srtdeel_binding & (BIND_RUIMTE)) && org_bind_key > 0 && org_bind == "R" && !(srtdeel_binding & (BIND_WERKPL))) ||
(!(srtdeel_binding & (BIND_WERKPL)) && org_bind_key > 0 && org_bind == "W")) && isLendOut);
IFRAMER_HEADER(headertitle, buttons);
%>
@@ -708,15 +728,15 @@ var ins_deel_aantal = 1;
(ins_key > 0 || copy) && isNext < 0? desc : new_desc,
{ maxlength: 60,
required: true,
readonly: !this_ins.canChangeAlg || !(autonum & 2) || urole == "fo"
readonly: !this_ins.canChangeAlg || !(autonum & 2)
});
if (S("ins_explode_objects") == 0)
RWFIELDTR("count", "fldshort", L("lcl_amount") + (srtdeel_eenheid ? "&nbsp;(" + srtdeel_eenheid+")" : ""), ins_deel_aantal, {datatype: "float", readonly: !this_ins.canChangeAlg || urole == "fo", required: true});
RWFIELDTR("count", "fldshort", L("lcl_amount") + (srtdeel_eenheid ? "&nbsp;(" + srtdeel_eenheid+")" : ""), ins_deel_aantal, {datatype: "float", readonly: !this_ins.canChangeAlg, required: true});
else if(ins_key < 0 || isNext > 0 )
{
RWFIELDTR("count", "fldshort", L("lcl_count"), 1, {datatype: "number", readonly: !this_ins.canChangeAlg || urole == "fo"});
RWFIELDTR("count", "fldshort", L("lcl_count"), 1, {datatype: "number", readonly: !this_ins.canChangeAlg});
}
RWFIELDTR("opmerk", "fld", L("lcl_ins_opmerking"), opmerk, {maxlength: 320, readonly: !this_ins.canChangeAlg || urole == "fo", suppressEmpty: !this_ins.canChangeAlg || urole == "fo"}); %>
RWFIELDTR("opmerk", "fld", L("lcl_ins_opmerking"), opmerk, {maxlength: 320, readonly: !this_ins.canChangeAlg, suppressEmpty: !this_ins.canChangeAlg}); %>
</table>
</td>
<td align="center">
@@ -749,7 +769,7 @@ var ins_deel_aantal = 1;
</tr>
<% BLOCK_END();
if (urole != "fo" && parent_key < 0)
if (parent_key < 0)
{
BLOCK_START("insGeo", L("lcl_ins_meta_data"));
FCLTcalendar("aanmaakdatum",
@@ -757,6 +777,7 @@ var ins_deel_aantal = 1;
label: L("lcl_last_action"),
required: true,
readonly: !this_ins.canChangeAlg,
suppressEmpty: true,
volgnr: 1
});
FCLTcalendar("vervaldatum",
@@ -764,149 +785,172 @@ var ins_deel_aantal = 1;
initEmpty: vervaldatum==null,
label: L("lcl_ins_vervaldatum"),
readonly: !this_ins.canChangeAlg,
suppressEmpty: true,
volgnr: 2
});
RWCHECKBOXTR("ins_actief", "fldcheck", L("lcl_ins_active"), actief, {readonly: !this_ins.canChangeAlg});
FCLTpersoonselector("ins_manager", // beheerder
"sgins_manager",
{ perslidKey: perslid_key_beh,
autlevel: authparams && authparams.PRSwritelevel,
label: L("lcl_ins_manager"),
filtercode: "INSB", // TODO: een filter toevoegen?
required: false,
readonly: !this_ins.writeman,
moreinfo: false /* PF: omdat de showmode die heeft, en het label erg lang is*/
});
RWCHECKBOXTR("ins_actief", "fldcheck", L("lcl_ins_active"), actief, {readonly: !this_ins.canChangeAlg});
FCLTpersoonselector("ins_manager", // beheerder
"sgins_manager",
{ perslidKey: perslid_key_beh,
autlevel: authparams && authparams.PRSwritelevel,
label: L("lcl_ins_manager"),
filtercode: "INSB", // TODO: een filter toevoegen?
required: false,
readonly: !this_ins.writeman || urole == "fo",
suppressEmpty: true,
moreinfo: false /* PF: omdat de showmode die heeft, en het label erg lang is*/
});
if (S("mjb_enabled") == 1) {
RWFIELDTR("deel_mjb_score1", "fldshort", L("lcl_ins_deel_mjb_score1"), mjb_score1, {datatype: "float"});
RWFIELDTR("deel_mjb_score2", "fldshort", L("lcl_ins_deel_mjb_score2"), mjb_score2, {datatype: "float"});
}
if (isLendOut)
ROFIELDTR("fld", "", L("lcl_obj_is_lent_out"));
if (S("mjb_enabled") == 1) {
RWFIELDTR("deel_mjb_score1", "fldshort", L("lcl_ins_deel_mjb_score1"), mjb_score1, {datatype: "float", suppressEmpty: true, readonly: !this_ins.canChangeAlg});
RWFIELDTR("deel_mjb_score2", "fldshort", L("lcl_ins_deel_mjb_score2"), mjb_score2, {datatype: "float", suppressEmpty: true, readonly: !this_ins.canChangeAlg});
}
if (!(bind == 'A' || bind == 'P'))
{
RWFIELDTR("xcoord", "fldshort", L("lcl_obj_geoxcoord"), xcoord, {maxlength: 12, datatype: "float"});
RWFIELDTR("ycoord", "fldshort", L("lcl_obj_geoycoord"), ycoord, {maxlength: 12, datatype: "float"});
RWFIELDTR("xcoord", "fldshort", L("lcl_obj_geoxcoord"), xcoord, {maxlength: 12, datatype: "float", suppressEmpty: true, readonly: !this_ins.canChangeAlg});
RWFIELDTR("ycoord", "fldshort", L("lcl_obj_geoycoord"), ycoord, {maxlength: 12, datatype: "float", suppressEmpty: true, readonly: !this_ins.canChangeAlg});
}
if (tekenbaar)
{
// als het object technisch getekend zou kunnen zijn, geven we hier de status aan.
// Een vriendelijke optie zou zijn om in geval van niet-geplaatst-zijn hier de optie toe te voegen
// omdat direct alsnog te doen; wellicht zelfs ook voor VERplaatsen.
%> <tr><td></td><td><%=getekend?L("lcl_obj_isgetekend"):L("lcl_obj_nietgetekend")%></td></tr>
<% }
BLOCK_END();
<% }
BLOCK_END();
}
if (urole != "fo")
BLOCK_START("insIns", L("lcl_owner_info"));
// Voor onderdelen ook het hoofdobject weergeven
ROFIELDTR("fldd", L("lcl_ins_parentobject"), parentdesc, {suppressEmpty: true});
if ((srtdeel_binding & (BIND_AFDELI)) && (!isLendOut || (isLendOut && o_dep_key > 0)) && !invalid_binding)
{
BLOCK_START("insIns", L("lcl_owner_info"));
// Voor onderdelen ook het hoofdobject weergeven
ROFIELDTR("fldd", L("lcl_ins_parentobject"), parentdesc, {suppressEmpty: true});
if ((srtdeel_binding & (BIND_AFDELI)) && (!isLendOut || (isLendOut && o_dep_key > 0)) && !invalid_binding)
{
FCLTafdelingselector("sDept",
"sDept",
{ departmentKey: o_dep_key,
label: L("lcl_prs_organisatie"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangeDept",
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
});
}
FCLTafdelingselector("sDept",
"sDept",
{ departmentKey: o_dep_key,
label: L("lcl_prs_organisatie"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangeDept",
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
});
}
if ((srtdeel_binding & (BIND_PERSOO)) && (!isLendOut || (isLendOut && o_perslid_key > 0)) && !invalid_binding)
{
FCLTpersoonselector("sPerson", // requestor
"sgPerson",
{ perslidKey: o_perslid_key,
label: L("lcl_name"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangePerson",
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
});
}
if (((srtdeel_binding & (BIND_PERSOO)) && !isLendOut) ||
((((srtdeel_binding & (BIND_PERSOO)) && (org_bind == "R")) ||
((srtdeel_binding & (BIND_AFDELI)) && (org_bind == "A")) ||
((srtdeel_binding & (BIND_TERREI)) && (org_bind == "T")) ||
((srtdeel_binding & (BIND_RUIMTE)) && (org_bind == "R")) ||
((srtdeel_binding & (BIND_WERKPL)) && (org_bind == "W"))) && (isLendOut && o_perslid_key > 0)) &&
!invalid_binding)
{
FCLTpersoonselector("sPerson", // requestor
"sgPerson",
{ perslidKey: o_perslid_key,
label: L("lcl_name"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangePerson",
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
});
}
if ((!isLendOut || (isLendOut && (bind == "R" || bind == "T"))) && !invalid_binding)
{
var maxlevel = -1;
var change = "";
// Object is uitgeleend aan een contactpersoon. Voor het uitlenen behoorde het object tot een persoon, afdeling of plek.
if ((((srtdeel_binding & (BIND_PERSOO)) && (org_bind == "R")) ||
((srtdeel_binding & (BIND_AFDELI)) && (org_bind == "A")) ||
((srtdeel_binding & (BIND_TERREI)) && (org_bind == "T")) ||
((srtdeel_binding & (BIND_RUIMTE)) && (org_bind == "R")) ||
((srtdeel_binding & (BIND_WERKPL)) && (org_bind == "W"))) &&
(isLendOut && o_cntpers_key > 0) &&
!invalid_binding)
{
FCLTcontactpersoonselector("sCntPers",
"sgCntPers",
{ contactpersoonKey: o_cntpers_key,
label: L("lcl_contact_pers"),
readonly: true
});
}
if ((!isLendOut || (isLendOut && (bind == "R" || bind == "T"))) && !invalid_binding)
{
var maxlevel = -1;
var change = "";
%>
<script>
function change1()
{
setBind('T');
}
<script>
function change1()
{
setBind('T');
}
function change2(p_key)
{
setBind('R');
}
function change2(p_key)
{
setBind('R');
}
function change3(p_key)
{
setBind('W');
}
</script>
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,
filtercode: "INCVR",
onLocChange: change,
cadSelect: true,
cadShowdiscfn: "cadShowdiscfn",
escalateOnChUp: true, // ook onLocChange als je gebouw wijzigt
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
});
if (srtdeel_binding & (BIND_TERREI | BIND_RUIMTE | BIND_WERKPL))
{
change = "change1()";
maxlevel = 3;
}
BLOCK_END();
}
if (urole != "fo")
{
BLOCK_START("insRunTime", L("lcl_ins_additional_details"));
sql = "SELECT 'U', " + safe.quoted_sql(L("lcl_mld_hours")) + " FROM DUAL"
+ " UNION SELECT 'D', " + safe.quoted_sql(L("lcl_mld_days")) + " FROM DUAL"
+ " ORDER BY 2";
var selectparams = { fieldName: "dayshours",
sql: sql,
params: { id: "dayshours",
initKey: uitvoertijd_eenheid,
readonly: !this_ins.canChangeAlg && uitvoertijd < 0,
disable: !uitvoertijd
}
}
RWFIELDTR("uitvoertijd", "fldins_uitvtijd", L("lcl_ins_uitvoertijd"), uitvoertijd? Math.round(uitvoertijd * 100000) / 100000 : ""
, {maxlength: 8, datatype: "float", html: "onChange='onChangeUitvoertijd();'", selector: selectparams
, readonly: !this_ins.canChangeAlg});
BLOCK_END();
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,
filtercode: "INCVR",
onLocChange: change,
cadSelect: true,
cadShowdiscfn: "cadShowdiscfn",
escalateOnChUp: true, // ook onLocChange als je gebouw wijzigt
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
});
}
BLOCK_END();
BLOCK_START("insRunTime", L("lcl_ins_additional_details"));
sql = "SELECT 'U', " + safe.quoted_sql(L("lcl_mld_hours")) + " FROM DUAL"
+ " UNION SELECT 'D', " + safe.quoted_sql(L("lcl_mld_days")) + " FROM DUAL"
+ " ORDER BY 2";
var selectparams = { fieldName: "dayshours",
sql: sql,
params: { id: "dayshours",
initKey: uitvoertijd_eenheid,
readonly: (!this_ins.canChangeAlg),
disable: !uitvoertijd
}
}
RWFIELDTR("uitvoertijd", "fldins_uitvtijd", L("lcl_ins_uitvoertijd"), uitvoertijd? Math.round(uitvoertijd * 100000) / 100000 : ""
, {maxlength: 8, datatype: "float", html: "onChange='onChangeUitvoertijd();'", selector: selectparams
, readonly: !this_ins.canChangeAlg, suppressEmpty: true});
BLOCK_END();
if (urole != "fo" || uitleen_flex_present) // FO ziet ze alleen als er uitleen flex zijn?
{

View File

@@ -35,7 +35,7 @@ var ingesloten = [];
// ook echt geinspecteerd kunnen of mogen worden.
for (var i = 0; i < ins_key_arr.length; i++)
{
var this_ins = ins.func_enabled_deel(ins_key_arr[i]);
var this_ins = ins.func_enabled_deel(ins_key_arr[i], {urole: urole});
if (this_ins.canChange)
{
ingesloten.push(ins_key_arr[i]);

View File

@@ -30,6 +30,7 @@ var free = getFParamInt("free", 0);
var loc = getFParamInt("locatiekey", -1);
var dept_key = getFParamInt ("sDept", -1 );
var prs_key = getFParamInt ("sPerson", -1 );
var cntprs_key = getFParamInt ("sCntPers", -1 );
var bld_key = getFParamInt ("gebouwkey", -1 );
var floor_key = getFParamInt ("verdiepingkey", -1);
var room_key = getFParamInt ("ruimtekey", -1 );
@@ -58,6 +59,12 @@ if(prs_key > 0)
bind = "P";
}
if(cntprs_key > 0)
{
bind_key = cntprs_key;
bind = "C";
}
if(bld_key > 0)
{
bind_key = bld_key;

View File

@@ -50,6 +50,7 @@ sql = "SELECT d.ins_deel_omschrijving" // identificatie
+ " , d.ins_srtdeel_key"
+ " , g.ins_srtgroep_key"
+ " , dis.ins_discipline_key"
+ " , s.ins_srtdeel_acadsymbol"
+ " , d.ins_deel_x"
+ " , ins_deel_y"
+ " , ins_deel_dwgx" // future: +", ins_deel_z"
@@ -95,6 +96,7 @@ var actief = oRs('ins_deel_actief').Value == 1;
var srtdeel_key = oRs("ins_srtdeel_key").Value;
var srtgroep_key = oRs("ins_srtgroep_key").Value;
var disc_key = oRs("ins_discipline_key").Value;
var tekenbaar = oRs("ins_srtdeel_acadsymbol").Value != null;
var getekend = oRs('ins_deel_dwgx').Value != null;
var xcoord = oRs('ins_deel_x').Value;
var ycoord = oRs('ins_deel_y').Value;
@@ -421,17 +423,19 @@ oRs.Close();
ROFIELDTR("fld", L("lcl_ins_deel_mjb_score2"), ins_deel_mjb_score2, {suppressEmpty: true});
//}
if (getekend)
{
var params = { infoPointer: { Url: "../cad/showroom.asp?rKey=" + bind_key + "&ins_key=" + ins_key,
Title: L("lcl_fg_gotofgheader") + " " + desc,
Modal: true
}
}
ROFIELDTR("fld", "", L("lcl_obj_isgetekend"), params);
}
else
ROFIELDTR("fld", "", L("lcl_obj_nietgetekend"));
if (tekenbaar)
if (getekend)
{
var params = { infoPointer: { Url: "../cad/showroom.asp?rKey=" + bind_key + "&ins_key=" + ins_key,
Title: L("lcl_fg_gotofgheader") + " " + desc,
Modal: true
}
}
ROFIELDTR("fld", "", L("lcl_obj_isgetekend"), params);
}
else
ROFIELDTR("fld", "", L("lcl_obj_nietgetekend"));
if (!(bind == 'A'||bind == 'P') && xcoord && ycoord)
{
// alleen plaatsgebonden objecten met ingevulde x/y krijgen een geo-blokje