Files
Facilitor/APPL/API2/model_mld_stdmelding.inc
Erik Groener 69651e8193 MMNL#41309 Mogelijkheid om meldingen op meerdere Disciplines objecten te doen
svn path=/Website/trunk/; revision=36829
2018-02-05 08:33:09 +00:00

641 lines
25 KiB
C++

<% /*
$Revision$
$Id$
File: model_mld_stdmelding.inc
Description:
Context:
Notes: Er is ook een model_issuetypes.inc
Deze bevat slechts een subset van de velden die hier worden gebruikt.
Kan model_mld_stdmelding ook gebruikt worden ipv model_issuetypes?
*/
%>
<!-- #include file="../mld/mld.inc" -->
<%
function model_mld_stdmelding()
{
this.records_name = "issuetypes";
this.record_name = "issuetype",
this.table = "mld_stdmelding";
this.primary = "mld_stdmelding_key";
this.soft_delete = "mld_stdmelding_verwijder";
this.soft_expire = "mld_stdmelding_vervaldatum";
this.autfunction = "WEB_MLDMGT";
this.record_title = L("mld_stdmelding");
this.records_title = L("mld_stdmelding_m");
this.fields = {
"id": {
"dbs": "mld_stdmelding_key",
"label": L("lcl_key"),
"typ": "key",
"required": true,
"filter": "exact",
"seq": "mld_s_mld_stdmelding_key"
},
"description": {
"dbs": "mld_stdmelding_omschrijving",
"label": L("lcl_complain"), //L("mld_stdmelding_omschrijving"),
"typ": "varchar",
"required": true,
"translate": true
},
"disciplinetype": {
"dbs": "ins_srtdiscipline.ins_srtdiscipline_key",
"label": L("lcl_mld_vakgroeptype"),
"typ": "key",
"insertonly": true,
"foreign" : {
"tbl": "(SELECT ins_srtdiscipline_key"
+ " , ins_srtdiscipline_omschrijving srtdiscipline_oms"
+ " FROM ins_srtdiscipline"
+ " WHERE ins_srtdiscipline_module = 'MLD'"
+ " ORDER BY 2 ASC"
+ ")",
"key": "ins_srtdiscipline_key",
"desc": "srtdiscipline_oms"
}
},
"discipline": {
"dbs": "mld_ins_discipline_key",
"typ": "key",
"label": L("lcl_mld_vakgroep"),
"foreign": {
"tbl": "(SELECT ins_discipline_key"
+ " , ins_discipline_omschrijving"
+ " FROM mld_v_aanwezigdiscipline"
+ " ORDER BY ins_discipline_omschrijving ASC"
+ ")",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
},
"required": (mode == "edit")
},
"notfrontend": {
"dbs": "mld_stdmelding_notfrontend",
"typ": "check0",
"label": L("lcl_mld_notfrontend"),
"multiedit": true
},
"costtype": {
"dbs": "prs_kostensoort_key",
"typ": "key",
"label": L("lcl_charge_type"),
"foreign": {
"tbl": "prs_kostensoort",
"key": "prs_kostensoort_key",
"desc": "prs_kostensoort_oms"
},
"emptyoption": "",
"multiedit": true
},
"canrefer": {
"dbs": "mld_stdmelding_kanverwijzen",
"typ": "number",
"label": L("lcl_mld_kanverwijzen"),
"foreign": {
"tbl": "(SELECT 128 key, " + safe.quoted_sql(mld.getrefmoduletext(128)) + " oms" + " FROM DUAL" /* Alle meldingen */
+ " UNION SELECT 1, " + safe.quoted_sql(mld.getrefmoduletext(1)) + " FROM DUAL" /* Eigen meldingen */
+ " UNION SELECT 2, " + safe.quoted_sql(mld.getrefmoduletext(2)) + " FROM DUAL" /* Opdracht */
+ " UNION SELECT 4, " + safe.quoted_sql(mld.getrefmoduletext(4)) + " FROM DUAL" /* Reservering */
+ " UNION SELECT 8, " + safe.quoted_sql(mld.getrefmoduletext(8)) + " FROM DUAL" /* Bestelling */
//+ " UNION SELECT 16, " + safe.quoted_sql(mld.getrefmoduletext(16)) + " FROM DUAL" /* reserved for future use */
//+ " UNION SELECT 32, " + safe.quoted_sql(mld.getrefmoduletext(32)) + " FROM DUAL" /* reserved for future use */
//+ " UNION SELECT 64, " + safe.quoted_sql(mld.getrefmoduletext(64)) + " FROM DUAL" /* reserved for future use */
+ ")",
"key": "key",
"desc": "oms",
"order": "1",
"multiselect": true
},
"multi": true,
"emptyoption": L("lcl_none")
},
"mandatorylevel": {
"dbs": "alg_onrgoed_niveau",
"typ": "varchar",
"label": L("lcl_mld_onrgoed_niveau"),
"foreign": {
"tbl": "(SELECT 'L' key, " + safe.quoted_sql(L("lcl_location")) + " oms" + ", 1 FROM DUAL"
+ " UNION SELECT 'G', " + safe.quoted_sql(L("lcl_building")) + ", 2 FROM DUAL"
+ " UNION SELECT 'V', " + safe.quoted_sql(L("lcl_floor")) + ", 3 FROM DUAL"
+ " UNION SELECT 'R', " + safe.quoted_sql(L("lcl_room")) + ", 4 FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1"
},
"emptyoption": null
},
"notify": {
"dbs": "mld_stdmelding_notify",
"typ": "check0",
"label": L("lcl_mld_notify")
},
"plannable": {
"dbs": "mld_stdmelding_planbaar",
"typ": "check0",
"label": L("lcl_mld_planbaar")
},
"subjectlist": {
"dbs": "mld_stdmelding_subject",
"typ": "key",
"label": L("lcl_mld_subject"),
"foreign": {
"tbl": "(SELECT 0 key, " + safe.quoted_sql(L("lcl_mld_onzichtbaar")) + " oms" + " FROM DUAL"
+ " UNION SELECT 1, " + safe.quoted_sql(L("lcl_mld_optioneel")) + " FROM DUAL"
+ " UNION SELECT 2, " + safe.quoted_sql(L("lcl_mld_verplicht")) + " FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1"
},
"emptyoption": null
},
"freetext": {
"dbs": "mld_stdmelding_freetext",
"typ": "key",
"label": L("lcl_mld_freetext"),
"foreign": {
"tbl": "(SELECT 0 key, " + safe.quoted_sql(L("lcl_mld_onzichtbaar")) + " oms" + " FROM DUAL"
+ " UNION SELECT 1, " + safe.quoted_sql(L("lcl_mld_optioneel")) + " FROM DUAL"
+ " UNION SELECT 2, " + safe.quoted_sql(L("lcl_mld_verplicht")) + " FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1"
},
"emptyoption": null
},
"objectmandatory": {
"dbs": "ins_srtinst_verplicht",
"typ": "check0",
"label": L("lcl_mld_obj_verplicht")
},
"hint": {
"dbs": "mld_stdmelding_hint",
"typ": "memo",
"label": L("lcl_mld_hint"),
"translate": true
},
"autoorder": {
"dbs": "mld_stdmelding_autoorder",
"typ": "check0",
"label": L("lcl_mld_autoorder"),
"multiedit": true
},
"autoorderamount": {
"dbs": "mld_stdmelding_autoorderamount",
"typ": "float",
"iscurrency": true,
"label": L("lcl_mld_autoorderamount"),
"multiedit": true
},
"requireservice": {
"dbs": "mld_stdmelding_vereisdienst",
"typ": "check0",
"label": L("lcl_mld_vereisdienst"),
"multiedit": true
},
"service": {
"dbs": "prs_dienst_key",
"typ": "key",
"label": L("lcl_mld_behandel_dienst"),
"foreign": {
"tbl": "(SELECT prs_dienst_key"
+ " , prs_dienst_omschrijving"
+ " FROM prs_dienst"
+ " ORDER BY UPPER(prs_dienst_omschrijving))",
"key": "prs_dienst_key",
"desc": "prs_dienst_omschrijving"
},
"emptyoption": ""
},
"ordertype": {
"dbs": "mld_typeopdr_key",
"typ": "key",
"label": L("lcl_mld_std_typeopdr"),
"foreign": {
"tbl": "(SELECT mld_typeopdr_key"
+ " , mld_typeopdr_omschrijving"
+ " FROM mld_typeopdr"
+ " ORDER BY UPPER(mld_typeopdr_omschrijving))",
"key": "mld_typeopdr_key",
"desc": "mld_typeopdr_omschrijving"
},
"emptyoption": ""
},
"regime": {
"dbs": "mld_stdmelding_regime",
"typ": "key",
"label": L("lcl_mld_regime"),
"foreign": {
"tbl": "(SELECT 1 key, " + safe.quoted_sql(L("lcl_mld_office_hours")) + " oms" + " FROM DUAL"
+ " UNION SELECT 2, " + safe.quoted_sql(L("lcl_mld_opening_hours")) + " FROM DUAL"
+ " UNION SELECT 3, " + safe.quoted_sql(L("lcl_mld_24_7")) + " FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1"
},
"emptyoption": null
},
"fixedmalus": {
"dbs": "mld_stdmelding_malusbasis",
"typ": "float",
"label": L("lcl_mld_malusbasis")
},
"periodmalus": {
"dbs": "mld_stdmelding_malus",
"typ": "float",
"label": L("lcl_mld_malus")
},
"roomtypedependant": {
"dbs": "mld_stdmelding_afhankelijk",
"typ": "check0",
"label": L("lcl_mld_afh_srtruimte_object")
},
"symbolname": {
"dbs": "mld_stdmelding_image",
"typ": "varchar",
"label": L("lcl_mld_symbol_name")
},
"closingtext": {
"dbs": "mld_stdmelding_afmeldtext",
"typ": "key",
"label": L("lcl_mld_afmeldtext"),
"foreign": {
"tbl": "(SELECT 1 key, " + safe.quoted_sql(L("lcl_mld_optioneel")) + " oms" + " FROM DUAL"
+ " UNION SELECT 2, " + safe.quoted_sql(L("lcl_mld_verplicht")) + " FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1"
},
"emptyoption": null
},
"sequence": {
"dbs": "mld_stdmelding_volgnr",
"typ": "number",
"label": L("lcl_mld_stdmelding_volgnummer")
},
"ownrooms": {
"dbs": "mld_stdmelding_prseigen",
"typ": "check0",
"label": L("lcl_mld_prseigen")
},
"checksimilar": {
"dbs": "mld_stdmelding_doublecheck",
"typ": "key",
"label": L("lcl_mld_doublecheck"),
"foreign": {
"tbl": "(SELECT 0 key, " + safe.quoted_sql(L("lcl_mld_not")) + " oms" + " FROM DUAL"
+ " UNION SELECT 1, " + safe.quoted_sql(L("lcl_mld_when_enter")) + " FROM DUAL"
+ " UNION SELECT 2, " + safe.quoted_sql(L("lcl_mld_when_accept")) + " FROM DUAL"
+ " UNION SELECT 3, " + safe.quoted_sql(L("lcl_mld_when_enter_accept")) + " FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1"
},
"emptyoption": null
},
"copyable": {
"dbs": "mld_stdmelding_kopieerbaar",
"typ": "check0",
"label": L("lcl_mld_copyable")
},
"survey": {
"dbs": "mld_stdmelding_kto",
"typ": "key",
"label": L("lcl_mld_in_KTO"),
"foreign": {
"tbl": "(SELECT 0 key, " + safe.quoted_sql(L("lcl_mld_never")) + " oms" + " FROM DUAL"
+ " UNION SELECT 1, " + safe.quoted_sql(L("lcl_mld_always")) + " FROM DUAL"
+ " UNION SELECT 2, " + safe.quoted_sql(L("lcl_mld_opt_in")) + " FROM DUAL"
+ " UNION SELECT 3, " + safe.quoted_sql(L("lcl_mld_opt_out")) + " FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1"
}
},
"limitcatalogue": {
"dbs": "bes_ins_discipline_key",
"typ": "key",
"label": L("lcl_mld_limited_bes_cat"),
"foreign": {
"tbl": "(SELECT d.ins_discipline_key"
+ " , ins_discipline_omschrijving"
+ " FROM ins_tab_discipline d"
+ " WHERE d.ins_discipline_module = 'BES'"
+ " AND d.ins_discipline_verwijder IS NULL"
+ " ORDER BY UPPER(d.ins_discipline_omschrijving))",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
},
"emptyoption": ""
},
"expires": {
"dbs": "mld_stdmelding_vervaldatum",
"typ": "date",
"label": L("lcl_mld_expiration_date")
},
"ordertypemandatory": {
"dbs": "mld_stdmelding_opdrtypevast",
"typ": "check0",
"label": L("lcl_mld_opdrtypevast")
},
"issuegroup": {
"dbs": "mld_stdmeldinggroep_key",
"typ": "key",
"label": L("lcl_mld_meldinggroep"),
"foreign": {
"tbl": "(SELECT g.mld_stdmeldinggroep_key"
+ ", " + lcl.xsqla("g.mld_stdmeldinggroep_naam", "g.mld_stdmeldinggroep_key")
+ " FROM mld_stdmeldinggroep g"
+ " ORDER BY 2)",
"key": "mld_stdmeldinggroep_key",
"desc": "mld_stdmeldinggroep_naam"
},
"emptyoption": ""
},
"immediateready": {
"dbs": "mld_stdmelding_directklaar",
"typ": "key",
"label": L("lcl_mld_directklaar"),
"foreign": {
"tbl": "(SELECT NULL key, " + safe.quoted_sql(L("lcl_mld_afhankelijk_vakgroep")) + " oms" + " FROM DUAL"
+ " UNION SELECT '0', " + safe.quoted_sql(L("lcl_No")) + " FROM DUAL"
+ " UNION SELECT '1', " + safe.quoted_sql(L("lcl_Yes")) + " FROM DUAL"
+ " UNION SELECT '2', " + safe.quoted_sql(L("lcl_mld_initieel_fo")) + " FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"order": "1 NULLS FIRST"
},
"emptyoption": null,
"multiedit": true
},
"monitorsla": {
"dbs": "mld_stdmelding_slabewaken",
"typ": "check0",
"label": L("lcl_mld_slabewaken")
},
"showobject": {
"dbs": "alg_onrgoed_obj_niveau",
"typ": "varchar",
"label": L("lcl_mld_obj_show_niveau"),
"foreign": {
"tbl": "(SELECT '' key, " + safe.quoted_sql(L("lcl_mld_no_objects")) + " oms" + ", 0 ev1 FROM DUAL"
+ " UNION SELECT 'L', " + safe.quoted_sql(L("lcl_location")) + ", 1 FROM DUAL"
+ " UNION SELECT 'G', " + safe.quoted_sql(L("lcl_building")) + ", 2 FROM DUAL"
+ " UNION SELECT 'V', " + safe.quoted_sql(L("lcl_floor")) + ", 3 FROM DUAL"
+ " UNION SELECT 'R', " + safe.quoted_sql(L("lcl_room")) + ", 4 FROM DUAL"
+ ")",
"key": "key",
"desc": "oms",
"extravalue": "ev1",
"order": "3",
"emptyisrealvalue": true
},
"emptyoption": null
},
"departmentobjects": {
"dbs": "alg_org_obj_niveau",
"typ": "number",
"label": L("lcl_mld_dep_obj"),
"foreign": {
"tbl": "(" + departmentobjects_foreign() + ")",
"key": "key",
"desc": "oms",
"extravalue": "ev1",
"order": "3"
},
"emptyoption": null
},
"personalobjects": {
"dbs": "mld_stdmelding_prsafdobj",
"label": L("lcl_mld_prsobjects"),
"typ": "check0"
},
"externallink": {
"dbs": "mld_stdmelding_externurl",
"typ": "varchar",
"label": L("lcl_mld_externurl")
},
"_upload": {
"dbs": "",
"label": L("lcl_mld_symbol_upload"),
"typ": "button2",
"defaultvalue": L("lcl_mld_browse_upload")
},
"_limitlabel": {
"dbs": "",
"label": "",
"typ": "label",
"labelvalue": L("lcl_mld_object_restrict")
},
"accepttime": {
"dbs": "mld_stdmelding_t_accepttijd",
"obj": "MLD_T_UITVOERTIJD",
"typ": "processingtime",
"label": L("lcl_mld_timetoaccept")
},
"processingtime": {
"dbs": "mld_stdmelding_t_uitvoertijd",
"obj": "MLD_T_UITVOERTIJD",
"typ": "processingtime",
"label": L("lcl_mld_uitvoertijd_normaal"),
"required": true
},
"criticaltime": {
"dbs": "mld_stdmelding_t_uitvtijd_pr1",
"obj": "MLD_T_UITVOERTIJD",
"typ": "processingtime",
"label": L("lcl_mld_uitvoertijd_kritisch")
},
"highprioritytime": {
"dbs": "mld_stdmelding_t_uitvtijd_pr2",
"obj": "MLD_T_UITVOERTIJD",
"typ": "processingtime",
"label": L("lcl_mld_uitvoertijd_hoog")
},
"lowprioritytime": {
"dbs": "mld_stdmelding_t_uitvtijd_pr4",
"obj": "MLD_T_UITVOERTIJD",
"typ": "processingtime",
"label": L("lcl_mld_uitvoertijd_laag")
},
"enddateempty": {
"dbs": "mld_stdmelding_enddate_empty",
"typ": "check0",
"label": L("lcl_mld_enddate_empty")
}
};
var xparams = {
GET: {
tables: [ "ins_tab_discipline, mld_disc_params, ins_srtdiscipline"],
wheres: [ "ins_tab_discipline.ins_discipline_key = mld_stdmelding.mld_ins_discipline_key",
"mld_disc_params.mld_ins_discipline_key = mld_stdmelding.mld_ins_discipline_key",
"ins_tab_discipline.ins_srtdiscipline_key = ins_srtdiscipline.ins_srtdiscipline_key"
]
}
};
this.hook_pre_edit = function(obj, fld, scf_params)
{
scf_params.layout.block[0].label += " " +obj.id ;
if (obj.id == -1)
obj.canrefer = {id:-1, name:null};
obj.canrefer = translate_canrefer(obj.canrefer, null);
var srtdisc_key = -1;;
var disc_key = -1;
if (obj.id > 0)
{
stdm_info = mld.mld_stdmeldinginfo(obj.id);
srtdisc_key = stdm_info.ins_srtdiscipline_key;
disc_key = stdm_info.ins_discipline_key;
// Hier hebben we echt de waarde van mld_stdmelding_directklaar nodig,
// en niet de defaultwaarde uit mld_disc_params_directklaar.
var sql = "SELECT mld_stdmelding_directklaar"
+ " FROM mld_stdmelding"
+ " WHERE mld_stdmelding_key = " + obj.id;
var oRs = Oracle.Execute(sql);
stdm_info.directklaar = oRs("mld_stdmelding_directklaar").Value;
oRs.Close();
fld.limitcatalogue.foreign.tbl = limitcatalogue_foreign(stdm_info);
}
var proturl = protectQS.create("../shared/BijlagenForm.asp?module=MLDS" + (mode == "show"? "&reado=1" : ""));
%>
<script>
var srtinstallatieselector_available = 1; // toon alleen actuele disciplines/groepen en objecten.
var proturl_bijlage = "<%=proturl%>";
var srtdisc_key = <%=srtdisc_key%>;
var disc_key = <%=disc_key%>;
</script>
<%
}
this.hook_pre_show = function(obj, fld, scf_params)
{
scf_params.layout.block[0].label += " " +obj.id ;
obj.canrefer = (obj.canrefer.id != 0 ? translate_canrefer(obj.canrefer, null) : null);
}
// ? deze functie als parameter aan foreign/multiselect meegeven?
function translate_canrefer(db_value, lb_arr)
{
// Kan verwijzen naar meerdere referenties (modules).
if (db_value)
{
// Vertalen van databasewaarde naar multiselectbox waarde.
// mld_stdmelding_kanverwijzen is een multiselect-box. Hieraan moet een string met keys worden doorgegeven.
// Converteer de bitjes naar string met keys.
var kanverwijzen = { id: "", name: "" };
for (var i = 1; i < 256; i = i * 2)
{ // Een string met keys maken.
kanverwijzen.id += ((db_value.id & i) == i? ((kanverwijzen.id == ""? "" : "," ) + i) : "");
kanverwijzen.name += ((db_value.id & i) == i? ((kanverwijzen.name == ""? "" : ", ") + mld.getrefmoduletext(i)) : "");
}
}
else
{
// Vertalen van multiselectbox waarde naar databasewaarde.
var kanverwijzen = 0;
for (var i = 0; i < lb_arr.length; i++)
{
if (lb_arr[i] > 0)
{
kanverwijzen += lb_arr[i];
}
}
if (kanverwijzen > 128)
kanverwijzen = 128; //{ id: 128, name: mld.getrefmoduletext(128) };
}
//
return kanverwijzen;
}
this.hook_pre_post = function(scf_params, obj)
{ // toevoegen
var canrefer_arr = getFParamIntArray("canrefer", [-1]);
obj.canrefer = translate_canrefer(null, canrefer_arr);
}
this.hook_post_post = function(scf_params, obj, key)
{
}
this.hook_pre_put = function(scf_params, obj, key)
{ // wijzigen
var canrefer_arr = getFParamIntArray("canrefer", [-1]);
obj.canrefer = translate_canrefer(null, canrefer_arr);
/*
// Kan verwijzen naar meerdere referenties (modules).
var kanverwijzen_arr = getFParamIntArray("canrefer", [-1]); // Kanverwijzen
var kanverwijzen = 0;
for (var i = 0; i < kanverwijzen_arr.length; i++)
{
if (kanverwijzen_arr[i] > 0)
kanverwijzen += kanverwijzen_arr[i];
}
obj.canrefer = (kanverwijzen > 128 ? 128 : kanverwijzen);
//
*/
}
this.hook_pre_delete = function(scf_params, key)
{
}
this.hook_pre_search = function(fld)
{
}
this.REST_GET = generic_REST_GET(this, xparams);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
function departmentobjects_foreign()
{
var tbl = "SELECT 9 key, " + safe.quoted_sql(L("lcl_mld_no_objects")) + " oms" + ", -2 ev1 FROM DUAL"
+ " UNION SELECT -1, " + safe.quoted_sql(L("lcl_mld_all_objects")) + ", -1 FROM DUAL"
+ " UNION SELECT 0, " + safe.quoted_sql(L("lcl_company")) + ", 0 FROM DUAL";
for (var i = 1; i <= S("prs_max_dep_level"); i++)
tbl += " UNION SELECT " + i + ", " + safe.quoted_sql(L("lcl_dep_name_level" + i)) + ", " + i + " ev1 FROM DUAL";
return tbl;
}
function limitcatalogue_foreign(stdm_info)
{
tbl = "(SELECT d.ins_discipline_key"
+ " , ins_discipline_omschrijving"
+ " FROM ins_tab_discipline d"
+ " WHERE d.ins_discipline_module = 'BES'"
+ " AND d.ins_discipline_verwijder IS NULL"
+ " AND EXISTS (SELECT 1"
+ " FROM mld_discipline md"
+ " , ins_srtdiscipline isd"
+ " WHERE md.ins_srtdiscipline_key = isd.ins_srtdiscipline_key"
+ " AND isd.ins_srtdiscipline_bes = 1"
+ " AND md.ins_discipline_key = " + stdm_info.ins_discipline_key + ")"
+ " ORDER BY UPPER(d.ins_discipline_omschrijving))";
return tbl;
}
}
%>