VNOG#85909: Verbeteren werking van onderdelen in objectbeheer.

svn path=/Website/branches/v2025.1/; revision=68231
This commit is contained in:
Maykel Geerdink
2025-02-27 13:37:07 +00:00
parent f634e046bb
commit 7504ea6d6f
7 changed files with 34 additions and 9 deletions

View File

@@ -2281,6 +2281,7 @@ ins = {checkAutLevel:
+ " , dl.ins_alg_ruimte_type"
+ " , dl.res_rsv_deel_key" // gereserveerde object
+ " , dl.ins_alg_ruimte_type_org"
+ " , dl.ins_deel_parent_key"
+ " , " + sqlLentOutFrom + " uitgegeven_vanuit"
+ " , rs.res_rsv_deel_van"
+ " , rs.res_rsv_deel_tot"
@@ -2288,8 +2289,7 @@ ins = {checkAutLevel:
+ " , dl.ins_deel_aanmaak"
+ (insSensOnly
? ", " + sensorthresholdstate_sql
: ""
)
: "")
+ (!mobile
? " , s.ins_srtdeel_code"
+ " , dl.ins_deel_opmerking"
@@ -2579,6 +2579,7 @@ ins = {checkAutLevel:
+ " , dl.ins_alg_ruimte_type"
+ " , dl.res_rsv_deel_key" // gereserveerde object
+ " , dl.ins_alg_ruimte_type_org"
+ " , dl.ins_deel_parent_key"
+ " , " + sqlLentOutFrom + " uitgegeven_vanuit"
+ " , rs.res_rsv_deel_van"
+ " , rs.res_rsv_deel_tot"

View File

@@ -769,6 +769,7 @@ var ins_deel_aantal = 1;
"sgSrtdeel",
{ label: L("lcl_obj_sort"),
srtdeel_key: srtdeel_key,
filtercode: 'C', // Alleen objecten die ook een onderdeel kunnen zijn.
autfunction: autfunction,
onChange: "onChangeSrtdeel",
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
@@ -866,7 +867,7 @@ var ins_deel_aantal = 1;
if (isLendOut)
ROFIELDTR("fld", "", L("lcl_obj_is_lent_out"));
if (bind != 'A' && bind != 'P' && parent_key < 0) // voorlopig kan een onderdeel ook geen eigen coordinaten hebben, tegen de verwarring.
{
RWFIELDTR("xcoord", "fldshort", L("lcl_obj_geoxcoord"), xcoord, {maxlength: 12, datatype: "float", readonly: !this_ins.canChangeAlg, suppressEmpty: true});

View File

@@ -119,7 +119,7 @@ if (obj_key > 0)
var alg_ruimte_key_parent = -1;
var alg_ruimte_type_parent = "";
if (parent_key)
if (parent_key > 0)
{
var sql = "SELECT ins_alg_ruimte_key"
+ " , ins_alg_ruimte_type"
@@ -135,7 +135,7 @@ if (obj_key > 0)
{
var new_bind_key = bind_key;
var new_bind = bind;
if (parent_key)
if (parent_key > 0)
{
if (alg_ruimte_key_parent == bind_key && alg_ruimte_type_parent == bind)
{
@@ -184,7 +184,7 @@ if (obj_key > 0)
// tracking plaats/eigenaar is ingewikkelder (key en type en slechts <20><>n track gewenst), die doen we handmatig
// ins_alg_ruimte_key (bind_key) en ins_alg_ruimte_type (bind) bevatten reeds de nieuwe waardes
if (parent_key)
if (parent_key > 0)
{
bind = "I";
}

View File

@@ -506,6 +506,20 @@ function ins_list (pautfunction, params)
return html;
}
function fnIdentification(oRs)
{
var ident = safe.html(oRs("ins_deel_omschrijving").Value)
if (excel)
{
ident += (oRs("ins_deel_parent_key").Value > 0? "*" : "");
}
else
{
ident += (oRs("ins_deel_parent_key").Value > 0? "&nbsp;" + "<span title='" + L("lcl_fac_component") + "'>" + I("fa-link") + "</span>" : "")
}
return ident;
}
function fnrowData(oRs)
{
var insKey = oRs("ins_deel_key").Value;
@@ -1230,7 +1244,7 @@ function ins_list (pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_obj_photo"), content: fnInlinePhoto, colName: "fnInlinePhoto", classList: "toggle-objphoto" }));
if (insSensOnly) // alert indien overschrijding
rst.addColumn(new Column({caption: L("lcl_ins_sensoralertstate"), content: fnThresholdstate, colName: "fnThresholdstate", align: "center"}));
rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "ins_deel_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: fnIdentification}));
if (hasAantal)
{
rst.addColumn(new Column({caption: L("lcl_count"), content: "ins_deel_aantal", datatype: "number"}));

View File

@@ -143,6 +143,7 @@ else
"sgSrtdeel",
{ label: L("lcl_obj_sort"),
srtdeel_key: srtdeel,
filtercode: 'C', // Alleen objecten die ook een onderdeel kunnen zijn.
autfunction: autfunction,
onChange: "onChangeSrtdeel",
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
@@ -162,6 +163,7 @@ else
urlAdd: [{urlParam: "disc_key", field: "disc"},
{urlParam: "srtgroep_key", field: "srtgroep"},
{urlParam: "srtdeel_key", field: "srtdeel"}],
filtercode: 'C', // Alleen objecten die ook een onderdeel kunnen zijn.
autfunction: autfunction,
excludekey: ins_parent_key, // Huidige parent uitsluiten.
required: true

View File

@@ -19,6 +19,11 @@ function getFiltClauseObject(params)
{
switch(params.filtcode)
{
case "C": lfiltClause = " AND BITAND(s.ins_srtdeel_binding, 32) = 32" // Alleen objecten die ook een onderdeel kunnen zijn.
+ " AND NOT EXISTS (SELECT do.ins_deel_key" // Alleen objecten die zelf geen onderdelen hebben.
+ " FROM ins_v_aanwezigdeelenonderdeel do"
+ " WHERE do.ins_deel_parent_key = d.ins_deel_key)";
break;
case "I": lfiltClause = " AND d.ins_alg_ruimte_key_org IS NULL"
+ " AND d.ins_alg_ruimte_type_org IS NULL"
+ " AND d.ins_deel_parent_key IS NULL"

View File

@@ -11,7 +11,7 @@
<%
// ins_srtgroep sg is er bij INS altijd.
function getFiltClauseSrtdeel(pfiltcode, params)
{
var lfiltClause = {from: "", where: ""};
@@ -46,7 +46,9 @@ function getFiltClauseSrtdeel(pfiltcode, params)
if (pfiltcode && pfiltcode != "")
{
switch(pfiltcode)
{ // ins_srtgroep sg is er bij INS altijd
{
case "C": lfiltClause.where += " AND BITAND(sd.ins_srtdeel_binding, 32) = 32";
break;
case "LEND": lfiltClause.where += " AND sd.ins_srtdeel_uitleenbaar = 1"
break;
case "B2": lfiltClause.where += " AND id.ins_discipline_key IN"