Files
Facilitor/APPL/API2/model_ins_kenmerk.inc
Jos Groot Lipman 40be26f5f3 FSN#47247 Betere authorisatie API flexbijlagen
svn path=/Website/branches/v2017.2/; revision=36150
2017-11-29 11:29:04 +00:00

281 lines
9.6 KiB
PHP

<% /*
$Revision$
$Id$
File: model_ins_kenmerk.inc
Description: Vanuit CodeCharge gegenereerd model voor ins_kenmerk
Context: Met parameter 'niveau' worden alleen de inspectiekenmerken getoond.
Zonder, alle niet-inspectie kenmerken.
Notes:
*/
%>
<!-- #include file="model_ins_srtkenmerk.inc"-->
<%
function model_ins_kenmerk(niveau, params)
{
params = params || {};
this.records_name = "objectproperties";
this.record_name = "objectproperty";
this.table = "ins_kenmerk";
this.primary = "ins_kenmerk_key";
this.soft_delete = "ins_kenmerk_verwijder";
this.autfunction = params.internal?false:"WEB_INSMGT";
this.record_title = L("ins_kenmerk");
this.records_title = L("ins_kenmerk_m");
this.module = "INS";
this.fields = {
"id": {
"dbs": "ins_kenmerk_key",
"label": L("lcl_key"),
"typ": "key",
"required": true,
"filter": "exact",
"seq": "ins_s_ins_kenmerk_key",
"readonly": true
},
"objectpropertytype": {
"dbs": "ins_srtkenmerk_key",
"label": L("mgt_srtkenmerk_key"),
"typ": "key",
"required": true,
"foreign": {
"tbl": "(select ins_srtkenmerk_key"
+ " , ins_srtkenmerk_omschrijving"
+ " from ins_srtkenmerk"
+ " where ins_srtkenmerk_verwijder is null"
+ " order by ins_srtkenmerk_omschrijving asc)",
"key": "ins_srtkenmerk_key",
"desc": "ins_srtkenmerk_omschrijving"
},
"filter": "exact"
},
"objectdiscipline": {
"dbs": "ins_v_allsrtinstallatie.ins_discipline_key",
"label": L("ins_srtinstallatie_discipline"),
"typ": "key",
"required": true,
"insertonly": true,
"foreign": { "tbl": "ins_v_aanwezigdiscipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
}
},
"objectgroup": {
"dbs": "ins_v_allsrtinstallatie.ins_srtgroep_key",
"label": L("ins_srtinstallatie_srtgroep"),
"typ": "key",
"insertonly": true,
"foreign": { "tbl": "ins_srtgroep",
"key": "ins_srtgroep_key",
"desc": "ins_srtgroep_omschrijving"
}
},
"objecttype": {
"dbs": "ins_v_allsrtinstallatie.ins_srtdeel_key",
"label": L("ins_srtinstallatie_srtdeel"),
"typ": "key",
"insertonly": true,
"foreign": { "tbl": "ins_srtdeel",
"key": "ins_srtdeel_key",
"desc": "ins_srtdeel_omschrijving"
}
},
"objectkey": {
"dbs": "ins_srtinstallatie_key",
"label": L("lcl_ins_object"),
"typ": "key",
"hidden_fld": true,
"required": true,
"foreign": {"tbl": "ins_srtcontrole",
"key": "ins_srtcontrole_key",
"desc": "ins_srtcontrole_omschrijving"
},
"filter": "exact"
},
"level": {
"dbs": "ins_kenmerk_niveau",
"label": L("mgt_kenmerk_niveau"),
"typ": "varchar",
"hidden_fld": true,
"LOV": fill_ins_niveau_LOV(),
"defaultvalue": "C"
},
"editlevel": {
"dbs": "ins_kenmerk_bewerkniveau",
"label": L("ins_kenmerk_bewerkniveau"),
"typ": "varchar",
"required": true,
"insertonly": true,
"defaultvalue": "D",
"LOV": L("ins_kenmerk_bewerkniveauLOV")
},
"sequence": {
"dbs": "ins_kenmerk_volgnummer",
"label": L("ins_kenmerk_volgnummer"),
"typ": "number",
"required": true
},
"required": {
"dbs": "ins_kenmerk_verplicht",
"label": L("ins_kenmerk_verplicht"),
"typ": "key",
"LOV": fill_verplicht_LOV(),
"emptyoption": L("lcl_mld_niet_verplicht"),
"multiedit": true
},
"group": {
"dbs": "ins_kenmerk_groep",
"label": L("ins_kenmerk_groep"),
"typ": "key",
"required": true,
"LOV": fill_groepsverplichting_LOV(),
"defaultvalue": "0",
"multiedit": true
},
"readonly": {
"dbs": "ins_kenmerk_toonbaar",
"label": L("mgt_kenmerk_toonbaar"),
"typ": "check",
"multiedit": true
},
"measurement": {
"dbs": "ins_kenmerk_meetwaarde",
"label": L("ins_kenmerk_meetwaarde"),
"typ": "check",
"multiedit": true
},
"clear": {
"dbs": "ins_kenmerk_wissen",
"label": L("ins_kenmerk_wissen"),
"typ": "key",
"LOV": L("ins_kenmerk_wissenLOV"),
"defaultvalue": "0",
"emptyoption": null,
"multiedit": true
},
"location": {
"dbs": "ins_kenmerk_locatiekolom",
"label": L("ins_kenmerk_locatiekolom"),
"typ": "varchar"
},
"propertydefault": {
"dbs": "ins_kenmerk_default",
"label": L("mgt_kenmerk_default"),
"typ": "memo",
"translate": true
},
"hint": {
"dbs": "ins_kenmerk_hint",
"label": L("mgt_kenmerk_hint"),
"typ": "memo",
"translate": true
},
"regexp": {
"dbs": "ins_kenmerk_regexp",
"label": L("mgt_kenmerk_regexp"),
"typ": "varchar"
}
};
this.getPropertyType = function (kenmerkdata)
{
var typedata = api2.GET(new model_ins_srtkenmerk({internal: params.internal}), kenmerkdata.objectpropertytype.id);
return typedata;
}
this.list = {
"columns": ["id",
"objectpropertytype",
"sequence",
"required",
"group"
]
};
this.search = {
"autosearch": true,
"filters": ["level",
"objectdiscipline",
"objectgroup",
"objecttype",
"objectpropertytype"
]
};
this.edit = { modal: true};
// Server side code!
//
// Afhankelijk van niveau:
var gparams = { GET: { } };
if (niveau == "C")
{
this.list.columns.splice(2, 0, "objectkey");
delete this.fields.objectdiscipline;
delete this.fields.objectgroup;
delete this.fields.objecttype;
delete this.fields.editlevel;
delete this.fields.measurement;
this.fields.objectkey.label = L("ins_srtcontrole");
this.record_title = L("ins_srtcontrole_kenmerk");
this.records_title = L("ins_srtcontrole_kenmerk_m");
gparams.GET = {wheres: [ "ins_kenmerk.ins_kenmerk_niveau = " + safe.quoted_sql(niveau)
, "ins_kenmerk.ins_kenmerk_verwijder IS NULL"
]
};
}
else
{ //kenmerk_niveau: D | G | S
// Toevoegen extra kolommen voor niet-inspectie kenmerken.
// NB: Standaard in this.list opnemen en bij niveau=C verwijderen geeft fout op niet bestaande ins_discipline_key etc.
this.list.columns.splice(2, 0, "objecttype");
this.list.columns.splice(2, 0, "objectgroup");
this.list.columns.splice(2, 0, "objectdiscipline");
//
this.record_title = L("ins_kenmerk");
this.records_title = L("ins_kenmerk_m");
gparams.GET = {tables: ["ins_v_allsrtinstallatie"],
wheres: [ "ins_kenmerk.ins_kenmerk_niveau <> 'C'",
"ins_kenmerk.ins_srtinstallatie_key = ins_v_allsrtinstallatie.ins_srtinstallatie_key",
"ins_kenmerk.ins_kenmerk_niveau = ins_v_allsrtinstallatie.niveau"
]
};
}
function fill_verplicht_LOV()
{ // Listbox verplicht vullen. Bij het veld is de emptyoption gezet.
// Hierdoor is er altijd een waarde geselecteerd.
return "1;" + L("lcl_mld_altijd_verplicht")
+ ";2;" + L("lcl_mld_groepsverplichting");
}
function fill_groepsverplichting_LOV()
{ // Listbox groepsverplichting vullen.
var groep_array = ["0", "<"+L("lcl_none")+">"];
for (i=1; i<=9; i++)
{
groep_array.push(i)
groep_array.push(L("ins_kenmerk_groep")+" "+i);
}
return groep_array.join(";");
}
this.REST_GET = generic_REST_GET(this, gparams);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
function fill_ins_niveau_LOV()
{
return "D;"+L("mgt_srtkenmerk_discipline")
+ ";G;"+L("mgt_srtkenmerk_srtgroep")
+ ";S;"+L("mgt_srtkenmerk_srtdeel");
}
}
%>