FSN#39651: PLATO Logging/tracking.

svn path=/Website/trunk/; revision=34273
This commit is contained in:
Maykel Geerdink
2017-06-15 07:41:17 +00:00
parent 6c580c5f90
commit e5561d8fd2
6 changed files with 125 additions and 55 deletions

View File

@@ -1609,8 +1609,8 @@ function generic_REST_PUT(model, gparams)
var err = Oracle.Execute(xxxUpd.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
if (model.trackcode)
shared.trackaction(model.trackcode, the_key, xxxUpd.trackarray.join("\n"));
if (model.trackcode && xxxUpd.trackarray.length > 0)
shared.trackaction(model.trackcode, the_key, L("lcl_updated") + "\n" + xxxUpd.trackarray.join("\n"));
}
var inctrack = api2.process_includes(params, model, jsondata, the_key);

View File

@@ -24,29 +24,33 @@ function model_ins_srtcontrole()
this.autfunction = "WEB_INSMGT";
this.record_title = L("ins_srtcontrole");
this.records_title = L("ins_srtcontrole_m");
this.trackcode = "CTRSUP";
this.fields = {
"id": {
"dbs": "ins_srtcontrole_key",
"label": L("lcl_key"),
"typ": "key",
"infoPointer": { Url: "appl/shared/status_info.asp?urole=bo&inssc_key=", Title: L("lcl_key") + " " },
"required": true,
"filter": "exact",
"seq": "ins_s_ins_srtcontrole_key"
"seq": "ins_s_ins_srtcontrole_key",
"track": true
},
"level": {
"dbs": "ins_srtcontrole_niveau",
"label": L("ins_srtcontrole_niveau"),
"typ": "varchar",
"hidden_fld": true,
"LOV": fill_niveau_LOV()
"LOV": fill_niveau_LOV(),
"track": true
},
"objectkey": {
"dbs": "ins_srtinstallatie_key",
"label": L("lcl_ins_object"),
"typ": "key",
"hidden_fld": true
"hidden_fld": true,
"track": true
},
"objectdiscipline": {
"dbs": "ins_v_allsrtinstallatie.ins_discipline_key",
@@ -56,7 +60,8 @@ function model_ins_srtcontrole()
"foreign": { "tbl": "ins_v_aanwezigdiscipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
}
},
"track": true
},
"objectgroup": {
"dbs": "ins_v_allsrtinstallatie.ins_srtgroep_key",
@@ -65,7 +70,8 @@ function model_ins_srtcontrole()
"foreign": { "tbl": "ins_srtgroep",
"key": "ins_srtgroep_key",
"desc": "ins_srtgroep_omschrijving"
}
},
"track": true
},
"objecttype": {
"dbs": "ins_v_allsrtinstallatie.ins_srtdeel_key",
@@ -74,20 +80,23 @@ function model_ins_srtcontrole()
"foreign": { "tbl": "ins_srtdeel",
"key": "ins_srtdeel_key",
"desc": "ins_srtdeel_omschrijving"
}
},
"track": true
},
"name": {
"dbs": "ins_srtcontrole_omschrijving",
"label": L("ins_srtcontrole_omschrijving"),
"typ": "varchar",
"required": true,
"translate": true
"translate": true,
"track": true
},
"info": {
"dbs": "ins_srtcontrole_info",
"label": L("ins_srtcontrole_info"),
"typ": "memo",
"translate": true
"translate": true,
"track": true
},
"taskdiscipline": {
"dbs": "ctr_discipline_key",
@@ -97,46 +106,53 @@ function model_ins_srtcontrole()
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
},
"required": true
"required": true,
"track": true
},
"inspectionmode": {
"dbs": "ins_srtcontrole_mode",
"label": L("ins_srtcontrole_mode"),
"typ": "key",
"required": true,
"LOV": L("ins_srtcontrole_modeLOV")
"LOV": L("ins_srtcontrole_modeLOV"),
"track": true
},
"priority": {
"dbs": "ins_srtcontrole_level",
"label": L("ins_srtcontrole_level"),
"typ": "number",
"defaultvalue": 10,
"required": true
"required": true,
"track": true
},
"period": {
"dbs": "ins_srtcontrole_periode",
"label": L("ins_srtcontrole_periode"),
"typ": "float",
"required": true
"required": true,
"track": true
},
"unit": {
"dbs": "ins_srtcontrole_eenheid",
"label": L("ins_srtcontrole_eenheid"),
"typ": "key",
"required": true,
"LOV": L("ins_srtcontrole_eenheidLOV")
"LOV": L("ins_srtcontrole_eenheidLOV"),
"track": true
},
"bits": {
"dbs": "ins_srtcontrole_bits",
"label": L("ins_srtcontrole_bits"),
"typ": "number",
"hidden_fld": true
"hidden_fld": true,
"track": true
},
"_moment": {
"dbs": "",
"label": L("ins_srtcontrole_moment"),
"typ": "button",
"defaultvalue": L("lcl_select")
"defaultvalue": L("lcl_select"),
"track": true
},
"account": {
"dbs": "prs_kostenplaats_key",
@@ -144,56 +160,66 @@ function model_ins_srtcontrole()
"typ": "key",
"foreign": "prs_kostenplaats",
"foreignfiltercode": "A", // Alle kostenplaatsen tonen.
"filter": "exact"
"filter": "exact",
"track": true
},
"costs": {
"dbs": "ins_srtcontrole_kosten",
"label": L("ins_srtcontrole_kosten"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"track": true
},
"costs2": {
"dbs": "ins_srtcontrole_kosten2",
"label": L("ins_srtcontrole_kosten2"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"track": true
},
"costs3": {
"dbs": "ins_srtcontrole_kosten3",
"label": L("ins_srtcontrole_kosten3"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"track": true
},
"material": {
"dbs": "ins_srtcontrole_materiaal",
"label": L("ins_srtcontrole_materiaal"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"track": true
},
"hours": {
"dbs": "ins_srtcontrole_uren",
"label": L("ins_srtcontrole_uren"),
"typ": "float"
"typ": "float",
"track": true
},
"enddate": {
"dbs": "ins_srtcontrole_eind",
"label": L("ins_srtcontrole_eind"),
"typ": "date"
"typ": "date",
"track": true
},
"phasingouttime": {
"dbs": "ins_srtcontrole_afbouwtijd",
"label": L("ins_srtcontrole_afbouwtijd"),
"typ": "float"
"typ": "float",
"track": true
},
"taskgroup": {
"dbs": "ins_srtcontrole_groep",
"label": L("ins_srtcontrole_groep"),
"typ": "varchar"
"typ": "varchar",
"track": true
},
"percentage": {
"dbs": "ins_srtcontrole_percentage",
"label": L("ins_srtcontrole_percentage"),
"typ": "float"
"typ": "float",
"track": true
},
"vat": {
"dbs": "fin_btwtabelwaarde_key",
@@ -206,7 +232,8 @@ function model_ins_srtcontrole()
+ " FROM fin_btwtabelwaarde"
+ " WHERE fin_btwtabelwaarde_key = " + S("fin_btw_default")
+ ")"
}
},
"track": true
},
"options": {
"dbs": "ins_srtcontrole_options",
@@ -245,12 +272,14 @@ function model_ins_srtcontrole()
}
]
}
]
],
"track": true
},
"remark": {
"dbs": "ins_srtcontrole_opmerking",
"label": L("ins_srtcontrole_opmerking"),
"typ": "memo"
"typ": "memo",
"track": true
}
};
@@ -286,6 +315,9 @@ function model_ins_srtcontrole()
}
}
this.print = { xmlnode: "taak",
key: "id"
};
this.REST_GET = generic_REST_GET(this, {
"GET": {

View File

@@ -83,12 +83,15 @@ for (var i = 0; i < ins_key_arr.length; i++)
+ " , di.ins_deel_aanmaak"
+ " , di.ctr_discipline_key"
+ " , di.ins_srtcontrole_options options"
+ " , cd.ins_discipline_omschrijving"
+ " FROM ins_v_defined_inspect di"
+ " , ins_srtcontroledl_xcp xcp"
+ " , ins_deelsrtcontrole idsc"
+ " , ctr_v_aanwezigdiscipline cd"
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
+ " AND di.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
+ " AND di.ctr_discipline_key = cd.ins_discipline_key"
+ " AND di.ins_deel_key = " + ins_key_arr[i]
+ " AND idsc.ins_deel_key(+) = " + ins_key_arr[i]
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
@@ -109,6 +112,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
var ins_deelsrtcontrole_datum_max = oRs("ins_deelsrtcontrole_datum").Value;
var ins_deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
var isc_options = oRs("options").Value;
var disc_oms = oRs("ins_discipline_omschrijving").Value;
var this_ins = ins.func_enabled_deel(ins_key_arr[i],
{srtcont_key: srtcont_key_arr[i],
@@ -265,7 +269,8 @@ for (var i = 0; i < ins_key_arr.length; i++)
}
ingesloten.push({ins_key: ins_key_arr[i], srtcont_key: srtcont_key_arr[i], dlsrtcont_key: dlsrtcont_key,
inspectiemode: ins_srtcontrole_mode, inspectiestatus: ins_deelsrtcontrole_status, ins_deel_aanmaak: ins_deel_aanmaak});
inspectiemode: ins_srtcontrole_mode, inspectiestatus: ins_deelsrtcontrole_status, ins_deel_aanmaak: ins_deel_aanmaak,
disc_oms: disc_oms});
tobehandled++;
}
@@ -624,7 +629,7 @@ else if (savemode == "C")
flextrack = saveFlexKenmerkenInspection(ingesloten[0].dlsrtcont_key, insPresent);
if (insPresent && ((insUpd && insUpd.trackarray.length) || flextrack.length))
ins.trackinspectupdate(ingesloten[i].dlsrtcont_key, L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
ins.trackinspectupdate(ingesloten[i].dlsrtcont_key, L("lcl_ins_controle_is_upd").format(ingesloten[0].disc_oms) + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
}
}
else if (savemode == "E")
@@ -750,7 +755,7 @@ else if (savemode == "E")
var flextrack = saveFlexKenmerkenInspection(ingesloten[0].dlsrtcont_key, insPresent, mjobdelete);
if (!mjobdelete && (insUpd.trackarray.length || flextrack.length))
ins.trackinspectupdate(ingesloten[0].dlsrtcont_key, L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
ins.trackinspectupdate(ingesloten[0].dlsrtcont_key, L("lcl_ins_controle_is_upd").format(ingesloten[0].disc_oms) + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
}
Response.Write(JSON.stringify(result));

View File

@@ -40,9 +40,12 @@ var sql = "SELECT d.ins_deel_aantal"
+ " , isc.ins_srtcontrole_eind"
+ " , isc.ins_srtcontrole_opmerking"
+ " , isc.ctr_discipline_key"
+ " , isc.ins_srtcontrole_omschrijving"
+ " , cd.ins_discipline_omschrijving"
+ " FROM ins_srtcontrole isc"
+ " , ins_deel d"
+ " , ins_srtdeel sd"
+ " , ctr_v_aanwezigdiscipline cd"
+ " WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key"
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
+ " AND isc.ins_srtinstallatie_key = d.ins_srtdeel_key"
@@ -50,6 +53,7 @@ var sql = "SELECT d.ins_deel_aantal"
+ " AND isc.ins_srtinstallatie_key = sd.ins_srtgroep_key"
+ " OR isc.ins_srtcontrole_niveau = 'D'"
+ " AND isc.ins_srtinstallatie_key = d.ins_discipline_key)"
+ " AND isc.ctr_discipline_key = cd.ins_discipline_key"
+ " AND d.ins_deel_key = " + ins_key
+ " AND isc.ins_srtcontrole_key = " + srtcontrole_key;
var oRs = Oracle.Execute(sql);
@@ -68,6 +72,8 @@ var materiaal_std = oRs("ins_srtcontrole_materiaal").Value;
var perc_std = oRs("ins_srtcontrole_percentage").Value;
var groep_std = oRs("ins_srtcontrole_groep").Value;
var opmerk_std = oRs("ins_srtcontrole_opmerking").Value;
var srtcontrole_oms = oRs("ins_srtcontrole_omschrijving").Value;
var ctrdisc_oms = oRs("ins_discipline_omschrijving").Value;
var vervaldatum_std = new Date(oRs("ins_srtcontrole_eind").Value);
oRs.Close();
@@ -159,28 +165,43 @@ if (paramsdiffer && !deactivate)
var fields = [ { dbs: "ins_deel_key", typ: "key", val: ins_key },
{ dbs: "ins_srtcontrole_key", typ: "key", frm: "sel_srtcontrole" },
{ dbs: "ins_srtcontroledl_xcp_eenheid", typ: "number", val: (eenheid == -1 || eenheid == eenheid_std || eenheid < 0? null : eenheid) }, // Waarde gelijk aan standaard niet opslaan.
{ dbs: "ins_srtcontroledl_xcp_periode", typ: "number", val: (periode == null || periode == periode_std? null : periode) }, // Waarde gelijk aan standaard niet opslaan.
{ dbs: "ins_srtcontroledl_xcp_bits", typ: "number", val: (bits == null || bits == bits_std? null : bits) }, // Waarde gelijk aan standaard niet opslaan.
{ dbs: "ins_srtcontroledl_xcp_uren", typ: "float", val: (uren == null || uren == uren_std? null : uren) },
{ dbs: "ins_srtcontroledl_xcp_perc", typ: "float", val: (perc == null || perc == perc_std? null : perc) },
{ dbs: "ins_srtcontroledl_xcp_groep", typ: "varchar", val: (groep == "" || groep == groep_std? null : groep) },
{ dbs: "ins_srtcontroledl_xcp_opmerk", typ: "varchar", val: (opmerk == "" || opmerk == opmerk_std? null : opmerk) },
{ dbs: "ins_srtcontroledl_xcp_startdat", typ: "datetime", frm: "startdatum" },
{ dbs: "ins_srtcontroledl_xcp_eind", typ: "datetime", val: (datumdiffer? vervaldatum : null) },
{ dbs: "ins_srtcontroledl_xcp_aantal", typ: "float", val: (aantal == null || aantal == aantal_std? null : aantal) },
{ dbs: "ins_srtcontroledl_xcp_aanteh", typ: "varchar", val: (aanteh == "" || aanteh == aanteh_std? null : aanteh) }
{ dbs: "ins_srtcontroledl_xcp_eenheid", typ: "number", val: (eenheid == -1 || eenheid == eenheid_std || eenheid < 0? null : eenheid),
track: (ins_key > 0? L("lcl_ins_controle_eenheid") + " " + L("lcl_ins_controle").toLowerCase() : null) }, // Waarde gelijk aan standaard niet opslaan.
{ dbs: "ins_srtcontroledl_xcp_periode", typ: "number", val: (periode == null || periode == periode_std? null : periode),
track: (ins_key > 0? L("lcl_ins_controle_period") : null) }, // Waarde gelijk aan standaard niet opslaan.
{ dbs: "ins_srtcontroledl_xcp_bits", typ: "number", val: (bits == null || bits == bits_std? null : bits),
track: (ins_key > 0? L("ins_srtcontrole_bits") : null) }, // Waarde gelijk aan standaard niet opslaan.
{ dbs: "ins_srtcontroledl_xcp_uren", typ: "float", val: (uren == null || uren == uren_std? null : uren),
track: (ins_key > 0? L("ins_srtcontrole_uren") : null) },
{ dbs: "ins_srtcontroledl_xcp_perc", typ: "float", val: (perc == null || perc == perc_std? null : perc),
track: (ins_key > 0? L("ins_srtcontrole_percentage") : null) },
{ dbs: "ins_srtcontroledl_xcp_groep", typ: "varchar", val: (groep == "" || groep == groep_std? null : groep),
track: (ins_key > 0? L("lcl_ins_controle_groep") : null) },
{ dbs: "ins_srtcontroledl_xcp_opmerk", typ: "varchar", val: (opmerk == "" || opmerk == opmerk_std? null : opmerk),
track: (ins_key > 0? L("ins_srtcontrole_opmerking") : null) },
{ dbs: "ins_srtcontroledl_xcp_startdat", typ: "datetime", frm: "startdatum",
track: (ins_key > 0? L("lcl_ins_startdatum") : null) },
{ dbs: "ins_srtcontroledl_xcp_eind", typ: "datetime", val: (datumdiffer? vervaldatum : null),
track: (ins_key > 0? L("lcl_ins_vervaldatum") : null) },
{ dbs: "ins_srtcontroledl_xcp_aantal", typ: "float", val: (aantal == null || aantal == aantal_std? null : aantal),
track: (ins_key > 0? L("lcl_amount") : null) },
{ dbs: "ins_srtcontroledl_xcp_aanteh", typ: "varchar", val: (aanteh == "" || aanteh == aanteh_std? null : aanteh),
track: (ins_key > 0? L("ins_srtcontrole_eenheid") + " " + L("lcl_amount").toLowerCase() : null) }
];
var ins_xcp_active_cost = S("ins_xcp_active_cost");
if (ins_xcp_active_cost & 1)
fields.push({ dbs: "ins_srtcontroledl_xcp_kosten", typ: "float", val: (kosten1 == null || kosten1 == kosten1_std? null : kosten1) });
fields.push({ dbs: "ins_srtcontroledl_xcp_kosten", typ: "float", val: (kosten1 == null || kosten1 == kosten1_std? null : kosten1),
track: (ins_key > 0? L("ins_srtcontrole_kosten") + " (" + (S("currency_pref")).replace(/^\s+|\s+$/gm,'') + ")" : null) });
if (ins_xcp_active_cost & 2)
fields.push({ dbs: "ins_srtcontroledl_xcp_kosten2", typ: "float", val: (kosten2 == null || kosten2 == kosten2_std? null : kosten2) });
fields.push({ dbs: "ins_srtcontroledl_xcp_kosten2", typ: "float", val: (kosten2 == null || kosten2 == kosten2_std? null : kosten2),
track: (ins_key > 0? L("ins_srtcontrole_kosten2") + " (" + S("currency_pref").replace(/^\s+|\s+$/gm,'') + ")" : null) });
if (ins_xcp_active_cost & 4)
fields.push({ dbs: "ins_srtcontroledl_xcp_kosten3", typ: "float", val: (kosten3 == null || kosten3 == kosten3_std? null : kosten3) });
fields.push({ dbs: "ins_srtcontroledl_xcp_kosten3", typ: "float", val: (kosten3 == null || kosten3 == kosten3_std? null : kosten3),
track: (ins_key > 0? L("ins_srtcontrole_kosten3") + " (" + S("currency_pref").replace(/^\s+|\s+$/gm,'') + ")" : null) });
if (ins_xcp_active_cost & 8)
fields.push({ dbs: "ins_srtcontroledl_xcp_materia", typ: "float", val: (materiaal == null || materiaal == materiaal_std? null : materiaal) });
fields.push({ dbs: "ins_srtcontroledl_xcp_materia", typ: "float", val: (materiaal == null || materiaal == materiaal_std? null : materiaal),
track: (ins_key > 0? L("ins_srtcontrole_materiaal") + " (" + S("currency_pref").replace(/^\s+|\s+$/gm,'') + ")" : null) });
if (xcp_key < 0) // Nieuwe inspectie
{
@@ -188,11 +209,16 @@ if (paramsdiffer && !deactivate)
var insIns = buildInsert("ins_srtcontroledl_xcp", fields);
result.srtcontroledl_xcp_key = insIns.sequences["ins_srtcontroledl_xcp_key"];
var err = Oracle.Execute(insIns.sql, true);
shared.trackaction("INSUPD", ins_key, L("lcl_ins_controle_obj_upd").format(ctrdisc_oms, srtcontrole_oms) + "\n" + L("lcl_ins_control_add_exception"));
}
else
{
var sql = buildUpdate("ins_srtcontroledl_xcp", fields) + " ins_srtcontroledl_xcp_key = " + xcp_key;
var err = Oracle.Execute(sql, true);
var insUpd = buildTrackingUpdate("ins_srtcontroledl_xcp", " ins_srtcontroledl_xcp_key = " + xcp_key, fields);
var err = Oracle.Execute(insUpd.sql, true);
if (insUpd && insUpd.trackarray.length)
shared.trackaction("INSUPD", ins_key, L("lcl_ins_controle_obj_upd").format(ctrdisc_oms, srtcontrole_oms) + "\n" + insUpd.trackarray.join("\n"));
}
}
else
@@ -211,8 +237,8 @@ else
+ " WHERE ins_deel_key = " + ins_key
+ " AND ins_srtcontrole_key = " + srtcontrole_key;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
result.message += " " + err.friendlyMsg;
shared.trackaction("INSUPD", ins_key, L("lcl_ins_controle_obj_upd").format(ctrdisc_oms, srtcontrole_oms) + "\n" + L("lcl_ins_control_del_exception"));
}
}

View File

@@ -228,6 +228,12 @@ function scf_ROFIELDTR(model, fld, val, key, params)
else if (typeof txt == "date" || txt instanceof Date)
txt = toDateString(txt);
}
else if ("infoPointer" in field)
{
infoPointer = field.infoPointer;
infoPointer.Url += val;
infoPointer.Title += val;
}
if (field.iscurrency)
txt = safe.curr(txt);

View File

@@ -42,6 +42,7 @@
var cnt_key = getQParamInt('cnt_key', -1);
var ins_key = getQParamInt('ins_key', -1);
var insc_key = getQParamInt('insc_key', -1); // controle (inspectie)
var inssc_key = getQParamInt('inssc_key', -1); // srtcontrole (periodieke taak)
var fin_key = getQParamInt('fin_key', -1);
var bes_key = getQParamInt('bes_key', -1);
var ord_key = getQParamInt('ord_key', -1);
@@ -51,8 +52,8 @@
var urole = getQParam('urole', 'fe');
var print = getQParam ("print", null);
var entkey = mld_key != -1 ? mld_key : (opdr_key != -1 ? opdr_key : (rsv_ruimte_key != -1 ? rsv_ruimte_key : (afspr_key != -1 ? afspr_key : (cnt_key != -1 ? cnt_key : (ins_key != -1 ? ins_key : (fin_key != -1 ? fin_key : (bes_key != -1 ? bes_key : (ord_key != -1 ? ord_key : (room_key != -1? room_key : (prs_key != -1 ? prs_key : (kpn_key != -1 ? kpn_key : (insc_key != -1 ? insc_key : -1))))))))))));
var enttype = mld_key != -1 ? 'melding' : (opdr_key != -1 ? 'opdracht' : (rsv_ruimte_key != -1 ? ['reservering', 'xreservering'] : (afspr_key != -1 ? 'afspraak' : (cnt_key != -1 ? 'contract' : (ins_key != -1 ? 'deel' : (fin_key != -1 ? 'factuur' : (bes_key != -1 ? 'bestelling' : (ord_key != -1 ? 'bestelopdr' : (room_key != -1? 'ruimte' : (prs_key != -1 ? 'perslid' : (kpn_key != -1 ? 'kostenplaats' : (insc_key != -1 ? 'controle' : 'unsupported'))))))))))));
var entkey = mld_key != -1 ? mld_key : (opdr_key != -1 ? opdr_key : (rsv_ruimte_key != -1 ? rsv_ruimte_key : (afspr_key != -1 ? afspr_key : (cnt_key != -1 ? cnt_key : (ins_key != -1 ? ins_key : (fin_key != -1 ? fin_key : (bes_key != -1 ? bes_key : (ord_key != -1 ? ord_key : (room_key != -1? room_key : (prs_key != -1 ? prs_key : (kpn_key != -1 ? kpn_key : (insc_key != -1 ? insc_key : (inssc_key != -1 ? inssc_key : -1)))))))))))));
var enttype = mld_key != -1 ? 'melding' : (opdr_key != -1 ? 'opdracht' : (rsv_ruimte_key != -1 ? ['reservering', 'xreservering'] : (afspr_key != -1 ? 'afspraak' : (cnt_key != -1 ? 'contract' : (ins_key != -1 ? 'deel' : (fin_key != -1 ? 'factuur' : (bes_key != -1 ? 'bestelling' : (ord_key != -1 ? 'bestelopdr' : (room_key != -1? 'ruimte' : (prs_key != -1 ? 'perslid' : (kpn_key != -1 ? 'kostenplaats' : (insc_key != -1 ? 'controle' : (inssc_key != -1 ? 'taak' : 'unsupported')))))))))))));
if (typeof enttype == 'string')
enttype = [enttype];